@nrwl/eslint-plugin-nx 12.1.0 → 12.2.0
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nrwl/eslint-plugin-nx",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.2.0",
|
|
4
4
|
"description": "ESLint Plugin for Nx",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
"eslint-config-prettier": "^8.1.0"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@nrwl/devkit": "12.
|
|
36
|
-
"@nrwl/workspace": "12.
|
|
35
|
+
"@nrwl/devkit": "12.2.0",
|
|
36
|
+
"@nrwl/workspace": "12.2.0",
|
|
37
37
|
"@typescript-eslint/experimental-utils": "^4.3.0",
|
|
38
38
|
"confusing-browser-globals": "^1.0.9"
|
|
39
39
|
}
|
|
@@ -4,9 +4,10 @@ declare type Options = [
|
|
|
4
4
|
allow: string[];
|
|
5
5
|
depConstraints: DepConstraint[];
|
|
6
6
|
enforceBuildableLibDependency: boolean;
|
|
7
|
+
allowCircularSelfDependency: boolean;
|
|
7
8
|
}
|
|
8
9
|
];
|
|
9
|
-
export declare type MessageIds = 'noRelativeOrAbsoluteImportsAcrossLibraries' | 'noCircularDependencies' | 'noImportsOfApps' | 'noImportsOfE2e' | 'noImportOfNonBuildableLibraries' | 'noImportsOfLazyLoadedLibraries' | 'projectWithoutTagsCannotHaveDependencies' | 'tagConstraintViolation';
|
|
10
|
+
export declare type MessageIds = 'noRelativeOrAbsoluteImportsAcrossLibraries' | 'noSelfCircularDependencies' | 'noCircularDependencies' | 'noImportsOfApps' | 'noImportsOfE2e' | 'noImportOfNonBuildableLibraries' | 'noImportsOfLazyLoadedLibraries' | 'projectWithoutTagsCannotHaveDependencies' | 'tagConstraintViolation';
|
|
10
11
|
export declare const RULE_NAME = "enforce-module-boundaries";
|
|
11
12
|
declare const _default: import("@typescript-eslint/experimental-utils/dist/ts-eslint/Rule").RuleModule<MessageIds, Options, import("@typescript-eslint/experimental-utils/dist/ts-eslint/Rule").RuleListener>;
|
|
12
13
|
export default _default;
|
|
@@ -11,6 +11,7 @@ const file_utils_1 = require("@nrwl/workspace/src/core/file-utils");
|
|
|
11
11
|
const target_project_locator_1 = require("@nrwl/workspace/src/core/target-project-locator");
|
|
12
12
|
const graph_utils_1 = require("@nrwl/workspace/src/utils/graph-utils");
|
|
13
13
|
const project_graph_2 = require("@nrwl/workspace/src/core/project-graph/project-graph");
|
|
14
|
+
const fileutils_1 = require("@nrwl/workspace/src/utilities/fileutils");
|
|
14
15
|
exports.RULE_NAME = 'enforce-module-boundaries';
|
|
15
16
|
exports.default = create_eslint_rule_1.createESLintRule({
|
|
16
17
|
name: exports.RULE_NAME,
|
|
@@ -45,6 +46,7 @@ exports.default = create_eslint_rule_1.createESLintRule({
|
|
|
45
46
|
messages: {
|
|
46
47
|
noRelativeOrAbsoluteImportsAcrossLibraries: `Libraries cannot be imported by a relative or absolute path, and must begin with a npm scope`,
|
|
47
48
|
noCircularDependencies: `Circular dependency between "{{sourceProjectName}}" and "{{targetProjectName}}" detected: {{path}}`,
|
|
49
|
+
noSelfCircularDependencies: `Only relative imports are allowed within the project. Absolute import found: {{imp}}`,
|
|
48
50
|
noImportsOfApps: 'Imports of apps are forbidden',
|
|
49
51
|
noImportsOfE2e: 'Imports of e2e projects are forbidden',
|
|
50
52
|
noImportOfNonBuildableLibraries: 'Buildable libraries cannot import or export from non-buildable libraries',
|
|
@@ -58,9 +60,10 @@ exports.default = create_eslint_rule_1.createESLintRule({
|
|
|
58
60
|
allow: [],
|
|
59
61
|
depConstraints: [],
|
|
60
62
|
enforceBuildableLibDependency: false,
|
|
63
|
+
allowCircularSelfDependency: false,
|
|
61
64
|
},
|
|
62
65
|
],
|
|
63
|
-
create(context, [{ allow, depConstraints, enforceBuildableLibDependency }]) {
|
|
66
|
+
create(context, [{ allow, depConstraints, enforceBuildableLibDependency, allowCircularSelfDependency, },]) {
|
|
64
67
|
/**
|
|
65
68
|
* Globally cached info about workspace
|
|
66
69
|
*/
|
|
@@ -116,6 +119,16 @@ exports.default = create_eslint_rule_1.createESLintRule({
|
|
|
116
119
|
}
|
|
117
120
|
// same project => allow
|
|
118
121
|
if (sourceProject === targetProject) {
|
|
122
|
+
// we only allow relative paths within the same project
|
|
123
|
+
if (!allowCircularSelfDependency && !fileutils_1.isRelativePath(imp)) {
|
|
124
|
+
context.report({
|
|
125
|
+
node,
|
|
126
|
+
messageId: 'noSelfCircularDependencies',
|
|
127
|
+
data: {
|
|
128
|
+
imp,
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
}
|
|
119
132
|
return;
|
|
120
133
|
}
|
|
121
134
|
// project => npm package
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enforce-module-boundaries.js","sourceRoot":"","sources":["../../../../../packages/eslint-plugin-nx/src/rules/enforce-module-boundaries.ts"],"names":[],"mappings":";;;AAAA,qEAAqE;AACrE,qFAYsD;AACtD,8EAG+C;AAC/C,oEAA+D;AAC/D,yCAA6C;AAC7C,
|
|
1
|
+
{"version":3,"file":"enforce-module-boundaries.js","sourceRoot":"","sources":["../../../../../packages/eslint-plugin-nx/src/rules/enforce-module-boundaries.ts"],"names":[],"mappings":"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"}
|