turbo-gulp
Version:
Gulp tasks to boost high-quality projects.
52 lines (50 loc) • 5.82 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
}
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
}
Object.defineProperty(exports, "__esModule", { value: true });
const gulp_sass_1 = __importDefault(require("gulp-sass"));
const gulpSourceMaps = __importStar(require("gulp-sourcemaps"));
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 buildSass(gulp, options) {
return gulp
.src(getSources(options), { base: options.from })
.pipe(gulpSourceMaps.init())
.pipe(gulp_sass_1.default().on("error", gulp_sass_1.default.logError))
.pipe(gulpSourceMaps.write())
.pipe(gulp.dest(options.to));
}
exports.buildSass = buildSass;
/**
* Generate a task to build pug files
*/
function generateTask(gulp, options) {
const task = function () {
return buildSass(gulp, options);
};
task.displayName = "_build:sass";
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRhc2stZ2VuZXJhdG9ycy9zYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUVBLDBEQUFpQztBQUNqQyxnRUFBa0Q7QUFDbEQseUNBQXNDO0FBRXRDLDhDQUFrRDtBQTBCbEQ7O0dBRUc7QUFDSCxvQkFBMkIsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFVO0lBQy9DLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBVyxFQUFVLEVBQUUsQ0FBQyxrQkFBUSxDQUFDLGNBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxxQkFBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RGLENBQUM7QUFGRCxnQ0FFQztBQUVELG1CQUEwQixJQUFVLEVBQUUsT0FBZ0I7SUFDcEQsTUFBTSxDQUFDLElBQUk7U0FDUixHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUMsQ0FBQztTQUM5QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzNCLElBQUksQ0FBQyxtQkFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQy9DLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDakMsQ0FBQztBQVBELDhCQU9DO0FBRUQ7O0dBRUc7QUFDSCxzQkFBNkIsSUFBVSxFQUFFLE9BQWdCO0lBQ3ZELE1BQU0sSUFBSSxHQUFpQjtRQUN6QixNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDLENBQUM7SUFDRixJQUFJLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQztJQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQU5ELG9DQU1DO0FBRUQsZUFBc0IsSUFBVSxFQUFFLE9BQWdCO0lBQ2hELE1BQU0sU0FBUyxHQUFpQixZQUFZLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVELE1BQU0sT0FBTyxHQUFhLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBQyxFQUFFLFNBQVMsQ0FBYyxDQUFDO0FBQzFFLENBQUM7QUFKRCxzQkFJQyIsImZpbGUiOiJ0YXNrLWdlbmVyYXRvcnMvc2Fzcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZTV2F0Y2hlciB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgR3VscCB9IGZyb20gXCJndWxwXCI7XG5pbXBvcnQgZ3VscFNhc3MgZnJvbSBcImd1bHAtc2Fzc1wiO1xuaW1wb3J0ICogYXMgZ3VscFNvdXJjZU1hcHMgZnJvbSBcImd1bHAtc291cmNlbWFwc1wiO1xuaW1wb3J0IHsgTWluaW1hdGNoIH0gZnJvbSBcIm1pbmltYXRjaFwiO1xuaW1wb3J0IHsgVGFza0Z1bmN0aW9uIH0gZnJvbSBcIi4uL3V0aWxzL2d1bHAtdGFzay1mdW5jdGlvblwiO1xuaW1wb3J0IHsgYXNTdHJpbmcsIGpvaW4gfSBmcm9tIFwiLi4vdXRpbHMvbWF0Y2hlclwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvbnMge1xuICAvKipcbiAgICogQW4gYXJyYXkgb2YgbWluaW1hdGNoIHBhdHRlcm5zXG4gICAqL1xuICBmaWxlczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEJhc2UtZGlyZWN0b3J5IGZvciBjb3B5XG4gICAqL1xuICAgIGZyb206IHN0cmluZztcblxuICAvKipcbiAgICogVGFyZ2V0IGRpcmVjdG9yeVxuICAgKi9cbiAgdG86IHN0cmluZztcblxuICAvKipcbiAgICogZ3VscC1zYXNzIG9wdGlvbnNcbiAgICovXG4gIHNhc3NPcHRpb25zPzoge1xuICAgIG91dHB1dFN0eWxlPzogXCJjb21wcmVzc2VkXCIgfCBzdHJpbmc7XG4gIH07XG59XG5cbi8qKlxuICogUmV0dXJuIGEgbGlzdCBvZiBzb3VyY2VzLCBwcmVmaXhlZCBieSBcImZyb21cIlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U291cmNlcyh7ZmlsZXMsIGZyb219OiBPcHRpb25zKTogc3RyaW5nW10ge1xuICByZXR1cm4gZmlsZXMubWFwKCh2YWw6IHN0cmluZyk6IHN0cmluZyA9PiBhc1N0cmluZyhqb2luKGZyb20sIG5ldyBNaW5pbWF0Y2godmFsKSkpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkU2FzcyhndWxwOiBHdWxwLCBvcHRpb25zOiBPcHRpb25zKTogTm9kZUpTLlJlYWRhYmxlU3RyZWFtIHtcbiAgcmV0dXJuIGd1bHBcbiAgICAuc3JjKGdldFNvdXJjZXMob3B0aW9ucyksIHtiYXNlOiBvcHRpb25zLmZyb219KVxuICAgIC5waXBlKGd1bHBTb3VyY2VNYXBzLmluaXQoKSlcbiAgICAucGlwZShndWxwU2FzcygpLm9uKFwiZXJyb3JcIiwgZ3VscFNhc3MubG9nRXJyb3IpKVxuICAgIC5waXBlKGd1bHBTb3VyY2VNYXBzLndyaXRlKCkpXG4gICAgLnBpcGUoZ3VscC5kZXN0KG9wdGlvbnMudG8pKTtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIHRhc2sgdG8gYnVpbGQgcHVnIGZpbGVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVRhc2soZ3VscDogR3VscCwgb3B0aW9uczogT3B0aW9ucyk6IFRhc2tGdW5jdGlvbiB7XG4gIGNvbnN0IHRhc2s6IFRhc2tGdW5jdGlvbiA9IGZ1bmN0aW9uICgpOiBOb2RlSlMuUmVhZGFibGVTdHJlYW0ge1xuICAgIHJldHVybiBidWlsZFNhc3MoZ3VscCwgb3B0aW9ucyk7XG4gIH07XG4gIHRhc2suZGlzcGxheU5hbWUgPSBcIl9idWlsZDpzYXNzXCI7XG4gIHJldHVybiB0YXNrO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2F0Y2goZ3VscDogR3VscCwgb3B0aW9uczogT3B0aW9ucyk6IEZTV2F0Y2hlciB7XG4gIGNvbnN0IGJ1aWxkVGFzazogVGFza0Z1bmN0aW9uID0gZ2VuZXJhdGVUYXNrKGd1bHAsIG9wdGlvbnMpO1xuICBjb25zdCBzb3VyY2VzOiBzdHJpbmdbXSA9IGdldFNvdXJjZXMob3B0aW9ucyk7XG4gIHJldHVybiBndWxwLndhdGNoKHNvdXJjZXMsIHtjd2Q6IG9wdGlvbnMuZnJvbX0sIGJ1aWxkVGFzaykgYXMgRlNXYXRjaGVyO1xufVxuIl0sInNvdXJjZVJvb3QiOiIuLiJ9