@nx/playwright
Version:
64 lines (63 loc) • 3.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.addLinterToPlaywrightProject = addLinterToPlaywrightProject;
const devkit_1 = require("@nx/devkit");
const eslint_1 = require("@nx/eslint");
const global_eslint_config_1 = require("@nx/eslint/src/generators/init/global-eslint-config");
const versions_1 = require("./versions");
const eslint_file_1 = require("@nx/eslint/src/generators/utils/eslint-file");
const flat_config_1 = require("@nx/eslint/src/utils/flat-config");
async function addLinterToPlaywrightProject(tree, options) {
if (options.linter === 'none') {
return () => { };
}
const tasks = [];
const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.project);
const eslintFile = (0, eslint_file_1.findEslintFile)(tree, projectConfig.root);
if (!eslintFile) {
tasks.push(await (0, eslint_1.lintProjectGenerator)(tree, {
project: options.project,
linter: options.linter,
skipFormat: true,
tsConfigPaths: [(0, devkit_1.joinPathFragments)(projectConfig.root, 'tsconfig.json')],
setParserOptionsProject: options.setParserOptionsProject,
skipPackageJson: options.skipPackageJson,
rootProject: options.rootProject,
addPlugin: options.addPlugin,
}));
}
if (!options.linter || options.linter !== 'eslint') {
return (0, devkit_1.runTasksInSerial)(...tasks);
}
tasks.push(!options.skipPackageJson
? (0, devkit_1.addDependenciesToPackageJson)(tree, {}, { 'eslint-plugin-playwright': versions_1.eslintPluginPlaywrightVersion })
: () => { });
if ((0, eslint_file_1.isEslintConfigSupported)(tree, projectConfig.root) ||
(0, eslint_file_1.isEslintConfigSupported)(tree)) {
if ((0, flat_config_1.useFlatConfig)(tree)) {
(0, eslint_file_1.addPredefinedConfigToFlatLintConfig)(tree, projectConfig.root, 'flat/recommended', 'playwright', 'eslint-plugin-playwright', false, false);
(0, eslint_file_1.addOverrideToLintConfig)(tree, projectConfig.root, {
files: ['*.ts', '*.js'],
rules: {},
});
}
else {
const addExtendsTask = (0, eslint_file_1.addExtendsToLintConfig)(tree, projectConfig.root, 'plugin:playwright/recommended');
tasks.push(addExtendsTask);
if (options.rootProject) {
(0, eslint_file_1.addPluginsToLintConfig)(tree, projectConfig.root, '@nx');
(0, eslint_file_1.addOverrideToLintConfig)(tree, projectConfig.root, global_eslint_config_1.javaScriptOverride);
}
(0, eslint_file_1.addOverrideToLintConfig)(tree, projectConfig.root, {
files: [`${options.directory}/**/*.{ts,js,tsx,jsx}`],
parserOptions: !options.setParserOptionsProject
? undefined
: {
project: `${projectConfig.root}/tsconfig.*?.json`,
},
rules: {},
});
}
}
return (0, devkit_1.runTasksInSerial)(...tasks);
}