turbo-gulp
Version:
Gulp tasks to boost high-quality projects.
39 lines (37 loc) • 6.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = require("path");
const tsc_1 = require("../options/tsc");
const project_1 = require("../utils/project");
function generateTask(gulp, options) {
const compilerOptions = tsc_1.mergeTscOptionsJson(tsc_1.DEFAULT_PROJECT_TSC_OPTIONS, options.compilerOptions);
const task = async function () {
return project_1.writeJsonFile(options.tsconfigJson, { compilerOptions });
};
task.displayName = getTaskName();
return task;
}
exports.generateTask = generateTask;
function getTaskName() {
return ":tsconfig.json";
}
exports.getTaskName = getTaskName;
function registerTask(gulp, project) {
if (project.typescript === undefined || project.typescript.tsconfigJson === undefined) {
throw new Error("Cannot register project tsconfigJson task, missing required properties options");
}
const subTasks = [];
for (const tsconfigPath of project.typescript.tsconfigJson) {
const tsconfigJson = path_1.posix.join(project.root, tsconfigPath);
const compilerOptions = project.typescript.compilerOptions;
const subTask = generateTask(gulp, { tsconfigJson, compilerOptions });
subTask.displayName = `_tsconfig.json:${tsconfigPath}`;
subTasks.push(subTask);
}
const mainTask = gulp.parallel(...subTasks);
mainTask.displayName = getTaskName();
gulp.task(mainTask.displayName, mainTask);
return mainTask;
}
exports.registerTask = registerTask;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9zcmMvcHJvamVjdC10YXNrcy90c2NvbmZpZy1qc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsK0JBQXlDO0FBQ3pDLHdDQUF1RztBQUd2Ryw4Q0FBaUQ7QUFjakQsc0JBQTZCLElBQVUsRUFBRSxPQUFnQjtJQUN2RCxNQUFNLGVBQWUsR0FBd0IseUJBQW1CLENBQzlELGlDQUEyQixFQUMzQixPQUFPLENBQUMsZUFBZSxDQUN4QixDQUFDO0lBRUYsTUFBTSxJQUFJLEdBQWlCLEtBQUs7UUFDOUIsT0FBTyx1QkFBYSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBQyxlQUFlLEVBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUMsQ0FBQztJQUVGLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxFQUFFLENBQUM7SUFDakMsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBWkQsb0NBWUM7QUFFRDtJQUNFLE9BQU8sZ0JBQWdCLENBQUM7QUFDMUIsQ0FBQztBQUZELGtDQUVDO0FBRUQsc0JBQTZCLElBQVUsRUFBRSxPQUFnQjtJQUN2RCxJQUFJLE9BQU8sQ0FBQyxVQUFVLEtBQUssU0FBUyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRTtRQUNyRixNQUFNLElBQUksS0FBSyxDQUFDLGdGQUFnRixDQUFDLENBQUM7S0FDbkc7SUFFRCxNQUFNLFFBQVEsR0FBbUIsRUFBRSxDQUFDO0lBRXBDLEtBQUssTUFBTSxZQUFZLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUU7UUFDMUQsTUFBTSxZQUFZLEdBQVcsWUFBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sZUFBZSxHQUFvQyxPQUFPLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQztRQUM1RixNQUFNLE9BQU8sR0FBaUIsWUFBWSxDQUFDLElBQUksRUFBRSxFQUFDLFlBQVksRUFBRSxlQUFlLEVBQUMsQ0FBQyxDQUFDO1FBQ2xGLE9BQU8sQ0FBQyxXQUFXLEdBQUcsa0JBQWtCLFlBQVksRUFBRSxDQUFDO1FBQ3ZELFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDeEI7SUFFRCxNQUFNLFFBQVEsR0FBaUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO0lBQzFELFFBQVEsQ0FBQyxXQUFXLEdBQUcsV0FBVyxFQUFFLENBQUM7SUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFuQkQsb0NBbUJDIiwiZmlsZSI6InByb2plY3QtdGFza3MvdHNjb25maWctanNvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEd1bHAgfSBmcm9tIFwiZ3VscFwiO1xuaW1wb3J0IHtwb3NpeCBhcyBwb3NpeFBhdGggfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgQ29tcGlsZXJPcHRpb25zSnNvbiwgREVGQVVMVF9QUk9KRUNUX1RTQ19PUFRJT05TLCBtZXJnZVRzY09wdGlvbnNKc29uIH0gZnJvbSBcIi4uL29wdGlvbnMvdHNjXCI7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcbmltcG9ydCB7IFRhc2tGdW5jdGlvbiB9IGZyb20gXCIuLi91dGlscy9ndWxwLXRhc2stZnVuY3Rpb25cIjtcbmltcG9ydCB7IHdyaXRlSnNvbkZpbGUgfSBmcm9tIFwiLi4vdXRpbHMvcHJvamVjdFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGFic29sdXRlIHBhdGggd2hlcmUgdG8gZ2VuZXJhdGUgdGhlIHByb2plY3QgdHNjb25maWdKc29uIGZpbGUuXG4gICAqL1xuICByZWFkb25seSB0c2NvbmZpZ0pzb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvbXBpbGVyIG9wdGlvbnMgdG8gYXBwbHksIG1lcmdlZCB3aXRoIHRoZSBkZWZhdWx0IHByb2plY3QgY29tcGlsZXIgb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IGNvbXBpbGVyT3B0aW9ucz86IENvbXBpbGVyT3B0aW9uc0pzb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVRhc2soZ3VscDogR3VscCwgb3B0aW9uczogT3B0aW9ucyk6IFRhc2tGdW5jdGlvbiB7XG4gIGNvbnN0IGNvbXBpbGVyT3B0aW9uczogQ29tcGlsZXJPcHRpb25zSnNvbiA9IG1lcmdlVHNjT3B0aW9uc0pzb24oXG4gICAgREVGQVVMVF9QUk9KRUNUX1RTQ19PUFRJT05TLFxuICAgIG9wdGlvbnMuY29tcGlsZXJPcHRpb25zLFxuICApO1xuXG4gIGNvbnN0IHRhc2s6IFRhc2tGdW5jdGlvbiA9IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gd3JpdGVKc29uRmlsZShvcHRpb25zLnRzY29uZmlnSnNvbiwge2NvbXBpbGVyT3B0aW9uc30pO1xuICB9O1xuXG4gIHRhc2suZGlzcGxheU5hbWUgPSBnZXRUYXNrTmFtZSgpO1xuICByZXR1cm4gdGFzaztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRhc2tOYW1lKCk6IHN0cmluZyB7XG4gIHJldHVybiBcIjp0c2NvbmZpZy5qc29uXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlclRhc2soZ3VscDogR3VscCwgcHJvamVjdDogUHJvamVjdCk6IFRhc2tGdW5jdGlvbiB7XG4gIGlmIChwcm9qZWN0LnR5cGVzY3JpcHQgPT09IHVuZGVmaW5lZCB8fCBwcm9qZWN0LnR5cGVzY3JpcHQudHNjb25maWdKc29uID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgcmVnaXN0ZXIgcHJvamVjdCB0c2NvbmZpZ0pzb24gdGFzaywgbWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0aWVzIG9wdGlvbnNcIik7XG4gIH1cblxuICBjb25zdCBzdWJUYXNrczogVGFza0Z1bmN0aW9uW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IHRzY29uZmlnUGF0aCBvZiBwcm9qZWN0LnR5cGVzY3JpcHQudHNjb25maWdKc29uKSB7XG4gICAgY29uc3QgdHNjb25maWdKc29uOiBzdHJpbmcgPSBwb3NpeFBhdGguam9pbihwcm9qZWN0LnJvb3QsIHRzY29uZmlnUGF0aCk7XG4gICAgY29uc3QgY29tcGlsZXJPcHRpb25zOiBDb21waWxlck9wdGlvbnNKc29uIHwgdW5kZWZpbmVkID0gcHJvamVjdC50eXBlc2NyaXB0LmNvbXBpbGVyT3B0aW9ucztcbiAgICBjb25zdCBzdWJUYXNrOiBUYXNrRnVuY3Rpb24gPSBnZW5lcmF0ZVRhc2soZ3VscCwge3RzY29uZmlnSnNvbiwgY29tcGlsZXJPcHRpb25zfSk7XG4gICAgc3ViVGFzay5kaXNwbGF5TmFtZSA9IGBfdHNjb25maWcuanNvbjoke3RzY29uZmlnUGF0aH1gO1xuICAgIHN1YlRhc2tzLnB1c2goc3ViVGFzayk7XG4gIH1cblxuICBjb25zdCBtYWluVGFzazogVGFza0Z1bmN0aW9uID0gZ3VscC5wYXJhbGxlbCguLi5zdWJUYXNrcyk7XG4gIG1haW5UYXNrLmRpc3BsYXlOYW1lID0gZ2V0VGFza05hbWUoKTtcbiAgZ3VscC50YXNrKG1haW5UYXNrLmRpc3BsYXlOYW1lLCBtYWluVGFzayk7XG4gIHJldHVybiBtYWluVGFzaztcbn1cbiJdLCJzb3VyY2VSb290IjoiLi4ifQ==