ima-gulp-tasks
Version:
Default gulp tasks for IMA.js applications.
43 lines (33 loc) • 1.14 kB
JavaScript
const gulp = require('gulp');
const macroTasks = require('../macroTasks.js');
exports.__requiresConfig = true;
exports.default = gulpConfig => {
let tasks = gulpConfig.tasks || {};
let devTasks = tasks.dev || macroTasks.DEFAULT_DEV_SUBTASKS;
let buildTasks = tasks.build || macroTasks.DEFAULT_BUILD_SUBTASKS;
let buildSpaTasks = tasks.spa || macroTasks.DEFAULT_SPA_SUBTASKS;
if (gulpConfig.onTerminate) {
process.on('SIGINT', gulpConfig.onTerminate.bind(null, 'SIGINT'));
process.on('SIGTERM', gulpConfig.onTerminate.bind(null, 'SIGTERM'));
process.on('SIGHUP', gulpConfig.onTerminate.bind(null, 'SIGHUP'));
}
function dev(done) {
return gulp.series(...prepareTasks(devTasks))(done);
}
function build(done) {
return gulp.series(...prepareTasks(buildTasks))(done);
}
function buildSpa(done) {
return gulp.series(...prepareTasks(buildSpaTasks))(done);
}
return {
dev: dev,
build: build,
'build:spa': buildSpa
};
function prepareTasks(groupedTasks) {
return groupedTasks.map(tasks =>
tasks instanceof Array ? gulp.parallel(...tasks) : tasks
);
}
};