2020-01-09 04:45:14 -05:00
|
|
|
const fs = require('fs');
|
|
|
|
const mkdirp = require('mkdirp');
|
|
|
|
const path = require('path');
|
2020-01-18 09:14:30 -05:00
|
|
|
const minifiers = require('./minifiers');
|
2020-01-19 19:12:51 -05:00
|
|
|
const results = require('./results');
|
2020-01-09 04:45:14 -05:00
|
|
|
const tests = require('./tests');
|
|
|
|
|
2020-01-19 19:12:51 -05:00
|
|
|
const sizes = {};
|
|
|
|
const setSize = (program, test, result) => {
|
|
|
|
if (!sizes[test]) {
|
|
|
|
sizes[test] = {
|
|
|
|
original: {
|
|
|
|
absolute: tests.find(t => t.name === test).contentAsBuffer.length,
|
|
|
|
relative: 1,
|
|
|
|
},
|
|
|
|
};
|
|
|
|
}
|
|
|
|
const original = sizes[test].original.absolute;
|
|
|
|
sizes[test][program] = {
|
|
|
|
absolute: result,
|
|
|
|
relative: result / original,
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2020-01-09 04:45:14 -05:00
|
|
|
for (const t of tests) {
|
2020-01-18 09:14:30 -05:00
|
|
|
for (const m of Object.keys(minifiers)) {
|
2020-01-09 04:45:14 -05:00
|
|
|
try {
|
2020-01-19 19:12:51 -05:00
|
|
|
const min = minifiers[m](t.contentAsString, t.contentAsBuffer);
|
|
|
|
setSize(m, t.name, min.length);
|
2020-01-18 09:14:30 -05:00
|
|
|
const minPath = path.join(__dirname, 'min', m, `${t.name}.html`);
|
2020-01-09 04:45:14 -05:00
|
|
|
mkdirp.sync(path.dirname(minPath));
|
2020-01-19 19:12:51 -05:00
|
|
|
fs.writeFileSync(minPath, min);
|
2020-01-09 04:45:14 -05:00
|
|
|
} catch (err) {
|
2020-01-18 09:14:30 -05:00
|
|
|
console.error(`Failed to run ${m} on test ${t.name}:`);
|
2020-01-09 04:45:14 -05:00
|
|
|
console.error(err);
|
|
|
|
process.exit(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2020-01-19 19:12:51 -05:00
|
|
|
results.writeSizeResults(sizes);
|