41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
import { Linter, lintProjectGenerator } from '@nx/eslint';
|
|
import {
|
|
addDependenciesToPackageJson,
|
|
joinPathFragments,
|
|
runTasksInSerial,
|
|
Tree,
|
|
} from '@nx/devkit';
|
|
import { extraEslintDependencies } from '@nx/react';
|
|
import { NormalizedSchema } from './normalize-options';
|
|
import {
|
|
addExtendsToLintConfig,
|
|
isEslintConfigSupported,
|
|
} from '@nx/eslint/src/generators/utils/eslint-file';
|
|
|
|
export async function addLinting(host: Tree, options: NormalizedSchema) {
|
|
if (options.linter === Linter.None) {
|
|
return () => {};
|
|
}
|
|
|
|
const lintTask = await lintProjectGenerator(host, {
|
|
linter: options.linter,
|
|
project: options.e2eProjectName,
|
|
tsConfigPaths: [
|
|
joinPathFragments(options.e2eProjectRoot, 'tsconfig.app.json'),
|
|
],
|
|
skipFormat: true,
|
|
});
|
|
|
|
if (isEslintConfigSupported(host)) {
|
|
addExtendsToLintConfig(host, options.e2eProjectRoot, 'plugin:@nx/react');
|
|
}
|
|
|
|
const installTask = addDependenciesToPackageJson(
|
|
host,
|
|
extraEslintDependencies.dependencies,
|
|
extraEslintDependencies.devDependencies
|
|
);
|
|
|
|
return runTasksInSerial(lintTask, installTask);
|
|
}
|