30 lines
743 B
JavaScript
30 lines
743 B
JavaScript
const metrics = require('../bench');
|
|
const { createRegisterAsyncTaskFn } = require('./util/async-grunt-task');
|
|
|
|
module.exports = function(grunt) {
|
|
const registerAsyncTask = createRegisterAsyncTaskFn(grunt);
|
|
|
|
registerAsyncTask('metrics', function() {
|
|
const onlyExecuteName = grunt.option('name');
|
|
const events = {};
|
|
|
|
const promises = Object.keys(metrics).map(async name => {
|
|
if (/^_/.test(name)) {
|
|
return;
|
|
}
|
|
if (onlyExecuteName != null && name !== onlyExecuteName) {
|
|
return;
|
|
}
|
|
|
|
return new Promise(resolve => {
|
|
metrics[name](grunt, function(data) {
|
|
events[name] = data;
|
|
resolve();
|
|
});
|
|
});
|
|
});
|
|
|
|
return Promise.all(promises);
|
|
});
|
|
};
|