@nrwl/linter 16.0.0-beta.0 → 16.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/executors.json +5 -5
  2. package/generators.json +2 -28
  3. package/index.d.ts +1 -5
  4. package/index.js +1 -13
  5. package/index.js.map +1 -1
  6. package/package.json +7 -20
  7. package/README.md +0 -61
  8. package/migrations.json +0 -226
  9. package/src/executors/eslint/compat.d.ts +0 -2
  10. package/src/executors/eslint/compat.js +0 -6
  11. package/src/executors/eslint/compat.js.map +0 -1
  12. package/src/executors/eslint/hasher.d.ts +0 -7
  13. package/src/executors/eslint/hasher.js +0 -47
  14. package/src/executors/eslint/hasher.js.map +0 -1
  15. package/src/executors/eslint/lint.impl.d.ts +0 -5
  16. package/src/executors/eslint/lint.impl.js +0 -116
  17. package/src/executors/eslint/lint.impl.js.map +0 -1
  18. package/src/executors/eslint/schema.d.ts +0 -38
  19. package/src/executors/eslint/schema.json +0 -139
  20. package/src/executors/eslint/utility/eslint-utils.d.ts +0 -4
  21. package/src/executors/eslint/utility/eslint-utils.js +0 -52
  22. package/src/executors/eslint/utility/eslint-utils.js.map +0 -1
  23. package/src/generators/init/global-eslint-config.d.ts +0 -36
  24. package/src/generators/init/global-eslint-config.js +0 -77
  25. package/src/generators/init/global-eslint-config.js.map +0 -1
  26. package/src/generators/init/init-migration.d.ts +0 -3
  27. package/src/generators/init/init-migration.js +0 -68
  28. package/src/generators/init/init-migration.js.map +0 -1
  29. package/src/generators/init/init.d.ts +0 -9
  30. package/src/generators/init/init.js +0 -63
  31. package/src/generators/init/init.js.map +0 -1
  32. package/src/generators/lint-project/lint-project.d.ts +0 -16
  33. package/src/generators/lint-project/lint-project.js +0 -137
  34. package/src/generators/lint-project/lint-project.js.map +0 -1
  35. package/src/generators/utils/eslint-file.d.ts +0 -4
  36. package/src/generators/utils/eslint-file.js +0 -27
  37. package/src/generators/utils/eslint-file.js.map +0 -1
  38. package/src/generators/utils/eslint-targets.d.ts +0 -2
  39. package/src/generators/utils/eslint-targets.js +0 -13
  40. package/src/generators/utils/eslint-targets.js.map +0 -1
  41. package/src/generators/utils/linter.d.ts +0 -4
  42. package/src/generators/utils/linter.js +0 -9
  43. package/src/generators/utils/linter.js.map +0 -1
  44. package/src/generators/workspace-rule/files/__name__.spec.ts__tmpl__ +0 -11
  45. package/src/generators/workspace-rule/files/__name__.ts__tmpl__ +0 -37
  46. package/src/generators/workspace-rule/schema.json +0 -26
  47. package/src/generators/workspace-rule/workspace-rule.d.ts +0 -7
  48. package/src/generators/workspace-rule/workspace-rule.js +0 -79
  49. package/src/generators/workspace-rule/workspace-rule.js.map +0 -1
  50. package/src/generators/workspace-rules-project/files/index.ts__tmpl__ +0 -27
  51. package/src/generators/workspace-rules-project/files/tsconfig.json__tmpl__ +0 -13
  52. package/src/generators/workspace-rules-project/files/tsconfig.lint.json__tmpl__ +0 -9
  53. package/src/generators/workspace-rules-project/schema.json +0 -23
  54. package/src/generators/workspace-rules-project/workspace-rules-project.d.ts +0 -8
  55. package/src/generators/workspace-rules-project/workspace-rules-project.js +0 -86
  56. package/src/generators/workspace-rules-project/workspace-rules-project.js.map +0 -1
  57. package/src/migrations/update-12-4-0/remove-eslint-project-config-if-no-type-checking-rules.d.ts +0 -2
  58. package/src/migrations/update-12-4-0/remove-eslint-project-config-if-no-type-checking-rules.js +0 -32
  59. package/src/migrations/update-12-4-0/remove-eslint-project-config-if-no-type-checking-rules.js.map +0 -1
  60. package/src/migrations/update-12-9-0/add-outputs.d.ts +0 -2
  61. package/src/migrations/update-12-9-0/add-outputs.js +0 -23
  62. package/src/migrations/update-12-9-0/add-outputs.js.map +0 -1
  63. package/src/migrations/update-13-3-0/eslint-8-updates.d.ts +0 -2
  64. package/src/migrations/update-13-3-0/eslint-8-updates.js +0 -44
  65. package/src/migrations/update-13-3-0/eslint-8-updates.js.map +0 -1
  66. package/src/migrations/update-14-1-9/add-swc-deps-if-needed.d.ts +0 -2
  67. package/src/migrations/update-14-1-9/add-swc-deps-if-needed.js +0 -20
  68. package/src/migrations/update-14-1-9/add-swc-deps-if-needed.js.map +0 -1
  69. package/src/migrations/update-14-4-4/experimental-to-utils-deps.d.ts +0 -2
  70. package/src/migrations/update-14-4-4/experimental-to-utils-deps.js +0 -30
  71. package/src/migrations/update-14-4-4/experimental-to-utils-deps.js.map +0 -1
  72. package/src/migrations/update-14-4-4/experimental-to-utils-rules.d.ts +0 -2
  73. package/src/migrations/update-14-4-4/experimental-to-utils-rules.js +0 -38
  74. package/src/migrations/update-14-4-4/experimental-to-utils-rules.js.map +0 -1
  75. package/src/migrations/update-15-0-0/add-eslint-inputs.d.ts +0 -2
  76. package/src/migrations/update-15-0-0/add-eslint-inputs.js +0 -33
  77. package/src/migrations/update-15-0-0/add-eslint-inputs.js.map +0 -1
  78. package/src/migrations/update-15-7-1/add-eslint-ignore.d.ts +0 -2
  79. package/src/migrations/update-15-7-1/add-eslint-ignore.js +0 -42
  80. package/src/migrations/update-15-7-1/add-eslint-ignore.js.map +0 -1
  81. package/src/utils/convert-tslint-to-eslint/convert-nx-enforce-module-boundaries-rule.d.ts +0 -5
  82. package/src/utils/convert-tslint-to-eslint/convert-nx-enforce-module-boundaries-rule.js +0 -57
  83. package/src/utils/convert-tslint-to-eslint/convert-nx-enforce-module-boundaries-rule.js.map +0 -1
  84. package/src/utils/convert-tslint-to-eslint/convert-to-eslint-config.d.ts +0 -9
  85. package/src/utils/convert-tslint-to-eslint/convert-to-eslint-config.js +0 -152
  86. package/src/utils/convert-tslint-to-eslint/convert-to-eslint-config.js.map +0 -1
  87. package/src/utils/convert-tslint-to-eslint/example-tslint-configs.d.ts +0 -326
  88. package/src/utils/convert-tslint-to-eslint/example-tslint-configs.js +0 -325
  89. package/src/utils/convert-tslint-to-eslint/example-tslint-configs.js.map +0 -1
  90. package/src/utils/convert-tslint-to-eslint/index.d.ts +0 -2
  91. package/src/utils/convert-tslint-to-eslint/index.js +0 -9
  92. package/src/utils/convert-tslint-to-eslint/index.js.map +0 -1
  93. package/src/utils/convert-tslint-to-eslint/project-converter.d.ts +0 -72
  94. package/src/utils/convert-tslint-to-eslint/project-converter.js +0 -396
  95. package/src/utils/convert-tslint-to-eslint/project-converter.js.map +0 -1
  96. package/src/utils/convert-tslint-to-eslint/utils.d.ts +0 -10
  97. package/src/utils/convert-tslint-to-eslint/utils.js +0 -91
  98. package/src/utils/convert-tslint-to-eslint/utils.js.map +0 -1
  99. package/src/utils/rules-requiring-type-checking.d.ts +0 -3
  100. package/src/utils/rules-requiring-type-checking.js +0 -88
  101. package/src/utils/rules-requiring-type-checking.js.map +0 -1
  102. package/src/utils/testing.d.ts +0 -2
  103. package/src/utils/testing.js +0 -13
  104. package/src/utils/testing.js.map +0 -1
  105. package/src/utils/versions.d.ts +0 -5
  106. package/src/utils/versions.js +0 -9
  107. package/src/utils/versions.js.map +0 -1
  108. package/src/utils/workspace-lint-rules.d.ts +0 -1
  109. package/src/utils/workspace-lint-rules.js +0 -6
  110. package/src/utils/workspace-lint-rules.js.map +0 -1
@@ -1,137 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.lintProjectGenerator = exports.mapLintPattern = void 0;
4
- const tslib_1 = require("tslib");
5
- const devkit_1 = require("@nrwl/devkit");
6
- const eslint_file_1 = require("../utils/eslint-file");
7
- const path_1 = require("path");
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");
11
- function createEsLintConfiguration(tree, projectConfig, setParserOptionsProject) {
12
- const eslintConfig = (0, eslint_file_1.findEslintFile)(tree);
13
- (0, devkit_1.writeJson)(tree, (0, path_1.join)(projectConfig.root, `.eslintrc.json`), {
14
- extends: eslintConfig
15
- ? [`${(0, devkit_1.offsetFromRoot)(projectConfig.root)}${eslintConfig}`]
16
- : undefined,
17
- // Include project files to be linted since the global one excludes all files.
18
- ignorePatterns: ['!**/*'],
19
- overrides: [
20
- {
21
- files: ['*.ts', '*.tsx', '*.js', '*.jsx'],
22
- /**
23
- * NOTE: We no longer set parserOptions.project by default when creating new projects.
24
- *
25
- * We have observed that users rarely add rules requiring type-checking to their Nx workspaces, and therefore
26
- * do not actually need the capabilites which parserOptions.project provides. When specifying parserOptions.project,
27
- * typescript-eslint needs to create full TypeScript Programs for you. When omitting it, it can perform a simple
28
- * parse (and AST tranformation) of the source files it encounters during a lint run, which is much faster and much
29
- * less memory intensive.
30
- *
31
- * In the rare case that users attempt to add rules requiring type-checking to their setup later on (and haven't set
32
- * parserOptions.project), the executor will attempt to look for the particular error typescript-eslint gives you
33
- * and provide feedback to the user.
34
- */
35
- parserOptions: !setParserOptionsProject
36
- ? undefined
37
- : {
38
- project: [`${projectConfig.root}/tsconfig.*?.json`],
39
- },
40
- /**
41
- * Having an empty rules object present makes it more obvious to the user where they would
42
- * extend things from if they needed to
43
- */
44
- rules: {},
45
- },
46
- {
47
- files: ['*.ts', '*.tsx'],
48
- rules: {},
49
- },
50
- {
51
- files: ['*.js', '*.jsx'],
52
- rules: {},
53
- },
54
- ],
55
- });
56
- }
57
- function mapLintPattern(projectRoot, extension, rootProject) {
58
- const infix = rootProject ? 'src/' : '';
59
- return `${projectRoot}/${infix}**/*.${extension}`;
60
- }
61
- exports.mapLintPattern = mapLintPattern;
62
- function lintProjectGenerator(tree, options) {
63
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
64
- const installTask = (0, init_1.lintInitGenerator)(tree, {
65
- linter: options.linter,
66
- unitTestRunner: options.unitTestRunner,
67
- skipPackageJson: options.skipPackageJson,
68
- rootProject: options.rootProject,
69
- });
70
- const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.project);
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
- }
94
- }
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);
100
- }
101
- (0, devkit_1.updateProjectConfiguration)(tree, options.project, projectConfig);
102
- if (!options.skipFormat) {
103
- yield (0, devkit_1.formatFiles)(tree);
104
- }
105
- return installTask;
106
- });
107
- }
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
- }
137
- //# sourceMappingURL=lint-project.js.map
@@ -1 +0,0 @@
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,4 +0,0 @@
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,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
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))) {
21
- return file;
22
- }
23
- }
24
- return null;
25
- }
26
- exports.findEslintFile = findEslintFile;
27
- //# sourceMappingURL=eslint-file.js.map
@@ -1 +0,0 @@
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"}
@@ -1,2 +0,0 @@
1
- import { Tree } from '@nrwl/devkit';
2
- export declare function getEslintTargets(tree: Tree): Set<string>;
@@ -1,13 +0,0 @@
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
@@ -1 +0,0 @@
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,4 +0,0 @@
1
- export declare enum Linter {
2
- EsLint = "eslint",
3
- None = "none"
4
- }
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Linter = void 0;
4
- var Linter;
5
- (function (Linter) {
6
- Linter["EsLint"] = "eslint";
7
- Linter["None"] = "none";
8
- })(Linter = exports.Linter || (exports.Linter = {}));
9
- //# sourceMappingURL=linter.js.map
@@ -1 +0,0 @@
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,11 +0,0 @@
1
- import { TSESLint } from '@typescript-eslint/utils';
2
- import { rule, RULE_NAME } from './<%= name %>';
3
-
4
- const ruleTester = new TSESLint.RuleTester({
5
- parser: require.resolve('@typescript-eslint/parser'),
6
- });
7
-
8
- ruleTester.run(RULE_NAME, rule, {
9
- valid: [`const example = true;`],
10
- invalid: [],
11
- });
@@ -1,37 +0,0 @@
1
- /**
2
- * This file sets you up with structure needed for an ESLint rule.
3
- *
4
- * It leverages utilities from @typescript-eslint to allow TypeScript to
5
- * provide autocompletions etc for the configuration.
6
- *
7
- * Your rule's custom logic will live within the create() method below
8
- * and you can learn more about writing ESLint rules on the official guide:
9
- *
10
- * https://eslint.org/docs/developer-guide/working-with-rules
11
- *
12
- * You can also view many examples of existing rules here:
13
- *
14
- * https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/eslint-plugin/src/rules
15
- */
16
-
17
- import { ESLintUtils } from '@typescript-eslint/utils';
18
-
19
- // NOTE: The rule will be available in ESLint configs as "@nrwl/nx/workspace/<%= name %>"
20
- export const RULE_NAME = '<%= name %>';
21
-
22
- export const rule = ESLintUtils.RuleCreator(() => __filename)({
23
- name: RULE_NAME,
24
- meta: {
25
- type: 'problem',
26
- docs: {
27
- description: ``,
28
- recommended: 'error',
29
- },
30
- schema: [],
31
- messages: {},
32
- },
33
- defaultOptions: [],
34
- create(context) {
35
- return {};
36
- },
37
- });
@@ -1,26 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/schema",
3
- "$id": "NxWorkspaceRule",
4
- "cli": "nx",
5
- "title": "Create a new Workspace Lint Rule",
6
- "description": "Create a new Workspace Lint Rule.",
7
- "type": "object",
8
- "properties": {
9
- "name": {
10
- "type": "string",
11
- "description": "The name of the new rule.",
12
- "$default": {
13
- "$source": "argv",
14
- "index": 0
15
- }
16
- },
17
- "directory": {
18
- "type": "string",
19
- "description": "Create the rule under this directory within `tools/eslint-rules/` (can be nested).",
20
- "alias": "dir",
21
- "default": "rules"
22
- }
23
- },
24
- "required": ["name", "directory"],
25
- "examplesFile": "../../../docs/workspace-rule-examples.md"
26
- }
@@ -1,7 +0,0 @@
1
- import { Tree } from '@nrwl/devkit';
2
- export interface LintWorkspaceRuleGeneratorOptions {
3
- name: string;
4
- directory: string;
5
- }
6
- export declare function lintWorkspaceRuleGenerator(tree: Tree, options: LintWorkspaceRuleGeneratorOptions): Promise<any>;
7
- export declare const lintWorkspaceRuleSchematic: (generatorOptions: LintWorkspaceRuleGeneratorOptions) => (tree: any, context: any) => Promise<any>;
@@ -1,79 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.lintWorkspaceRuleSchematic = exports.lintWorkspaceRuleGenerator = void 0;
4
- const tslib_1 = require("tslib");
5
- const devkit_1 = require("@nrwl/devkit");
6
- const string_utils_1 = require("@nrwl/devkit/src/utils/string-utils");
7
- const path_1 = require("path");
8
- const ts = require("typescript");
9
- const workspace_lint_rules_1 = require("../../utils/workspace-lint-rules");
10
- const workspace_rules_project_1 = require("../workspace-rules-project/workspace-rules-project");
11
- function lintWorkspaceRuleGenerator(tree, options) {
12
- var _a;
13
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
14
- // Ensure that the workspace rules project has been created
15
- const projectGeneratorCallback = yield (0, workspace_rules_project_1.lintWorkspaceRulesProjectGenerator)(tree, { skipFormat: true });
16
- const ruleDir = (0, devkit_1.joinPathFragments)(workspace_lint_rules_1.workspaceLintPluginDir, (_a = options.directory) !== null && _a !== void 0 ? _a : '');
17
- // Generate the required files for the new rule
18
- (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, 'files'), ruleDir, {
19
- tmpl: '',
20
- name: options.name,
21
- });
22
- const nameCamelCase = (0, string_utils_1.camelize)(options.name);
23
- /**
24
- * Import the new rule into the workspace plugin index.ts and
25
- * register it ready for use in .eslintrc.json configs.
26
- */
27
- const pluginIndexPath = (0, devkit_1.joinPathFragments)(workspace_lint_rules_1.workspaceLintPluginDir, 'index.ts');
28
- const existingPluginIndexContents = tree.read(pluginIndexPath, 'utf-8');
29
- const pluginIndexSourceFile = ts.createSourceFile(pluginIndexPath, existingPluginIndexContents, ts.ScriptTarget.Latest, true);
30
- function findRulesObject(node) {
31
- if (ts.isPropertyAssignment(node) &&
32
- ts.isIdentifier(node.name) &&
33
- node.name.text === 'rules' &&
34
- ts.isObjectLiteralExpression(node.initializer)) {
35
- return node.initializer;
36
- }
37
- return node.forEachChild(findRulesObject);
38
- }
39
- const rulesObject = pluginIndexSourceFile.forEachChild((node) => findRulesObject(node));
40
- if (rulesObject) {
41
- const ruleNameSymbol = `${nameCamelCase}Name`;
42
- const ruleConfigSymbol = nameCamelCase;
43
- /**
44
- * If the rules object already has entries, we need to make sure our insertion
45
- * takes commas into account.
46
- */
47
- let leadingComma = '';
48
- if (rulesObject.properties.length > 0) {
49
- if (!rulesObject.properties.hasTrailingComma) {
50
- leadingComma = ',';
51
- }
52
- }
53
- const newContents = (0, devkit_1.applyChangesToString)(existingPluginIndexContents, [
54
- {
55
- type: devkit_1.ChangeType.Insert,
56
- index: 0,
57
- text: `import { RULE_NAME as ${ruleNameSymbol}, rule as ${ruleConfigSymbol} } from './${options.directory ? `${options.directory}/` : ''}${options.name}';\n`,
58
- },
59
- {
60
- type: devkit_1.ChangeType.Insert,
61
- index: rulesObject.getEnd() - 1,
62
- text: `${leadingComma}[${ruleNameSymbol}]: ${ruleConfigSymbol}\n`,
63
- },
64
- ]);
65
- tree.write(pluginIndexPath, newContents);
66
- }
67
- yield (0, devkit_1.formatFiles)(tree);
68
- devkit_1.logger.info(`NX Reminder: Once you have finished writing your rule logic, you need to actually enable the rule within an appropriate .eslintrc.json in your workspace, for example:
69
-
70
- "rules": {
71
- "@nrwl/nx/workspace/${options.name}": "error"
72
- }
73
- `);
74
- return projectGeneratorCallback;
75
- });
76
- }
77
- exports.lintWorkspaceRuleGenerator = lintWorkspaceRuleGenerator;
78
- exports.lintWorkspaceRuleSchematic = (0, devkit_1.convertNxGenerator)(lintWorkspaceRuleGenerator);
79
- //# sourceMappingURL=workspace-rule.js.map
@@ -1 +0,0 @@
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,27 +0,0 @@
1
- /**
2
- * Import your custom workspace rules at the top of this file.
3
- *
4
- * For example:
5
- *
6
- * import { RULE_NAME as myCustomRuleName, rule as myCustomRule } from './rules/my-custom-rule';
7
- *
8
- * In order to quickly get started with writing rules you can use the
9
- * following generator command and provide your desired rule name:
10
- *
11
- * ```sh
12
- * npx nx g @nrwl/linter:workspace-rule {{ NEW_RULE_NAME }}
13
- * ```
14
- */
15
-
16
- module.exports = {
17
- /**
18
- * Apply the imported custom rules here.
19
- *
20
- * For example (using the example import above):
21
- *
22
- * rules: {
23
- * [myCustomRuleName]: myCustomRule
24
- * }
25
- */
26
- rules: {}
27
- };
@@ -1,13 +0,0 @@
1
- {
2
- "extends": "<%= rootTsConfigPath %>",
3
- "compilerOptions": {
4
- "module": "commonjs"
5
- },
6
- "files": [],
7
- "include": [],
8
- "references": [
9
- {
10
- "path": "./tsconfig.lint.json"
11
- }
12
- ]
13
- }
@@ -1,9 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "compilerOptions": {
4
- "outDir": "<%= offsetFromRoot %>dist/out-tsc",
5
- "types": ["node"]
6
- },
7
- "exclude": ["**/*.spec.ts"],
8
- "include": ["**/*.ts"]
9
- }
@@ -1,23 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/schema",
3
- "$id": "NxWorkspaceRulesProject",
4
- "cli": "nx",
5
- "title": "Create the Workspace Lint Rules Project",
6
- "description": "Create the Workspace Lint Rules Project.",
7
- "type": "object",
8
- "examples": [
9
- {
10
- "command": "nx g @nrwl/linter:workspace-rules-project",
11
- "description": "Create the Workspace Lint Rules Project"
12
- }
13
- ],
14
- "properties": {
15
- "skipFormat": {
16
- "description": "Skip formatting files.",
17
- "type": "boolean",
18
- "default": false,
19
- "x-priority": "internal"
20
- }
21
- },
22
- "required": []
23
- }
@@ -1,8 +0,0 @@
1
- import { Tree } from '@nrwl/devkit';
2
- export declare const WORKSPACE_RULES_PROJECT_NAME = "eslint-rules";
3
- export declare const WORKSPACE_PLUGIN_DIR = "tools/eslint-rules";
4
- export interface LintWorkspaceRulesProjectGeneratorOptions {
5
- skipFormat?: boolean;
6
- }
7
- export declare function lintWorkspaceRulesProjectGenerator(tree: Tree, options?: LintWorkspaceRulesProjectGeneratorOptions): Promise<any>;
8
- export declare const lintWorkspaceRulesProjectSchematic: (generatorOptions: LintWorkspaceRulesProjectGeneratorOptions) => (tree: any, context: any) => Promise<any>;
@@ -1,86 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.lintWorkspaceRulesProjectSchematic = exports.lintWorkspaceRulesProjectGenerator = exports.WORKSPACE_PLUGIN_DIR = exports.WORKSPACE_RULES_PROJECT_NAME = void 0;
4
- const tslib_1 = require("tslib");
5
- const devkit_1 = require("@nrwl/devkit");
6
- const js_1 = require("@nrwl/js");
7
- const path_1 = require("path");
8
- const workspace_lint_rules_1 = require("../../utils/workspace-lint-rules");
9
- const versions_1 = require("nx/src/utils/versions");
10
- const versions_2 = require("../../utils/versions");
11
- exports.WORKSPACE_RULES_PROJECT_NAME = 'eslint-rules';
12
- exports.WORKSPACE_PLUGIN_DIR = 'tools/eslint-rules';
13
- function lintWorkspaceRulesProjectGenerator(tree, options = {}) {
14
- var _a, _b;
15
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
16
- const { addPropertyToJestConfig, jestProjectGenerator } = (0, devkit_1.ensurePackage)('@nrwl/jest', versions_2.nxVersion);
17
- // Noop if the workspace rules project already exists
18
- try {
19
- (0, devkit_1.readProjectConfiguration)(tree, exports.WORKSPACE_RULES_PROJECT_NAME);
20
- return;
21
- }
22
- catch (_c) { }
23
- // Create the project, the test target is added below by the jest generator
24
- (0, devkit_1.addProjectConfiguration)(tree, exports.WORKSPACE_RULES_PROJECT_NAME, {
25
- root: exports.WORKSPACE_PLUGIN_DIR,
26
- sourceRoot: exports.WORKSPACE_PLUGIN_DIR,
27
- targets: {},
28
- });
29
- // Generate the required files
30
- (0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, 'files'), workspace_lint_rules_1.workspaceLintPluginDir, {
31
- tmpl: '',
32
- offsetFromRoot: (0, devkit_1.offsetFromRoot)(exports.WORKSPACE_PLUGIN_DIR),
33
- rootTsConfigPath: (0, js_1.getRelativePathToRootTsConfig)(tree, exports.WORKSPACE_PLUGIN_DIR),
34
- });
35
- /**
36
- * Ensure that when workspace rules are updated they cause all projects to be affected for now.
37
- * TODO: Explore writing a ProjectGraph plugin to make this more surgical.
38
- */
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);
43
- }
44
- // Add jest to the project and return installation task
45
- const installTask = yield jestProjectGenerator(tree, {
46
- project: exports.WORKSPACE_RULES_PROJECT_NAME,
47
- supportTsx: false,
48
- skipSerializers: true,
49
- setupFile: 'none',
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;
71
- });
72
- // Add swc dependencies
73
- (0, devkit_1.addDependenciesToPackageJson)(tree, {}, { '@swc-node/register': versions_1.swcNodeVersion, '@swc/core': versions_1.swcCoreVersion });
74
- // Add extra config to the jest.config.ts file to allow ESLint 8 exports mapping to work with jest
75
- addPropertyToJestConfig(tree, (0, devkit_1.joinPathFragments)(exports.WORKSPACE_PLUGIN_DIR, 'jest.config.ts'), 'moduleNameMapper', {
76
- '@eslint/eslintrc': '@eslint/eslintrc/dist/eslintrc-universal.cjs',
77
- });
78
- if (!options.skipFormat) {
79
- yield (0, devkit_1.formatFiles)(tree);
80
- }
81
- return installTask;
82
- });
83
- }
84
- exports.lintWorkspaceRulesProjectGenerator = lintWorkspaceRulesProjectGenerator;
85
- exports.lintWorkspaceRulesProjectSchematic = (0, devkit_1.convertNxGenerator)(lintWorkspaceRulesProjectGenerator);
86
- //# sourceMappingURL=workspace-rules-project.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-rules-project.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/generators/workspace-rules-project/workspace-rules-project.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import type { Tree } from '@nrwl/devkit';
2
- export default function removeESLintProjectConfigIfNoTypeCheckingRules(host: Tree): Promise<void>;
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const devkit_1 = require("@nrwl/devkit");
5
- const path_1 = require("path");
6
- const rules_requiring_type_checking_1 = require("../../utils/rules-requiring-type-checking");
7
- function updateProjectESLintConfigs(host) {
8
- const projects = (0, devkit_1.getProjects)(host);
9
- projects.forEach((p) => {
10
- const eslintConfigPath = (0, path_1.join)(p.root, '.eslintrc.json');
11
- if (!host.exists(eslintConfigPath)) {
12
- return;
13
- }
14
- return (0, devkit_1.updateJson)(host, eslintConfigPath, rules_requiring_type_checking_1.removeParserOptionsProjectIfNotRequired);
15
- });
16
- }
17
- function removeESLintProjectConfigIfNoTypeCheckingRules(host) {
18
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
19
- if (!host.exists('.eslintrc.json')) {
20
- return;
21
- }
22
- // If the root level config uses at least one rule requiring type-checking, do not migrate any project configs
23
- const rootESLintConfig = (0, devkit_1.readJson)(host, '.eslintrc.json');
24
- if ((0, rules_requiring_type_checking_1.hasRulesRequiringTypeChecking)(rootESLintConfig)) {
25
- return;
26
- }
27
- updateProjectESLintConfigs(host);
28
- yield (0, devkit_1.formatFiles)(host);
29
- });
30
- }
31
- exports.default = removeESLintProjectConfigIfNoTypeCheckingRules;
32
- //# sourceMappingURL=remove-eslint-project-config-if-no-type-checking-rules.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remove-eslint-project-config-if-no-type-checking-rules.js","sourceRoot":"","sources":["../../../../../../packages/linter/src/migrations/update-12-4-0/remove-eslint-project-config-if-no-type-checking-rules.ts"],"names":[],"mappings":";;;AAAA,yCAA8E;AAE9E,+BAA4B;AAC5B,6FAGmD;AAEnD,SAAS,0BAA0B,CAAC,IAAU;IAC5C,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACrB,MAAM,gBAAgB,GAAG,IAAA,WAAI,EAAC,CAAC,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;YAClC,OAAO;SACR;QACD,OAAO,IAAA,mBAAU,EACf,IAAI,EACJ,gBAAgB,EAChB,uEAAuC,CACxC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAA8B,8CAA8C,CAC1E,IAAU;;QAEV,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;YAClC,OAAO;SACR;QAED,8GAA8G;QAC9G,MAAM,gBAAgB,GAAG,IAAA,iBAAQ,EAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAC1D,IAAI,IAAA,6DAA6B,EAAC,gBAAgB,CAAC,EAAE;YACnD,OAAO;SACR;QACD,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CAAA;AAdD,iEAcC"}
@@ -1,2 +0,0 @@
1
- import { Tree } from '@nrwl/devkit';
2
- export default function addOutputs(tree: Tree): Promise<void>;