turbo-gulp
Version:
Gulp tasks to boost high-quality projects.
37 lines (35 loc) • 4.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
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 copy(gulp, options) {
return gulp
.src(getSources(options), { base: options.from })
.pipe(gulp.dest(options.to));
}
exports.copy = copy;
/**
* Generate a task to copy files from one directory to an other.
*/
function generateTask(gulp, options) {
const task = function () {
return copy(gulp, options);
};
task.displayName = "_copy";
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9zcmMvdGFzay1nZW5lcmF0b3JzL2NvcHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSx5Q0FBc0M7QUFFdEMsOENBQWtEO0FBbUJsRDs7R0FFRztBQUNILG9CQUEyQixFQUFDLEtBQUssRUFBRSxJQUFJLEVBQVU7SUFDL0MsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBVyxFQUFVLEVBQUUsQ0FBQyxrQkFBUSxDQUFDLGNBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxxQkFBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RGLENBQUM7QUFGRCxnQ0FFQztBQUVELGNBQXFCLElBQVUsRUFBRSxPQUFnQjtJQUMvQyxPQUFPLElBQUk7U0FDUixHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUMsQ0FBQztTQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBSkQsb0JBSUM7QUFFRDs7R0FFRztBQUNILHNCQUE2QixJQUFVLEVBQUUsT0FBZ0I7SUFDdkQsTUFBTSxJQUFJLEdBQWlCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3QixDQUFDLENBQUM7SUFDRixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztJQUMzQixPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFORCxvQ0FNQztBQUVELGVBQXNCLElBQVUsRUFBRSxPQUFnQjtJQUNoRCxNQUFNLFNBQVMsR0FBaUIsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RCxNQUFNLE9BQU8sR0FBYSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFDLEVBQUUsU0FBUyxDQUFjLENBQUM7QUFDMUUsQ0FBQztBQUpELHNCQUlDIiwiZmlsZSI6InRhc2stZ2VuZXJhdG9ycy9jb3B5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRlNXYXRjaGVyIH0gZnJvbSBcImZzXCI7XG5pbXBvcnQgeyBHdWxwIH0gZnJvbSBcImd1bHBcIjtcbmltcG9ydCB7IE1pbmltYXRjaCB9IGZyb20gXCJtaW5pbWF0Y2hcIjtcbmltcG9ydCB7IFRhc2tGdW5jdGlvbiB9IGZyb20gXCIuLi91dGlscy9ndWxwLXRhc2stZnVuY3Rpb25cIjtcbmltcG9ydCB7IGFzU3RyaW5nLCBqb2luIH0gZnJvbSBcIi4uL3V0aWxzL21hdGNoZXJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIG1pbmltYXRjaCBwYXR0ZXJuc1xuICAgKi9cbiAgZmlsZXM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBCYXNlLWRpcmVjdG9yeSBmb3IgY29weVxuICAgKi9cbiAgZnJvbTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUYXJnZXQgZGlyZWN0b3J5XG4gICAqL1xuICB0bzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJldHVybiBhIGxpc3Qgb2Ygc291cmNlcywgcHJlZml4ZWQgYnkgXCJmcm9tXCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNvdXJjZXMoe2ZpbGVzLCBmcm9tfTogT3B0aW9ucyk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIGZpbGVzLm1hcCgodmFsOiBzdHJpbmcpOiBzdHJpbmcgPT4gYXNTdHJpbmcoam9pbihmcm9tLCBuZXcgTWluaW1hdGNoKHZhbCkpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb3B5KGd1bHA6IEd1bHAsIG9wdGlvbnM6IE9wdGlvbnMpOiBOb2RlSlMuUmVhZGFibGVTdHJlYW0ge1xuICByZXR1cm4gZ3VscFxuICAgIC5zcmMoZ2V0U291cmNlcyhvcHRpb25zKSwge2Jhc2U6IG9wdGlvbnMuZnJvbX0pXG4gICAgLnBpcGUoZ3VscC5kZXN0KG9wdGlvbnMudG8pKTtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIHRhc2sgdG8gY29weSBmaWxlcyBmcm9tIG9uZSBkaXJlY3RvcnkgdG8gYW4gb3RoZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVRhc2soZ3VscDogR3VscCwgb3B0aW9uczogT3B0aW9ucyk6IFRhc2tGdW5jdGlvbiB7XG4gIGNvbnN0IHRhc2s6IFRhc2tGdW5jdGlvbiA9IGZ1bmN0aW9uICgpOiBOb2RlSlMuUmVhZGFibGVTdHJlYW0ge1xuICAgIHJldHVybiBjb3B5KGd1bHAsIG9wdGlvbnMpO1xuICB9O1xuICB0YXNrLmRpc3BsYXlOYW1lID0gXCJfY29weVwiO1xuICByZXR1cm4gdGFzaztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdhdGNoKGd1bHA6IEd1bHAsIG9wdGlvbnM6IE9wdGlvbnMpOiBGU1dhdGNoZXIge1xuICBjb25zdCBidWlsZFRhc2s6IFRhc2tGdW5jdGlvbiA9IGdlbmVyYXRlVGFzayhndWxwLCBvcHRpb25zKTtcbiAgY29uc3Qgc291cmNlczogc3RyaW5nW10gPSBnZXRTb3VyY2VzKG9wdGlvbnMpO1xuICByZXR1cm4gZ3VscC53YXRjaChzb3VyY2VzLCB7Y3dkOiBvcHRpb25zLmZyb219LCBidWlsZFRhc2spIGFzIEZTV2F0Y2hlcjtcbn1cbiJdLCJzb3VyY2VSb290IjoiLi4ifQ==