@nxext/stencil
Version:
Nx plugin for stenciljs
45 lines • 2.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.addLinting = addLinting;
const tslib_1 = require("tslib");
const devkit_1 = require("@nx/devkit");
const lint_1 = require("../../../utils/lint");
const internal_1 = require("@nx/eslint/internal");
const internal_2 = require("@nx/eslint/internal");
function addLinting(host, options) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
if (options.linter === 'eslint') {
yield (0, devkit_1.ensurePackage)('@nx/eslint', devkit_1.NX_VERSION);
const { lintProjectGenerator } = yield Promise.resolve().then(() => require('@nx/eslint'));
const tasks = [];
tasks.push(yield lintProjectGenerator(host, {
linter: options.linter,
project: options.projectName,
tsConfigPaths: [
(0, devkit_1.joinPathFragments)(options.projectRoot, 'tsconfig.app.json'),
],
eslintFilePatterns: [`${options.projectRoot}/**/*.{ts,tsx}`],
unitTestRunner: options.unitTestRunner,
skipFormat: true,
setParserOptionsProject: void 0, // this sets the default value,
addPlugin: void 0, // this sets the default value,
}));
const eslintFile = (0, internal_1.findEslintFile)(host, options.projectRoot);
let eslintFlatConfigTask = () => undefined;
if ((0, internal_2.useFlatConfig)(host)) {
const eslintFlatConfigFilePath = (0, devkit_1.joinPathFragments)(options.projectRoot, eslintFile);
const eslintFlatConfigFileContent = host.read(eslintFlatConfigFilePath, 'utf8');
eslintFlatConfigTask = (0, lint_1.augmentStencilEslintFlatConfig)(host, eslintFlatConfigFileContent, eslintFlatConfigFilePath);
}
else {
const stencilEslintJson = (0, lint_1.createStencilEslintJson)(options.projectRoot);
(0, devkit_1.updateJson)(host, (0, devkit_1.joinPathFragments)(options.projectRoot, eslintFile), () => stencilEslintJson);
}
const installTask = (0, devkit_1.addDependenciesToPackageJson)(host, lint_1.extraEslintDependencies.dependencies, lint_1.extraEslintDependencies.devDependencies);
tasks.push(installTask);
return (0, devkit_1.runTasksInSerial)(...tasks, eslintFlatConfigTask);
}
return () => undefined;
});
}
//# sourceMappingURL=add-linting.js.map