turbo-gulp
Version:
Gulp tasks to boost high-quality projects.
37 lines (35 loc) • 4.44 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRhc2stZ2VuZXJhdG9ycy9jb3B5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEseUNBQXNDO0FBRXRDLDhDQUFrRDtBQW1CbEQ7O0dBRUc7QUFDSCxvQkFBMkIsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFVO0lBQy9DLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBVyxFQUFVLEVBQUUsQ0FBQyxrQkFBUSxDQUFDLGNBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxxQkFBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RGLENBQUM7QUFGRCxnQ0FFQztBQUVELGNBQXFCLElBQVUsRUFBRSxPQUFnQjtJQUMvQyxNQUFNLENBQUMsSUFBSTtTQUNSLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBQyxDQUFDO1NBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFKRCxvQkFJQztBQUVEOztHQUVHO0FBQ0gsc0JBQTZCLElBQVUsRUFBRSxPQUFnQjtJQUN2RCxNQUFNLElBQUksR0FBaUI7UUFDekIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQyxDQUFDO0lBQ0YsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUM7SUFDM0IsTUFBTSxDQUFDLElBQUksQ0FBQztBQUNkLENBQUM7QUFORCxvQ0FNQztBQUVELGVBQXNCLElBQVUsRUFBRSxPQUFnQjtJQUNoRCxNQUFNLFNBQVMsR0FBaUIsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RCxNQUFNLE9BQU8sR0FBYSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUMsRUFBRSxTQUFTLENBQWMsQ0FBQztBQUMxRSxDQUFDO0FBSkQsc0JBSUMiLCJmaWxlIjoidGFzay1nZW5lcmF0b3JzL2NvcHkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGU1dhdGNoZXIgfSBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IEd1bHAgfSBmcm9tIFwiZ3VscFwiO1xuaW1wb3J0IHsgTWluaW1hdGNoIH0gZnJvbSBcIm1pbmltYXRjaFwiO1xuaW1wb3J0IHsgVGFza0Z1bmN0aW9uIH0gZnJvbSBcIi4uL3V0aWxzL2d1bHAtdGFzay1mdW5jdGlvblwiO1xuaW1wb3J0IHsgYXNTdHJpbmcsIGpvaW4gfSBmcm9tIFwiLi4vdXRpbHMvbWF0Y2hlclwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvbnMge1xuICAvKipcbiAgICogQW4gYXJyYXkgb2YgbWluaW1hdGNoIHBhdHRlcm5zXG4gICAqL1xuICBmaWxlczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEJhc2UtZGlyZWN0b3J5IGZvciBjb3B5XG4gICAqL1xuICBmcm9tOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRhcmdldCBkaXJlY3RvcnlcbiAgICovXG4gIHRvOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmV0dXJuIGEgbGlzdCBvZiBzb3VyY2VzLCBwcmVmaXhlZCBieSBcImZyb21cIlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U291cmNlcyh7ZmlsZXMsIGZyb219OiBPcHRpb25zKTogc3RyaW5nW10ge1xuICByZXR1cm4gZmlsZXMubWFwKCh2YWw6IHN0cmluZyk6IHN0cmluZyA9PiBhc1N0cmluZyhqb2luKGZyb20sIG5ldyBNaW5pbWF0Y2godmFsKSkpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvcHkoZ3VscDogR3VscCwgb3B0aW9uczogT3B0aW9ucyk6IE5vZGVKUy5SZWFkYWJsZVN0cmVhbSB7XG4gIHJldHVybiBndWxwXG4gICAgLnNyYyhnZXRTb3VyY2VzKG9wdGlvbnMpLCB7YmFzZTogb3B0aW9ucy5mcm9tfSlcbiAgICAucGlwZShndWxwLmRlc3Qob3B0aW9ucy50bykpO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIGEgdGFzayB0byBjb3B5IGZpbGVzIGZyb20gb25lIGRpcmVjdG9yeSB0byBhbiBvdGhlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlVGFzayhndWxwOiBHdWxwLCBvcHRpb25zOiBPcHRpb25zKTogVGFza0Z1bmN0aW9uIHtcbiAgY29uc3QgdGFzazogVGFza0Z1bmN0aW9uID0gZnVuY3Rpb24gKCk6IE5vZGVKUy5SZWFkYWJsZVN0cmVhbSB7XG4gICAgcmV0dXJuIGNvcHkoZ3VscCwgb3B0aW9ucyk7XG4gIH07XG4gIHRhc2suZGlzcGxheU5hbWUgPSBcIl9jb3B5XCI7XG4gIHJldHVybiB0YXNrO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2F0Y2goZ3VscDogR3VscCwgb3B0aW9uczogT3B0aW9ucyk6IEZTV2F0Y2hlciB7XG4gIGNvbnN0IGJ1aWxkVGFzazogVGFza0Z1bmN0aW9uID0gZ2VuZXJhdGVUYXNrKGd1bHAsIG9wdGlvbnMpO1xuICBjb25zdCBzb3VyY2VzOiBzdHJpbmdbXSA9IGdldFNvdXJjZXMob3B0aW9ucyk7XG4gIHJldHVybiBndWxwLndhdGNoKHNvdXJjZXMsIHtjd2Q6IG9wdGlvbnMuZnJvbX0sIGJ1aWxkVGFzaykgYXMgRlNXYXRjaGVyO1xufVxuIl0sInNvdXJjZVJvb3QiOiIuLiJ9