UNPKG

@nx/playwright

Version:

The Nx Plugin for Playwright contains executors and generators allowing your workspace to use the powerful Playwright integration testing capabilities.

64 lines (63 loc) 3.17 kB
"use strict"; 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); }