mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-06-03 19:42:27 +08:00
108 lines
3.1 KiB
TypeScript
108 lines
3.1 KiB
TypeScript
// Type definitions for csso 3.5
|
||
// Project: https://github.com/css/csso
|
||
// Definitions by: Christian Rackerseder <https://github.com/screendriver>
|
||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||
// TypeScript Version: 2.6
|
||
|
||
declare namespace csso {
|
||
interface Result {
|
||
/**
|
||
* Resulting CSS.
|
||
*/
|
||
css: string;
|
||
/**
|
||
* Instance of SourceMapGenerator or null.
|
||
*/
|
||
map: object | null;
|
||
}
|
||
|
||
interface CompressOptions {
|
||
/**
|
||
* Disable or enable a structure optimisations.
|
||
* @default true
|
||
*/
|
||
restructure?: boolean;
|
||
/**
|
||
* Enables merging of @media rules with the same media query by splitted by other rules.
|
||
* The optimisation is unsafe in general, but should work fine in most cases. Use it on your own risk.
|
||
* @default false
|
||
*/
|
||
forceMediaMerge?: boolean;
|
||
/**
|
||
* Transform a copy of input AST if true. Useful in case of AST reuse.
|
||
* @default false
|
||
*/
|
||
clone?: boolean;
|
||
/**
|
||
* Specify what comments to leave:
|
||
* - 'exclamation' or true – leave all exclamation comments
|
||
* - 'first-exclamation' – remove every comment except first one
|
||
* - false – remove all comments
|
||
* @default true
|
||
*/
|
||
comments?: string | boolean;
|
||
/**
|
||
* Usage data for advanced optimisations.
|
||
*/
|
||
usage?: object;
|
||
/**
|
||
* Function to track every step of transformation.
|
||
*/
|
||
logger?: () => void;
|
||
}
|
||
|
||
interface MinifyOptions {
|
||
/**
|
||
* Generate a source map when true.
|
||
* @default false
|
||
*/
|
||
sourceMap?: boolean;
|
||
/**
|
||
* Filename of input CSS, uses for source map generation.
|
||
* @default '<unknown>'
|
||
*/
|
||
filename?: string;
|
||
/**
|
||
* Output debug information to stderr.
|
||
* @default false
|
||
*/
|
||
debug?: boolean;
|
||
/**
|
||
* Called right after parse is run.
|
||
*/
|
||
beforeCompress?: BeforeCompressFn | BeforeCompressFn[];
|
||
/**
|
||
* Called right after compress() is run.
|
||
*/
|
||
afterCompress?: AfterCompressFn | AfterCompressFn[];
|
||
restructure?: boolean;
|
||
}
|
||
|
||
type BeforeCompressFn = (ast: object, options: CompressOptions) => void;
|
||
type AfterCompressFn = (compressResult: string, options: CompressOptions) => void;
|
||
}
|
||
|
||
interface Csso {
|
||
/**
|
||
* Minify source CSS passed as String
|
||
* @param source
|
||
* @param options
|
||
*/
|
||
minify(source: string, options?: csso.MinifyOptions & csso.CompressOptions): csso.Result;
|
||
|
||
/**
|
||
* The same as minify() but for list of declarations. Usually it's a style attribute value.
|
||
* @param source
|
||
* @param options
|
||
*/
|
||
minifyBlock(source: string, options?: csso.MinifyOptions & csso.CompressOptions): csso.Result;
|
||
|
||
/**
|
||
* Does the main task – compress an AST.
|
||
*/
|
||
compress(ast: object, options?: csso.CompressOptions): { ast: object };
|
||
}
|
||
|
||
declare const csso: Csso;
|
||
export = csso;
|