turbo-gulp
Version:
Gulp tasks to boost high-quality projects.
33 lines (31 loc) • 4.63 kB
JavaScript
import gulpPug from "gulp-pug";
import { Minimatch } from "minimatch";
import { asString, join } from "../utils/matcher";
/**
* Return a list of sources, prefixed by "from"
*/
export function getSources({ files, from }) {
return files.map((val) => asString(join(from, new Minimatch(val))));
}
export function buildPug(gulp, options) {
return gulp
.src(getSources(options), { base: options.from })
.pipe(gulpPug(options.pugOptions))
.pipe(gulp.dest(options.to));
}
/**
* Generate a task to build pug files
*/
export function generateTask(gulp, options) {
const task = function () {
return buildPug(gulp, options);
};
task.displayName = "_build:pug";
return task;
}
export function watch(gulp, options) {
const buildTask = generateTask(gulp, options);
const sources = getSources(options);
return gulp.watch(sources, { cwd: options.from }, buildTask);
}
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9zcmMvdGFzay1nZW5lcmF0b3JzL3B1Zy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLE9BQU8sTUFBTSxVQUFVLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV0QyxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBMEJsRDs7R0FFRztBQUNILE1BQU0scUJBQXFCLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBVTtJQUMvQyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFXLEVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RGLENBQUM7QUFFRCxNQUFNLG1CQUFtQixJQUFVLEVBQUUsT0FBZ0I7SUFDbkQsT0FBTyxJQUFJO1NBQ1IsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFDLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFDLENBQUM7U0FDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSx1QkFBdUIsSUFBVSxFQUFFLE9BQWdCO0lBQ3ZELE1BQU0sSUFBSSxHQUFpQjtRQUN6QixPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQyxDQUFDO0lBQ0YsSUFBSSxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUM7SUFDaEMsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxnQkFBZ0IsSUFBVSxFQUFFLE9BQWdCO0lBQ2hELE1BQU0sU0FBUyxHQUFpQixZQUFZLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVELE1BQU0sT0FBTyxHQUFhLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUMsRUFBRSxTQUFTLENBQWMsQ0FBQztBQUMxRSxDQUFDIiwiZmlsZSI6InRhc2stZ2VuZXJhdG9ycy9wdWcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGU1dhdGNoZXIgfSBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IEd1bHAgfSBmcm9tIFwiZ3VscFwiO1xuaW1wb3J0IGd1bHBQdWcgZnJvbSBcImd1bHAtcHVnXCI7XG5pbXBvcnQgeyBNaW5pbWF0Y2ggfSBmcm9tIFwibWluaW1hdGNoXCI7XG5pbXBvcnQgeyBUYXNrRnVuY3Rpb24gfSBmcm9tIFwiLi4vdXRpbHMvZ3VscC10YXNrLWZ1bmN0aW9uXCI7XG5pbXBvcnQgeyBhc1N0cmluZywgam9pbiB9IGZyb20gXCIuLi91dGlscy9tYXRjaGVyXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBtaW5pbWF0Y2ggcGF0dGVybnNcbiAgICovXG4gIGZpbGVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQmFzZS1kaXJlY3RvcnkgZm9yIGNvcHlcbiAgICovXG4gIGZyb206IHN0cmluZztcblxuICAvKipcbiAgICogVGFyZ2V0IGRpcmVjdG9yeVxuICAgKi9cbiAgdG86IHN0cmluZztcblxuICAvKipcbiAgICogZ3VscC1wdWcgb3B0aW9uc1xuICAgKi9cbiAgcHVnT3B0aW9ucz86IHtcbiAgICBsb2NhbHM/OiB7fTtcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gYSBsaXN0IG9mIHNvdXJjZXMsIHByZWZpeGVkIGJ5IFwiZnJvbVwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTb3VyY2VzKHtmaWxlcywgZnJvbX06IE9wdGlvbnMpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBmaWxlcy5tYXAoKHZhbDogc3RyaW5nKTogc3RyaW5nID0+IGFzU3RyaW5nKGpvaW4oZnJvbSwgbmV3IE1pbmltYXRjaCh2YWwpKSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQdWcoZ3VscDogR3VscCwgb3B0aW9uczogT3B0aW9ucyk6IE5vZGVKUy5SZWFkYWJsZVN0cmVhbSB7XG4gIHJldHVybiBndWxwXG4gICAgLnNyYyhnZXRTb3VyY2VzKG9wdGlvbnMpLCB7YmFzZTogb3B0aW9ucy5mcm9tfSlcbiAgICAucGlwZShndWxwUHVnKG9wdGlvbnMucHVnT3B0aW9ucykpXG4gICAgLnBpcGUoZ3VscC5kZXN0KG9wdGlvbnMudG8pKTtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIHRhc2sgdG8gYnVpbGQgcHVnIGZpbGVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVRhc2soZ3VscDogR3VscCwgb3B0aW9uczogT3B0aW9ucyk6IFRhc2tGdW5jdGlvbiB7XG4gIGNvbnN0IHRhc2s6IFRhc2tGdW5jdGlvbiA9IGZ1bmN0aW9uICgpOiBOb2RlSlMuUmVhZGFibGVTdHJlYW0ge1xuICAgIHJldHVybiBidWlsZFB1ZyhndWxwLCBvcHRpb25zKTtcbiAgfTtcbiAgdGFzay5kaXNwbGF5TmFtZSA9IFwiX2J1aWxkOnB1Z1wiO1xuICByZXR1cm4gdGFzaztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdhdGNoKGd1bHA6IEd1bHAsIG9wdGlvbnM6IE9wdGlvbnMpOiBGU1dhdGNoZXIge1xuICBjb25zdCBidWlsZFRhc2s6IFRhc2tGdW5jdGlvbiA9IGdlbmVyYXRlVGFzayhndWxwLCBvcHRpb25zKTtcbiAgY29uc3Qgc291cmNlczogc3RyaW5nW10gPSBnZXRTb3VyY2VzKG9wdGlvbnMpO1xuICByZXR1cm4gZ3VscC53YXRjaChzb3VyY2VzLCB7Y3dkOiBvcHRpb25zLmZyb219LCBidWlsZFRhc2spIGFzIEZTV2F0Y2hlcjtcbn1cbiJdLCJzb3VyY2VSb290IjoiLi4ifQ==