UNPKG

turbo-gulp

Version:

Gulp tasks to boost high-quality projects.

36 lines (34 loc) 5.21 kB
import gulpSass from "gulp-sass"; import * as gulpSourceMaps from "gulp-sourcemaps"; 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 buildSass(gulp, options) { return gulp .src(getSources(options), { base: options.from }) .pipe(gulpSourceMaps.init()) .pipe(gulpSass().on("error", gulpSass.logError)) .pipe(gulpSourceMaps.write()) .pipe(gulp.dest(options.to)); } /** * Generate a task to build pug files */ export function generateTask(gulp, options) { const task = function () { return buildSass(gulp, options); }; task.displayName = "_build:sass"; 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9zcmMvdGFzay1nZW5lcmF0b3JzL3Nhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sS0FBSyxjQUFjLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV0QyxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBMEJsRDs7R0FFRztBQUNILE1BQU0scUJBQXFCLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBVTtJQUMvQyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFXLEVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RGLENBQUM7QUFFRCxNQUFNLG9CQUFvQixJQUFVLEVBQUUsT0FBZ0I7SUFDcEQsT0FBTyxJQUFJO1NBQ1IsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFDLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFDLENBQUM7U0FDOUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUMzQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLHVCQUF1QixJQUFVLEVBQUUsT0FBZ0I7SUFDdkQsTUFBTSxJQUFJLEdBQWlCO1FBQ3pCLE9BQU8sU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDLENBQUM7SUFDRixJQUFJLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQztJQUNqQyxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLGdCQUFnQixJQUFVLEVBQUUsT0FBZ0I7SUFDaEQsTUFBTSxTQUFTLEdBQWlCLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUQsTUFBTSxPQUFPLEdBQWEsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBQyxFQUFFLFNBQVMsQ0FBYyxDQUFDO0FBQzFFLENBQUMiLCJmaWxlIjoidGFzay1nZW5lcmF0b3JzL3Nhc3MuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGU1dhdGNoZXIgfSBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IEd1bHAgfSBmcm9tIFwiZ3VscFwiO1xuaW1wb3J0IGd1bHBTYXNzIGZyb20gXCJndWxwLXNhc3NcIjtcbmltcG9ydCAqIGFzIGd1bHBTb3VyY2VNYXBzIGZyb20gXCJndWxwLXNvdXJjZW1hcHNcIjtcbmltcG9ydCB7IE1pbmltYXRjaCB9IGZyb20gXCJtaW5pbWF0Y2hcIjtcbmltcG9ydCB7IFRhc2tGdW5jdGlvbiB9IGZyb20gXCIuLi91dGlscy9ndWxwLXRhc2stZnVuY3Rpb25cIjtcbmltcG9ydCB7IGFzU3RyaW5nLCBqb2luIH0gZnJvbSBcIi4uL3V0aWxzL21hdGNoZXJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIG1pbmltYXRjaCBwYXR0ZXJuc1xuICAgKi9cbiAgZmlsZXM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBCYXNlLWRpcmVjdG9yeSBmb3IgY29weVxuICAgKi9cbiAgICBmcm9tOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRhcmdldCBkaXJlY3RvcnlcbiAgICovXG4gIHRvOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIGd1bHAtc2FzcyBvcHRpb25zXG4gICAqL1xuICBzYXNzT3B0aW9ucz86IHtcbiAgICBvdXRwdXRTdHlsZT86IFwiY29tcHJlc3NlZFwiIHwgc3RyaW5nO1xuICB9O1xufVxuXG4vKipcbiAqIFJldHVybiBhIGxpc3Qgb2Ygc291cmNlcywgcHJlZml4ZWQgYnkgXCJmcm9tXCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNvdXJjZXMoe2ZpbGVzLCBmcm9tfTogT3B0aW9ucyk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIGZpbGVzLm1hcCgodmFsOiBzdHJpbmcpOiBzdHJpbmcgPT4gYXNTdHJpbmcoam9pbihmcm9tLCBuZXcgTWluaW1hdGNoKHZhbCkpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFNhc3MoZ3VscDogR3VscCwgb3B0aW9uczogT3B0aW9ucyk6IE5vZGVKUy5SZWFkYWJsZVN0cmVhbSB7XG4gIHJldHVybiBndWxwXG4gICAgLnNyYyhnZXRTb3VyY2VzKG9wdGlvbnMpLCB7YmFzZTogb3B0aW9ucy5mcm9tfSlcbiAgICAucGlwZShndWxwU291cmNlTWFwcy5pbml0KCkpXG4gICAgLnBpcGUoZ3VscFNhc3MoKS5vbihcImVycm9yXCIsIGd1bHBTYXNzLmxvZ0Vycm9yKSlcbiAgICAucGlwZShndWxwU291cmNlTWFwcy53cml0ZSgpKVxuICAgIC5waXBlKGd1bHAuZGVzdChvcHRpb25zLnRvKSk7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgYSB0YXNrIHRvIGJ1aWxkIHB1ZyBmaWxlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVUYXNrKGd1bHA6IEd1bHAsIG9wdGlvbnM6IE9wdGlvbnMpOiBUYXNrRnVuY3Rpb24ge1xuICBjb25zdCB0YXNrOiBUYXNrRnVuY3Rpb24gPSBmdW5jdGlvbiAoKTogTm9kZUpTLlJlYWRhYmxlU3RyZWFtIHtcbiAgICByZXR1cm4gYnVpbGRTYXNzKGd1bHAsIG9wdGlvbnMpO1xuICB9O1xuICB0YXNrLmRpc3BsYXlOYW1lID0gXCJfYnVpbGQ6c2Fzc1wiO1xuICByZXR1cm4gdGFzaztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdhdGNoKGd1bHA6IEd1bHAsIG9wdGlvbnM6IE9wdGlvbnMpOiBGU1dhdGNoZXIge1xuICBjb25zdCBidWlsZFRhc2s6IFRhc2tGdW5jdGlvbiA9IGdlbmVyYXRlVGFzayhndWxwLCBvcHRpb25zKTtcbiAgY29uc3Qgc291cmNlczogc3RyaW5nW10gPSBnZXRTb3VyY2VzKG9wdGlvbnMpO1xuICByZXR1cm4gZ3VscC53YXRjaChzb3VyY2VzLCB7Y3dkOiBvcHRpb25zLmZyb219LCBidWlsZFRhc2spIGFzIEZTV2F0Y2hlcjtcbn1cbiJdLCJzb3VyY2VSb290IjoiLi4ifQ==