turbo-gulp
Version:
Gulp tasks to boost high-quality projects.
42 lines (40 loc) • 4.93 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const gulp_pug_1 = __importDefault(require("gulp-pug"));
const minimatch_1 = require("minimatch");
const matcher_1 = require("../utils/matcher");
/**
* Return a list of sources, prefixed by "from"
*/
function getSources({ files, from }) {
return files.map((val) => matcher_1.asString(matcher_1.join(from, new minimatch_1.Minimatch(val))));
}
exports.getSources = getSources;
function buildPug(gulp, options) {
return gulp
.src(getSources(options), { base: options.from })
.pipe(gulp_pug_1.default(options.pugOptions))
.pipe(gulp.dest(options.to));
}
exports.buildPug = buildPug;
/**
* Generate a task to build pug files
*/
function generateTask(gulp, options) {
const task = function () {
return buildPug(gulp, options);
};
task.displayName = "_build:pug";
return task;
}
exports.generateTask = generateTask;
function watch(gulp, options) {
const buildTask = generateTask(gulp, options);
const sources = getSources(options);
return gulp.watch(sources, { cwd: options.from }, buildTask);
}
exports.watch = watch;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9zcmMvdGFzay1nZW5lcmF0b3JzL3B1Zy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLHdEQUErQjtBQUMvQix5Q0FBc0M7QUFFdEMsOENBQWtEO0FBMEJsRDs7R0FFRztBQUNILG9CQUEyQixFQUFDLEtBQUssRUFBRSxJQUFJLEVBQVU7SUFDL0MsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBVyxFQUFVLEVBQUUsQ0FBQyxrQkFBUSxDQUFDLGNBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxxQkFBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RGLENBQUM7QUFGRCxnQ0FFQztBQUVELGtCQUF5QixJQUFVLEVBQUUsT0FBZ0I7SUFDbkQsT0FBTyxJQUFJO1NBQ1IsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFDLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFDLENBQUM7U0FDOUMsSUFBSSxDQUFDLGtCQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFMRCw0QkFLQztBQUVEOztHQUVHO0FBQ0gsc0JBQTZCLElBQVUsRUFBRSxPQUFnQjtJQUN2RCxNQUFNLElBQUksR0FBaUI7UUFDekIsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLENBQUMsQ0FBQztJQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDO0lBQ2hDLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQU5ELG9DQU1DO0FBRUQsZUFBc0IsSUFBVSxFQUFFLE9BQWdCO0lBQ2hELE1BQU0sU0FBUyxHQUFpQixZQUFZLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVELE1BQU0sT0FBTyxHQUFhLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUMsRUFBRSxTQUFTLENBQWMsQ0FBQztBQUMxRSxDQUFDO0FBSkQsc0JBSUMiLCJmaWxlIjoidGFzay1nZW5lcmF0b3JzL3B1Zy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZTV2F0Y2hlciB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgR3VscCB9IGZyb20gXCJndWxwXCI7XG5pbXBvcnQgZ3VscFB1ZyBmcm9tIFwiZ3VscC1wdWdcIjtcbmltcG9ydCB7IE1pbmltYXRjaCB9IGZyb20gXCJtaW5pbWF0Y2hcIjtcbmltcG9ydCB7IFRhc2tGdW5jdGlvbiB9IGZyb20gXCIuLi91dGlscy9ndWxwLXRhc2stZnVuY3Rpb25cIjtcbmltcG9ydCB7IGFzU3RyaW5nLCBqb2luIH0gZnJvbSBcIi4uL3V0aWxzL21hdGNoZXJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIG1pbmltYXRjaCBwYXR0ZXJuc1xuICAgKi9cbiAgZmlsZXM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBCYXNlLWRpcmVjdG9yeSBmb3IgY29weVxuICAgKi9cbiAgZnJvbTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUYXJnZXQgZGlyZWN0b3J5XG4gICAqL1xuICB0bzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBndWxwLXB1ZyBvcHRpb25zXG4gICAqL1xuICBwdWdPcHRpb25zPzoge1xuICAgIGxvY2Fscz86IHt9O1xuICB9O1xufVxuXG4vKipcbiAqIFJldHVybiBhIGxpc3Qgb2Ygc291cmNlcywgcHJlZml4ZWQgYnkgXCJmcm9tXCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNvdXJjZXMoe2ZpbGVzLCBmcm9tfTogT3B0aW9ucyk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIGZpbGVzLm1hcCgodmFsOiBzdHJpbmcpOiBzdHJpbmcgPT4gYXNTdHJpbmcoam9pbihmcm9tLCBuZXcgTWluaW1hdGNoKHZhbCkpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFB1ZyhndWxwOiBHdWxwLCBvcHRpb25zOiBPcHRpb25zKTogTm9kZUpTLlJlYWRhYmxlU3RyZWFtIHtcbiAgcmV0dXJuIGd1bHBcbiAgICAuc3JjKGdldFNvdXJjZXMob3B0aW9ucyksIHtiYXNlOiBvcHRpb25zLmZyb219KVxuICAgIC5waXBlKGd1bHBQdWcob3B0aW9ucy5wdWdPcHRpb25zKSlcbiAgICAucGlwZShndWxwLmRlc3Qob3B0aW9ucy50bykpO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIGEgdGFzayB0byBidWlsZCBwdWcgZmlsZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlVGFzayhndWxwOiBHdWxwLCBvcHRpb25zOiBPcHRpb25zKTogVGFza0Z1bmN0aW9uIHtcbiAgY29uc3QgdGFzazogVGFza0Z1bmN0aW9uID0gZnVuY3Rpb24gKCk6IE5vZGVKUy5SZWFkYWJsZVN0cmVhbSB7XG4gICAgcmV0dXJuIGJ1aWxkUHVnKGd1bHAsIG9wdGlvbnMpO1xuICB9O1xuICB0YXNrLmRpc3BsYXlOYW1lID0gXCJfYnVpbGQ6cHVnXCI7XG4gIHJldHVybiB0YXNrO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2F0Y2goZ3VscDogR3VscCwgb3B0aW9uczogT3B0aW9ucyk6IEZTV2F0Y2hlciB7XG4gIGNvbnN0IGJ1aWxkVGFzazogVGFza0Z1bmN0aW9uID0gZ2VuZXJhdGVUYXNrKGd1bHAsIG9wdGlvbnMpO1xuICBjb25zdCBzb3VyY2VzOiBzdHJpbmdbXSA9IGdldFNvdXJjZXMob3B0aW9ucyk7XG4gIHJldHVybiBndWxwLndhdGNoKHNvdXJjZXMsIHtjd2Q6IG9wdGlvbnMuZnJvbX0sIGJ1aWxkVGFzaykgYXMgRlNXYXRjaGVyO1xufVxuIl0sInNvdXJjZVJvb3QiOiIuLiJ9