@nrwl/linter 14.8.8 → 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
@@ -1,107 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const schematics_1 = require("@angular-devkit/schematics");
4
- const workspace_1 = require("@nrwl/workspace");
5
- /**
6
- * We want to update the JSON in such a way that we:
7
- * - translate the config to use overrides
8
- * - don't break existing setups
9
- *
10
- * In order to achieve the second point we need to assume
11
- * that any existing top level rules/plugins etc are intended
12
- * to be run on all source files.
13
- */
14
- function updateRootESLintConfig(host) {
15
- return host.exists('.eslintrc.json')
16
- ? (0, workspace_1.updateJsonInTree)('.eslintrc.json', (json) => {
17
- /**
18
- * If the user already has overrides specified it is likely they have "forged their own path"
19
- * when it comes to their ESLint setup, so we do nothing.
20
- */
21
- if (Array.isArray(json.overrides)) {
22
- return json;
23
- }
24
- let normalizedExtends = undefined;
25
- if (json.extends) {
26
- if (typeof json.extends === 'string') {
27
- normalizedExtends = [json.extends];
28
- }
29
- else if (Array.isArray(json.extends)) {
30
- normalizedExtends = json.extends;
31
- }
32
- }
33
- json.overrides = [
34
- /**
35
- * This configuration is intended to apply to all "source code" (but not
36
- * markup like HTML, or other custom file types like GraphQL).
37
- *
38
- * This is where we will apply any top-level config that the user currently
39
- * has to ensure that it behaves the same before and after the migration.
40
- */
41
- {
42
- files: ['*.ts', '*.tsx', '*.js', '*.jsx'],
43
- extends: undefinedIfEmptyArr(normalizedExtends
44
- ? normalizedExtends.filter((e) => e !== 'plugin:@nrwl/nx/typescript')
45
- : normalizedExtends),
46
- env: json.env,
47
- settings: json.settings,
48
- parser: json.parser,
49
- parserOptions: json.parserOptions,
50
- plugins: undefinedIfEmptyArr(json.plugins.filter((p) => p !== '@nrwl/nx') // remains at top-level, used everywhere
51
- ),
52
- rules: json.rules || {},
53
- },
54
- /**
55
- * This configuration is intended to apply to all TypeScript source files.
56
- * See the eslint-plugin-nx package for what is in the referenced shareable config.
57
- */
58
- {
59
- files: ['*.ts', '*.tsx'],
60
- extends: ['plugin:@nrwl/nx/typescript'],
61
- parserOptions: { project: './tsconfig.*?.json' },
62
- /**
63
- * Having an empty rules object present makes it more obvious to the user where they would
64
- * extend things from if they needed to
65
- */
66
- rules: {},
67
- },
68
- /**
69
- * This configuration is intended to apply to all JavaScript source files.
70
- * See the eslint-plugin-nx package for what is in the referenced shareable config.
71
- */
72
- {
73
- files: ['*.js', '*.jsx'],
74
- extends: ['plugin:@nrwl/nx/javascript'],
75
- /**
76
- * Having an empty rules object present makes it more obvious to the user where they would
77
- * extend things from if they needed to
78
- */
79
- rules: {},
80
- },
81
- ];
82
- /**
83
- * Clean up after copying config to main override
84
- */
85
- json.plugins = ['@nrwl/nx'];
86
- delete json.rules;
87
- delete json.extends;
88
- delete json.env;
89
- delete json.settings;
90
- delete json.globals;
91
- delete json.parser;
92
- delete json.parserOptions;
93
- return json;
94
- })
95
- : (0, schematics_1.noop)();
96
- }
97
- function undefinedIfEmptyArr(possibleArr) {
98
- if (Array.isArray(possibleArr) && possibleArr.length === 0) {
99
- return undefined;
100
- }
101
- return possibleArr;
102
- }
103
- function default_1() {
104
- return (0, schematics_1.chain)([updateRootESLintConfig, (0, workspace_1.formatFiles)()]);
105
- }
106
- exports.default = default_1;
107
- //# sourceMappingURL=update-root-eslint-config-to-use-overrides.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-root-eslint-config-to-use-overrides.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/migrations/update-10-4-0/update-root-eslint-config-to-use-overrides.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { Tree } from '@nrwl/devkit';
2
- export declare function updateTsConfigsWithEslint(host: Tree): Promise<void>;
3
- export default updateTsConfigsWithEslint;
@@ -1,95 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateTsConfigsWithEslint = void 0;
4
- const tslib_1 = require("tslib");
5
- const devkit_1 = require("@nrwl/devkit");
6
- const path_1 = require("path");
7
- function updateRootESLintConfig(host) {
8
- if (!host.exists('.eslintrc.json')) {
9
- return;
10
- }
11
- (0, devkit_1.updateJson)(host, '.eslintrc.json', (json) => {
12
- /**
13
- * If the user is still using OOTB Nx config, then they will have a "project"
14
- * parserOption set for TS files in their root config.
15
- *
16
- * We remove this to both be consistent with new workspace generation, and
17
- * to ensure they receive an explicit error if they miss off project level
18
- * configuration (instead of there being a silent, much slower fallback).
19
- */
20
- if (json.overrides) {
21
- json.overrides = json.overrides.map((o) => {
22
- if (o.parserOptions && o.parserOptions.project) {
23
- delete o.parserOptions.project;
24
- // If the parserOptions object is now empty as a result, delete it too
25
- if (Object.keys(o.parserOptions).length === 0) {
26
- delete o.parserOptions;
27
- }
28
- }
29
- return o;
30
- });
31
- }
32
- return json;
33
- });
34
- }
35
- function updateProjectESLintConfigs(host) {
36
- const projects = (0, devkit_1.getProjects)(host);
37
- projects.forEach((p) => {
38
- var _a, _b;
39
- const eslintConfigPath = (0, path_1.join)(p.root, '.eslintrc.json');
40
- if (!host.exists(eslintConfigPath)) {
41
- return;
42
- }
43
- const isNextJs = ((_b = (_a = p.targets) === null || _a === void 0 ? void 0 : _a.build) === null || _b === void 0 ? void 0 : _b.executor) === '@nrwl/next:build';
44
- const parserOptionsProjectVal = isNextJs
45
- ? [`${p.root}/tsconfig(.*)?.json`]
46
- : [`${p.root}/tsconfig.*?.json`];
47
- return (0, devkit_1.updateJson)(host, eslintConfigPath, (json) => {
48
- if (!json.overrides) {
49
- json.overrides = [
50
- {
51
- files: ['*.ts', '*.tsx', '*.js', '*.jsx'],
52
- parserOptions: {
53
- project: parserOptionsProjectVal,
54
- },
55
- /**
56
- * Having an empty rules object present makes it more obvious to the user where they would
57
- * extend things from if they needed to
58
- */
59
- rules: {},
60
- },
61
- {
62
- files: ['*.ts', '*.tsx'],
63
- rules: {},
64
- },
65
- {
66
- files: ['*.js', '*.jsx'],
67
- rules: {},
68
- },
69
- ];
70
- }
71
- else {
72
- if (!json.overrides.some((o) => o.parserOptions && o.parserOptions.project)) {
73
- json.overrides.unshift({
74
- files: ['*.ts', '*.tsx', '*.js', '*.jsx'],
75
- parserOptions: {
76
- project: parserOptionsProjectVal,
77
- },
78
- rules: {},
79
- });
80
- }
81
- }
82
- return json;
83
- });
84
- });
85
- }
86
- function updateTsConfigsWithEslint(host) {
87
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
88
- updateRootESLintConfig(host);
89
- updateProjectESLintConfigs(host);
90
- yield (0, devkit_1.formatFiles)(host);
91
- });
92
- }
93
- exports.updateTsConfigsWithEslint = updateTsConfigsWithEslint;
94
- exports.default = updateTsConfigsWithEslint;
95
- //# sourceMappingURL=always-use-project-level-tsconfigs-with-eslint.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"always-use-project-level-tsconfigs-with-eslint.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/migrations/update-11-5-0/always-use-project-level-tsconfigs-with-eslint.ts"],"names":[],"mappings":"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"}