Skip to content

Commit 656a7ee

Browse files
committed
add media compression support
1 parent 8b5c90f commit 656a7ee

File tree

4 files changed

+19
-8
lines changed

4 files changed

+19
-8
lines changed

examples/keyframes.css

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
@-webkit-keyframes fade {
1+
@keyframes fade {
22
from {
33
opacity: 0;
4-
foo: 'bar';
4+
opacity: 1
55
}
6+
67
to {
7-
opacity: 1;
8-
bar: 'baz';
8+
opacity: 1
99
}
1010
}

examples/keyframes.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/keyframes.css', 'utf8');
1111

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

index.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,15 @@ Compiler.prototype.import = function(node){
5858

5959
Compiler.prototype.media = function(node){
6060
var self = this;
61+
62+
if (this.compress) {
63+
return '@media '
64+
+ node.media
65+
+ '{'
66+
+ node.rules.map(this.visit.bind(this)).join('')
67+
+ '}';
68+
}
69+
6170
return '@media '
6271
+ node.media
6372
+ ' {\n'

test/css-parse.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,14 @@ var stringify = require('..')
1212

1313
describe('stringify(obj)', function(){
1414
readdir('test/cases').forEach(function(file){
15-
if (~file.indexOf('css')) return;
16-
file = path.basename(file, '.json');
15+
var compress = ~file.indexOf('compress');
16+
if (~file.indexOf('json')) return;
17+
file = path.basename(file, '.css');
1718
it('should stringify ' + file, function(){
1819
var css = read(path.join('test', 'cases', file + '.css'), 'utf8');
20+
if (compress) file = file.replace('.compress', '');
1921
var json = read(path.join('test', 'cases', file + '.json'), 'utf8');
20-
var ret = stringify(parse(css));
22+
var ret = stringify(parse(css), { compress: compress });
2123
ret.should.equal(css);
2224
})
2325
});

0 commit comments

Comments
 (0)