timpla
Version:
An optimal website development experience for [server-side] web frameworks.
44 lines • 1.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var chalk_1 = require("chalk");
var gulp = require("gulp");
var os = require("os");
var path = require("path");
var internal_1 = require("../internal");
exports.getTaskPathFor = function (taskName, timplaConfig) {
switch (taskName) {
case 'svg':
return timplaConfig.svg;
case 'html':
return timplaConfig.html;
case 'staticFiles':
return timplaConfig.staticFiles;
default:
return timplaConfig[taskName];
}
};
exports.initWatch = function (timplaConfig, watchableTasks) { return function (taskName) {
var taskOptions = timplaConfig[taskName];
var taskPath = exports.getTaskPathFor(taskName, timplaConfig);
var watchOptions = {};
if (timplaConfig.watch && timplaConfig.watch.gulpWatch) {
watchOptions = timplaConfig.watch.gulpWatch[taskName] || timplaConfig.watch.gulpWatch;
}
if (taskOptions) {
var srcPath = internal_1.projectSrcPath(taskPath.src);
var globPattern = '**/*' + (taskOptions.extensions ? '.{' + taskOptions.extensions.join(',') + '}' : '');
var taskCallback = watchableTasks[taskName];
var watchPath = path.join(srcPath, globPattern);
if (taskCallback) {
internal_1.devLogger('%s: %s, %O', chalk_1.default.green(taskName), chalk_1.default.magenta(watchPath), watchOptions);
return gulp.watch(watchPath, watchOptions, taskCallback);
}
}
}; };
exports.watch = function (timplaConfig, watchableTasks) { return function (cb) {
internal_1.devLoggerTitle('Task watchers');
Object.keys(watchableTasks).forEach(exports.initWatch(timplaConfig, watchableTasks));
internal_1.devLogger(os.EOL);
cb();
}; };
//# sourceMappingURL=watch.js.map