catlogjs
Version:
Static site generator, translate human readable text format(such as markdown) into html, with a lot of other functions
38 lines (29 loc) • 936 B
JavaScript
;
var chalk = require('chalk');
var ms = require('ms');
var table = require('text-table');
module.exports = function (grunt) {
var startTime = Date.now();
var prevTime = Date.now();
var prevTaskName = '';
var tableData = [];
grunt.util.hooker.hook(grunt.log, 'header', function () {
var name = grunt.task.current.nameArgs;
var diff = Date.now() - prevTime;
// hide tasks taking less than 20ms
if (prevTaskName && prevTaskName !== name && diff > 20) {
tableData.push([prevTaskName, ms(diff)]);
prevTime = Date.now();
}
prevTaskName = name;
});
process.on('exit', function () {
grunt.util.hooker.unhook(grunt.log, 'header');
if (prevTaskName) {
tableData.push([prevTaskName, ms(Date.now() - prevTime)]);
}
tableData.push(['Total', ms(Date.now() - startTime)]);
grunt.log.header('Elapsed time');
grunt.log.writeln(table(tableData).replace(/Total .+/, chalk.bold('$&')));
});
};