diff options
Diffstat (limited to 'library/moment/tasks/size.js')
-rw-r--r-- | library/moment/tasks/size.js | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/library/moment/tasks/size.js b/library/moment/tasks/size.js new file mode 100644 index 000000000..2ab380e9f --- /dev/null +++ b/library/moment/tasks/size.js @@ -0,0 +1,59 @@ +var https = require('https'), + zlib = require('zlib'), + path = require('path'), + fs = require('fs'); + +var stable = '1.7.1', + done; + +function getVersion(path, cb) { + var data = '', + req = https.request({ + host: 'raw.github.com', + port: 443, + path: '/timrwood/moment/' + path + }, function (res) { + res.setEncoding('utf8'); + res.on('data', function (chunk) { + data += chunk; + }); + res.on('end', function (e) { + zlib.gzip(data, function (error, result) { + cb(data.length, result.length); + }); + }); + }); + req.on('error', function (e) { + console.log('problem with request: ' + e.message); + }); + req.end(); +} + +function printDiffs(stableLen, stableGzip, currentLen, currentGzip) { + var diff = currentLen - stableLen, + gzipDiff = currentGzip - stableGzip; + + console.log('Filesize difference from current branch to ' + stable); + console.log(stable + ' ' + stableLen + ' / ' + stableGzip); + console.log('curr ' + currentLen + ' / ' + currentGzip); + console.log('diff ' + (diff > 0 ? '+' : '') + diff); + console.log('gzip ' + (gzipDiff > 0 ? '+' : '') + gzipDiff); +} + + +module.exports = function (grunt) { + grunt.registerTask('size', 'Check the codebase filesize against the latest stable version.', function () { + done = this.async(); + fs.readFile(path.normalize(__dirname + '/../min/moment.min.js'), 'utf8', function (err, data) { + if (err) { + throw err; + } + zlib.gzip(data, function (error, result) { + getVersion(stable + '/min/moment.min.js', function (stableLength, stableGzipLength) { + printDiffs(stableLength, stableGzipLength, data.length, result.length); + done(); + }); + }); + }); + }); +}; |