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