-
Notifications
You must be signed in to change notification settings - Fork 8
/
combine_mq.js
50 lines (40 loc) · 1.33 KB
/
combine_mq.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
50
/*
* grunt-combine-mq
* https://github.com/frontendfriends/grunt-combine-mq
*
* Copyright (c) 2014 Building Blocks
* Licensed under the MIT license.
*/
'use strict';
module.exports = function (grunt) {
grunt.registerMultiTask('combine_mq', 'Grunt wrapper for node-combine-mq', function() {
var fs = require('fs'),
chalk = require('chalk'),
prettyBytes = require('pretty-bytes'),
combineMq = require('combine-mq');
var options = this.options({
beautify: true
});
this.files.forEach( function (file, next) {
var src = file.src[0],
dest = file.dest;
if (!grunt.file.exists(src)) {
grunt.log.warn('Source file "' + src + '" not found.');
return next();
}
// Collect original filesize stats
var stats = fs.statSync(file.src[0]),
originalByteSize = stats['size'],
originalFileSize = prettyBytes(originalByteSize);
// Process source
var processed = combineMq.parseCssString(grunt.file.read(src), options);
// Write file out
grunt.file.write(file.dest, processed);
// Collect processed filesize stats
var processedStats = fs.statSync(file.dest),
processedByteSize = processedStats['size'],
processedFileSize = prettyBytes(processedByteSize);
grunt.log.writeln('File "' + file.dest + '" created: ' + chalk.green(originalFileSize) + ' → ' + chalk.green(processedFileSize));
});
});
};