summaryrefslogtreecommitdiffstats
path: root/bench/dist-size.js
blob: 9176054d54bde3a69e6678a0a82f19375f7de313 (plain)
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
var async = require('async'),
    fs = require('fs'),
    zlib = require('zlib');

module.exports = function(grunt, callback) {
  var distFiles = fs.readdirSync('dist'),
      distSizes = {};

  async.each(distFiles, function(file, callback) {
      var content;
      try {
        content = fs.readFileSync('dist/' + file);
      } catch (err) {
        if (err.code === 'EISDIR') {
          callback();
          return;
        } else {
          throw err;
        }
      }

      file = file.replace(/\.js/, '').replace(/\./g, '_');
      distSizes[file] = content.length;

      zlib.gzip(content, function(err, data) {
        if (err) {
          throw err;
        }

        distSizes[file + '_gz'] = data.length;
        callback();
      });
    },
    function() {
      grunt.log.writeln('Distribution sizes: ' + JSON.stringify(distSizes, undefined, 2));
      callback([distSizes]);
    });
};