UNPKG

1.1 kBJavaScriptView Raw
1var uglify = require('uglify-js');
2var fs = require('fs-promise');
3var pathUtils = require('path');
4var mustache = require('mustache');
5
6fs.readdir('.').then(list => {
7 var jsfilenames = list.filter(item => item.match(/\.js$/) && !item.match(/index\.js$/));
8 return Promise.all(jsfilenames.map(filename => {
9 return fs.readFile(filename, 'utf-8').then(js => {
10 return {
11 filename: filename,
12 js: js
13 };
14 });
15 }));
16}).then(files => {
17 var sizes = {};
18
19 files.forEach(file => {
20 var key = pathUtils.basename(file.filename, '.js');
21 var minjs = uglify.minify(file.js, {fromString: true}).code;
22
23 sizes[key] = minjs.length + ' bytes';
24 });
25
26 return sizes;
27}).then(sizes => {
28 return fs.readFile('readme.md.mustache', 'utf-8').then(template => {
29 var readme = mustache.render(template, sizes);
30 return fs.writeFile('readme.md', readme);
31 }).then(() => {
32 var index = Object.keys(sizes).map(module => {
33 return `exports.${module} = require('./${module}.js');`;
34 }).join('\n') + '\n';
35 return fs.writeFile('index.js', index);
36 });
37});