@yolkai/nx-linter
Version:
32 lines (31 loc) • 1.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const architect_1 = require("@angular-devkit/architect");
const rxjs_1 = require("rxjs");
const operators_1 = require("rxjs/operators");
function run(options, context) {
if (options.linter === 'eslint') {
delete options.linter;
options.eslintConfig = options.config;
delete options.config;
// Use whatever the default formatter is
delete options.format;
return rxjs_1.from(context.scheduleBuilder('@angular-eslint/builder:lint', options, {
logger: patchedLogger(context)
})).pipe(operators_1.concatMap(r => r.output));
}
if (options.linter === 'tslint') {
throw new Error(`'tslint' option is no longer supported. Update your angular.json to use "@angular-eslint/builder:lint" builder directly.`);
}
throw new Error(`"${options.linter}" is not a supported linter option: use either eslint or tslint`);
}
// remove once https://github.com/angular/angular-cli/issues/15053 is fixed
function patchedLogger(context) {
const s = context.logger._subject.next;
context.logger._subject.next = (v) => {
v.message = v.message.replace('<???>', context.target.project);
return s.apply(context.logger._subject, [v]);
};
return context.logger;
}
exports.default = architect_1.createBuilder(run);