mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-10-03 22:37:03 +00:00
Merge pull request #32466 from GolaWaya/master
Updated clean-css type definitions to 4.2.1
This commit is contained in:
@@ -1,18 +1,20 @@
|
||||
// Original by Tanguy Krotoff <https://github.com/tkrotoff>
|
||||
// Updated by Andrew Potter <https://github.com/GolaWaya>
|
||||
|
||||
import * as CleanCSS from 'clean-css';
|
||||
|
||||
var source = 'a{font-weight:bold;}';
|
||||
var minified = new CleanCSS().minify(source).styles;
|
||||
let source = 'a{font-weight:bold;}';
|
||||
console.log(new CleanCSS().minify(source).styles);
|
||||
|
||||
var source = '@import url(http://path/to/remote/styles);';
|
||||
new CleanCSS().minify(source, function (error, minified) {
|
||||
source = '@import url(http://path/to/remote/styles);';
|
||||
new CleanCSS().minify(source, (error: any, minified: CleanCSS.Output): void => {
|
||||
console.log(minified.styles);
|
||||
});
|
||||
|
||||
const pathToOutputDirectory = 'path';
|
||||
|
||||
new CleanCSS({ sourceMap: true, target: pathToOutputDirectory })
|
||||
.minify(source, function (error, minified) {
|
||||
new CleanCSS({ sourceMap: true, rebaseTo: pathToOutputDirectory })
|
||||
.minify(source, (error: any, minified: CleanCSS.Output): void => {
|
||||
// access minified.sourceMap for SourceMapGenerator object
|
||||
// see https://github.com/mozilla/source-map/#sourcemapgenerator for more details
|
||||
// see https://github.com/jakubpawlowicz/clean-css/blob/master/bin/cleancss#L114 on how it's used in clean-css' CLI
|
||||
@@ -20,15 +22,15 @@ new CleanCSS({ sourceMap: true, target: pathToOutputDirectory })
|
||||
});
|
||||
|
||||
const inputSourceMapAsString = 'input';
|
||||
new CleanCSS({ sourceMap: inputSourceMapAsString, target: pathToOutputDirectory })
|
||||
.minify(source, function (error, minified) {
|
||||
new CleanCSS({ sourceMap: true, rebaseTo: pathToOutputDirectory })
|
||||
.minify(source, inputSourceMapAsString, (error: any, minified: CleanCSS.Output): void => {
|
||||
// access minified.sourceMap to access SourceMapGenerator object
|
||||
// see https://github.com/mozilla/source-map/#sourcemapgenerator for more details
|
||||
// see https://github.com/jakubpawlowicz/clean-css/blob/master/bin/cleancss#L114 on how it's used in clean-css' CLI
|
||||
console.log(minified.sourceMap);
|
||||
});
|
||||
|
||||
new CleanCSS({ sourceMap: true, target: pathToOutputDirectory }).minify({
|
||||
new CleanCSS({ sourceMap: true, rebaseTo: pathToOutputDirectory }).minify({
|
||||
'path/to/source/1': {
|
||||
styles: '...styles...',
|
||||
sourceMap: '...source-map...'
|
||||
@@ -37,7 +39,7 @@ new CleanCSS({ sourceMap: true, target: pathToOutputDirectory }).minify({
|
||||
styles: '...styles...',
|
||||
sourceMap: '...source-map...'
|
||||
}
|
||||
}, function (error, minified) {
|
||||
}, (error: any, minified: CleanCSS.Output): void => {
|
||||
// access minified.sourceMap as above
|
||||
console.log(minified.sourceMap);
|
||||
});
|
||||
@@ -52,3 +54,30 @@ new CleanCSS().minify({
|
||||
styles: 'contents of file two'
|
||||
}
|
||||
});
|
||||
|
||||
// new tests - promise resolution
|
||||
new CleanCSS({ returnPromise: true, rebaseTo: pathToOutputDirectory }).minify(source)
|
||||
.then((minified: CleanCSS.Output): void => {
|
||||
console.log(minified.styles);
|
||||
}).catch((error: any): void => {
|
||||
console.log(error);
|
||||
}
|
||||
);
|
||||
|
||||
new CleanCSS({ returnPromise: true, sourceMap: true }).minify(source)
|
||||
.then((minified: CleanCSS.Output): void => {
|
||||
// access minified.sourceMap as above
|
||||
console.log(minified.sourceMap);
|
||||
}).catch((error: any): void => {
|
||||
console.log(error);
|
||||
}
|
||||
);
|
||||
|
||||
new CleanCSS({ returnPromise: true, sourceMap: true }).minify(source, inputSourceMapAsString)
|
||||
.then((minified: CleanCSS.Output): void => {
|
||||
// access minified.sourceMap as above
|
||||
console.log(minified.sourceMap);
|
||||
}).catch((error: any): void => {
|
||||
console.log(error);
|
||||
}
|
||||
);
|
||||
|
||||
Vendored
+624
-65
@@ -1,108 +1,667 @@
|
||||
// Type definitions for clean-css v3.4.9
|
||||
// Type definitions for clean-css 4.2
|
||||
// Project: https://github.com/jakubpawlowicz/clean-css
|
||||
// Definitions by: Tanguy Krotoff <https://github.com/tkrotoff>
|
||||
// Andrew Potter <https://github.com/GolaWaya>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
/// <reference types="node" />
|
||||
|
||||
import { RequestOptions as HttpsRequestOptions } from "https";
|
||||
import { RequestOptions as HttpRequestOptions } from "http";
|
||||
|
||||
declare namespace CleanCSS {
|
||||
/**
|
||||
* Options passed when initializing a new instance of CleanCSS
|
||||
*/
|
||||
interface Options {
|
||||
// Set to false to disable advanced optimizations - selector & property merging, reduction, etc.
|
||||
advanced?: boolean;
|
||||
/**
|
||||
* Controls compatibility mode used; defaults to ie10+ using `'*'`.
|
||||
* Compatibility hash exposes the following properties: `colors`, `properties`, `selectors`, and `units`
|
||||
*/
|
||||
compatibility?: "*" | "ie9" | "ie8" | "ie7" | CompatibilityOptions;
|
||||
|
||||
// Set to false to disable aggressive merging of properties.
|
||||
aggressiveMerging?: boolean;
|
||||
/**
|
||||
* Controls a function for handling remote requests; Defaults to the build in `loadRemoteResource` function
|
||||
*/
|
||||
fetch?: (uri: string, inlineRequest: HttpRequestOptions | HttpsRequestOptions, inlineTimeout: number, done: (message: string | number, body: string) => void) => void;
|
||||
|
||||
// Turns on benchmarking mode measuring time spent on cleaning up (run npm run bench to see example)
|
||||
benchmark?: boolean;
|
||||
/**
|
||||
* Controls output CSS formatting; defaults to `false`.
|
||||
* Format hash exposes the following properties: `breaks`, `breakWith`, `indentBy`, `indentWith`, `spaces`, and `wrapAt`.
|
||||
*/
|
||||
format?: "beautify" | "keep-breaks" | FormatOptions | false;
|
||||
|
||||
// Enables compatibility mode
|
||||
compatibility?: Object;
|
||||
/**
|
||||
* inline option whitelists which @import rules will be processed. Defaults to `'local'`
|
||||
* Accepts the following values:
|
||||
* 'local': enables local inlining;
|
||||
* 'remote': enables remote inlining;
|
||||
* 'none': disables all inlining;
|
||||
* 'all': enables all inlining, same as ['local', 'remote'];
|
||||
* '[uri]': enables remote inlining from the specified uri;
|
||||
* '![url]': disables remote inlining from the specified uri;
|
||||
*/
|
||||
inline?: ReadonlyArray<string> | false;
|
||||
|
||||
// Set to true to get minification statistics under stats property (see test/custom-test.js for examples)
|
||||
debug?: boolean;
|
||||
/**
|
||||
* Controls extra options for inlining remote @import rules
|
||||
*/
|
||||
inlineRequest?: HttpRequestOptions | HttpsRequestOptions;
|
||||
|
||||
// A hash of options for @import inliner, see test/protocol-imports-test.js for examples, or this comment for a proxy use case.
|
||||
inliner?: Object;
|
||||
/**
|
||||
* Controls number of milliseconds after which inlining a remote @import fails; defaults to `5000`;
|
||||
*/
|
||||
inlineTimeout?: number;
|
||||
|
||||
// Whether to keep line breaks (default is false)
|
||||
keepBreaks?: boolean;
|
||||
/**
|
||||
* Controls optimization level used; defaults to `1`.
|
||||
* Level hash exposes `1`, and `2`.
|
||||
*/
|
||||
level?: 0 | 1 | 2 | OptimizationsOptions;
|
||||
|
||||
// * for keeping all (default), 1 for keeping first one only, 0 for removing all
|
||||
keepSpecialComments?: string | number;
|
||||
|
||||
// Whether to merge @media at-rules (default is true)
|
||||
mediaMerging?: boolean;
|
||||
|
||||
// Whether to process @import rules
|
||||
processImport?: boolean;
|
||||
|
||||
// A list of @import rules, can be ['all'] (default), ['local'], ['remote'], or a blacklisted path e.g. ['!fonts.googleapis.com']
|
||||
processImportFrom?: Array<string>;
|
||||
|
||||
// Set to false to skip URL rebasing
|
||||
/**
|
||||
* Controls URL rebasing; defaults to `true`;
|
||||
*/
|
||||
rebase?: boolean;
|
||||
|
||||
// Path to resolve relative @import rules and URLs
|
||||
relativeTo?: string;
|
||||
/**
|
||||
* controls a directory to which all URLs are rebased, most likely the directory under which the output file
|
||||
* will live; defaults to the current directory;
|
||||
*/
|
||||
rebaseTo?: string;
|
||||
|
||||
// Set to false to disable restructuring in advanced optimizations
|
||||
restructuring?: boolean;
|
||||
/**
|
||||
* If you prefer clean-css to return a Promise object then you need to explicitely ask for it; defaults to `false`
|
||||
*/
|
||||
returnPromise?: boolean;
|
||||
|
||||
// Path to resolve absolute @import rules and rebase relative URLs
|
||||
root?: string;
|
||||
/**
|
||||
* Controls whether an output source map is built; defaults to `false`
|
||||
*/
|
||||
sourceMap?: boolean;
|
||||
|
||||
// Rounding precision; defaults to 2; -1 disables rounding
|
||||
roundingPrecision?: number;
|
||||
|
||||
// Set to true to enable semantic merging mode which assumes BEM-like content (default is false as it's highly likely this will break your stylesheets - use with caution!)
|
||||
semanticMerging?: boolean;
|
||||
|
||||
// Set to false to skip shorthand compacting (default is true unless sourceMap is set when it's false)
|
||||
shorthandCompacting?: boolean;
|
||||
|
||||
// Exposes source map under sourceMap property, e.g. new CleanCSS().minify(source).sourceMap (default is false) If input styles are a product of CSS preprocessor (Less, Sass) an input source map can be passed as a string.
|
||||
sourceMap?: boolean | string;
|
||||
|
||||
// Set to true to inline sources inside a source map's sourcesContent field (defaults to false) It is also required to process inlined sources from input source maps.
|
||||
/**
|
||||
* Controls embedding sources inside a source map's `sourcesContent` field; defaults to `false`
|
||||
*/
|
||||
sourceMapInlineSources?: boolean;
|
||||
|
||||
// Path to a folder or an output file to which rebase all URLs
|
||||
target?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Output returned when calling minify functions
|
||||
*/
|
||||
interface Output {
|
||||
// Optimized output CSS as a string
|
||||
/**
|
||||
* Optimized output CSS as a string
|
||||
*/
|
||||
styles: string;
|
||||
|
||||
// Output source map (if requested with sourceMap option)
|
||||
/**
|
||||
* Output source map if requested with `sourceMap` option
|
||||
*/
|
||||
sourceMap: string;
|
||||
|
||||
// A list of errors raised
|
||||
errors: Array<string>;
|
||||
/**
|
||||
* A list of errors raised
|
||||
*/
|
||||
errors: string[];
|
||||
|
||||
// A list of warnings raised
|
||||
warnings: Array<string>;
|
||||
/**
|
||||
* A list of warnings raised
|
||||
*/
|
||||
warnings: string[];
|
||||
|
||||
// A hash of statistic information (if requested with debug option)
|
||||
/**
|
||||
* Contains statistics on the minify process
|
||||
*/
|
||||
stats: {
|
||||
// Original content size (after import inlining)
|
||||
/**
|
||||
* Original content size after import inlining
|
||||
*/
|
||||
originalSize: number;
|
||||
|
||||
// Optimized content size
|
||||
/**
|
||||
* Optimized content size
|
||||
*/
|
||||
minifiedSize: number;
|
||||
|
||||
// Time spent on optimizations
|
||||
/**
|
||||
* Time spent on optimizations in milliseconds
|
||||
*/
|
||||
timeSpent: number;
|
||||
|
||||
// A ratio of output size to input size (e.g. 25% if content was reduced from 100 bytes to 75 bytes)
|
||||
/**
|
||||
* `(originalSize - minifiedSize) / originalSize`, e.g. 0.25 if size is reduced from 100 bytes to 75 bytes
|
||||
*/
|
||||
efficiency: number;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Fine grained configuration for compatibility option
|
||||
*/
|
||||
interface CompatibilityOptions {
|
||||
/**
|
||||
* A hash of compatibility options related to color
|
||||
*/
|
||||
colors?: {
|
||||
/**
|
||||
* Controls `rgba()` / `hsla()` color support; defaults to `true`
|
||||
*/
|
||||
opacity?: boolean;
|
||||
};
|
||||
/**
|
||||
* A hash of properties that can be set with compatibility
|
||||
*/
|
||||
properties?: {
|
||||
/**
|
||||
* Controls background-clip merging into shorthand; defaults to `true`
|
||||
*/
|
||||
backgroundClipMerging?: boolean;
|
||||
|
||||
/**
|
||||
* Controls background-origin merging into shorthand; defaults to `true`
|
||||
*/
|
||||
backgroundOriginMerging?: boolean;
|
||||
|
||||
/**
|
||||
* Controls background-size merging into shorthand; defaults to `true`
|
||||
*/
|
||||
backgroundSizeMerging?: boolean;
|
||||
|
||||
/**
|
||||
* controls color optimizations; defaults to `true`
|
||||
*/
|
||||
colors?: boolean,
|
||||
|
||||
/**
|
||||
* Controls keeping IE bang hack; defaults to `false`
|
||||
*/
|
||||
ieBangHack?: boolean;
|
||||
|
||||
/**
|
||||
* Controls keeping IE `filter` / `-ms-filter`; defaults to `false`
|
||||
*/
|
||||
ieFilters?: boolean;
|
||||
|
||||
/**
|
||||
* Controls keeping IE prefix hack; defaults to `false`
|
||||
*/
|
||||
iePrefixHack?: boolean;
|
||||
|
||||
/**
|
||||
* Controls keeping IE suffix hack; defaults to `false`
|
||||
*/
|
||||
ieSuffixHack?: boolean;
|
||||
|
||||
/**
|
||||
* Controls property merging based on understandably; defaults to `true`
|
||||
*/
|
||||
merging?: boolean;
|
||||
|
||||
/**
|
||||
* Controls shortening pixel units into `pc`, `pt`, or `in` units; defaults to `false`
|
||||
*/
|
||||
shorterLengthUnits?: false;
|
||||
|
||||
/**
|
||||
* Controls keeping space after closing brace - `url() no-repeat` into `url()no-repeat`; defaults to `true`
|
||||
*/
|
||||
spaceAfterClosingBrace?: true;
|
||||
|
||||
/**
|
||||
* Controls keeping quoting inside `url()`; defaults to `false`
|
||||
*/
|
||||
urlQuotes?: boolean;
|
||||
|
||||
/**
|
||||
* Controls removal of units `0` value; defaults to `true`
|
||||
*/
|
||||
zeroUnits?: boolean;
|
||||
};
|
||||
/**
|
||||
* A hash of options related to compatibility of selectors
|
||||
*/
|
||||
selectors?: {
|
||||
/**
|
||||
* Controls extra space before `nav` element; defaults to `false`
|
||||
*/
|
||||
adjacentSpace?: boolean;
|
||||
|
||||
/**
|
||||
* Controls removal of IE7 selector hacks, e.g. `*+html...`; defaults to `true`
|
||||
*/
|
||||
ie7Hack?: boolean;
|
||||
|
||||
/**
|
||||
* Controls a whitelist of mergeable pseudo classes; defaults to `[':active', ...]`
|
||||
*/
|
||||
mergeablePseudoClasses?: ReadonlyArray<string>;
|
||||
|
||||
/**
|
||||
* Controls a whitelist of mergeable pseudo elements; defaults to `['::after', ...]`
|
||||
*/
|
||||
mergeablePseudoElements: ReadonlyArray<string>;
|
||||
|
||||
/**
|
||||
* Controls maximum number of selectors in a single rule (since 4.1.0); defaults to `8191`
|
||||
*/
|
||||
mergeLimit: number;
|
||||
|
||||
/**
|
||||
* Controls merging of rules with multiple pseudo classes / elements (since 4.1.0); defaults to `true`
|
||||
*/
|
||||
multiplePseudoMerging: boolean;
|
||||
};
|
||||
/**
|
||||
* A hash of options related to comparability of supported units
|
||||
*/
|
||||
units?: {
|
||||
/**
|
||||
* Controls treating `ch` as a supported unit; defaults to `true`
|
||||
*/
|
||||
ch?: boolean;
|
||||
|
||||
/**
|
||||
* Controls treating `in` as a supported unit; defaults to `true`
|
||||
*/
|
||||
in?: boolean;
|
||||
|
||||
/**
|
||||
* Controls treating `pc` as a supported unit; defaults to `true`
|
||||
*/
|
||||
pc?: boolean;
|
||||
|
||||
/**
|
||||
* Controls treating `pt` as a supported unit; defaults to `true`
|
||||
*/
|
||||
pt?: boolean;
|
||||
|
||||
/**
|
||||
* Controls treating `rem` as a supported unit; defaults to `true`
|
||||
*/
|
||||
rem?: boolean;
|
||||
|
||||
/**
|
||||
* Controls treating `vh` as a supported unit; defaults to `true`
|
||||
*/
|
||||
vh?: boolean;
|
||||
|
||||
/**
|
||||
* Controls treating `vm` as a supported unit; defaults to `true`
|
||||
*/
|
||||
vm?: boolean;
|
||||
|
||||
/**
|
||||
* Controls treating `vmax` as a supported unit; defaults to `true`
|
||||
*/
|
||||
vmax?: boolean;
|
||||
|
||||
/**
|
||||
* Controls treating `vmin` as a supported unit; defaults to `true`
|
||||
*/
|
||||
vmin?: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Fine grained options for configuring the CSS formatting
|
||||
*/
|
||||
interface FormatOptions {
|
||||
/**
|
||||
* Controls where to insert breaks
|
||||
*/
|
||||
breaks?: {
|
||||
/**
|
||||
* Controls if a line break comes after an at-rule; e.g. `@charset`; defaults to `false`
|
||||
*/
|
||||
afterAtRule?: boolean;
|
||||
|
||||
/**
|
||||
* Controls if a line break comes after a block begins; e.g. `@media`; defaults to `false`
|
||||
*/
|
||||
afterBlockBegins?: boolean;
|
||||
|
||||
/**
|
||||
* Controls if a line break comes after a block ends, defaults to `false`
|
||||
*/
|
||||
afterBlockEnds?: boolean;
|
||||
|
||||
/**
|
||||
* Controls if a line break comes after a comment; defaults to `false`
|
||||
*/
|
||||
afterComment?: boolean;
|
||||
|
||||
/**
|
||||
* Controls if a line break comes after a property; defaults to `false`
|
||||
*/
|
||||
afterProperty?: boolean;
|
||||
|
||||
/**
|
||||
* Controls if a line break comes after a rule begins; defaults to `false`
|
||||
*/
|
||||
afterRuleBegins?: boolean;
|
||||
|
||||
/**
|
||||
* Controls if a line break comes after a rule ends; defaults to `false`
|
||||
*/
|
||||
afterRuleEnds?: boolean;
|
||||
|
||||
/**
|
||||
* Controls if a line break comes before a block ends; defaults to `false`
|
||||
*/
|
||||
beforeBlockEnds?: boolean;
|
||||
|
||||
/**
|
||||
* Controls if a line break comes between selectors; defaults to `false`
|
||||
*/
|
||||
betweenSelectors?: boolean;
|
||||
};
|
||||
/**
|
||||
* Controls the new line character, can be `'\r\n'` or `'\n'`(aliased as `'windows'` and `'unix'`
|
||||
* or `'crlf'` and `'lf'`); defaults to system one, so former on Windows and latter on Unix
|
||||
*/
|
||||
breakWith?: string;
|
||||
|
||||
/**
|
||||
* Controls number of characters to indent with; defaults to `0`
|
||||
*/
|
||||
indentBy?: number;
|
||||
|
||||
/**
|
||||
* Controls a character to indent with, can be `'space'` or `'tab'`; defaults to `'space'`
|
||||
*/
|
||||
indentWith?: "space" | "tab";
|
||||
|
||||
/**
|
||||
* Controls where to insert spaces
|
||||
*/
|
||||
spaces?: {
|
||||
/**
|
||||
* Controls if spaces come around selector relations; e.g. `div > a`; defaults to `false`
|
||||
*/
|
||||
aroundSelectorRelation?: boolean;
|
||||
|
||||
/**
|
||||
* Controls if a space comes before a block begins; e.g. `.block {`; defaults to `false`
|
||||
*/
|
||||
beforeBlockBegins?: boolean;
|
||||
|
||||
/**
|
||||
* Controls if a space comes before a value; e.g. `width: 1rem`; defaults to `false`
|
||||
*/
|
||||
beforeValue?: boolean;
|
||||
};
|
||||
/**
|
||||
* Controls maximum line length; defaults to `false`
|
||||
*/
|
||||
wrapAt?: false | number;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fine grained options for configuring optimizations
|
||||
*/
|
||||
interface OptimizationsOptions {
|
||||
1?: {
|
||||
/**
|
||||
* Sets all optimizations at this level unless otherwise specified
|
||||
*/
|
||||
all?: boolean;
|
||||
|
||||
/**
|
||||
* Controls `@charset` moving to the front of a stylesheet; defaults to `true`
|
||||
*/
|
||||
cleanupCharsets?: boolean;
|
||||
|
||||
/**
|
||||
* Controls URL normalization; defaults to `true`
|
||||
*/
|
||||
normalizeUrls?: boolean;
|
||||
|
||||
/**
|
||||
* Controls `background` property optimizations; defaults to `true`
|
||||
*/
|
||||
optimizeBackground?: boolean;
|
||||
|
||||
/**
|
||||
* Controls `border-radius` property optimizations; defaults to `true`
|
||||
*/
|
||||
optimizeBorderRadius?: boolean;
|
||||
|
||||
/**
|
||||
* Controls `filter` property optimizations; defaults to `true`
|
||||
*/
|
||||
optimizeFilter?: boolean;
|
||||
|
||||
/**
|
||||
* Controls `font` property optimizations; defaults to `true`
|
||||
*/
|
||||
optimizeFont?: boolean;
|
||||
|
||||
/**
|
||||
* Controls `font-weight` property optimizations; defaults to `true`
|
||||
*/
|
||||
optimizeFontWeight?: boolean;
|
||||
|
||||
/**
|
||||
* Controls `outline` property optimizations; defaults to `true`
|
||||
*/
|
||||
optimizeOutline?: boolean;
|
||||
|
||||
/**
|
||||
* Controls removing empty rules and nested blocks; defaults to `true`
|
||||
*/
|
||||
removeEmpty?: boolean;
|
||||
|
||||
/**
|
||||
* Controls removing negative paddings; defaults to `true`
|
||||
*/
|
||||
removeNegativePaddings?: boolean;
|
||||
|
||||
/**
|
||||
* Controls removing quotes when unnecessary; defaults to `true`
|
||||
*/
|
||||
removeQuotes?: boolean;
|
||||
|
||||
/**
|
||||
* Controls removing unused whitespace; defaults to `true`
|
||||
*/
|
||||
removeWhitespace?: boolean;
|
||||
|
||||
/**
|
||||
* Contols removing redundant zeros; defaults to `true`
|
||||
*/
|
||||
replaceMultipleZeros?: boolean;
|
||||
|
||||
/**
|
||||
* Controls replacing time units with shorter values; defaults to `true`
|
||||
*/
|
||||
replaceTimeUnits?: boolean;
|
||||
|
||||
/**
|
||||
* Controls replacing zero values with units; defaults to `true`
|
||||
*/
|
||||
replaceZeroUnits?: boolean;
|
||||
|
||||
/**
|
||||
* Rounds pixel values to `N` decimal places; `false` disables rounding; defaults to `false`
|
||||
*/
|
||||
roundingPrecision?: boolean;
|
||||
|
||||
/**
|
||||
* denotes selector sorting method; can be `'natural'` or `'standard'`, `'none'`, or false (the last two
|
||||
* since 4.1.0); defaults to `'standard'`
|
||||
*/
|
||||
selectorsSortingMethod?: "standard" | "natural" | "none";
|
||||
|
||||
/**
|
||||
* denotes a number of /*! ... * / comments preserved; defaults to `all`
|
||||
*/
|
||||
specialComments?: string;
|
||||
|
||||
/**
|
||||
* Controls at-rules (e.g. `@charset`, `@import`) optimizing; defaults to `true`
|
||||
*/
|
||||
tidyAtRules?: boolean;
|
||||
|
||||
/**
|
||||
* Controls block scopes (e.g. `@media`) optimizing; defaults to `true`
|
||||
*/
|
||||
tidyBlockScopes?: boolean;
|
||||
|
||||
/**
|
||||
* Controls selectors optimizing; defaults to `true`
|
||||
*/
|
||||
tidySelectors?: boolean;
|
||||
|
||||
/**
|
||||
* Controls removing trailing semicolons in rule; defaults to `false` - means remove
|
||||
*/
|
||||
semicolonAfterLastProperty?: boolean;
|
||||
|
||||
/**
|
||||
* Defines a callback for fine-grained property optimization; defaults to no-op
|
||||
*/
|
||||
transform?: (propertyName: string, propertyValue: string, selector?: string) => string;
|
||||
};
|
||||
2?: {
|
||||
/**
|
||||
* Sets all optimizations at this level unless otherwise specified
|
||||
*/
|
||||
all?: boolean;
|
||||
|
||||
/**
|
||||
* Controls adjacent rules merging; defaults to true
|
||||
*/
|
||||
mergeAdjacentRules?: boolean;
|
||||
|
||||
/**
|
||||
* Controls merging properties into shorthands; defaults to true
|
||||
*/
|
||||
mergeIntoShorthands?: boolean;
|
||||
|
||||
/**
|
||||
* Controls `@media` merging; defaults to true
|
||||
*/
|
||||
mergeMedia?: boolean;
|
||||
|
||||
/**
|
||||
* Controls non-adjacent rule merging; defaults to true
|
||||
*/
|
||||
mergeNonAdjacentRules?: boolean;
|
||||
|
||||
/**
|
||||
* Controls semantic merging; defaults to false
|
||||
*/
|
||||
mergeSemantically?: boolean;
|
||||
|
||||
/**
|
||||
* Controls property overriding based on understandably; defaults to true
|
||||
*/
|
||||
overrideProperties?: boolean;
|
||||
|
||||
/**
|
||||
* Controls removing empty rules and nested blocks; defaults to `true`
|
||||
*/
|
||||
removeEmpty?: boolean;
|
||||
|
||||
/**
|
||||
* Controls non-adjacent rule reducing; defaults to true
|
||||
*/
|
||||
reduceNonAdjacentRules?: boolean;
|
||||
|
||||
/**
|
||||
* Controls duplicate `@font-face` removing; defaults to true
|
||||
*/
|
||||
removeDuplicateFontRules?: boolean;
|
||||
|
||||
/**
|
||||
* Controls duplicate `@media` removing; defaults to true
|
||||
*/
|
||||
removeDuplicateMediaBlocks?: boolean;
|
||||
|
||||
/**
|
||||
* Controls duplicate rules removing; defaults to true
|
||||
*/
|
||||
removeDuplicateRules?: boolean;
|
||||
|
||||
/**
|
||||
* Controls unused at rule removing; defaults to false (available since 4.1.0)
|
||||
*/
|
||||
removeUnusedAtRules?: boolean;
|
||||
|
||||
/**
|
||||
* Controls rule restructuring; defaults to false
|
||||
*/
|
||||
restructureRules?: boolean;
|
||||
|
||||
/**
|
||||
* Controls which properties won't be optimized, defaults to `[]` which means all will be optimized (since 4.1.0)
|
||||
*/
|
||||
skipProperties?: ReadonlyArray<string>;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Hash of input source(s). Passing an array of hashes allows you to explicitly specify the order in which the input files
|
||||
* are concatenated. Whereas when you use a single hash the order is determined by the traversal order of object properties
|
||||
*/
|
||||
interface Source {
|
||||
/**
|
||||
* Path to file
|
||||
*/
|
||||
[path: string]: {
|
||||
/**
|
||||
* The contents of the file, should be css
|
||||
*/
|
||||
styles: string;
|
||||
|
||||
/**
|
||||
* The source map of the file, if needed
|
||||
*/
|
||||
sourceMap?: string;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback type when fetch is used
|
||||
*/
|
||||
type FetchCallback = (message: string | number, body: string) => void;
|
||||
|
||||
/**
|
||||
* Union of all types acceptable as input for the minify function
|
||||
*/
|
||||
type Sources = string | ReadonlyArray<string> | Source | ReadonlyArray<Source> | Buffer;
|
||||
|
||||
/**
|
||||
* Union type for both types of minifier functions
|
||||
*/
|
||||
type Minifier = MinifierOutput | MinifierPromise;
|
||||
|
||||
/**
|
||||
* Interface exposed when a new CleanCSS object is created
|
||||
*/
|
||||
interface MinifierOutput {
|
||||
minify(sources: Sources, callback?: (error: any, output: Output) => void): Output;
|
||||
minify(sources: Sources, sourceMap: string, callback?: (error: any, output: Output) => void): Output;
|
||||
}
|
||||
/**
|
||||
* Interface exposed when a new CleanCSS object is created with returnPromise set to true
|
||||
*/
|
||||
interface MinifierPromise {
|
||||
minify(sources: Sources, sourceMap?: string): Promise<Output>;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor interface for CleanCSS
|
||||
*/
|
||||
interface Constructor {
|
||||
new(options: Options & { returnPromise: true }): MinifierPromise;
|
||||
new(options?: Options): MinifierOutput;
|
||||
}
|
||||
}
|
||||
|
||||
declare class CleanCSS {
|
||||
constructor(options?: CleanCSS.Options);
|
||||
minify(sources: string | Array<string> | Object, callback?: (error: any, minified: CleanCSS.Output) => void): CleanCSS.Output;
|
||||
}
|
||||
/**
|
||||
* Creates a new CleanCSS object which can be used to minify css
|
||||
*/
|
||||
declare const CleanCSS: CleanCSS.Constructor;
|
||||
|
||||
export = CleanCSS;
|
||||
|
||||
@@ -1,79 +1,3 @@
|
||||
{
|
||||
"extends": "dtslint/dt.json",
|
||||
"rules": {
|
||||
"adjacent-overload-signatures": false,
|
||||
"array-type": false,
|
||||
"arrow-return-shorthand": false,
|
||||
"ban-types": false,
|
||||
"callable-types": false,
|
||||
"comment-format": false,
|
||||
"dt-header": false,
|
||||
"eofline": false,
|
||||
"export-just-namespace": false,
|
||||
"import-spacing": false,
|
||||
"interface-name": false,
|
||||
"interface-over-type-literal": false,
|
||||
"jsdoc-format": false,
|
||||
"max-line-length": false,
|
||||
"member-access": false,
|
||||
"new-parens": false,
|
||||
"no-any-union": false,
|
||||
"no-boolean-literal-compare": false,
|
||||
"no-conditional-assignment": false,
|
||||
"no-consecutive-blank-lines": false,
|
||||
"no-construct": false,
|
||||
"no-declare-current-package": false,
|
||||
"no-duplicate-imports": false,
|
||||
"no-duplicate-variable": false,
|
||||
"no-empty-interface": false,
|
||||
"no-for-in-array": false,
|
||||
"no-inferrable-types": false,
|
||||
"no-internal-module": false,
|
||||
"no-irregular-whitespace": false,
|
||||
"no-mergeable-namespace": false,
|
||||
"no-misused-new": false,
|
||||
"no-namespace": false,
|
||||
"no-object-literal-type-assertion": false,
|
||||
"no-padding": false,
|
||||
"no-redundant-jsdoc": false,
|
||||
"no-redundant-jsdoc-2": false,
|
||||
"no-redundant-undefined": false,
|
||||
"no-reference-import": false,
|
||||
"no-relative-import-in-test": false,
|
||||
"no-self-import": false,
|
||||
"no-single-declare-module": false,
|
||||
"no-string-throw": false,
|
||||
"no-unnecessary-callback-wrapper": false,
|
||||
"no-unnecessary-class": false,
|
||||
"no-unnecessary-generics": false,
|
||||
"no-unnecessary-qualifier": false,
|
||||
"no-unnecessary-type-assertion": false,
|
||||
"no-useless-files": false,
|
||||
"no-var-keyword": false,
|
||||
"no-var-requires": false,
|
||||
"no-void-expression": false,
|
||||
"no-trailing-whitespace": false,
|
||||
"object-literal-key-quotes": false,
|
||||
"object-literal-shorthand": false,
|
||||
"one-line": false,
|
||||
"one-variable-per-declaration": false,
|
||||
"only-arrow-functions": false,
|
||||
"prefer-conditional-expression": false,
|
||||
"prefer-const": false,
|
||||
"prefer-declare-function": false,
|
||||
"prefer-for-of": false,
|
||||
"prefer-method-signature": false,
|
||||
"prefer-template": false,
|
||||
"radix": false,
|
||||
"semicolon": false,
|
||||
"space-before-function-paren": false,
|
||||
"space-within-parens": false,
|
||||
"strict-export-declare-modifiers": false,
|
||||
"trim-file": false,
|
||||
"triple-equals": false,
|
||||
"typedef-whitespace": false,
|
||||
"unified-signatures": false,
|
||||
"void-return": false,
|
||||
"whitespace": false
|
||||
}
|
||||
"extends": "dtslint/dt.json"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
|
||||
import * as CleanCSS from 'clean-css';
|
||||
|
||||
var source = 'a{font-weight:bold;}';
|
||||
var minified = new CleanCSS().minify(source).styles;
|
||||
|
||||
var source = '@import url(http://path/to/remote/styles);';
|
||||
new CleanCSS().minify(source, function (error, minified) {
|
||||
console.log(minified.styles);
|
||||
});
|
||||
|
||||
const pathToOutputDirectory = 'path';
|
||||
|
||||
new CleanCSS({ sourceMap: true, target: pathToOutputDirectory })
|
||||
.minify(source, function (error, minified) {
|
||||
// access minified.sourceMap for SourceMapGenerator object
|
||||
// see https://github.com/mozilla/source-map/#sourcemapgenerator for more details
|
||||
// see https://github.com/jakubpawlowicz/clean-css/blob/master/bin/cleancss#L114 on how it's used in clean-css' CLI
|
||||
console.log(minified.sourceMap);
|
||||
});
|
||||
|
||||
const inputSourceMapAsString = 'input';
|
||||
new CleanCSS({ sourceMap: inputSourceMapAsString, target: pathToOutputDirectory })
|
||||
.minify(source, function (error, minified) {
|
||||
// access minified.sourceMap to access SourceMapGenerator object
|
||||
// see https://github.com/mozilla/source-map/#sourcemapgenerator for more details
|
||||
// see https://github.com/jakubpawlowicz/clean-css/blob/master/bin/cleancss#L114 on how it's used in clean-css' CLI
|
||||
console.log(minified.sourceMap);
|
||||
});
|
||||
|
||||
new CleanCSS({ sourceMap: true, target: pathToOutputDirectory }).minify({
|
||||
'path/to/source/1': {
|
||||
styles: '...styles...',
|
||||
sourceMap: '...source-map...'
|
||||
},
|
||||
'path/to/source/2': {
|
||||
styles: '...styles...',
|
||||
sourceMap: '...source-map...'
|
||||
}
|
||||
}, function (error, minified) {
|
||||
// access minified.sourceMap as above
|
||||
console.log(minified.sourceMap);
|
||||
});
|
||||
|
||||
new CleanCSS().minify(['path/to/file/one', 'path/to/file/two']);
|
||||
|
||||
new CleanCSS().minify({
|
||||
'path/to/file/one': {
|
||||
styles: 'contents of file one'
|
||||
},
|
||||
'path/to/file/two': {
|
||||
styles: 'contents of file two'
|
||||
}
|
||||
});
|
||||
Vendored
+108
@@ -0,0 +1,108 @@
|
||||
// Type definitions for clean-css v3.4.9
|
||||
// Project: https://github.com/jakubpawlowicz/clean-css
|
||||
// Definitions by: Tanguy Krotoff <https://github.com/tkrotoff>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
|
||||
declare namespace CleanCSS {
|
||||
interface Options {
|
||||
// Set to false to disable advanced optimizations - selector & property merging, reduction, etc.
|
||||
advanced?: boolean;
|
||||
|
||||
// Set to false to disable aggressive merging of properties.
|
||||
aggressiveMerging?: boolean;
|
||||
|
||||
// Turns on benchmarking mode measuring time spent on cleaning up (run npm run bench to see example)
|
||||
benchmark?: boolean;
|
||||
|
||||
// Enables compatibility mode
|
||||
compatibility?: Object;
|
||||
|
||||
// Set to true to get minification statistics under stats property (see test/custom-test.js for examples)
|
||||
debug?: boolean;
|
||||
|
||||
// A hash of options for @import inliner, see test/protocol-imports-test.js for examples, or this comment for a proxy use case.
|
||||
inliner?: Object;
|
||||
|
||||
// Whether to keep line breaks (default is false)
|
||||
keepBreaks?: boolean;
|
||||
|
||||
// * for keeping all (default), 1 for keeping first one only, 0 for removing all
|
||||
keepSpecialComments?: string | number;
|
||||
|
||||
// Whether to merge @media at-rules (default is true)
|
||||
mediaMerging?: boolean;
|
||||
|
||||
// Whether to process @import rules
|
||||
processImport?: boolean;
|
||||
|
||||
// A list of @import rules, can be ['all'] (default), ['local'], ['remote'], or a blacklisted path e.g. ['!fonts.googleapis.com']
|
||||
processImportFrom?: Array<string>;
|
||||
|
||||
// Set to false to skip URL rebasing
|
||||
rebase?: boolean;
|
||||
|
||||
// Path to resolve relative @import rules and URLs
|
||||
relativeTo?: string;
|
||||
|
||||
// Set to false to disable restructuring in advanced optimizations
|
||||
restructuring?: boolean;
|
||||
|
||||
// Path to resolve absolute @import rules and rebase relative URLs
|
||||
root?: string;
|
||||
|
||||
// Rounding precision; defaults to 2; -1 disables rounding
|
||||
roundingPrecision?: number;
|
||||
|
||||
// Set to true to enable semantic merging mode which assumes BEM-like content (default is false as it's highly likely this will break your stylesheets - use with caution!)
|
||||
semanticMerging?: boolean;
|
||||
|
||||
// Set to false to skip shorthand compacting (default is true unless sourceMap is set when it's false)
|
||||
shorthandCompacting?: boolean;
|
||||
|
||||
// Exposes source map under sourceMap property, e.g. new CleanCSS().minify(source).sourceMap (default is false) If input styles are a product of CSS preprocessor (Less, Sass) an input source map can be passed as a string.
|
||||
sourceMap?: boolean | string;
|
||||
|
||||
// Set to true to inline sources inside a source map's sourcesContent field (defaults to false) It is also required to process inlined sources from input source maps.
|
||||
sourceMapInlineSources?: boolean;
|
||||
|
||||
// Path to a folder or an output file to which rebase all URLs
|
||||
target?: string;
|
||||
}
|
||||
|
||||
interface Output {
|
||||
// Optimized output CSS as a string
|
||||
styles: string;
|
||||
|
||||
// Output source map (if requested with sourceMap option)
|
||||
sourceMap: string;
|
||||
|
||||
// A list of errors raised
|
||||
errors: Array<string>;
|
||||
|
||||
// A list of warnings raised
|
||||
warnings: Array<string>;
|
||||
|
||||
// A hash of statistic information (if requested with debug option)
|
||||
stats: {
|
||||
// Original content size (after import inlining)
|
||||
originalSize: number;
|
||||
|
||||
// Optimized content size
|
||||
minifiedSize: number;
|
||||
|
||||
// Time spent on optimizations
|
||||
timeSpent: number;
|
||||
|
||||
// A ratio of output size to input size (e.g. 25% if content was reduced from 100 bytes to 75 bytes)
|
||||
efficiency: number;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
declare class CleanCSS {
|
||||
constructor(options?: CleanCSS.Options);
|
||||
minify(sources: string | Array<string> | Object, callback?: (error: any, minified: CleanCSS.Output) => void): CleanCSS.Output;
|
||||
}
|
||||
|
||||
export = CleanCSS;
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"lib": [
|
||||
"es6",
|
||||
"dom"
|
||||
],
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": false,
|
||||
"strictFunctionTypes": true,
|
||||
"baseUrl": "../../",
|
||||
"typeRoots": [
|
||||
"../../"
|
||||
],
|
||||
"paths": {
|
||||
"clean-css": [
|
||||
"clean-css/v3"
|
||||
],
|
||||
"clean-css/*": [
|
||||
"clean-css/v3/*"
|
||||
]
|
||||
},
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"clean-css-tests.ts"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
{
|
||||
"extends": "dtslint/dt.json",
|
||||
"rules": {
|
||||
"adjacent-overload-signatures": false,
|
||||
"array-type": false,
|
||||
"arrow-return-shorthand": false,
|
||||
"ban-types": false,
|
||||
"callable-types": false,
|
||||
"comment-format": false,
|
||||
"dt-header": false,
|
||||
"eofline": false,
|
||||
"export-just-namespace": false,
|
||||
"import-spacing": false,
|
||||
"interface-name": false,
|
||||
"interface-over-type-literal": false,
|
||||
"jsdoc-format": false,
|
||||
"max-line-length": false,
|
||||
"member-access": false,
|
||||
"new-parens": false,
|
||||
"no-any-union": false,
|
||||
"no-boolean-literal-compare": false,
|
||||
"no-conditional-assignment": false,
|
||||
"no-consecutive-blank-lines": false,
|
||||
"no-construct": false,
|
||||
"no-declare-current-package": false,
|
||||
"no-duplicate-imports": false,
|
||||
"no-duplicate-variable": false,
|
||||
"no-empty-interface": false,
|
||||
"no-for-in-array": false,
|
||||
"no-inferrable-types": false,
|
||||
"no-internal-module": false,
|
||||
"no-irregular-whitespace": false,
|
||||
"no-mergeable-namespace": false,
|
||||
"no-misused-new": false,
|
||||
"no-namespace": false,
|
||||
"no-object-literal-type-assertion": false,
|
||||
"no-padding": false,
|
||||
"no-redundant-jsdoc": false,
|
||||
"no-redundant-jsdoc-2": false,
|
||||
"no-redundant-undefined": false,
|
||||
"no-reference-import": false,
|
||||
"no-relative-import-in-test": false,
|
||||
"no-self-import": false,
|
||||
"no-single-declare-module": false,
|
||||
"no-string-throw": false,
|
||||
"no-unnecessary-callback-wrapper": false,
|
||||
"no-unnecessary-class": false,
|
||||
"no-unnecessary-generics": false,
|
||||
"no-unnecessary-qualifier": false,
|
||||
"no-unnecessary-type-assertion": false,
|
||||
"no-useless-files": false,
|
||||
"no-var-keyword": false,
|
||||
"no-var-requires": false,
|
||||
"no-void-expression": false,
|
||||
"no-trailing-whitespace": false,
|
||||
"object-literal-key-quotes": false,
|
||||
"object-literal-shorthand": false,
|
||||
"one-line": false,
|
||||
"one-variable-per-declaration": false,
|
||||
"only-arrow-functions": false,
|
||||
"prefer-conditional-expression": false,
|
||||
"prefer-const": false,
|
||||
"prefer-declare-function": false,
|
||||
"prefer-for-of": false,
|
||||
"prefer-method-signature": false,
|
||||
"prefer-template": false,
|
||||
"radix": false,
|
||||
"semicolon": false,
|
||||
"space-before-function-paren": false,
|
||||
"space-within-parens": false,
|
||||
"strict-export-declare-modifiers": false,
|
||||
"trim-file": false,
|
||||
"triple-equals": false,
|
||||
"typedef-whitespace": false,
|
||||
"unified-signatures": false,
|
||||
"void-return": false,
|
||||
"whitespace": false
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,14 @@
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"paths": {
|
||||
"clean-css": [
|
||||
"clean-css/v3"
|
||||
],
|
||||
"clean-css/*": [
|
||||
"clean-css/v3/*"
|
||||
]
|
||||
},
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
|
||||
@@ -12,6 +12,14 @@
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"paths": {
|
||||
"clean-css": [
|
||||
"clean-css/v3"
|
||||
],
|
||||
"clean-css/*": [
|
||||
"clean-css/v3/*"
|
||||
]
|
||||
},
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
|
||||
@@ -12,6 +12,14 @@
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"paths": {
|
||||
"clean-css": [
|
||||
"clean-css/v3"
|
||||
],
|
||||
"clean-css/*": [
|
||||
"clean-css/v3/*"
|
||||
]
|
||||
},
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
|
||||
@@ -16,11 +16,17 @@
|
||||
"html-minifier": [
|
||||
"html-minifier/v1"
|
||||
],
|
||||
"html-minifier/*": [
|
||||
"html-minifier/v1/*"
|
||||
],
|
||||
"uglify-js": [
|
||||
"uglify-js/v2"
|
||||
],
|
||||
"html-minifier/*": [
|
||||
"html-minifier/v1/*"
|
||||
"clean-css": [
|
||||
"clean-css/v3"
|
||||
],
|
||||
"clean-css/*": [
|
||||
"clean-css/v3/*"
|
||||
]
|
||||
},
|
||||
"types": [],
|
||||
|
||||
Reference in New Issue
Block a user