UNPKG

turbo-gulp

Version:

Gulp tasks to boost high-quality projects.

31 lines (29 loc) 4.27 kB
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 copy(gulp, options) { return gulp .src(getSources(options), { base: options.from }) .pipe(gulp.dest(options.to)); } /** * Generate a task to copy files from one directory to an other. */ export function generateTask(gulp, options) { const task = function () { return copy(gulp, options); }; task.displayName = "_copy"; 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9zcmMvdGFzay1nZW5lcmF0b3JzL2NvcHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV0QyxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBbUJsRDs7R0FFRztBQUNILE1BQU0scUJBQXFCLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBVTtJQUMvQyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFXLEVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RGLENBQUM7QUFFRCxNQUFNLGVBQWUsSUFBVSxFQUFFLE9BQWdCO0lBQy9DLE9BQU8sSUFBSTtTQUNSLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBQyxDQUFDO1NBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sdUJBQXVCLElBQVUsRUFBRSxPQUFnQjtJQUN2RCxNQUFNLElBQUksR0FBaUI7UUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUMsQ0FBQztJQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO0lBQzNCLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELE1BQU0sZ0JBQWdCLElBQVUsRUFBRSxPQUFnQjtJQUNoRCxNQUFNLFNBQVMsR0FBaUIsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RCxNQUFNLE9BQU8sR0FBYSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFDLEVBQUUsU0FBUyxDQUFjLENBQUM7QUFDMUUsQ0FBQyIsImZpbGUiOiJ0YXNrLWdlbmVyYXRvcnMvY29weS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZTV2F0Y2hlciB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgR3VscCB9IGZyb20gXCJndWxwXCI7XG5pbXBvcnQgeyBNaW5pbWF0Y2ggfSBmcm9tIFwibWluaW1hdGNoXCI7XG5pbXBvcnQgeyBUYXNrRnVuY3Rpb24gfSBmcm9tIFwiLi4vdXRpbHMvZ3VscC10YXNrLWZ1bmN0aW9uXCI7XG5pbXBvcnQgeyBhc1N0cmluZywgam9pbiB9IGZyb20gXCIuLi91dGlscy9tYXRjaGVyXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBtaW5pbWF0Y2ggcGF0dGVybnNcbiAgICovXG4gIGZpbGVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQmFzZS1kaXJlY3RvcnkgZm9yIGNvcHlcbiAgICovXG4gIGZyb206IHN0cmluZztcblxuICAvKipcbiAgICogVGFyZ2V0IGRpcmVjdG9yeVxuICAgKi9cbiAgdG86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXR1cm4gYSBsaXN0IG9mIHNvdXJjZXMsIHByZWZpeGVkIGJ5IFwiZnJvbVwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTb3VyY2VzKHtmaWxlcywgZnJvbX06IE9wdGlvbnMpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBmaWxlcy5tYXAoKHZhbDogc3RyaW5nKTogc3RyaW5nID0+IGFzU3RyaW5nKGpvaW4oZnJvbSwgbmV3IE1pbmltYXRjaCh2YWwpKSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29weShndWxwOiBHdWxwLCBvcHRpb25zOiBPcHRpb25zKTogTm9kZUpTLlJlYWRhYmxlU3RyZWFtIHtcbiAgcmV0dXJuIGd1bHBcbiAgICAuc3JjKGdldFNvdXJjZXMob3B0aW9ucyksIHtiYXNlOiBvcHRpb25zLmZyb219KVxuICAgIC5waXBlKGd1bHAuZGVzdChvcHRpb25zLnRvKSk7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgYSB0YXNrIHRvIGNvcHkgZmlsZXMgZnJvbSBvbmUgZGlyZWN0b3J5IHRvIGFuIG90aGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVUYXNrKGd1bHA6IEd1bHAsIG9wdGlvbnM6IE9wdGlvbnMpOiBUYXNrRnVuY3Rpb24ge1xuICBjb25zdCB0YXNrOiBUYXNrRnVuY3Rpb24gPSBmdW5jdGlvbiAoKTogTm9kZUpTLlJlYWRhYmxlU3RyZWFtIHtcbiAgICByZXR1cm4gY29weShndWxwLCBvcHRpb25zKTtcbiAgfTtcbiAgdGFzay5kaXNwbGF5TmFtZSA9IFwiX2NvcHlcIjtcbiAgcmV0dXJuIHRhc2s7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3YXRjaChndWxwOiBHdWxwLCBvcHRpb25zOiBPcHRpb25zKTogRlNXYXRjaGVyIHtcbiAgY29uc3QgYnVpbGRUYXNrOiBUYXNrRnVuY3Rpb24gPSBnZW5lcmF0ZVRhc2soZ3VscCwgb3B0aW9ucyk7XG4gIGNvbnN0IHNvdXJjZXM6IHN0cmluZ1tdID0gZ2V0U291cmNlcyhvcHRpb25zKTtcbiAgcmV0dXJuIGd1bHAud2F0Y2goc291cmNlcywge2N3ZDogb3B0aW9ucy5mcm9tfSwgYnVpbGRUYXNrKSBhcyBGU1dhdGNoZXI7XG59XG4iXSwic291cmNlUm9vdCI6Ii4uIn0=