UNPKG

turbo-gulp

Version:

Gulp tasks to boost high-quality projects.

69 lines (67 loc) 9.28 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result["default"] = mod; return result; }; Object.defineProperty(exports, "__esModule", { value: true }); const gulp_tslint_1 = __importDefault(require("gulp-tslint")); const minimatch_1 = require("minimatch"); const path_1 = require("path"); const tslint = __importStar(require("tslint")); const tslint_1 = require("../options/tslint"); const matcher = __importStar(require("../utils/matcher")); exports.taskName = ":lint:fix"; function getSources(project) { const baseDir = project.root; const sources = []; let patterns; if (project.tslint !== undefined && project.tslint.files !== undefined) { patterns = project.tslint.files; } else { patterns = [path_1.posix.join(project.srcDir, "**/*.ts")]; } for (const pattern of patterns) { const minimatchPattern = new minimatch_1.Minimatch(pattern); const glob = matcher.asString(matcher.join(baseDir, minimatchPattern)); sources.push(glob); } return { baseDir, sources }; } exports.getSources = getSources; function registerTask(gulp, project) { let configuration; const baseConfig = tslint.Configuration.parseConfigFile(tslint_1.DEFAULT_UNTYPED_TSLINT_CONFIG, project.root); if (project.tslint !== undefined && project.tslint.configuration !== undefined) { const userRawConfig = project.tslint.configuration; let userConfig; if (typeof userRawConfig === "string") { const configPath = path_1.posix.join(project.root, userRawConfig); userConfig = tslint.Configuration.loadConfigurationFromPath(configPath); } else { userConfig = tslint.Configuration.parseConfigFile(userRawConfig, project.root); } configuration = tslint.Configuration.extendConfigurationFile(baseConfig, userConfig); } else { configuration = baseConfig; } const options = Object.assign({ formatter: "msbuild", tslint }, project.tslint, { configuration, fix: true }); const sources = getSources(project); gulp.task(exports.taskName, function () { return gulp.src(sources.sources, { base: sources.baseDir }) .pipe(gulp_tslint_1.default(options)) .pipe(gulp_tslint_1.default.report({ summarizeFailureOutput: true, })); }); } exports.registerTask = registerTask; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9zcmMvcHJvamVjdC10YXNrcy9saW50LWZpeC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFDQSw4REFBdUY7QUFDdkYseUNBQWtEO0FBQ2xELCtCQUFvQztBQUNwQywrQ0FBaUM7QUFDakMsOENBQWtFO0FBRWxFLDBEQUE0QztBQUUvQixRQUFBLFFBQVEsR0FBVyxXQUFXLENBQUM7QUFpQjVDLG9CQUEyQixPQUFnQjtJQUN6QyxNQUFNLE9BQU8sR0FBVyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQ3JDLE1BQU0sT0FBTyxHQUFhLEVBQUUsQ0FBQztJQUM3QixJQUFJLFFBQWtCLENBQUM7SUFFdkIsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUU7UUFDdEUsUUFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0tBQ2pDO1NBQU07UUFDTCxRQUFRLEdBQUcsQ0FBQyxZQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztLQUNuRDtJQUVELEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFO1FBQzlCLE1BQU0sZ0JBQWdCLEdBQWUsSUFBSSxxQkFBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVELE1BQU0sSUFBSSxHQUFXLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDcEI7SUFFRCxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBQyxDQUFDO0FBQzVCLENBQUM7QUFsQkQsZ0NBa0JDO0FBRUQsc0JBQTZCLElBQVUsRUFBRSxPQUFnQjtJQUl2RCxJQUFJLGFBQTJCLENBQUM7SUFFaEMsTUFBTSxVQUFVLEdBQWlCLE1BQU0sQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLHNDQUE2QixFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVuSCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxLQUFLLFNBQVMsRUFBRTtRQUM5RSxNQUFNLGFBQWEsR0FBNkIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7UUFDN0UsSUFBSSxVQUF3QixDQUFDO1FBQzdCLElBQUksT0FBTyxhQUFhLEtBQUssUUFBUSxFQUFFO1lBQ3JDLE1BQU0sVUFBVSxHQUFXLFlBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztZQUNsRSxVQUFVLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN6RTthQUFNO1lBQ0wsVUFBVSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDaEY7UUFDRCxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7S0FDdEY7U0FBTTtRQUNMLGFBQWEsR0FBRyxVQUFVLENBQUM7S0FDNUI7SUFFRCxNQUFNLE9BQU8sbUJBQ1gsU0FBUyxFQUFFLFNBQVMsRUFDcEIsTUFBTSxJQUNGLE9BQU8sQ0FBQyxNQUE0QixJQUN4QyxhQUFhLEVBQ2IsR0FBRyxFQUFFLElBQUksR0FDVixDQUFDO0lBRUYsTUFBTSxPQUFPLEdBQVksVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRTdDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQVEsRUFBRTtRQUNsQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFDLElBQUksRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFDLENBQUM7YUFDdEQsSUFBSSxDQUFDLHFCQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDekIsSUFBSSxDQUFDLHFCQUFVLENBQUMsTUFBTSxDQUFDO1lBQ3RCLHNCQUFzQixFQUFFLElBQUk7U0FDN0IsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUF2Q0Qsb0NBdUNDIiwiZmlsZSI6InByb2plY3QtdGFza3MvbGludC1maXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHdWxwIH0gZnJvbSBcImd1bHBcIjtcbmltcG9ydCB7ZGVmYXVsdCBhcyBndWxwVHNsaW50LCBQbHVnaW5PcHRpb25zIGFzIEd1bHBUc2xpbnRPcHRpb25zIH0gZnJvbSBcImd1bHAtdHNsaW50XCI7XG5pbXBvcnQgeyBJTWluaW1hdGNoLCBNaW5pbWF0Y2ggfSBmcm9tIFwibWluaW1hdGNoXCI7XG5pbXBvcnQge3Bvc2l4IGFzIHBhdGggfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0ICogYXMgdHNsaW50IGZyb20gXCJ0c2xpbnRcIjtcbmltcG9ydCB7IERFRkFVTFRfVU5UWVBFRF9UU0xJTlRfQ09ORklHIH0gZnJvbSBcIi4uL29wdGlvbnMvdHNsaW50XCI7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RcIjtcbmltcG9ydCAqIGFzIG1hdGNoZXIgZnJvbSBcIi4uL3V0aWxzL21hdGNoZXJcIjtcblxuZXhwb3J0IGNvbnN0IHRhc2tOYW1lOiBzdHJpbmcgPSBcIjpsaW50OmZpeFwiO1xuXG4vKipcbiAqIFNvdXJjZXMgdG8gdXNlIHdoZW4gY29tcGlsaW5nIFRTIGNvZGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTb3VyY2VzIHtcbiAgLyoqXG4gICAqIEJhc2UgZGlyZWN0b3J5IHRvIHVzZSB3aGVuIGV4cGFuZGluZyBnbG9iIHN0YXJzLlxuICAgKi9cbiAgYmFzZURpcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGFic29sdXRlIHBhdHRlcm5zIGZvciB0aGUgc291cmNlcyAoc2NyaXB0IG9yIHR5cGUgZGVmaW5pdGlvbikgZmlsZXNcbiAgICovXG4gIHNvdXJjZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U291cmNlcyhwcm9qZWN0OiBQcm9qZWN0KTogU291cmNlcyB7XG4gIGNvbnN0IGJhc2VEaXI6IHN0cmluZyA9IHByb2plY3Qucm9vdDtcbiAgY29uc3Qgc291cmNlczogc3RyaW5nW10gPSBbXTtcbiAgbGV0IHBhdHRlcm5zOiBzdHJpbmdbXTtcblxuICBpZiAocHJvamVjdC50c2xpbnQgIT09IHVuZGVmaW5lZCAmJiBwcm9qZWN0LnRzbGludC5maWxlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcGF0dGVybnMgPSBwcm9qZWN0LnRzbGludC5maWxlcztcbiAgfSBlbHNlIHtcbiAgICBwYXR0ZXJucyA9IFtwYXRoLmpvaW4ocHJvamVjdC5zcmNEaXIsIFwiKiovKi50c1wiKV07XG4gIH1cblxuICBmb3IgKGNvbnN0IHBhdHRlcm4gb2YgcGF0dGVybnMpIHtcbiAgICBjb25zdCBtaW5pbWF0Y2hQYXR0ZXJuOiBJTWluaW1hdGNoID0gbmV3IE1pbmltYXRjaChwYXR0ZXJuKTtcbiAgICBjb25zdCBnbG9iOiBzdHJpbmcgPSBtYXRjaGVyLmFzU3RyaW5nKG1hdGNoZXIuam9pbihiYXNlRGlyLCBtaW5pbWF0Y2hQYXR0ZXJuKSk7XG4gICAgc291cmNlcy5wdXNoKGdsb2IpO1xuICB9XG5cbiAgcmV0dXJuIHtiYXNlRGlyLCBzb3VyY2VzfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyVGFzayhndWxwOiBHdWxwLCBwcm9qZWN0OiBQcm9qZWN0KSB7XG4gIHR5cGUgVHNsaW50UmF3Q29uZmlnID0gdHNsaW50LkNvbmZpZ3VyYXRpb24uUmF3Q29uZmlnRmlsZTtcbiAgdHlwZSBUc2xpbnRDb25maWcgPSB0c2xpbnQuQ29uZmlndXJhdGlvbi5JQ29uZmlndXJhdGlvbkZpbGU7XG5cbiAgbGV0IGNvbmZpZ3VyYXRpb246IFRzbGludENvbmZpZztcblxuICBjb25zdCBiYXNlQ29uZmlnOiBUc2xpbnRDb25maWcgPSB0c2xpbnQuQ29uZmlndXJhdGlvbi5wYXJzZUNvbmZpZ0ZpbGUoREVGQVVMVF9VTlRZUEVEX1RTTElOVF9DT05GSUcsIHByb2plY3Qucm9vdCk7XG5cbiAgaWYgKHByb2plY3QudHNsaW50ICE9PSB1bmRlZmluZWQgJiYgcHJvamVjdC50c2xpbnQuY29uZmlndXJhdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgdXNlclJhd0NvbmZpZzogVHNsaW50UmF3Q29uZmlnIHwgc3RyaW5nID0gcHJvamVjdC50c2xpbnQuY29uZmlndXJhdGlvbjtcbiAgICBsZXQgdXNlckNvbmZpZzogVHNsaW50Q29uZmlnO1xuICAgIGlmICh0eXBlb2YgdXNlclJhd0NvbmZpZyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgY29uc3QgY29uZmlnUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKHByb2plY3Qucm9vdCwgdXNlclJhd0NvbmZpZyk7XG4gICAgICB1c2VyQ29uZmlnID0gdHNsaW50LkNvbmZpZ3VyYXRpb24ubG9hZENvbmZpZ3VyYXRpb25Gcm9tUGF0aChjb25maWdQYXRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdXNlckNvbmZpZyA9IHRzbGludC5Db25maWd1cmF0aW9uLnBhcnNlQ29uZmlnRmlsZSh1c2VyUmF3Q29uZmlnLCBwcm9qZWN0LnJvb3QpO1xuICAgIH1cbiAgICBjb25maWd1cmF0aW9uID0gdHNsaW50LkNvbmZpZ3VyYXRpb24uZXh0ZW5kQ29uZmlndXJhdGlvbkZpbGUoYmFzZUNvbmZpZywgdXNlckNvbmZpZyk7XG4gIH0gZWxzZSB7XG4gICAgY29uZmlndXJhdGlvbiA9IGJhc2VDb25maWc7XG4gIH1cblxuICBjb25zdCBvcHRpb25zOiBHdWxwVHNsaW50T3B0aW9ucyA9IHtcbiAgICBmb3JtYXR0ZXI6IFwibXNidWlsZFwiLFxuICAgIHRzbGludCxcbiAgICAuLi4ocHJvamVjdC50c2xpbnQgYXMgR3VscFRzbGludE9wdGlvbnMpLFxuICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgZml4OiB0cnVlLFxuICB9O1xuXG4gIGNvbnN0IHNvdXJjZXM6IFNvdXJjZXMgPSBnZXRTb3VyY2VzKHByb2plY3QpO1xuXG4gIGd1bHAudGFzayh0YXNrTmFtZSwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBndWxwLnNyYyhzb3VyY2VzLnNvdXJjZXMsIHtiYXNlOiBzb3VyY2VzLmJhc2VEaXJ9KVxuICAgICAgLnBpcGUoZ3VscFRzbGludChvcHRpb25zKSlcbiAgICAgIC5waXBlKGd1bHBUc2xpbnQucmVwb3J0KHtcbiAgICAgICAgc3VtbWFyaXplRmFpbHVyZU91dHB1dDogdHJ1ZSxcbiAgICAgIH0pKTtcbiAgfSk7XG59XG4iXSwic291cmNlUm9vdCI6Ii4uIn0=