47 lines
1.2 KiB
JavaScript

'use strict';
var log = require('gulplog');
var messages = require('@gulpjs/messages');
var exit = require('../../../shared/exit');
var formatError = require('../format-error');
// Wire up logging events
function logEvents(gulpInst) {
// Exit with 0 or 1
var failed = false;
process.once('exit', function(code) {
if (code === 0 && failed) {
exit(1);
}
});
// Total hack due to poor error management in orchestrator
gulpInst.on('err', function() {
failed = true;
});
gulpInst.on('task_start', function(e) {
// TODO: batch these
// so when 5 tasks start at once it only logs one time with all 5
log.info({ tag: messages.TASK_START, task: e.task });
});
gulpInst.on('task_stop', function(e) {
log.info({ tag: messages.TASK_STOP, task: e.task, duration: e.hrDuration });
});
gulpInst.on('task_err', function(e) {
log.error({ tag: messages.TASK_FAILURE, task: e.task, duration: e.hrDuration });
log.error({ tag: messages.TASK_ERROR, message: formatError(e) });
});
gulpInst.on('task_not_found', function(err) {
log.error({ tag: messages.TASK_MISSING, task: err.task });
exit(1);
});
}
module.exports = logEvents;