@nrwl/linter 15.3.0-beta.3 → 15.3.0-beta.4
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.
- package/CHANGELOG.md +1 -1
- package/package.json +5 -5
- package/src/generators/init/global-eslint-config.d.ts +36 -0
- package/src/generators/init/global-eslint-config.js +77 -0
- package/src/generators/init/global-eslint-config.js.map +1 -0
- package/src/generators/init/init-migration.d.ts +3 -0
- package/src/generators/init/init-migration.js +68 -0
- package/src/generators/init/init-migration.js.map +1 -0
- package/src/generators/init/init.d.ts +1 -0
- package/src/generators/init/init.js +2 -72
- package/src/generators/init/init.js.map +1 -1
- package/src/generators/lint-project/lint-project.d.ts +2 -0
- package/src/generators/lint-project/lint-project.js +59 -2
- package/src/generators/lint-project/lint-project.js.map +1 -1
- package/src/generators/utils/eslint-file.d.ts +3 -2
- package/src/generators/utils/eslint-file.js +9 -3
- package/src/generators/utils/eslint-file.js.map +1 -1
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.
|
|
6
|
+
# [15.3.0-beta.4](https://github.com/nrwl/nx/compare/15.2.0...15.3.0-beta.4) (2022-11-28)
|
|
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
|
+
"version": "15.3.0-beta.4",
|
|
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.
|
|
37
|
-
"@nrwl/jest": "15.3.0-beta.
|
|
36
|
+
"@nrwl/devkit": "15.3.0-beta.4",
|
|
37
|
+
"@nrwl/jest": "15.3.0-beta.4",
|
|
38
38
|
"@phenomnomnominal/tsquery": "4.1.1",
|
|
39
|
-
"nx": "15.3.0-beta.
|
|
39
|
+
"nx": "15.3.0-beta.4",
|
|
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": "
|
|
52
|
+
"gitHead": "1c70ac9571f64ecfd74d80546ad2b3e17c15866b"
|
|
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,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
|
|
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":";;;AACA,yCAOsB;AACtB,mDAK8B;AAG9B,sDAAsD;
|
|
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
|
-
|
|
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;
|
|
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
|
|
1
|
+
import { Tree } from '@nrwl/devkit';
|
|
2
2
|
export declare const eslintConfigFileWhitelist: string[];
|
|
3
|
-
export declare
|
|
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
|
-
|
|
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":";;;
|
|
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"}
|