UNPKG

gulp-purgecss

Version:

Gulp plugin for purgecss

153 lines (139 loc) 3.71 kB
import * as internal from 'stream'; import * as postcss from 'postcss'; /** * @public */ declare type ComplexSafelist = { standard?: StringRegExpArray; /** * You can safelist selectors and their children based on a regular * expression with `safelist.deep` * * @example * * ```ts * const purgecss = await new PurgeCSS().purge({ * content: [], * css: [], * safelist: { * deep: [/red$/] * } * }) * ``` * * In this example, selectors such as `.bg-red .child-of-bg` will be left * in the final CSS, even if `child-of-bg` is not found. * */ deep?: RegExp[]; greedy?: RegExp[]; variables?: StringRegExpArray; keyframes?: StringRegExpArray; }; /** * @public */ declare type ExtractorFunction<T = string> = (content: T) => ExtractorResult; /** * @public */ declare type ExtractorResult = ExtractorResultDetailed | string[]; /** * @public */ declare interface ExtractorResultDetailed { attributes: { names: string[]; values: string[]; }; classes: string[]; ids: string[]; tags: string[]; undetermined: string[]; } /** * @public */ declare interface Extractors { extensions: string[]; extractor: ExtractorFunction; } /** * * @param options - options * @returns * * @public */ declare function gulpPurgeCSS(options: UserDefinedOptions): internal.Transform; export default gulpPurgeCSS; /** * @public */ declare interface RawContent<T = string> { extension: string; raw: T; } /** * @public */ declare interface RawCSS { raw: string; name?: string; } /** * @public */ declare type StringRegExpArray = Array<RegExp | string>; /** * @public */ export declare interface UserDefinedOptions extends Omit<UserDefinedOptions_2, "css" | "content"> { content: string[]; } /** * Options used by PurgeCSS to remove unused CSS * * @public */ declare interface UserDefinedOptions_2 { /** {@inheritDoc purgecss#Options.content} */ content: Array<string | RawContent>; /** {@inheritDoc purgecss#Options.css} */ css: Array<string | RawCSS>; /** {@inheritDoc purgecss#Options.defaultExtractor} */ defaultExtractor?: ExtractorFunction; /** {@inheritDoc purgecss#Options.extractors} */ extractors?: Array<Extractors>; /** {@inheritDoc purgecss#Options.fontFace} */ fontFace?: boolean; /** {@inheritDoc purgecss#Options.keyframes} */ keyframes?: boolean; /** {@inheritDoc purgecss#Options.output} */ output?: string; /** {@inheritDoc purgecss#Options.rejected} */ rejected?: boolean; /** {@inheritDoc purgecss#Options.rejectedCss} */ rejectedCss?: boolean; /** {@inheritDoc purgecss#Options.sourceMap } */ sourceMap?: boolean | (postcss.SourceMapOptions & { to?: string }); /** {@inheritDoc purgecss#Options.stdin} */ stdin?: boolean; /** {@inheritDoc purgecss#Options.stdout} */ stdout?: boolean; /** {@inheritDoc purgecss#Options.variables} */ variables?: boolean; /** {@inheritDoc purgecss#Options.safelist} */ safelist?: UserDefinedSafelist; /** {@inheritDoc purgecss#Options.blocklist} */ blocklist?: StringRegExpArray; /** {@inheritDoc purgecss#Options.skippedContentGlobs} */ skippedContentGlobs?: Array<string>; /** {@inheritDoc purgecss#Options.dynamicAttributes} */ dynamicAttributes?: string[]; } /** * @public */ declare type UserDefinedSafelist = StringRegExpArray | ComplexSafelist; export { }