Skip to content

Commit f8a43de

Browse files
committed
add compress option
1 parent 16818c5 commit f8a43de

File tree

2 files changed

+30
-10
lines changed

2 files changed

+30
-10
lines changed

examples/dialog.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ var parse = require('css-parse')
99
, read = fs.readFileSync
1010
, css = read('examples/dialog.css', 'utf8');
1111

12-
console.log(stringify(parse(css)));
12+
console.log(stringify(parse(css), { compress: true }));

index.js

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,35 @@
11

2-
module.exports = function(node){
3-
return node.stylesheet.rules.map(rule).join('\n\n');
2+
module.exports = function(node, options){
3+
options = options || {};
4+
return node.stylesheet.rules.map(rule(options)).join('\n\n');
45
};
56

6-
function rule(rule) {
7-
return rule.selector
8-
+ ' {\n'
9-
+ rule.declarations.map(declaration).join('\n')
10-
+ '\n}';
7+
function rule(options) {
8+
if (options.compress) {
9+
return function(rule) {
10+
return rule.selector
11+
+ '{'
12+
+ rule.declarations.map(declaration(options)).join(';')
13+
+ '}';
14+
}
15+
}
16+
17+
return function(rule) {
18+
return rule.selector
19+
+ ' {\n'
20+
+ rule.declarations.map(declaration(options)).join('\n')
21+
+ '\n}';
22+
}
1123
}
1224

13-
function declaration(decl) {
14-
return ' ' + decl.property + ': ' + decl.value + ';';
25+
function declaration(options) {
26+
if (options.compress) {
27+
return function(decl){
28+
return decl.property + ':' + decl.value;
29+
}
30+
}
31+
32+
return function(decl){
33+
return ' ' + decl.property + ': ' + decl.value + ';';
34+
}
1535
}

0 commit comments

Comments
 (0)