-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
49 lines (37 loc) · 928 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/**
* Module dependencies.
*/
var bytes = require('bytes');
var CleanCSS = require('clean-css');
var debug = require('debug')('duo-cleancss');
var extend = require('extend');
/**
* Default options.
*/
var defaults = {
processImport: false
};
/**
* Returns a CleanCSS _alternate_ plugin (operates on the entire build
* for a CSS entry file)
*
* @param {Object} o
* @returns {Function}
*/
module.exports = function (o) {
debug('initializing', o);
return alternate(function cleancss(build, entry) {
if (entry.type !== 'css') return;
debug('processing', entry.id);
var src = build.code;
var options = extend({}, defaults, o);
debug('options', options);
var results = new CleanCSS(options).minify(build.code);
debug('saved %s', bytes(src.length - results.styles.length));
build.code = results.styles;
});
};
function alternate(fn) {
fn.alternate = true;
return fn;
}