Files
DefinitelyTyped/types/csso/index.d.ts
Piotr Błażejewicz (Peter Blazejewicz) d5e5fd726e 🤖 Merge PR #57552 update(csso): v5 update (ESM) by @peterblazejewicz
- support for ESM syntax
- version bump
- support for 'csso' global symbol added

https://github.com/css/csso/releases/tag/v5.0.0

Thanks!
2021-12-07 10:06:36 -08:00

121 lines
3.5 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Type definitions for csso 5.0
// Project: https://github.com/css/csso
// Definitions by: Christian Rackerseder <https://github.com/screendriver>
// Erik Källén <https://github.com/erik-kallen>
// Piotr Błażejewicz <https://github.com/peterblazejewicz>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
import * as csstree from 'css-tree';
export as namespace csso;
export const version: string;
/**
* Minify source CSS passed as String
* @param source
* @param options
*/
export function minify(source: string, options?: MinifyOptions & CompressOptions): Result;
/**
* The same as minify() but for list of declarations. Usually it's a style attribute value.
* @param source
* @param options
*/
export function minifyBlock(source: string, options?: MinifyOptions & CompressOptions): Result;
export const syntax: typeof csstree & {
/**
* Does the main task compress an AST.
*/
compress(ast: csstree.CssNode, options?: CompressOptions): { ast: csstree.CssNode };
};
export interface Result {
/**
* Resulting CSS.
*/
css: string;
/**
* Instance of SourceMapGenerator or null.
*/
map: object | null;
}
export interface Usage {
tags?: string[] | undefined;
ids?: string[] | undefined;
classes?: string[] | undefined;
scopes?: string[][] | undefined;
blacklist?:
| {
tags?: string[] | undefined;
ids?: string[] | undefined;
classes?: string[] | undefined;
}
| undefined;
}
export interface CompressOptions {
/**
* Disable or enable a structure optimisations.
* @default true
*/
restructure?: boolean | undefined;
/**
* 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 | undefined;
/**
* Transform a copy of input AST if true. Useful in case of AST reuse.
* @default false
*/
clone?: boolean | undefined;
/**
* 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 | undefined;
/**
* Usage data for advanced optimisations.
*/
usage?: Usage | undefined;
/**
* Function to track every step of transformation.
*/
logger?: (() => void) | undefined;
}
export interface MinifyOptions {
/**
* Generate a source map when true.
* @default false
*/
sourceMap?: boolean | undefined;
/**
* Filename of input CSS, uses for source map generation.
* @default '<unknown>'
*/
filename?: string | undefined;
/**
* Output debug information to stderr.
* @default false
*/
debug?: boolean | undefined;
/**
* Called right after parse is run.
*/
beforeCompress?: BeforeCompressFn | BeforeCompressFn[] | undefined;
/**
* Called right after compress() is run.
*/
afterCompress?: AfterCompressFn | AfterCompressFn[] | undefined;
restructure?: boolean | undefined;
}
export type BeforeCompressFn = (ast: object, options: CompressOptions) => void;
export type AfterCompressFn = (compressResult: string, options: CompressOptions) => void;