mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-29 01:45:49 +08:00
Add definitions for clean-css (https://github.com/jakubpawlowicz/clean-css)
This commit is contained in:
55
clean-css/clean-css-tests.ts
Normal file
55
clean-css/clean-css-tests.ts
Normal file
@@ -0,0 +1,55 @@
|
||||
/// <reference path="clean-css.d.ts" />
|
||||
|
||||
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'
|
||||
}
|
||||
});
|
||||
109
clean-css/clean-css.d.ts
vendored
Normal file
109
clean-css/clean-css.d.ts
vendored
Normal file
@@ -0,0 +1,109 @@
|
||||
// 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/borisyankov/DefinitelyTyped
|
||||
|
||||
declare module 'clean-css' {
|
||||
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;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
class CleanCSS {
|
||||
constructor(options?: CleanCSS.Options);
|
||||
minify(sources: string | Array<string> | Object, callback?: (error: any, minified: CleanCSS.Output) => void): CleanCSS.Output;
|
||||
}
|
||||
|
||||
export = CleanCSS;
|
||||
}
|
||||
Reference in New Issue
Block a user