@nrwl/linter 14.8.7 → 14.9.0-beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/LICENSE +22 -22
  3. package/README.md +5 -26
  4. package/executors.json +0 -10
  5. package/migrations.json +12 -84
  6. package/package.json +4 -6
  7. package/src/executors/eslint/hasher.d.ts +1 -1
  8. package/src/executors/eslint/hasher.js +1 -1
  9. package/src/executors/eslint/hasher.js.map +1 -1
  10. package/src/executors/eslint/lint.impl.js +2 -2
  11. package/src/executors/eslint/lint.impl.js.map +1 -1
  12. package/src/executors/eslint/schema.json +12 -6
  13. package/src/generators/init/global-eslint-config.d.ts +36 -0
  14. package/src/generators/init/global-eslint-config.js +77 -0
  15. package/src/generators/init/global-eslint-config.js.map +1 -0
  16. package/src/generators/init/init-migration.d.ts +3 -0
  17. package/src/generators/init/init-migration.js +68 -0
  18. package/src/generators/init/init-migration.js.map +1 -0
  19. package/src/generators/init/init.d.ts +1 -0
  20. package/src/generators/init/init.js +12 -160
  21. package/src/generators/init/init.js.map +1 -1
  22. package/src/generators/lint-project/lint-project.d.ts +2 -0
  23. package/src/generators/lint-project/lint-project.js +65 -30
  24. package/src/generators/lint-project/lint-project.js.map +1 -1
  25. package/src/generators/utils/eslint-file.d.ts +4 -2
  26. package/src/generators/utils/eslint-file.js +18 -5
  27. package/src/generators/utils/eslint-file.js.map +1 -1
  28. package/src/generators/utils/eslint-targets.d.ts +2 -0
  29. package/src/generators/utils/eslint-targets.js +13 -0
  30. package/src/generators/utils/eslint-targets.js.map +1 -0
  31. package/src/generators/utils/linter.d.ts +0 -1
  32. package/src/generators/utils/linter.js +0 -1
  33. package/src/generators/utils/linter.js.map +1 -1
  34. package/src/generators/workspace-rule/files/__name__.ts__tmpl__ +1 -1
  35. package/src/generators/workspace-rule/schema.json +2 -11
  36. package/src/generators/workspace-rule/workspace-rule.d.ts +1 -1
  37. package/src/generators/workspace-rule/workspace-rule.js +2 -2
  38. package/src/generators/workspace-rule/workspace-rule.js.map +1 -1
  39. package/src/generators/workspace-rules-project/workspace-rules-project.d.ts +1 -1
  40. package/src/generators/workspace-rules-project/workspace-rules-project.js +30 -9
  41. package/src/generators/workspace-rules-project/workspace-rules-project.js.map +1 -1
  42. package/src/migrations/update-13-3-0/eslint-8-updates.js +3 -2
  43. package/src/migrations/update-13-3-0/eslint-8-updates.js.map +1 -1
  44. package/src/migrations/update-15-0-0/add-eslint-inputs.d.ts +2 -0
  45. package/src/migrations/update-15-0-0/add-eslint-inputs.js +33 -0
  46. package/src/migrations/update-15-0-0/add-eslint-inputs.js.map +1 -0
  47. package/src/migrations/update-15-7-1/add-eslint-ignore.d.ts +2 -0
  48. package/src/migrations/update-15-7-1/add-eslint-ignore.js +42 -0
  49. package/src/migrations/update-15-7-1/add-eslint-ignore.js.map +1 -0
  50. package/src/utils/convert-tslint-to-eslint/project-converter.d.ts +1 -1
  51. package/src/utils/convert-tslint-to-eslint/project-converter.js +9 -9
  52. package/src/utils/convert-tslint-to-eslint/project-converter.js.map +1 -1
  53. package/src/utils/convert-tslint-to-eslint/utils.d.ts +1 -1
  54. package/src/utils/testing.d.ts +1 -1
  55. package/src/utils/versions.d.ts +0 -2
  56. package/src/utils/versions.js +1 -3
  57. package/src/utils/versions.js.map +1 -1
  58. package/src/executors/lint/compat.d.ts +0 -2
  59. package/src/executors/lint/compat.js +0 -6
  60. package/src/executors/lint/compat.js.map +0 -1
  61. package/src/executors/lint/lint.impl.d.ts +0 -2
  62. package/src/executors/lint/lint.impl.js +0 -10
  63. package/src/executors/lint/lint.impl.js.map +0 -1
  64. package/src/executors/lint/schema.json +0 -124
  65. package/src/migrations/update-10-3-0/add-json-ext-to-eslintrc.d.ts +0 -1
  66. package/src/migrations/update-10-3-0/add-json-ext-to-eslintrc.js +0 -52
  67. package/src/migrations/update-10-3-0/add-json-ext-to-eslintrc.js.map +0 -1
  68. package/src/migrations/update-10-3-0/add-root-eslintrc-json-to-workspace-implicit-deps.d.ts +0 -1
  69. package/src/migrations/update-10-3-0/add-root-eslintrc-json-to-workspace-implicit-deps.js +0 -18
  70. package/src/migrations/update-10-3-0/add-root-eslintrc-json-to-workspace-implicit-deps.js.map +0 -1
  71. package/src/migrations/update-10-3-0/update-10-3-0.d.ts +0 -1
  72. package/src/migrations/update-10-3-0/update-10-3-0.js +0 -20
  73. package/src/migrations/update-10-3-0/update-10-3-0.js.map +0 -1
  74. package/src/migrations/update-10-3-0/update-eslint-builder-and-config.d.ts +0 -1
  75. package/src/migrations/update-10-3-0/update-eslint-builder-and-config.js +0 -81
  76. package/src/migrations/update-10-3-0/update-eslint-builder-and-config.js.map +0 -1
  77. package/src/migrations/update-10-3-1/revert-node-modules-files-in-eslint-builder-options.d.ts +0 -1
  78. package/src/migrations/update-10-3-1/revert-node-modules-files-in-eslint-builder-options.js +0 -24
  79. package/src/migrations/update-10-3-1/revert-node-modules-files-in-eslint-builder-options.js.map +0 -1
  80. package/src/migrations/update-10-4-0/update-eslint-configs-to-use-nx-presets.d.ts +0 -7
  81. package/src/migrations/update-10-4-0/update-eslint-configs-to-use-nx-presets.js +0 -447
  82. package/src/migrations/update-10-4-0/update-eslint-configs-to-use-nx-presets.js.map +0 -1
  83. package/src/migrations/update-10-4-0/update-root-eslint-config-to-use-overrides.d.ts +0 -1
  84. package/src/migrations/update-10-4-0/update-root-eslint-config-to-use-overrides.js +0 -107
  85. package/src/migrations/update-10-4-0/update-root-eslint-config-to-use-overrides.js.map +0 -1
  86. package/src/migrations/update-11-5-0/always-use-project-level-tsconfigs-with-eslint.d.ts +0 -3
  87. package/src/migrations/update-11-5-0/always-use-project-level-tsconfigs-with-eslint.js +0 -95
  88. package/src/migrations/update-11-5-0/always-use-project-level-tsconfigs-with-eslint.js.map +0 -1
@@ -3,171 +3,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.lintInitGenerator = void 0;
4
4
  const devkit_1 = require("@nrwl/devkit");
5
5
  const versions_1 = require("../../utils/versions");
6
- const linter_1 = require("../utils/linter");
7
6
  const eslint_file_1 = require("../utils/eslint-file");
8
- const globalTsLintConfiguration = {
9
- rulesDirectory: ['node_modules/@nrwl/workspace/src/tslint'],
10
- linterOptions: {
11
- exclude: ['**/*'],
12
- },
13
- rules: {
14
- 'arrow-return-shorthand': true,
15
- 'callable-types': true,
16
- 'class-name': true,
17
- deprecation: {
18
- severity: 'warn',
19
- },
20
- forin: true,
21
- 'import-blacklist': [true, 'rxjs/Rx'],
22
- 'interface-over-type-literal': true,
23
- 'member-access': false,
24
- 'member-ordering': [
25
- true,
26
- {
27
- order: [
28
- 'static-field',
29
- 'instance-field',
30
- 'static-method',
31
- 'instance-method',
32
- ],
33
- },
34
- ],
35
- 'no-arg': true,
36
- 'no-bitwise': true,
37
- 'no-console': [true, 'debug', 'info', 'time', 'timeEnd', 'trace'],
38
- 'no-construct': true,
39
- 'no-debugger': true,
40
- 'no-duplicate-super': true,
41
- 'no-empty': false,
42
- 'no-empty-interface': true,
43
- 'no-eval': true,
44
- 'no-inferrable-types': [true, 'ignore-params'],
45
- 'no-misused-new': true,
46
- 'no-non-null-assertion': true,
47
- 'no-shadowed-variable': true,
48
- 'no-string-literal': false,
49
- 'no-string-throw': true,
50
- 'no-switch-case-fall-through': true,
51
- 'no-unnecessary-initializer': true,
52
- 'no-unused-expression': true,
53
- 'no-var-keyword': true,
54
- 'object-literal-sort-keys': false,
55
- 'prefer-const': true,
56
- radix: true,
57
- 'triple-equals': [true, 'allow-null-check'],
58
- 'unified-signatures': true,
59
- 'variable-name': false,
60
- 'nx-enforce-module-boundaries': [
61
- true,
62
- {
63
- enforceBuildableLibDependency: true,
64
- allow: [],
65
- depConstraints: [{ sourceTag: '*', onlyDependOnLibsWithTags: ['*'] }],
66
- },
67
- ],
68
- },
69
- };
70
- const getGlobalEsLintConfiguration = (unitTestRunner) => {
71
- const config = {
72
- root: true,
73
- ignorePatterns: ['**/*'],
74
- plugins: ['@nrwl/nx'],
75
- /**
76
- * We leverage ESLint's "overrides" capability so that we can set up a root config which will support
77
- * all permutations of Nx workspaces across all frameworks, libraries and tools.
78
- *
79
- * The key point is that we need entirely different ESLint config to apply to different types of files,
80
- * but we still want to share common config where possible.
81
- */
82
- overrides: [
83
- /**
84
- * This configuration is intended to apply to all "source code" (but not
85
- * markup like HTML, or other custom file types like GraphQL)
86
- */
87
- {
88
- files: ['*.ts', '*.tsx', '*.js', '*.jsx'],
89
- rules: {
90
- '@nrwl/nx/enforce-module-boundaries': [
91
- 'error',
92
- {
93
- enforceBuildableLibDependency: true,
94
- allow: [],
95
- depConstraints: [
96
- { sourceTag: '*', onlyDependOnLibsWithTags: ['*'] },
97
- ],
98
- },
99
- ],
100
- },
101
- },
102
- /**
103
- * This configuration is intended to apply to all TypeScript source files.
104
- * See the eslint-plugin-nx package for what is in the referenced shareable config.
105
- */
106
- {
107
- files: ['*.ts', '*.tsx'],
108
- extends: ['plugin:@nrwl/nx/typescript'],
109
- /**
110
- * Having an empty rules object present makes it more obvious to the user where they would
111
- * extend things from if they needed to
112
- */
113
- rules: {},
114
- },
115
- /**
116
- * This configuration is intended to apply to all JavaScript source files.
117
- * See the eslint-plugin-nx package for what is in the referenced shareable config.
118
- */
119
- {
120
- files: ['*.js', '*.jsx'],
121
- extends: ['plugin:@nrwl/nx/javascript'],
122
- /**
123
- * Having an empty rules object present makes it more obvious to the user where they would
124
- * extend things from if they needed to
125
- */
126
- rules: {},
127
- },
128
- ],
129
- };
130
- if (unitTestRunner === 'jest') {
131
- config.overrides.push({
132
- files: ['*.spec.ts', '*.spec.tsx', '*.spec.js', '*.spec.jsx'],
133
- env: {
134
- jest: true,
135
- },
136
- rules: {},
137
- });
138
- }
139
- return config;
140
- };
141
- function initTsLint(tree, options) {
142
- if (tree.exists('/tslint.json')) {
143
- return () => { };
144
- }
145
- (0, devkit_1.writeJson)(tree, 'tslint.json', globalTsLintConfiguration);
146
- return !options.skipPackageJson
147
- ? (0, devkit_1.addDependenciesToPackageJson)(tree, {}, {
148
- tslint: versions_1.tslintVersion,
149
- '@angular-devkit/build-angular': versions_1.buildAngularVersion,
150
- })
151
- : () => { };
152
- }
7
+ const global_eslint_config_1 = require("./global-eslint-config");
153
8
  function addTargetDefaults(tree) {
154
9
  var _a, _b, _c, _d;
155
10
  var _e, _f;
156
- const workspaceConfiguration = (0, devkit_1.readWorkspaceConfiguration)(tree);
157
- const productionFileSet = (_a = workspaceConfiguration.namedInputs) === null || _a === void 0 ? void 0 : _a.production;
11
+ const nxJson = (0, devkit_1.readNxJson)(tree);
12
+ const productionFileSet = (_a = nxJson.namedInputs) === null || _a === void 0 ? void 0 : _a.production;
158
13
  if (productionFileSet) {
159
14
  // Remove .eslintrc.json
160
15
  productionFileSet.push('!{projectRoot}/.eslintrc.json');
161
16
  // Dedupe and set
162
- workspaceConfiguration.namedInputs.production = Array.from(new Set(productionFileSet));
17
+ nxJson.namedInputs.production = Array.from(new Set(productionFileSet));
163
18
  }
164
- (_b = workspaceConfiguration.targetDefaults) !== null && _b !== void 0 ? _b : (workspaceConfiguration.targetDefaults = {});
165
- (_c = (_e = workspaceConfiguration.targetDefaults).lint) !== null && _c !== void 0 ? _c : (_e.lint = {});
166
- (_d = (_f = workspaceConfiguration.targetDefaults.lint).inputs) !== null && _d !== void 0 ? _d : (_f.inputs = [
19
+ (_b = nxJson.targetDefaults) !== null && _b !== void 0 ? _b : (nxJson.targetDefaults = {});
20
+ (_c = (_e = nxJson.targetDefaults).lint) !== null && _c !== void 0 ? _c : (_e.lint = {});
21
+ (_d = (_f = nxJson.targetDefaults.lint).inputs) !== null && _d !== void 0 ? _d : (_f.inputs = [
167
22
  'default',
168
23
  `{workspaceRoot}/.eslintrc.json`,
24
+ `{workspaceRoot}/.eslintignore`,
169
25
  ]);
170
- (0, devkit_1.updateWorkspaceConfiguration)(tree, workspaceConfiguration);
26
+ (0, devkit_1.updateNxJson)(tree, nxJson);
171
27
  }
172
28
  function initEsLint(tree, options) {
173
29
  if ((0, eslint_file_1.findEslintFile)(tree)) {
@@ -176,7 +32,8 @@ function initEsLint(tree, options) {
176
32
  if (!options.skipPackageJson) {
177
33
  (0, devkit_1.removeDependenciesFromPackageJson)(tree, ['@nrwl/linter'], []);
178
34
  }
179
- (0, devkit_1.writeJson)(tree, '.eslintrc.json', getGlobalEsLintConfiguration(options.unitTestRunner));
35
+ (0, devkit_1.writeJson)(tree, '.eslintrc.json', (0, global_eslint_config_1.getGlobalEsLintConfiguration)(options.unitTestRunner, options.rootProject));
36
+ tree.write('.eslintignore', 'node_modules\n');
180
37
  addTargetDefaults(tree);
181
38
  if (tree.exists('.vscode/extensions.json')) {
182
39
  (0, devkit_1.updateJson)(tree, '.vscode/extensions.json', (json) => {
@@ -200,12 +57,7 @@ function initEsLint(tree, options) {
200
57
  : () => { };
201
58
  }
202
59
  function lintInitGenerator(tree, options) {
203
- if (!options.linter || options.linter === linter_1.Linter.EsLint) {
204
- return initEsLint(tree, options);
205
- }
206
- else if (options.linter === linter_1.Linter.TsLint) {
207
- return initTsLint(tree, options);
208
- }
60
+ return initEsLint(tree, options);
209
61
  }
210
62
  exports.lintInitGenerator = lintInitGenerator;
211
63
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/generators/init/init.ts"],"names":[],"mappings":";;;AACA,yCAOsB;AACtB,mDAO8B;AAE9B,4CAAyC;AACzC,sDAAsD;AAStD,MAAM,yBAAyB,GAAG;IAChC,cAAc,EAAE,CAAC,yCAAyC,CAAC;IAC3D,aAAa,EAAE;QACb,OAAO,EAAE,CAAC,MAAM,CAAC;KAClB;IACD,KAAK,EAAE;QACL,wBAAwB,EAAE,IAAI;QAC9B,gBAAgB,EAAE,IAAI;QACtB,YAAY,EAAE,IAAI;QAClB,WAAW,EAAE;YACX,QAAQ,EAAE,MAAM;SACjB;QACD,KAAK,EAAE,IAAI;QACX,kBAAkB,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;QACrC,6BAA6B,EAAE,IAAI;QACnC,eAAe,EAAE,KAAK;QACtB,iBAAiB,EAAE;YACjB,IAAI;YACJ;gBACE,KAAK,EAAE;oBACL,cAAc;oBACd,gBAAgB;oBAChB,eAAe;oBACf,iBAAiB;iBAClB;aACF;SACF;QACD,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;QACjE,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,IAAI;QACnB,oBAAoB,EAAE,IAAI;QAC1B,UAAU,EAAE,KAAK;QACjB,oBAAoB,EAAE,IAAI;QAC1B,SAAS,EAAE,IAAI;QACf,qBAAqB,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC;QAC9C,gBAAgB,EAAE,IAAI;QACtB,uBAAuB,EAAE,IAAI;QAC7B,sBAAsB,EAAE,IAAI;QAC5B,mBAAmB,EAAE,KAAK;QAC1B,iBAAiB,EAAE,IAAI;QACvB,6BAA6B,EAAE,IAAI;QACnC,4BAA4B,EAAE,IAAI;QAClC,sBAAsB,EAAE,IAAI;QAC5B,gBAAgB,EAAE,IAAI;QACtB,0BAA0B,EAAE,KAAK;QACjC,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,IAAI;QACX,eAAe,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC;QAC3C,oBAAoB,EAAE,IAAI;QAC1B,eAAe,EAAE,KAAK;QAEtB,8BAA8B,EAAE;YAC9B,IAAI;YACJ;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;KACF;CACF,CAAC;AAEF,MAAM,4BAA4B,GAAG,CAAC,cAAuB,EAAE,EAAE;IAC/D,MAAM,MAAM,GAAsB;QAChC,IAAI,EAAE,IAAI;QACV,cAAc,EAAE,CAAC,MAAM,CAAC;QACxB,OAAO,EAAE,CAAC,UAAU,CAAC;QACrB;;;;;;WAMG;QACH,SAAS,EAAE;YACT;;;eAGG;YACH;gBACE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC;gBACzC,KAAK,EAAE;oBACL,oCAAoC,EAAE;wBACpC,OAAO;wBACP;4BACE,6BAA6B,EAAE,IAAI;4BACnC,KAAK,EAAE,EAAE;4BACT,cAAc,EAAE;gCACd,EAAE,SAAS,EAAE,GAAG,EAAE,wBAAwB,EAAE,CAAC,GAAG,CAAC,EAAE;6BACpD;yBACF;qBACF;iBACF;aACF;YAED;;;eAGG;YACH;gBACE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;gBACxB,OAAO,EAAE,CAAC,4BAA4B,CAAC;gBACvC;;;mBAGG;gBACH,KAAK,EAAE,EAAE;aACV;YAED;;;eAGG;YACH;gBACE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;gBACxB,OAAO,EAAE,CAAC,4BAA4B,CAAC;gBACvC;;;mBAGG;gBACH,KAAK,EAAE,EAAE;aACV;SACF;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;AAEF,SAAS,UAAU,CAAC,IAAU,EAAE,OAA0B;IACxD,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE;QAC/B,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;KACjB;IACD,IAAA,kBAAS,EAAC,IAAI,EAAE,aAAa,EAAE,yBAAyB,CAAC,CAAC;IAE1D,OAAO,CAAC,OAAO,CAAC,eAAe;QAC7B,CAAC,CAAC,IAAA,qCAA4B,EAC1B,IAAI,EACJ,EAAE,EACF;YACE,MAAM,EAAE,wBAAa;YACrB,+BAA+B,EAAE,8BAAmB;SACrD,CACF;QACH,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;AACf,CAAC;AAED,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,4BAA4B,CAAC,OAAO,CAAC,cAAc,CAAC,CACrD,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,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,eAAM,CAAC,MAAM,EAAE;QACvD,OAAO,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAClC;SAAM,IAAI,OAAO,CAAC,MAAM,KAAK,eAAM,CAAC,MAAM,EAAE;QAC3C,OAAO,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAClC;AACH,CAAC;AAND,8CAMC"}
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,MAAM,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC;IAEhC,MAAM,iBAAiB,GAAG,MAAA,MAAM,CAAC,WAAW,0CAAE,UAAU,CAAC;IACzD,IAAI,iBAAiB,EAAE;QACrB,wBAAwB;QACxB,iBAAiB,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACxD,iBAAiB;QACjB,MAAM,CAAC,WAAW,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;KACxE;IAED,MAAA,MAAM,CAAC,cAAc,oCAArB,MAAM,CAAC,cAAc,GAAK,EAAE,EAAC;IAE7B,YAAA,MAAM,CAAC,cAAc,EAAC,IAAI,uCAAJ,IAAI,GAAK,EAAE,EAAC;IAClC,YAAA,MAAM,CAAC,cAAc,CAAC,IAAI,EAAC,MAAM,uCAAN,MAAM,GAAK;QACpC,SAAS;QACT,gCAAgC;QAChC,+BAA+B;KAChC,EAAC;IACF,IAAA,qBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7B,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,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;IAC9C,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,22 +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
- const linter_1 = require("../utils/linter");
7
6
  const eslint_file_1 = require("../utils/eslint-file");
8
7
  const path_1 = require("path");
9
8
  const init_1 = require("../init/init");
10
- function createTsLintConfiguration(tree, projectConfig) {
11
- (0, devkit_1.writeJson)(tree, (0, path_1.join)(projectConfig.root, `tslint.json`), {
12
- extends: `${(0, devkit_1.offsetFromRoot)(projectConfig.root)}tslint.json`,
13
- // Include project files to be linted since the global one excludes all files.
14
- linterOptions: {
15
- exclude: ['!**/*'],
16
- },
17
- rules: {},
18
- });
19
- }
9
+ const init_migration_1 = require("../init/init-migration");
10
+ const project_configuration_1 = require("nx/src/generators/utils/project-configuration");
20
11
  function createEsLintConfiguration(tree, projectConfig, setParserOptionsProject) {
21
12
  const eslintConfig = (0, eslint_file_1.findEslintFile)(tree);
22
13
  (0, devkit_1.writeJson)(tree, (0, path_1.join)(projectConfig.root, `.eslintrc.json`), {
@@ -63,33 +54,49 @@ function createEsLintConfiguration(tree, projectConfig, setParserOptionsProject)
63
54
  ],
64
55
  });
65
56
  }
57
+ function mapLintPattern(projectRoot, extension, rootProject) {
58
+ const infix = rootProject ? 'src/' : '';
59
+ return `${projectRoot}/${infix}**/*.${extension}`;
60
+ }
61
+ exports.mapLintPattern = mapLintPattern;
66
62
  function lintProjectGenerator(tree, options) {
67
63
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
68
64
  const installTask = (0, init_1.lintInitGenerator)(tree, {
69
65
  linter: options.linter,
70
66
  unitTestRunner: options.unitTestRunner,
71
67
  skipPackageJson: options.skipPackageJson,
68
+ rootProject: options.rootProject,
72
69
  });
73
70
  const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.project);
74
- if (options.linter === linter_1.Linter.EsLint) {
75
- projectConfig.targets['lint'] = {
76
- executor: '@nrwl/linter:eslint',
77
- outputs: ['{options.outputFile}'],
78
- options: {
79
- lintFilePatterns: options.eslintFilePatterns,
80
- },
81
- };
82
- createEsLintConfiguration(tree, projectConfig, options.setParserOptionsProject);
71
+ projectConfig.targets['lint'] = {
72
+ executor: '@nrwl/linter:eslint',
73
+ outputs: ['{options.outputFile}'],
74
+ options: {
75
+ lintFilePatterns: options.eslintFilePatterns,
76
+ },
77
+ };
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 = {};
83
+ (0, project_configuration_1.getProjects)(tree).forEach((v, k) => (projects[k] = v));
84
+ if (isMigrationToMonorepoNeeded(projects, tree)) {
85
+ // we only migrate project configurations that have been created
86
+ const filteredProjects = [];
87
+ Object.entries(projects).forEach(([name, project]) => {
88
+ if (name !== options.project) {
89
+ filteredProjects.push(project);
90
+ }
91
+ });
92
+ (0, init_migration_1.migrateConfigToMonorepoStyle)(filteredProjects, tree, options.unitTestRunner);
93
+ }
83
94
  }
84
- else {
85
- projectConfig.targets['lint'] = {
86
- executor: '@angular-devkit/build-angular:tslint',
87
- options: {
88
- tsConfig: options.tsConfigPaths,
89
- exclude: ['**/node_modules/**', `!${projectConfig.root}/**/*`],
90
- },
91
- };
92
- createTsLintConfiguration(tree, projectConfig);
95
+ // our root `.eslintrc` is already the project config, so we should not override it
96
+ // additionally, the companion e2e app would have `rootProject: true`
97
+ // so we need to check for the root path as well
98
+ if (!options.rootProject || projectConfig.root !== '.') {
99
+ createEsLintConfiguration(tree, projectConfig, options.setParserOptionsProject);
93
100
  }
94
101
  (0, devkit_1.updateProjectConfiguration)(tree, options.project, projectConfig);
95
102
  if (!options.skipFormat) {
@@ -99,4 +106,32 @@ function lintProjectGenerator(tree, options) {
99
106
  });
100
107
  }
101
108
  exports.lintProjectGenerator = lintProjectGenerator;
109
+ /**
110
+ * Detect based on the state of lint target configuration of the root project
111
+ * if we should migrate eslint configs to monorepo style
112
+ *
113
+ * @param tree
114
+ * @returns
115
+ */
116
+ function isMigrationToMonorepoNeeded(projects, tree) {
117
+ // the base config is already created, migration has been done
118
+ if (tree.exists('.eslintrc.base.json')) {
119
+ return false;
120
+ }
121
+ const configs = Object.values(projects);
122
+ if (configs.length === 1) {
123
+ return false;
124
+ }
125
+ // get root project
126
+ const rootProject = configs.find((p) => p.root === '.');
127
+ if (!rootProject || !rootProject.targets) {
128
+ return false;
129
+ }
130
+ // find if root project has lint target
131
+ const lintTarget = (0, init_migration_1.findLintTarget)(rootProject);
132
+ if (!lintTarget) {
133
+ return false;
134
+ }
135
+ return true;
136
+ }
102
137
  //# 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":"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"}
1
+ {"version":3,"file":"lint-project.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/generators/lint-project/lint-project.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,4 @@
1
- import type { Tree } from '@nrwl/devkit';
2
- export declare function findEslintFile(tree: Tree): string | null;
1
+ import { Tree } from '@nrwl/devkit';
2
+ export declare const eslintConfigFileWhitelist: string[];
3
+ export declare const baseEsLintConfigFile = ".eslintrc.base.json";
4
+ export declare function findEslintFile(tree: Tree, projectRoot?: string): string | null;
@@ -1,10 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findEslintFile = void 0;
4
- const eslintFileList = ['.eslintrc.json', '.eslintrc.js'];
5
- function findEslintFile(tree) {
6
- for (const file of eslintFileList) {
7
- if (tree.exists(file)) {
3
+ exports.findEslintFile = exports.baseEsLintConfigFile = exports.eslintConfigFileWhitelist = void 0;
4
+ const devkit_1 = require("@nrwl/devkit");
5
+ exports.eslintConfigFileWhitelist = [
6
+ '.eslintrc',
7
+ '.eslintrc.js',
8
+ '.eslintrc.cjs',
9
+ '.eslintrc.yaml',
10
+ '.eslintrc.yml',
11
+ '.eslintrc.json',
12
+ 'eslint.config.js', // new format that requires `ESLINT_USE_FLAT_CONFIG=true`
13
+ ];
14
+ exports.baseEsLintConfigFile = '.eslintrc.base.json';
15
+ function findEslintFile(tree, projectRoot = '') {
16
+ if (projectRoot === '' && tree.exists(exports.baseEsLintConfigFile)) {
17
+ return exports.baseEsLintConfigFile;
18
+ }
19
+ for (const file of exports.eslintConfigFileWhitelist) {
20
+ if (tree.exists((0, devkit_1.joinPathFragments)(projectRoot, file))) {
8
21
  return file;
9
22
  }
10
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eslint-file.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/generators/utils/eslint-file.ts"],"names":[],"mappings":";;;AAEA,MAAM,cAAc,GAAG,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;AAE1D,SAAgB,cAAc,CAAC,IAAU;IACvC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE;QACjC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACrB,OAAO,IAAI,CAAC;SACb;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAPD,wCAOC"}
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"}
@@ -0,0 +1,2 @@
1
+ import { Tree } from '@nrwl/devkit';
2
+ export declare function getEslintTargets(tree: Tree): Set<string>;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getEslintTargets = void 0;
4
+ const executor_options_utils_1 = require("@nrwl/devkit/src/generators/executor-options-utils");
5
+ function getEslintTargets(tree) {
6
+ const eslintTargetNames = new Set();
7
+ (0, executor_options_utils_1.forEachExecutorOptions)(tree, '@nrwl/linter:eslint', (_, __, target) => {
8
+ eslintTargetNames.add(target);
9
+ });
10
+ return eslintTargetNames;
11
+ }
12
+ exports.getEslintTargets = getEslintTargets;
13
+ //# sourceMappingURL=eslint-targets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eslint-targets.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/generators/utils/eslint-targets.ts"],"names":[],"mappings":";;;AACA,+FAA4F;AAE5F,SAAgB,gBAAgB,CAAC,IAAU;IACzC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,IAAA,+CAAsB,EAAC,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;QACpE,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAND,4CAMC"}
@@ -1,5 +1,4 @@
1
1
  export declare enum Linter {
2
2
  EsLint = "eslint",
3
- TsLint = "tslint",
4
3
  None = "none"
5
4
  }
@@ -4,7 +4,6 @@ exports.Linter = void 0;
4
4
  var Linter;
5
5
  (function (Linter) {
6
6
  Linter["EsLint"] = "eslint";
7
- Linter["TsLint"] = "tslint";
8
7
  Linter["None"] = "none";
9
8
  })(Linter = exports.Linter || (exports.Linter = {}));
10
9
  //# sourceMappingURL=linter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"linter.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/generators/utils/linter.ts"],"names":[],"mappings":";;;AAAA,IAAY,MAIX;AAJD,WAAY,MAAM;IAChB,2BAAiB,CAAA;IACjB,2BAAiB,CAAA;IACjB,uBAAa,CAAA;AACf,CAAC,EAJW,MAAM,GAAN,cAAM,KAAN,cAAM,QAIjB"}
1
+ {"version":3,"file":"linter.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/generators/utils/linter.ts"],"names":[],"mappings":";;;AAAA,IAAY,MAGX;AAHD,WAAY,MAAM;IAChB,2BAAiB,CAAA;IACjB,uBAAa,CAAA;AACf,CAAC,EAHW,MAAM,GAAN,cAAM,KAAN,cAAM,QAGjB"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file sets you up with with structure needed for an ESLint rule.
2
+ * This file sets you up with structure needed for an ESLint rule.
3
3
  *
4
4
  * It leverages utilities from @typescript-eslint to allow TypeScript to
5
5
  * provide autocompletions etc for the configuration.
@@ -5,16 +5,6 @@
5
5
  "title": "Create a new Workspace Lint Rule",
6
6
  "description": "Create a new Workspace Lint Rule.",
7
7
  "type": "object",
8
- "examples": [
9
- {
10
- "command": "nx g @nrwl/linter:workspace-rule my-custom-rule",
11
- "description": "Create a new workspace lint rule called my-custom-rule"
12
- },
13
- {
14
- "command": "nx g @nrwl/linter:workspace-rule --name=my-custom-rule --directory=a/b/c",
15
- "description": "Create a new workspace lint rule located at `tools/eslint-rules/a/b/c/my-custom-rule.ts`"
16
- }
17
- ],
18
8
  "properties": {
19
9
  "name": {
20
10
  "type": "string",
@@ -31,5 +21,6 @@
31
21
  "default": "rules"
32
22
  }
33
23
  },
34
- "required": ["name", "directory"]
24
+ "required": ["name", "directory"],
25
+ "examplesFile": "../../../docs/workspace-rule-examples.md"
35
26
  }
@@ -3,5 +3,5 @@ export interface LintWorkspaceRuleGeneratorOptions {
3
3
  name: string;
4
4
  directory: string;
5
5
  }
6
- export declare function lintWorkspaceRuleGenerator(tree: Tree, options: LintWorkspaceRuleGeneratorOptions): Promise<import("@nrwl/devkit").GeneratorCallback>;
6
+ export declare function lintWorkspaceRuleGenerator(tree: Tree, options: LintWorkspaceRuleGeneratorOptions): Promise<any>;
7
7
  export declare const lintWorkspaceRuleSchematic: (generatorOptions: LintWorkspaceRuleGeneratorOptions) => (tree: any, context: any) => Promise<any>;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.lintWorkspaceRuleSchematic = exports.lintWorkspaceRuleGenerator = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const devkit_1 = require("@nrwl/devkit");
6
- const strings_1 = require("@nrwl/workspace/src/utils/strings");
6
+ const string_utils_1 = require("@nrwl/devkit/src/utils/string-utils");
7
7
  const path_1 = require("path");
8
8
  const ts = require("typescript");
9
9
  const workspace_lint_rules_1 = require("../../utils/workspace-lint-rules");
@@ -19,7 +19,7 @@ function lintWorkspaceRuleGenerator(tree, options) {
19
19
  tmpl: '',
20
20
  name: options.name,
21
21
  });
22
- const nameCamelCase = (0, strings_1.camelize)(options.name);
22
+ const nameCamelCase = (0, string_utils_1.camelize)(options.name);
23
23
  /**
24
24
  * Import the new rule into the workspace plugin index.ts and
25
25
  * register it ready for use in .eslintrc.json configs.
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-rule.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/generators/workspace-rule/workspace-rule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-rule.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/generators/workspace-rule/workspace-rule.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Tree } from '@nrwl/devkit';
2
2
  export declare const WORKSPACE_RULES_PROJECT_NAME = "eslint-rules";
3
3
  export declare const WORKSPACE_PLUGIN_DIR = "tools/eslint-rules";
4
- export declare function lintWorkspaceRulesProjectGenerator(tree: Tree): Promise<import("@nrwl/devkit").GeneratorCallback>;
4
+ export declare function lintWorkspaceRulesProjectGenerator(tree: Tree): Promise<any>;
5
5
  export declare const lintWorkspaceRulesProjectSchematic: (generatorOptions: any) => (tree: any, context: any) => Promise<any>;
@@ -3,16 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.lintWorkspaceRulesProjectSchematic = exports.lintWorkspaceRulesProjectGenerator = exports.WORKSPACE_PLUGIN_DIR = exports.WORKSPACE_RULES_PROJECT_NAME = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const devkit_1 = require("@nrwl/devkit");
6
- const jest_1 = require("@nrwl/jest");
7
- const typescript_1 = require("@nrwl/workspace/src/utilities/typescript");
6
+ const js_1 = require("@nrwl/js");
8
7
  const path_1 = require("path");
9
8
  const workspace_lint_rules_1 = require("../../utils/workspace-lint-rules");
10
9
  const versions_1 = require("nx/src/utils/versions");
10
+ const versions_2 = require("../../utils/versions");
11
11
  exports.WORKSPACE_RULES_PROJECT_NAME = 'eslint-rules';
12
12
  exports.WORKSPACE_PLUGIN_DIR = 'tools/eslint-rules';
13
13
  function lintWorkspaceRulesProjectGenerator(tree) {
14
14
  var _a, _b;
15
15
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
16
+ const { addPropertyToJestConfig, jestProjectGenerator } = (0, devkit_1.ensurePackage)('@nrwl/jest', versions_2.nxVersion);
16
17
  // Noop if the workspace rules project already exists
17
18
  try {
18
19
  (0, devkit_1.readProjectConfiguration)(tree, exports.WORKSPACE_RULES_PROJECT_NAME);
@@ -29,29 +30,49 @@ function lintWorkspaceRulesProjectGenerator(tree) {
29
30
  (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, 'files'), workspace_lint_rules_1.workspaceLintPluginDir, {
30
31
  tmpl: '',
31
32
  offsetFromRoot: (0, devkit_1.offsetFromRoot)(exports.WORKSPACE_PLUGIN_DIR),
32
- rootTsConfigPath: (0, typescript_1.getRelativePathToRootTsConfig)(tree, exports.WORKSPACE_PLUGIN_DIR),
33
+ rootTsConfigPath: (0, js_1.getRelativePathToRootTsConfig)(tree, exports.WORKSPACE_PLUGIN_DIR),
33
34
  });
34
35
  /**
35
36
  * Ensure that when workspace rules are updated they cause all projects to be affected for now.
36
37
  * TODO: Explore writing a ProjectGraph plugin to make this more surgical.
37
38
  */
38
- const workspaceConfig = (0, devkit_1.readWorkspaceConfiguration)(tree);
39
- if ((_b = (_a = workspaceConfig.targetDefaults) === null || _a === void 0 ? void 0 : _a.lint) === null || _b === void 0 ? void 0 : _b.inputs) {
40
- workspaceConfig.targetDefaults.lint.inputs.push(`{workspaceRoot}/${exports.WORKSPACE_PLUGIN_DIR}/**/*`);
41
- (0, devkit_1.updateWorkspaceConfiguration)(tree, workspaceConfig);
39
+ const nxJson = (0, devkit_1.readNxJson)(tree);
40
+ if ((_b = (_a = nxJson.targetDefaults) === null || _a === void 0 ? void 0 : _a.lint) === null || _b === void 0 ? void 0 : _b.inputs) {
41
+ nxJson.targetDefaults.lint.inputs.push(`{workspaceRoot}/${exports.WORKSPACE_PLUGIN_DIR}/**/*`);
42
+ (0, devkit_1.updateNxJson)(tree, nxJson);
42
43
  }
43
44
  // Add jest to the project and return installation task
44
- const installTask = yield (0, jest_1.jestProjectGenerator)(tree, {
45
+ const installTask = yield jestProjectGenerator(tree, {
45
46
  project: exports.WORKSPACE_RULES_PROJECT_NAME,
46
47
  supportTsx: false,
47
48
  skipSerializers: true,
48
49
  setupFile: 'none',
49
50
  compiler: 'tsc',
51
+ skipFormat: true,
52
+ });
53
+ (0, devkit_1.updateJson)(tree, (0, path_1.join)(workspace_lint_rules_1.workspaceLintPluginDir, 'tsconfig.spec.json'), (json) => {
54
+ if (json.include) {
55
+ json.include = json.include.map((v) => {
56
+ if (v.startsWith('src/**')) {
57
+ return v.replace('src/', '');
58
+ }
59
+ return v;
60
+ });
61
+ }
62
+ if (json.exclude) {
63
+ json.exclude = json.exclude.map((v) => {
64
+ if (v.startsWith('src/**')) {
65
+ return v.replace('src/', '');
66
+ }
67
+ return v;
68
+ });
69
+ }
70
+ return json;
50
71
  });
51
72
  // Add swc dependencies
52
73
  (0, devkit_1.addDependenciesToPackageJson)(tree, {}, { '@swc-node/register': versions_1.swcNodeVersion, '@swc/core': versions_1.swcCoreVersion });
53
74
  // Add extra config to the jest.config.ts file to allow ESLint 8 exports mapping to work with jest
54
- (0, jest_1.addPropertyToJestConfig)(tree, (0, devkit_1.joinPathFragments)(exports.WORKSPACE_PLUGIN_DIR, 'jest.config.ts'), 'moduleNameMapper', {
75
+ addPropertyToJestConfig(tree, (0, devkit_1.joinPathFragments)(exports.WORKSPACE_PLUGIN_DIR, 'jest.config.ts'), 'moduleNameMapper', {
55
76
  '@eslint/eslintrc': '@eslint/eslintrc/dist/eslintrc-universal.cjs',
56
77
  });
57
78
  yield (0, devkit_1.formatFiles)(tree);