1 line
No EOL
2.7 KiB
JavaScript
Executable file
1 line
No EOL
2.7 KiB
JavaScript
Executable file
"use strict";var __importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:true});const architect_1=require("@angular-devkit/architect");const path_1=__importDefault(require("path"));const eslint_utils_1=require("./utils/eslint-utils");async function run(options,context){var _a,_b,_c;const workspaceRoot=context.workspaceRoot;process.chdir(workspaceRoot);const projectName=((_a=context.target)===null||_a===void 0?void 0:_a.project)||"<???>";const printInfo=options.format&&!options.silent;const reportOnlyErrors=options.quiet;const maxWarnings=options.maxWarnings;context.reportStatus(`Linting ${JSON.stringify(projectName)}...`);if(printInfo){context.logger.info(`\nLinting ${JSON.stringify(projectName)}...`)}const projectESLint=await eslint_utils_1.loadESLint();const version=(_c=(_b=projectESLint.ESLint)===null||_b===void 0?void 0:_b.version)===null||_c===void 0?void 0:_c.split(".");if(!version||version.length<2||Number(version[0])<7||Number(version[0])===7&&Number(version[1])<6){throw new Error("ESLint must be version 7.6 or higher.")}const eslint=new projectESLint.ESLint({});const eslintConfigPath=options.eslintConfig?path_1.default.resolve(workspaceRoot,options.eslintConfig):undefined;const lintResults=await eslint_utils_1.lint(workspaceRoot,eslintConfigPath,options);if(lintResults.length===0){throw new Error("Invalid lint configuration. Nothing to lint.")}const formatter=await eslint.loadFormatter(options.format);let totalErrors=0;let totalWarnings=0;await projectESLint.ESLint.outputFixes(lintResults);const finalLintResults=lintResults.map(result=>{totalErrors+=result.errorCount;totalWarnings+=result.warningCount;if(result.errorCount||result.warningCount&&!reportOnlyErrors){if(reportOnlyErrors){result.messages=result.messages.filter(({severity:severity})=>severity===2)}return result}return null}).filter(Boolean);const hasWarningsToPrint=totalWarnings>0&&!reportOnlyErrors;const hasErrorsToPrint=totalErrors>0;context.logger.info(formatter.format(finalLintResults));if(hasWarningsToPrint&&printInfo){context.logger.warn("Lint warnings found in the listed files.\n")}if(hasErrorsToPrint&&printInfo){context.logger.error("Lint errors found in the listed files.\n")}if((totalWarnings===0||reportOnlyErrors)&&totalErrors===0&&printInfo){context.logger.info("All files pass linting.\n")}const tooManyWarnings=maxWarnings>=0&&totalWarnings>maxWarnings;if(tooManyWarnings&&printInfo){context.logger.error(`Found ${totalWarnings} warnings, which exceeds your configured limit (${options.maxWarnings}). Either increase your maxWarnings limit or fix some of the lint warnings.`)}return{success:options.force||totalErrors===0&&!tooManyWarnings}}exports.default=architect_1.createBuilder(run); |