UNPKG

timpla

Version:

An optimal website development experience for [server-side] web frameworks.

44 lines 1.83 kB
"use strict"; 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