@nrwl/linter 15.3.0-beta.3 → 15.3.0-beta.5

Sign up to get free protection for your applications and to get access to all the features.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,6 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- # [15.3.0-beta.3](https://github.com/nrwl/nx/compare/15.2.0...15.3.0-beta.3) (2022-11-28)
6
+ # [15.3.0-beta.5](https://github.com/nrwl/nx/compare/15.2.0...15.3.0-beta.5) (2022-11-29)
7
7
 
8
8
  **Note:** Version bump only for package @nrwl/linter
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nrwl/linter",
3
- "version": "15.3.0-beta.3",
3
+ "version": "15.3.0-beta.5",
4
4
  "private": false,
5
5
  "description": "The Linter plugin for Nx contains executors, generators and utilities used for linting JavaScript/TypeScript projects within an Nx workspace.",
6
6
  "repository": {
@@ -33,10 +33,10 @@
33
33
  "eslint": "^8.0.0"
34
34
  },
35
35
  "dependencies": {
36
- "@nrwl/devkit": "15.3.0-beta.3",
37
- "@nrwl/jest": "15.3.0-beta.3",
36
+ "@nrwl/devkit": "15.3.0-beta.5",
37
+ "@nrwl/jest": "15.3.0-beta.5",
38
38
  "@phenomnomnominal/tsquery": "4.1.1",
39
- "nx": "15.3.0-beta.3",
39
+ "nx": "15.3.0-beta.5",
40
40
  "tmp": "~0.2.1",
41
41
  "tslib": "^2.3.0"
42
42
  },
@@ -49,5 +49,5 @@
49
49
  "access": "public"
50
50
  },
51
51
  "types": "./index.d.ts",
52
- "gitHead": "61f6e2d7287beaac1993e32f3fe18703d2c63e41"
52
+ "gitHead": "fe062f42c366e9ed734208f5feaa1c623f696b67"
53
53
  }
@@ -0,0 +1,36 @@
1
+ import { ESLint, Linter as LinterType } from 'eslint';
2
+ /**
3
+ * This configuration is intended to apply to all TypeScript source files.
4
+ * See the eslint-plugin-nx package for what is in the referenced shareable config.
5
+ */
6
+ export declare const globalTypeScriptOverrides: {
7
+ files: string[];
8
+ extends: string[];
9
+ /**
10
+ * Having an empty rules object present makes it more obvious to the user where they would
11
+ * extend things from if they needed to
12
+ */
13
+ rules: {};
14
+ };
15
+ /**
16
+ * This configuration is intended to apply to all JavaScript source files.
17
+ * See the eslint-plugin-nx package for what is in the referenced shareable config.
18
+ */
19
+ export declare const globalJavaScriptOverrides: {
20
+ files: string[];
21
+ extends: string[];
22
+ /**
23
+ * Having an empty rules object present makes it more obvious to the user where they would
24
+ * extend things from if they needed to
25
+ */
26
+ rules: {};
27
+ };
28
+ /**
29
+ * This configuration is intended to apply to all "source code" (but not
30
+ * markup like HTML, or other custom file types like GraphQL)
31
+ */
32
+ export declare const moduleBoundariesOverride: {
33
+ files: string[];
34
+ rules: LinterType.RulesRecord;
35
+ };
36
+ export declare const getGlobalEsLintConfiguration: (unitTestRunner?: string, rootProject?: boolean) => ESLint.ConfigData<LinterType.RulesRecord>;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getGlobalEsLintConfiguration = exports.moduleBoundariesOverride = exports.globalJavaScriptOverrides = exports.globalTypeScriptOverrides = void 0;
4
+ /**
5
+ * This configuration is intended to apply to all TypeScript source files.
6
+ * See the eslint-plugin-nx package for what is in the referenced shareable config.
7
+ */
8
+ exports.globalTypeScriptOverrides = {
9
+ files: ['*.ts', '*.tsx'],
10
+ extends: ['plugin:@nrwl/nx/typescript'],
11
+ /**
12
+ * Having an empty rules object present makes it more obvious to the user where they would
13
+ * extend things from if they needed to
14
+ */
15
+ rules: {},
16
+ };
17
+ /**
18
+ * This configuration is intended to apply to all JavaScript source files.
19
+ * See the eslint-plugin-nx package for what is in the referenced shareable config.
20
+ */
21
+ exports.globalJavaScriptOverrides = {
22
+ files: ['*.js', '*.jsx'],
23
+ extends: ['plugin:@nrwl/nx/javascript'],
24
+ /**
25
+ * Having an empty rules object present makes it more obvious to the user where they would
26
+ * extend things from if they needed to
27
+ */
28
+ rules: {},
29
+ };
30
+ /**
31
+ * This configuration is intended to apply to all "source code" (but not
32
+ * markup like HTML, or other custom file types like GraphQL)
33
+ */
34
+ exports.moduleBoundariesOverride = {
35
+ files: ['*.ts', '*.tsx', '*.js', '*.jsx'],
36
+ rules: {
37
+ '@nrwl/nx/enforce-module-boundaries': [
38
+ 'error',
39
+ {
40
+ enforceBuildableLibDependency: true,
41
+ allow: [],
42
+ depConstraints: [{ sourceTag: '*', onlyDependOnLibsWithTags: ['*'] }],
43
+ },
44
+ ],
45
+ },
46
+ };
47
+ const getGlobalEsLintConfiguration = (unitTestRunner, rootProject) => {
48
+ const config = {
49
+ root: true,
50
+ ignorePatterns: rootProject ? ['!**/*'] : ['**/*'],
51
+ plugins: ['@nrwl/nx'],
52
+ /**
53
+ * We leverage ESLint's "overrides" capability so that we can set up a root config which will support
54
+ * all permutations of Nx workspaces across all frameworks, libraries and tools.
55
+ *
56
+ * The key point is that we need entirely different ESLint config to apply to different types of files,
57
+ * but we still want to share common config where possible.
58
+ */
59
+ overrides: [
60
+ ...(rootProject ? [] : [exports.moduleBoundariesOverride]),
61
+ exports.globalTypeScriptOverrides,
62
+ exports.globalJavaScriptOverrides,
63
+ ],
64
+ };
65
+ if (unitTestRunner === 'jest') {
66
+ config.overrides.push({
67
+ files: ['*.spec.ts', '*.spec.tsx', '*.spec.js', '*.spec.jsx'],
68
+ env: {
69
+ jest: true,
70
+ },
71
+ rules: {},
72
+ });
73
+ }
74
+ return config;
75
+ };
76
+ exports.getGlobalEsLintConfiguration = getGlobalEsLintConfiguration;
77
+ //# sourceMappingURL=global-eslint-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-eslint-config.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/generators/init/global-eslint-config.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACU,QAAA,yBAAyB,GAAG;IACvC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,CAAC,4BAA4B,CAAC;IACvC;;;OAGG;IACH,KAAK,EAAE,EAAE;CACV,CAAC;AAEF;;;GAGG;AACU,QAAA,yBAAyB,GAAG;IACvC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,CAAC,4BAA4B,CAAC;IACvC;;;OAGG;IACH,KAAK,EAAE,EAAE;CACV,CAAC;AAEF;;;GAGG;AACU,QAAA,wBAAwB,GAAG;IACtC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC;IACzC,KAAK,EAAE;QACL,oCAAoC,EAAE;YACpC,OAAO;YACP;gBACE,6BAA6B,EAAE,IAAI;gBACnC,KAAK,EAAE,EAAE;gBACT,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,wBAAwB,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;aACtE;SACF;KACwB;CAC5B,CAAC;AAEK,MAAM,4BAA4B,GAAG,CAC1C,cAAuB,EACvB,WAAqB,EACrB,EAAE;IACF,MAAM,MAAM,GAAsB;QAChC,IAAI,EAAE,IAAI;QACV,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAClD,OAAO,EAAE,CAAC,UAAU,CAAC;QACrB;;;;;;WAMG;QACH,SAAS,EAAE;YACT,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,gCAAwB,CAAC,CAAC;YAClD,iCAAyB;YACzB,iCAAyB;SAC1B;KACF,CAAC;IACF,IAAI,cAAc,KAAK,MAAM,EAAE;QAC7B,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YACpB,KAAK,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC;YAC7D,GAAG,EAAE;gBACH,IAAI,EAAE,IAAI;aACX;YACD,KAAK,EAAE,EAAE;SACV,CAAC,CAAC;KACJ;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AA/BW,QAAA,4BAA4B,gCA+BvC"}
@@ -0,0 +1,3 @@
1
+ import { ProjectConfiguration, TargetConfiguration, Tree } from '@nrwl/devkit';
2
+ export declare function migrateConfigToMonorepoStyle(projects: ProjectConfiguration[], tree: Tree, unitTestRunner: string): void;
3
+ export declare function findLintTarget(project: ProjectConfiguration): TargetConfiguration;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findLintTarget = exports.migrateConfigToMonorepoStyle = void 0;
4
+ const devkit_1 = require("@nrwl/devkit");
5
+ const path_1 = require("path");
6
+ const eslint_file_1 = require("../utils/eslint-file");
7
+ const global_eslint_config_1 = require("./global-eslint-config");
8
+ function migrateConfigToMonorepoStyle(projects, tree, unitTestRunner) {
9
+ (0, devkit_1.writeJson)(tree, '.eslintrc.base.json', (0, global_eslint_config_1.getGlobalEsLintConfiguration)(unitTestRunner));
10
+ // update extens in all projects' eslint configs
11
+ projects.forEach((project) => {
12
+ const lintTarget = findLintTarget(project);
13
+ if (lintTarget) {
14
+ const projectEslintPath = (0, devkit_1.joinPathFragments)(project.root, lintTarget.options.eslintConfig || (0, eslint_file_1.findEslintFile)(tree, project.root));
15
+ migrateEslintFile(projectEslintPath, tree);
16
+ }
17
+ });
18
+ }
19
+ exports.migrateConfigToMonorepoStyle = migrateConfigToMonorepoStyle;
20
+ function findLintTarget(project) {
21
+ var _a;
22
+ return (_a = Object.entries(project.targets).find(([name, target]) => name === 'lint' || target.executor === '@nrwl/linter:eslint')) === null || _a === void 0 ? void 0 : _a[1];
23
+ }
24
+ exports.findLintTarget = findLintTarget;
25
+ function migrateEslintFile(projectEslintPath, tree) {
26
+ if (projectEslintPath.endsWith('.json') ||
27
+ projectEslintPath.endsWith('.eslintrc')) {
28
+ (0, devkit_1.updateJson)(tree, projectEslintPath, (json) => {
29
+ // we have a new root now
30
+ delete json.root;
31
+ // remove nrwl/nx plugins
32
+ if (json.plugins) {
33
+ json.plugins = json.plugins.filter((p) => p !== '@nrwl/nx');
34
+ if (json.plugins.length === 0) {
35
+ delete json.plugins;
36
+ }
37
+ }
38
+ // add extends
39
+ json.extends = json.extends || [];
40
+ const pathToRootConfig = `${(0, devkit_1.offsetFromRoot)((0, path_1.dirname)(projectEslintPath))}.eslintrc.base.json`;
41
+ if (json.extends.indexOf(pathToRootConfig) === -1) {
42
+ json.extends.push(pathToRootConfig);
43
+ }
44
+ // cleanup overrides
45
+ if (json.overrides) {
46
+ json.overrides.forEach((override) => {
47
+ if (override.extends) {
48
+ override.extends = override.extends.filter((ext) => ext !== 'plugin:@nrwl/nx/typescript' &&
49
+ ext !== 'plugin:@nrwl/nx/javascript');
50
+ if (override.extends.length === 0) {
51
+ delete override.extends;
52
+ }
53
+ }
54
+ });
55
+ }
56
+ return json;
57
+ });
58
+ return;
59
+ }
60
+ if (projectEslintPath.endsWith('.yml') ||
61
+ projectEslintPath.endsWith('.yaml')) {
62
+ console.warn('YAML eslint config is not supported yet for migration');
63
+ }
64
+ if (projectEslintPath.endsWith('.js') || projectEslintPath.endsWith('.cjs')) {
65
+ console.warn('YAML eslint config is not supported yet for migration');
66
+ }
67
+ }
68
+ //# sourceMappingURL=init-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-migration.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/generators/init/init-migration.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,6 @@ export interface LinterInitOptions {
4
4
  linter?: Linter;
5
5
  unitTestRunner?: string;
6
6
  skipPackageJson?: boolean;
7
+ rootProject?: boolean;
7
8
  }
8
9
  export declare function lintInitGenerator(tree: Tree, options: LinterInitOptions): GeneratorCallback;
@@ -4,77 +4,7 @@ exports.lintInitGenerator = void 0;
4
4
  const devkit_1 = require("@nrwl/devkit");
5
5
  const versions_1 = require("../../utils/versions");
6
6
  const eslint_file_1 = require("../utils/eslint-file");
7
- const getGlobalEsLintConfiguration = (unitTestRunner) => {
8
- const config = {
9
- root: true,
10
- ignorePatterns: ['**/*'],
11
- plugins: ['@nrwl/nx'],
12
- /**
13
- * We leverage ESLint's "overrides" capability so that we can set up a root config which will support
14
- * all permutations of Nx workspaces across all frameworks, libraries and tools.
15
- *
16
- * The key point is that we need entirely different ESLint config to apply to different types of files,
17
- * but we still want to share common config where possible.
18
- */
19
- overrides: [
20
- /**
21
- * This configuration is intended to apply to all "source code" (but not
22
- * markup like HTML, or other custom file types like GraphQL)
23
- */
24
- {
25
- files: ['*.ts', '*.tsx', '*.js', '*.jsx'],
26
- rules: {
27
- '@nrwl/nx/enforce-module-boundaries': [
28
- 'error',
29
- {
30
- enforceBuildableLibDependency: true,
31
- allow: [],
32
- depConstraints: [
33
- { sourceTag: '*', onlyDependOnLibsWithTags: ['*'] },
34
- ],
35
- },
36
- ],
37
- },
38
- },
39
- /**
40
- * This configuration is intended to apply to all TypeScript source files.
41
- * See the eslint-plugin-nx package for what is in the referenced shareable config.
42
- */
43
- {
44
- files: ['*.ts', '*.tsx'],
45
- extends: ['plugin:@nrwl/nx/typescript'],
46
- /**
47
- * Having an empty rules object present makes it more obvious to the user where they would
48
- * extend things from if they needed to
49
- */
50
- rules: {},
51
- },
52
- /**
53
- * This configuration is intended to apply to all JavaScript source files.
54
- * See the eslint-plugin-nx package for what is in the referenced shareable config.
55
- */
56
- {
57
- files: ['*.js', '*.jsx'],
58
- extends: ['plugin:@nrwl/nx/javascript'],
59
- /**
60
- * Having an empty rules object present makes it more obvious to the user where they would
61
- * extend things from if they needed to
62
- */
63
- rules: {},
64
- },
65
- ],
66
- };
67
- if (unitTestRunner === 'jest') {
68
- config.overrides.push({
69
- files: ['*.spec.ts', '*.spec.tsx', '*.spec.js', '*.spec.jsx'],
70
- env: {
71
- jest: true,
72
- },
73
- rules: {},
74
- });
75
- }
76
- return config;
77
- };
7
+ const global_eslint_config_1 = require("./global-eslint-config");
78
8
  function addTargetDefaults(tree) {
79
9
  var _a, _b, _c, _d;
80
10
  var _e, _f;
@@ -101,7 +31,7 @@ function initEsLint(tree, options) {
101
31
  if (!options.skipPackageJson) {
102
32
  (0, devkit_1.removeDependenciesFromPackageJson)(tree, ['@nrwl/linter'], []);
103
33
  }
104
- (0, devkit_1.writeJson)(tree, '.eslintrc.json', getGlobalEsLintConfiguration(options.unitTestRunner));
34
+ (0, devkit_1.writeJson)(tree, '.eslintrc.json', (0, global_eslint_config_1.getGlobalEsLintConfiguration)(options.unitTestRunner, options.rootProject));
105
35
  addTargetDefaults(tree);
106
36
  if (tree.exists('.vscode/extensions.json')) {
107
37
  (0, devkit_1.updateJson)(tree, '.vscode/extensions.json', (json) => {
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/generators/init/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/generators/init/init.ts"],"names":[],"mappings":";;;AACA,yCAOsB;AACtB,mDAK8B;AAG9B,sDAAsD;AACtD,iEAAsE;AAStE,SAAS,iBAAiB,CAAC,IAAU;;;IACnC,MAAM,sBAAsB,GAAG,IAAA,mCAA0B,EAAC,IAAI,CAAC,CAAC;IAEhE,MAAM,iBAAiB,GAAG,MAAA,sBAAsB,CAAC,WAAW,0CAAE,UAAU,CAAC;IACzE,IAAI,iBAAiB,EAAE;QACrB,wBAAwB;QACxB,iBAAiB,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACxD,iBAAiB;QACjB,sBAAsB,CAAC,WAAW,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CACxD,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAC3B,CAAC;KACH;IAED,MAAA,sBAAsB,CAAC,cAAc,oCAArC,sBAAsB,CAAC,cAAc,GAAK,EAAE,EAAC;IAE7C,YAAA,sBAAsB,CAAC,cAAc,EAAC,IAAI,uCAAJ,IAAI,GAAK,EAAE,EAAC;IAClD,YAAA,sBAAsB,CAAC,cAAc,CAAC,IAAI,EAAC,MAAM,uCAAN,MAAM,GAAK;QACpD,SAAS;QACT,gCAAgC;KACjC,EAAC;IACF,IAAA,qCAA4B,EAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,UAAU,CAAC,IAAU,EAAE,OAA0B;IACxD,IAAI,IAAA,4BAAc,EAAC,IAAI,CAAC,EAAE;QACxB,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;KACjB;IAED,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;QAC5B,IAAA,0CAAiC,EAAC,IAAI,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;KAC/D;IAED,IAAA,kBAAS,EACP,IAAI,EACJ,gBAAgB,EAChB,IAAA,mDAA4B,EAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,WAAW,CAAC,CAC1E,CAAC;IACF,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAExB,IAAI,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE;QAC1C,IAAA,mBAAU,EAAC,IAAI,EAAE,yBAAyB,EAAE,CAAC,IAAI,EAAE,EAAE;YACnD,IAAI,CAAC,eAAe,KAApB,IAAI,CAAC,eAAe,GAAK,EAAE,EAAC;YAC5B,MAAM,SAAS,GAAG,wBAAwB,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBAC7C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACtC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,CAAC,OAAO,CAAC,eAAe;QAC7B,CAAC,CAAC,IAAA,qCAA4B,EAC1B,IAAI,EACJ,EAAE,EACF;YACE,cAAc,EAAE,oBAAS;YACzB,wBAAwB,EAAE,oBAAS;YACnC,2BAA2B,EAAE,kCAAuB;YACpD,kCAAkC,EAAE,kCAAuB;YAC3D,MAAM,EAAE,wBAAa;YACrB,wBAAwB,EAAE,sCAA2B;SACtD,CACF;QACH,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;AACf,CAAC;AAED,SAAgB,iBAAiB,CAAC,IAAU,EAAE,OAA0B;IACtE,OAAO,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAFD,8CAEC"}
@@ -9,6 +9,8 @@ interface LintProjectOptions {
9
9
  setParserOptionsProject?: boolean;
10
10
  skipPackageJson?: boolean;
11
11
  unitTestRunner?: string;
12
+ rootProject?: boolean;
12
13
  }
14
+ export declare function mapLintPattern(projectRoot: string, extension: string, rootProject?: boolean): string;
13
15
  export declare function lintProjectGenerator(tree: Tree, options: LintProjectOptions): Promise<import("@nrwl/devkit").GeneratorCallback>;
14
16
  export {};
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.lintProjectGenerator = void 0;
3
+ exports.lintProjectGenerator = exports.mapLintPattern = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const devkit_1 = require("@nrwl/devkit");
6
6
  const eslint_file_1 = require("../utils/eslint-file");
7
7
  const path_1 = require("path");
8
8
  const init_1 = require("../init/init");
9
+ const init_migration_1 = require("../init/init-migration");
10
+ const project_configuration_1 = require("nx/src/generators/utils/project-configuration");
9
11
  function createEsLintConfiguration(tree, projectConfig, setParserOptionsProject) {
10
12
  const eslintConfig = (0, eslint_file_1.findEslintFile)(tree);
11
13
  (0, devkit_1.writeJson)(tree, (0, path_1.join)(projectConfig.root, `.eslintrc.json`), {
@@ -52,12 +54,18 @@ function createEsLintConfiguration(tree, projectConfig, setParserOptionsProject)
52
54
  ],
53
55
  });
54
56
  }
57
+ function mapLintPattern(projectRoot, extension, rootProject) {
58
+ const infix = rootProject ? 'src/' : '';
59
+ return `${projectRoot}/${infix}**/*.${extension}`;
60
+ }
61
+ exports.mapLintPattern = mapLintPattern;
55
62
  function lintProjectGenerator(tree, options) {
56
63
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
57
64
  const installTask = (0, init_1.lintInitGenerator)(tree, {
58
65
  linter: options.linter,
59
66
  unitTestRunner: options.unitTestRunner,
60
67
  skipPackageJson: options.skipPackageJson,
68
+ rootProject: options.rootProject,
61
69
  });
62
70
  const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.project);
63
71
  projectConfig.targets['lint'] = {
@@ -67,7 +75,28 @@ function lintProjectGenerator(tree, options) {
67
75
  lintFilePatterns: options.eslintFilePatterns,
68
76
  },
69
77
  };
70
- createEsLintConfiguration(tree, projectConfig, options.setParserOptionsProject);
78
+ // we are adding new project which is not the root project or
79
+ // companion e2e app so we should check if migration to
80
+ // monorepo style is needed
81
+ if (!options.rootProject) {
82
+ const projects = (0, project_configuration_1.readWorkspace)(tree).projects;
83
+ if (isMigrationToMonorepoNeeded(projects, tree)) {
84
+ // we only migrate project configurations that have been created
85
+ const filteredProjects = [];
86
+ Object.entries(projects).forEach(([name, project]) => {
87
+ if (name !== options.project) {
88
+ filteredProjects.push(project);
89
+ }
90
+ });
91
+ (0, init_migration_1.migrateConfigToMonorepoStyle)(filteredProjects, tree, options.unitTestRunner);
92
+ }
93
+ }
94
+ // our root `.eslintrc` is already the project config, so we should not override it
95
+ // additionally, the companion e2e app would have `rootProject: true`
96
+ // so we need to check for the root path as well
97
+ if (!options.rootProject || projectConfig.root !== '.') {
98
+ createEsLintConfiguration(tree, projectConfig, options.setParserOptionsProject);
99
+ }
71
100
  (0, devkit_1.updateProjectConfiguration)(tree, options.project, projectConfig);
72
101
  if (!options.skipFormat) {
73
102
  yield (0, devkit_1.formatFiles)(tree);
@@ -76,4 +105,32 @@ function lintProjectGenerator(tree, options) {
76
105
  });
77
106
  }
78
107
  exports.lintProjectGenerator = lintProjectGenerator;
108
+ /**
109
+ * Detect based on the state of lint target configuration of the root project
110
+ * if we should migrate eslint configs to monorepo style
111
+ *
112
+ * @param tree
113
+ * @returns
114
+ */
115
+ function isMigrationToMonorepoNeeded(projects, tree) {
116
+ // the base config is already created, migration has been done
117
+ if (tree.exists('.eslintrc.base.json')) {
118
+ return false;
119
+ }
120
+ const configs = Object.values(projects);
121
+ if (configs.length === 1) {
122
+ return false;
123
+ }
124
+ // get root project
125
+ const rootProject = configs.find((p) => p.root === '.');
126
+ if (!rootProject || !rootProject.targets) {
127
+ return false;
128
+ }
129
+ // find if root project has lint target
130
+ const lintTarget = (0, init_migration_1.findLintTarget)(rootProject);
131
+ if (!lintTarget) {
132
+ return false;
133
+ }
134
+ return true;
135
+ }
79
136
  //# sourceMappingURL=lint-project.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lint-project.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/generators/lint-project/lint-project.ts"],"names":[],"mappings":";;;;AACA,yCAMsB;AAGtB,sDAAsD;AACtD,+BAA4B;AAC5B,uCAAiD;AAajD,SAAS,yBAAyB,CAChC,IAAU,EACV,aAAmC,EACnC,uBAAgC;IAEhC,MAAM,YAAY,GAAG,IAAA,4BAAc,EAAC,IAAI,CAAC,CAAC;IAC1C,IAAA,kBAAS,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,aAAa,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE;QAC1D,OAAO,EAAE,YAAY;YACnB,CAAC,CAAC,CAAC,GAAG,IAAA,uBAAc,EAAC,aAAa,CAAC,IAAI,CAAC,GAAG,YAAY,EAAE,CAAC;YAC1D,CAAC,CAAC,SAAS;QACb,8EAA8E;QAC9E,cAAc,EAAE,CAAC,OAAO,CAAC;QACzB,SAAS,EAAE;YACT;gBACE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC;gBACzC;;;;;;;;;;;;mBAYG;gBACH,aAAa,EAAE,CAAC,uBAAuB;oBACrC,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC;wBACE,OAAO,EAAE,CAAC,GAAG,aAAa,CAAC,IAAI,mBAAmB,CAAC;qBACpD;gBACL;;;mBAGG;gBACH,KAAK,EAAE,EAAE;aACV;YACD;gBACE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;gBACxB,KAAK,EAAE,EAAE;aACV;YACD;gBACE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;gBACxB,KAAK,EAAE,EAAE;aACV;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAsB,oBAAoB,CACxC,IAAU,EACV,OAA2B;;QAE3B,MAAM,WAAW,GAAG,IAAA,wBAAiB,EAAC,IAAI,EAAE;YAC1C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,eAAe,EAAE,OAAO,CAAC,eAAe;SACzC,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAEtE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG;YAC9B,QAAQ,EAAE,qBAAqB;YAC/B,OAAO,EAAE,CAAC,sBAAsB,CAAC;YACjC,OAAO,EAAE;gBACP,gBAAgB,EAAE,OAAO,CAAC,kBAAkB;aAC7C;SACF,CAAC;QACF,yBAAyB,CACvB,IAAI,EACJ,aAAa,EACb,OAAO,CAAC,uBAAuB,CAChC,CAAC;QAEF,IAAA,mCAA0B,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAEjE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACvB,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;SACzB;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;CAAA;AA/BD,oDA+BC"}
1
+ {"version":3,"file":"lint-project.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/generators/lint-project/lint-project.ts"],"names":[],"mappings":";;;;AACA,yCAMsB;AAGtB,sDAAsD;AACtD,+BAA4B;AAC5B,uCAAiD;AACjD,2DAGgC;AAChC,yFAA8E;AAc9E,SAAS,yBAAyB,CAChC,IAAU,EACV,aAAmC,EACnC,uBAAgC;IAEhC,MAAM,YAAY,GAAG,IAAA,4BAAc,EAAC,IAAI,CAAC,CAAC;IAC1C,IAAA,kBAAS,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,aAAa,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE;QAC1D,OAAO,EAAE,YAAY;YACnB,CAAC,CAAC,CAAC,GAAG,IAAA,uBAAc,EAAC,aAAa,CAAC,IAAI,CAAC,GAAG,YAAY,EAAE,CAAC;YAC1D,CAAC,CAAC,SAAS;QACb,8EAA8E;QAC9E,cAAc,EAAE,CAAC,OAAO,CAAC;QACzB,SAAS,EAAE;YACT;gBACE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC;gBACzC;;;;;;;;;;;;mBAYG;gBACH,aAAa,EAAE,CAAC,uBAAuB;oBACrC,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC;wBACE,OAAO,EAAE,CAAC,GAAG,aAAa,CAAC,IAAI,mBAAmB,CAAC;qBACpD;gBACL;;;mBAGG;gBACH,KAAK,EAAE,EAAE;aACV;YACD;gBACE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;gBACxB,KAAK,EAAE,EAAE;aACV;YACD;gBACE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;gBACxB,KAAK,EAAE,EAAE;aACV;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,cAAc,CAC5B,WAAmB,EACnB,SAAiB,EACjB,WAAqB;IAErB,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,OAAO,GAAG,WAAW,IAAI,KAAK,QAAQ,SAAS,EAAE,CAAC;AACpD,CAAC;AAPD,wCAOC;AAED,SAAsB,oBAAoB,CACxC,IAAU,EACV,OAA2B;;QAE3B,MAAM,WAAW,GAAG,IAAA,wBAAiB,EAAC,IAAI,EAAE;YAC1C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAEtE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG;YAC9B,QAAQ,EAAE,qBAAqB;YAC/B,OAAO,EAAE,CAAC,sBAAsB,CAAC;YACjC,OAAO,EAAE;gBACP,gBAAgB,EAAE,OAAO,CAAC,kBAAkB;aAC7C;SACF,CAAC;QAEF,6DAA6D;QAC7D,uDAAuD;QACvD,2BAA2B;QAC3B,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;YACxB,MAAM,QAAQ,GAAG,IAAA,qCAAa,EAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;YAC9C,IAAI,2BAA2B,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE;gBAC/C,gEAAgE;gBAChE,MAAM,gBAAgB,GAAG,EAAE,CAAC;gBAC5B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;oBACnD,IAAI,IAAI,KAAK,OAAO,CAAC,OAAO,EAAE;wBAC5B,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBAChC;gBACH,CAAC,CAAC,CAAC;gBACH,IAAA,6CAA4B,EAC1B,gBAAgB,EAChB,IAAI,EACJ,OAAO,CAAC,cAAc,CACvB,CAAC;aACH;SACF;QAED,mFAAmF;QACnF,qEAAqE;QACrE,gDAAgD;QAChD,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,aAAa,CAAC,IAAI,KAAK,GAAG,EAAE;YACtD,yBAAyB,CACvB,IAAI,EACJ,aAAa,EACb,OAAO,CAAC,uBAAuB,CAChC,CAAC;SACH;QAED,IAAA,mCAA0B,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAEjE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACvB,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;SACzB;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;CAAA;AA3DD,oDA2DC;AAED;;;;;;GAMG;AACH,SAAS,2BAA2B,CAClC,QAA8C,EAC9C,IAAU;IAEV,8DAA8D;IAC9D,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE;QACtC,OAAO,KAAK,CAAC;KACd;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC;KACd;IAED,mBAAmB;IACnB,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;IACxD,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;QACxC,OAAO,KAAK,CAAC;KACd;IACD,uCAAuC;IACvC,MAAM,UAAU,GAAG,IAAA,+BAAc,EAAC,WAAW,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,3 +1,4 @@
1
- import type { Tree } from '@nrwl/devkit';
1
+ import { Tree } from '@nrwl/devkit';
2
2
  export declare const eslintConfigFileWhitelist: string[];
3
- export declare function findEslintFile(tree: Tree): string | null;
3
+ export declare const baseEsLintConfigFile = ".eslintrc.base.json";
4
+ export declare function findEslintFile(tree: Tree, projectRoot?: string): string | null;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findEslintFile = exports.eslintConfigFileWhitelist = void 0;
3
+ exports.findEslintFile = exports.baseEsLintConfigFile = exports.eslintConfigFileWhitelist = void 0;
4
+ const devkit_1 = require("@nrwl/devkit");
4
5
  exports.eslintConfigFileWhitelist = [
5
6
  '.eslintrc',
6
7
  '.eslintrc.js',
@@ -8,10 +9,15 @@ exports.eslintConfigFileWhitelist = [
8
9
  '.eslintrc.yaml',
9
10
  '.eslintrc.yml',
10
11
  '.eslintrc.json',
12
+ 'eslint.config.js', // new format that requires `ESLINT_USE_FLAT_CONFIG=true`
11
13
  ];
12
- function findEslintFile(tree) {
14
+ exports.baseEsLintConfigFile = '.eslintrc.base.json';
15
+ function findEslintFile(tree, projectRoot = '') {
16
+ if (projectRoot === '' && tree.exists(exports.baseEsLintConfigFile)) {
17
+ return exports.baseEsLintConfigFile;
18
+ }
13
19
  for (const file of exports.eslintConfigFileWhitelist) {
14
- if (tree.exists(file)) {
20
+ if (tree.exists((0, devkit_1.joinPathFragments)(projectRoot, file))) {
15
21
  return file;
16
22
  }
17
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eslint-file.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/generators/utils/eslint-file.ts"],"names":[],"mappings":";;;AAEa,QAAA,yBAAyB,GAAG;IACvC,WAAW;IACX,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,gBAAgB;CACjB,CAAC;AAEF,SAAgB,cAAc,CAAC,IAAU;IACvC,KAAK,MAAM,IAAI,IAAI,iCAAyB,EAAE;QAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACrB,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AARD,wCAQC"}
1
+ {"version":3,"file":"eslint-file.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/generators/utils/eslint-file.ts"],"names":[],"mappings":";;;AAAA,yCAAuD;AAE1C,QAAA,yBAAyB,GAAG;IACvC,WAAW;IACX,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,kBAAkB,EAAE,yDAAyD;CAC9E,CAAC;AAEW,QAAA,oBAAoB,GAAG,qBAAqB,CAAC;AAE1D,SAAgB,cAAc,CAAC,IAAU,EAAE,WAAW,GAAG,EAAE;IACzD,IAAI,WAAW,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,4BAAoB,CAAC,EAAE;QAC3D,OAAO,4BAAoB,CAAC;KAC7B;IACD,KAAK,MAAM,IAAI,IAAI,iCAAyB,EAAE;QAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,IAAA,0BAAiB,EAAC,WAAW,EAAE,IAAI,CAAC,CAAC,EAAE;YACrD,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAXD,wCAWC"}