@nrwl/eslint-plugin-nx 13.8.4 → 13.8.7
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/LICENSE +22 -0
- package/package.json +4 -12
- package/src/resolve-workspace-rules.js +2 -29
- package/src/resolve-workspace-rules.js.map +1 -1
- package/src/rules/enforce-module-boundaries.d.ts +1 -1
- package/src/rules/enforce-module-boundaries.js +112 -16
- package/src/rules/enforce-module-boundaries.js.map +1 -1
- package/src/utils/ast-utils.d.ts +12 -0
- package/src/utils/ast-utils.js +164 -0
- package/src/utils/ast-utils.js.map +1 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
(The MIT License)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2017-2022 Narwhal Technologies Inc.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of this software and associated documentation files (the
|
|
7
|
+
'Software'), to deal in the Software without restriction, including
|
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
19
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
20
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
21
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
22
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nrwl/eslint-plugin-nx",
|
|
3
|
-
"version": "13.8.
|
|
3
|
+
"version": "13.8.7",
|
|
4
4
|
"description": "ESLint Plugin for Nx",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -32,18 +32,10 @@
|
|
|
32
32
|
}
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@nrwl/devkit": "13.8.
|
|
36
|
-
"@nrwl/workspace": "13.8.
|
|
37
|
-
"@swc-node/register": "^1.4.2",
|
|
35
|
+
"@nrwl/devkit": "13.8.7",
|
|
36
|
+
"@nrwl/workspace": "13.8.7",
|
|
38
37
|
"@typescript-eslint/experimental-utils": "~5.10.0",
|
|
39
38
|
"chalk": "4.1.0",
|
|
40
|
-
"confusing-browser-globals": "^1.0.9"
|
|
41
|
-
"tsconfig-paths": "^3.9.0"
|
|
42
|
-
},
|
|
43
|
-
"optionalDependencies": {
|
|
44
|
-
"@swc/core-linux-x64-musl": "^1.2.136",
|
|
45
|
-
"@swc/core-linux-x64-gnu": "^1.2.136",
|
|
46
|
-
"@swc/core-linux-arm64-gnu": "^1.2.136",
|
|
47
|
-
"@swc/core-linux-arm64-musl": "^1.2.136"
|
|
39
|
+
"confusing-browser-globals": "^1.0.9"
|
|
48
40
|
}
|
|
49
41
|
}
|
|
@@ -2,42 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.workspaceRules = void 0;
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
|
-
const path_1 = require("path");
|
|
6
5
|
const constants_1 = require("./constants");
|
|
7
|
-
const
|
|
8
|
-
const register_1 = require("@swc-node/register/register");
|
|
9
|
-
/**
|
|
10
|
-
* Optionally, if ts-node and tsconfig-paths are available in the current workspace, apply the require
|
|
11
|
-
* register hooks so that .ts files can be used for writing workspace lint rules.
|
|
12
|
-
*
|
|
13
|
-
* If ts-node and tsconfig-paths are not available, the user can still provide an index.js file in
|
|
14
|
-
* tools/eslint-rules and write their rules in JavaScript and the fundamentals will still work (but
|
|
15
|
-
* workspace path mapping will not, for example).
|
|
16
|
-
*/
|
|
17
|
-
function registerTSWorkspaceLint() {
|
|
18
|
-
try {
|
|
19
|
-
(0, register_1.register)((0, read_default_tsconfig_1.readDefaultTsConfig)((0, path_1.join)(constants_1.WORKSPACE_PLUGIN_DIR, 'tsconfig.json')));
|
|
20
|
-
const tsconfigPaths = require('tsconfig-paths');
|
|
21
|
-
// Load the tsconfig from tools/eslint-rules/tsconfig.json
|
|
22
|
-
const tsConfigResult = tsconfigPaths.loadConfig(constants_1.WORKSPACE_PLUGIN_DIR);
|
|
23
|
-
/**
|
|
24
|
-
* Register the custom workspace path mappings with node so that workspace libraries
|
|
25
|
-
* can be imported and used within custom workspace lint rules.
|
|
26
|
-
*/
|
|
27
|
-
return tsconfigPaths.register({
|
|
28
|
-
baseUrl: tsConfigResult.absoluteBaseUrl,
|
|
29
|
-
paths: tsConfigResult.paths,
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
catch (err) { }
|
|
33
|
-
}
|
|
6
|
+
const register_1 = require("@nrwl/tao/src/utils/register");
|
|
34
7
|
exports.workspaceRules = (() => {
|
|
35
8
|
// If `tools/eslint-rules` folder doesn't exist, there is no point trying to register and load it
|
|
36
9
|
if (!(0, fs_1.existsSync)(constants_1.WORKSPACE_PLUGIN_DIR)) {
|
|
37
10
|
return {};
|
|
38
11
|
}
|
|
39
12
|
// Register `tools/eslint-rules` for TS transpilation
|
|
40
|
-
const registrationCleanup =
|
|
13
|
+
const registrationCleanup = (0, register_1.registerTsProject)(constants_1.WORKSPACE_PLUGIN_DIR);
|
|
41
14
|
try {
|
|
42
15
|
/**
|
|
43
16
|
* Currently we only support applying the rules from the user's workspace plugin object
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-workspace-rules.js","sourceRoot":"","sources":["../../../../packages/eslint-plugin-nx/src/resolve-workspace-rules.ts"],"names":[],"mappings":";;;AACA,2BAAgC;AAChC
|
|
1
|
+
{"version":3,"file":"resolve-workspace-rules.js","sourceRoot":"","sources":["../../../../packages/eslint-plugin-nx/src/resolve-workspace-rules.ts"],"names":[],"mappings":";;;AACA,2BAAgC;AAChC,2CAA6E;AAC7E,2DAAiE;AAIpD,QAAA,cAAc,GAAG,CAAC,GAAgB,EAAE;IAC/C,iGAAiG;IACjG,IAAI,CAAC,IAAA,eAAU,EAAC,gCAAoB,CAAC,EAAE;QACrC,OAAO,EAAE,CAAC;KACX;IACD,qDAAqD;IACrD,MAAM,mBAAmB,GAAG,IAAA,4BAAiB,EAAC,gCAAoB,CAAC,CAAC;IACpE,IAAI;QACF;;;WAGG;QACH,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,gCAAoB,CAAC,CAAC;QAEhD,4CAA4C;QAC5C,MAAM,eAAe,GAAgB,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAoB,CAAC,EAAE;YACzE,eAAe,CAAC,GAAG,oCAAwB,IAAI,QAAQ,EAAE,CAAC,GAAG,UAAU,CAAC;SACzE;QACD,OAAO,eAAe,CAAC;KACxB;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,EAAE,CAAC;KACX;YAAS;QACR,IAAI,mBAAmB,EAAE;YACvB,mBAAmB,EAAE,CAAC;SACvB;KACF;AACH,CAAC,CAAC,EAAE,CAAC"}
|
|
@@ -8,7 +8,7 @@ declare type Options = [
|
|
|
8
8
|
banTransitiveDependencies: boolean;
|
|
9
9
|
}
|
|
10
10
|
];
|
|
11
|
-
export declare type MessageIds = 'noRelativeOrAbsoluteImportsAcrossLibraries' | 'noSelfCircularDependencies' | 'noCircularDependencies' | 'noImportsOfApps' | 'noImportsOfE2e' | 'noImportOfNonBuildableLibraries' | 'noImportsOfLazyLoadedLibraries' | 'projectWithoutTagsCannotHaveDependencies' | '
|
|
11
|
+
export declare type MessageIds = 'noRelativeOrAbsoluteImportsAcrossLibraries' | 'noSelfCircularDependencies' | 'noCircularDependencies' | 'noImportsOfApps' | 'noImportsOfE2e' | 'noImportOfNonBuildableLibraries' | 'noImportsOfLazyLoadedLibraries' | 'projectWithoutTagsCannotHaveDependencies' | 'bannedExternalImportsViolation' | 'noTransitiveDependencies' | 'onlyTagsConstraintViolation' | 'notTagsConstraintViolation';
|
|
12
12
|
export declare const RULE_NAME = "enforce-module-boundaries";
|
|
13
13
|
declare const _default: import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleModule<MessageIds, Options, import("@typescript-eslint/utils/dist/ts-eslint/Rule").RuleListener>;
|
|
14
14
|
export default _default;
|
|
@@ -13,6 +13,8 @@ const graph_utils_1 = require("@nrwl/workspace/src/utils/graph-utils");
|
|
|
13
13
|
const fileutils_1 = require("@nrwl/workspace/src/utilities/fileutils");
|
|
14
14
|
const angular_1 = require("../utils/angular");
|
|
15
15
|
const chalk = require("chalk");
|
|
16
|
+
const path_1 = require("path");
|
|
17
|
+
const ast_utils_1 = require("../utils/ast-utils");
|
|
16
18
|
exports.RULE_NAME = 'enforce-module-boundaries';
|
|
17
19
|
exports.default = (0, create_eslint_rule_1.createESLintRule)({
|
|
18
20
|
name: exports.RULE_NAME,
|
|
@@ -38,6 +40,7 @@ exports.default = (0, create_eslint_rule_1.createESLintRule)({
|
|
|
38
40
|
sourceTag: { type: 'string' },
|
|
39
41
|
onlyDependOnLibsWithTags: [{ type: 'string' }],
|
|
40
42
|
bannedExternalImports: [{ type: 'string' }],
|
|
43
|
+
notDependOnLibsWithTags: [{ type: 'string' }],
|
|
41
44
|
},
|
|
42
45
|
additionalProperties: false,
|
|
43
46
|
},
|
|
@@ -55,9 +58,10 @@ exports.default = (0, create_eslint_rule_1.createESLintRule)({
|
|
|
55
58
|
noImportOfNonBuildableLibraries: 'Buildable libraries cannot import or export from non-buildable libraries',
|
|
56
59
|
noImportsOfLazyLoadedLibraries: `Imports of lazy-loaded libraries are forbidden`,
|
|
57
60
|
projectWithoutTagsCannotHaveDependencies: `A project without tags matching at least one constraint cannot depend on any libraries`,
|
|
58
|
-
tagConstraintViolation: `A project tagged with "{{sourceTag}}" can only depend on libs tagged with {{allowedTags}}`,
|
|
59
61
|
bannedExternalImportsViolation: `A project tagged with "{{sourceTag}}" is not allowed to import the "{{package}}" package`,
|
|
60
62
|
noTransitiveDependencies: `Transitive dependencies are not allowed. Only packages defined in the "package.json" can be imported`,
|
|
63
|
+
onlyTagsConstraintViolation: `A project tagged with "{{sourceTag}}" can only depend on libs tagged with {{tags}}`,
|
|
64
|
+
notTagsConstraintViolation: `A project tagged with "{{sourceTag}}" can not depend on libs tagged with {{tags}}\n\nViolation detected in:\n{{projects}}`,
|
|
61
65
|
},
|
|
62
66
|
},
|
|
63
67
|
defaultOptions: [
|
|
@@ -125,9 +129,14 @@ exports.default = (0, create_eslint_rule_1.createESLintRule)({
|
|
|
125
129
|
return;
|
|
126
130
|
}
|
|
127
131
|
const sourceFilePath = (0, runtime_lint_utils_1.getSourceFilePath)(context.getFilename(), projectPath);
|
|
128
|
-
// check for relative and absolute imports
|
|
129
132
|
const sourceProject = (0, runtime_lint_utils_1.findSourceProject)(projectGraph, sourceFilePath);
|
|
130
|
-
|
|
133
|
+
// If source is not part of an nx workspace, return.
|
|
134
|
+
if (!sourceProject) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
// check for relative and absolute imports
|
|
138
|
+
let targetProject = (0, runtime_lint_utils_1.getTargetProjectBasedOnRelativeImport)(imp, projectPath, projectGraph, sourceFilePath);
|
|
139
|
+
if ((targetProject && sourceProject !== targetProject) ||
|
|
131
140
|
(0, runtime_lint_utils_1.isAbsoluteImportIntoAnotherProject)(imp, workspaceLayout)) {
|
|
132
141
|
context.report({
|
|
133
142
|
node,
|
|
@@ -135,18 +144,46 @@ exports.default = (0, create_eslint_rule_1.createESLintRule)({
|
|
|
135
144
|
data: {
|
|
136
145
|
npmScope,
|
|
137
146
|
},
|
|
147
|
+
fix(fixer) {
|
|
148
|
+
if (targetProject) {
|
|
149
|
+
const indexTsPaths = (0, ast_utils_1.getBarrelEntryPointProjectNode)(targetProject);
|
|
150
|
+
if (indexTsPaths && indexTsPaths.length > 0) {
|
|
151
|
+
const specifiers = node.specifiers;
|
|
152
|
+
if (!specifiers || specifiers.length === 0) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
const imports = specifiers.map((s) => s.imported.name);
|
|
156
|
+
// process each potential entry point and try to find the imports
|
|
157
|
+
const importsToRemap = [];
|
|
158
|
+
for (const entryPointPath of indexTsPaths) {
|
|
159
|
+
for (const importMember of imports) {
|
|
160
|
+
const importPath = (0, ast_utils_1.getRelativeImportPath)(importMember, entryPointPath.path, sourceProject.data.sourceRoot);
|
|
161
|
+
importsToRemap.push({
|
|
162
|
+
member: importMember,
|
|
163
|
+
importPath: importPath ? entryPointPath.importScope : imp, // we cannot remap, so leave it as is
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
const adjustedRelativeImports = (0, runtime_lint_utils_1.groupImports)(importsToRemap);
|
|
168
|
+
if (adjustedRelativeImports !== '') {
|
|
169
|
+
return fixer.replaceTextRange(node.range, adjustedRelativeImports);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
},
|
|
138
174
|
});
|
|
139
175
|
return;
|
|
140
176
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
177
|
+
targetProject =
|
|
178
|
+
targetProject ||
|
|
179
|
+
(0, runtime_lint_utils_1.findProjectUsingImport)(projectGraph, targetProjectLocator, sourceFilePath, imp, npmScope);
|
|
180
|
+
// If target is not part of an nx workspace, return.
|
|
181
|
+
if (!targetProject) {
|
|
144
182
|
return;
|
|
145
183
|
}
|
|
146
|
-
// same project
|
|
184
|
+
// we only allow relative paths within the same project
|
|
185
|
+
// and if it's not a secondary entrypoint in an angular lib
|
|
147
186
|
if (sourceProject === targetProject) {
|
|
148
|
-
// we only allow relative paths within the same project
|
|
149
|
-
// and if it's not a secondary entrypoint in an angular lib
|
|
150
187
|
if (!allowCircularSelfDependency &&
|
|
151
188
|
!(0, fileutils_1.isRelativePath)(imp) &&
|
|
152
189
|
!(0, angular_1.isSecondaryEntrypoint)(sourceFilePath)) {
|
|
@@ -156,6 +193,41 @@ exports.default = (0, create_eslint_rule_1.createESLintRule)({
|
|
|
156
193
|
data: {
|
|
157
194
|
imp,
|
|
158
195
|
},
|
|
196
|
+
fix(fixer) {
|
|
197
|
+
// imp has form of @myorg/someproject/some/path
|
|
198
|
+
const indexTsPaths = (0, ast_utils_1.getBarrelEntryPointByImportScope)(imp);
|
|
199
|
+
if (indexTsPaths && indexTsPaths.length > 0) {
|
|
200
|
+
const specifiers = node.specifiers;
|
|
201
|
+
if (!specifiers || specifiers.length === 0) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
// imported JS functions to remap
|
|
205
|
+
const imports = specifiers.map((s) => s.imported.name);
|
|
206
|
+
// process each potential entry point and try to find the imports
|
|
207
|
+
const importsToRemap = [];
|
|
208
|
+
for (const entryPointPath of indexTsPaths) {
|
|
209
|
+
for (const importMember of imports) {
|
|
210
|
+
const importPath = (0, ast_utils_1.getRelativeImportPath)(importMember, entryPointPath, sourceProject.data.sourceRoot);
|
|
211
|
+
if (importPath) {
|
|
212
|
+
// resolve the import path
|
|
213
|
+
const relativePath = (0, path_1.relative)((0, path_1.dirname)(context.getFilename()), (0, path_1.dirname)(importPath));
|
|
214
|
+
// if the string is empty, it's the current file
|
|
215
|
+
const importPathResolved = relativePath === ''
|
|
216
|
+
? `./${(0, path_1.basename)(importPath)}`
|
|
217
|
+
: (0, devkit_1.joinPathFragments)(relativePath, (0, path_1.basename)(importPath));
|
|
218
|
+
importsToRemap.push({
|
|
219
|
+
member: importMember,
|
|
220
|
+
importPath: importPathResolved.replace('.ts', ''),
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
const adjustedRelativeImports = (0, runtime_lint_utils_1.groupImports)(importsToRemap);
|
|
226
|
+
if (adjustedRelativeImports !== '') {
|
|
227
|
+
return fixer.replaceTextRange(node.range, adjustedRelativeImports);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
},
|
|
159
231
|
});
|
|
160
232
|
}
|
|
161
233
|
return;
|
|
@@ -186,6 +258,9 @@ exports.default = (0, create_eslint_rule_1.createESLintRule)({
|
|
|
186
258
|
const circularPath = (0, graph_utils_1.checkCircularPath)(global.projectGraph, sourceProject, targetProject);
|
|
187
259
|
if (circularPath.length !== 0) {
|
|
188
260
|
const circularFilePath = (0, graph_utils_1.findFilesInCircularPath)(circularPath);
|
|
261
|
+
// spacer text used for indirect dependencies when printing one line per file.
|
|
262
|
+
// without this, we can end up with a very long line that does not display well in the terminal.
|
|
263
|
+
const spacer = ' ';
|
|
189
264
|
context.report({
|
|
190
265
|
node,
|
|
191
266
|
messageId: 'noCircularDependencies',
|
|
@@ -194,7 +269,11 @@ exports.default = (0, create_eslint_rule_1.createESLintRule)({
|
|
|
194
269
|
targetProjectName: targetProject.name,
|
|
195
270
|
path: circularPath.reduce((acc, v) => `${acc} -> ${v.name}`, sourceProject.name),
|
|
196
271
|
filePaths: circularFilePath
|
|
197
|
-
.map((files) => files.length > 1
|
|
272
|
+
.map((files) => files.length > 1
|
|
273
|
+
? `[${files
|
|
274
|
+
.map((f) => `\n${spacer}${spacer}${f}`)
|
|
275
|
+
.join(',')}\n${spacer}]`
|
|
276
|
+
: files[0])
|
|
198
277
|
.reduce((acc, files) => `${acc}\n- ${files}`, `- ${sourceFilePath}`),
|
|
199
278
|
},
|
|
200
279
|
});
|
|
@@ -251,20 +330,37 @@ exports.default = (0, create_eslint_rule_1.createESLintRule)({
|
|
|
251
330
|
return;
|
|
252
331
|
}
|
|
253
332
|
for (let constraint of constraints) {
|
|
254
|
-
if (
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
.join(', ');
|
|
333
|
+
if (constraint.onlyDependOnLibsWithTags &&
|
|
334
|
+
constraint.onlyDependOnLibsWithTags.length &&
|
|
335
|
+
(0, runtime_lint_utils_1.hasNoneOfTheseTags)(targetProject, constraint.onlyDependOnLibsWithTags)) {
|
|
258
336
|
context.report({
|
|
259
337
|
node,
|
|
260
|
-
messageId: '
|
|
338
|
+
messageId: 'onlyTagsConstraintViolation',
|
|
261
339
|
data: {
|
|
262
340
|
sourceTag: constraint.sourceTag,
|
|
263
|
-
|
|
341
|
+
tags: (0, runtime_lint_utils_1.stringifyTags)(constraint.onlyDependOnLibsWithTags),
|
|
264
342
|
},
|
|
265
343
|
});
|
|
266
344
|
return;
|
|
267
345
|
}
|
|
346
|
+
if (constraint.notDependOnLibsWithTags &&
|
|
347
|
+
constraint.notDependOnLibsWithTags.length) {
|
|
348
|
+
const projectPaths = (0, runtime_lint_utils_1.findDependenciesWithTags)(targetProject, constraint.notDependOnLibsWithTags, projectGraph);
|
|
349
|
+
if (projectPaths.length > 0) {
|
|
350
|
+
context.report({
|
|
351
|
+
node,
|
|
352
|
+
messageId: 'notTagsConstraintViolation',
|
|
353
|
+
data: {
|
|
354
|
+
sourceTag: constraint.sourceTag,
|
|
355
|
+
tags: (0, runtime_lint_utils_1.stringifyTags)(constraint.notDependOnLibsWithTags),
|
|
356
|
+
projects: projectPaths
|
|
357
|
+
.map((projectPath) => `- ${projectPath.map((p) => p.name).join(' -> ')}`)
|
|
358
|
+
.join('\n'),
|
|
359
|
+
},
|
|
360
|
+
});
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
268
364
|
}
|
|
269
365
|
}
|
|
270
366
|
}
|
|
@@ -1 +1 @@
|
|
|
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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"}
|
|
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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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { MappedProjectGraphNode } from '@nrwl/workspace/src/utils/runtime-lint-utils';
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param importScope like `@myorg/somelib`
|
|
5
|
+
* @returns
|
|
6
|
+
*/
|
|
7
|
+
export declare function getBarrelEntryPointByImportScope(importScope: string): string[] | null;
|
|
8
|
+
export declare function getBarrelEntryPointProjectNode(importScope: MappedProjectGraphNode<any>): {
|
|
9
|
+
path: string;
|
|
10
|
+
importScope: string;
|
|
11
|
+
}[] | null;
|
|
12
|
+
export declare function getRelativeImportPath(exportedMember: any, filePath: any, basePath: any): any;
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRelativeImportPath = exports.getBarrelEntryPointProjectNode = exports.getBarrelEntryPointByImportScope = void 0;
|
|
4
|
+
const devkit_1 = require("@nrwl/devkit");
|
|
5
|
+
const typescript_1 = require("@nrwl/workspace/src/utilities/typescript");
|
|
6
|
+
const fs_1 = require("fs");
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
const ts = require("typescript");
|
|
9
|
+
const devkit_2 = require("@nrwl/devkit");
|
|
10
|
+
const app_root_1 = require("@nrwl/tao/src/utils/app-root");
|
|
11
|
+
function tryReadBaseJson() {
|
|
12
|
+
try {
|
|
13
|
+
return (0, devkit_1.readJsonFile)((0, devkit_1.joinPathFragments)(app_root_1.appRootPath, 'tsconfig.base.json'));
|
|
14
|
+
}
|
|
15
|
+
catch (e) {
|
|
16
|
+
devkit_2.logger.warn(`Error reading "tsconfig.base.json": \n${JSON.stringify(e)}`);
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
* @param importScope like `@myorg/somelib`
|
|
23
|
+
* @returns
|
|
24
|
+
*/
|
|
25
|
+
function getBarrelEntryPointByImportScope(importScope) {
|
|
26
|
+
var _a;
|
|
27
|
+
const tsConfigBase = tryReadBaseJson();
|
|
28
|
+
return ((_a = tsConfigBase === null || tsConfigBase === void 0 ? void 0 : tsConfigBase.compilerOptions) === null || _a === void 0 ? void 0 : _a.paths[importScope]) || null;
|
|
29
|
+
}
|
|
30
|
+
exports.getBarrelEntryPointByImportScope = getBarrelEntryPointByImportScope;
|
|
31
|
+
function getBarrelEntryPointProjectNode(importScope) {
|
|
32
|
+
var _a;
|
|
33
|
+
const tsConfigBase = tryReadBaseJson();
|
|
34
|
+
if ((_a = tsConfigBase === null || tsConfigBase === void 0 ? void 0 : tsConfigBase.compilerOptions) === null || _a === void 0 ? void 0 : _a.paths) {
|
|
35
|
+
const potentialEntryPoints = Object.keys(tsConfigBase.compilerOptions.paths)
|
|
36
|
+
.filter((entry) => {
|
|
37
|
+
const sourceFolderPaths = tsConfigBase.compilerOptions.paths[entry];
|
|
38
|
+
return sourceFolderPaths.some((sourceFolderPath) => {
|
|
39
|
+
return sourceFolderPath.includes(importScope.data.root);
|
|
40
|
+
});
|
|
41
|
+
})
|
|
42
|
+
.map((entry) => tsConfigBase.compilerOptions.paths[entry].map((x) => ({
|
|
43
|
+
path: x,
|
|
44
|
+
importScope: entry,
|
|
45
|
+
})));
|
|
46
|
+
return potentialEntryPoints.flat();
|
|
47
|
+
}
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
exports.getBarrelEntryPointProjectNode = getBarrelEntryPointProjectNode;
|
|
51
|
+
function hasMemberExport(exportedMember, filePath) {
|
|
52
|
+
const fileContent = (0, fs_1.readFileSync)(filePath, 'utf8');
|
|
53
|
+
// use the TypeScript AST to find the path to the file where exportedMember is defined
|
|
54
|
+
const sourceFile = ts.createSourceFile(filePath, fileContent, ts.ScriptTarget.Latest, true);
|
|
55
|
+
// search whether there is already an export with our node
|
|
56
|
+
return ((0, typescript_1.findNodes)(sourceFile, ts.SyntaxKind.Identifier).filter((identifier) => identifier.text === exportedMember).length > 0);
|
|
57
|
+
}
|
|
58
|
+
function getRelativeImportPath(exportedMember, filePath, basePath) {
|
|
59
|
+
var _a;
|
|
60
|
+
const fileContent = (0, fs_1.readFileSync)(filePath, 'utf8');
|
|
61
|
+
// use the TypeScript AST to find the path to the file where exportedMember is defined
|
|
62
|
+
const sourceFile = ts.createSourceFile(filePath, fileContent, ts.ScriptTarget.Latest, true);
|
|
63
|
+
// Search in the current file whether there's an export already!
|
|
64
|
+
const memberNodes = (0, typescript_1.findNodes)(sourceFile, ts.SyntaxKind.Identifier).filter((identifier) => identifier.text === exportedMember);
|
|
65
|
+
let hasExport = false;
|
|
66
|
+
for (const memberNode of memberNodes || []) {
|
|
67
|
+
if (memberNode) {
|
|
68
|
+
// recursively navigate upwards to find the ExportKey modifier
|
|
69
|
+
let parent = memberNode;
|
|
70
|
+
do {
|
|
71
|
+
parent = parent.parent;
|
|
72
|
+
if (parent) {
|
|
73
|
+
// if we are inside a parameter list or decorator or param assignment
|
|
74
|
+
// then this is not what we're searching for, so break :)
|
|
75
|
+
if (parent.kind === ts.SyntaxKind.Parameter ||
|
|
76
|
+
parent.kind === ts.SyntaxKind.PropertyAccessExpression ||
|
|
77
|
+
parent.kind === ts.SyntaxKind.TypeReference ||
|
|
78
|
+
parent.kind === ts.SyntaxKind.HeritageClause ||
|
|
79
|
+
parent.kind === ts.SyntaxKind.Decorator) {
|
|
80
|
+
hasExport = false;
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
// if our identifier is within an ExportDeclaration but is not just
|
|
84
|
+
// a re-export of some other module, we're good
|
|
85
|
+
if (parent.kind === ts.SyntaxKind.ExportDeclaration &&
|
|
86
|
+
!parent.moduleSpecifier) {
|
|
87
|
+
hasExport = true;
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
if (parent.modifiers &&
|
|
91
|
+
parent.modifiers.find((modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword)) {
|
|
92
|
+
/**
|
|
93
|
+
* if we get to a function export declaration we need to verify whether the
|
|
94
|
+
* exported function is actually the member we are searching for. Otherwise
|
|
95
|
+
* we might end up finding a function that just uses our searched identifier
|
|
96
|
+
* internally.
|
|
97
|
+
*
|
|
98
|
+
* Example: assume we try to find a constant member: `export const SOME_CONSTANT = 'bla'`
|
|
99
|
+
*
|
|
100
|
+
* Then we might end up in a file that uses it like
|
|
101
|
+
*
|
|
102
|
+
* import { SOME_CONSTANT } from '@myorg/samelib'
|
|
103
|
+
*
|
|
104
|
+
* export function someFunction() {
|
|
105
|
+
* return `Hi, ${SOME_CONSTANT}`
|
|
106
|
+
* }
|
|
107
|
+
*
|
|
108
|
+
* We want to avoid accidentally picking the someFunction export since we're searching upwards
|
|
109
|
+
* starting from `SOME_CONSTANT` identifier usages.
|
|
110
|
+
*/
|
|
111
|
+
if (parent.kind === ts.SyntaxKind.FunctionDeclaration) {
|
|
112
|
+
const parentName = (_a = parent.name) === null || _a === void 0 ? void 0 : _a.text;
|
|
113
|
+
if (parentName === exportedMember) {
|
|
114
|
+
hasExport = true;
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
hasExport = true;
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
} while (!!parent);
|
|
125
|
+
}
|
|
126
|
+
if (hasExport) {
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
if (hasExport) {
|
|
131
|
+
// we found the file, now grab the path
|
|
132
|
+
return filePath;
|
|
133
|
+
}
|
|
134
|
+
// if we didn't find an export, let's try to follow
|
|
135
|
+
// all export declarations and see whether any of those
|
|
136
|
+
// exports the node we're searching for
|
|
137
|
+
const exportDeclarations = (0, typescript_1.findNodes)(sourceFile, ts.SyntaxKind.ExportDeclaration);
|
|
138
|
+
for (const exportDeclaration of exportDeclarations) {
|
|
139
|
+
if (exportDeclaration.moduleSpecifier) {
|
|
140
|
+
// verify whether the export declaration we're looking at is a named export
|
|
141
|
+
// cause in that case we need to check whether our searched member is
|
|
142
|
+
// part of the exports
|
|
143
|
+
if (exportDeclaration.exportClause &&
|
|
144
|
+
(0, typescript_1.findNodes)(exportDeclaration, ts.SyntaxKind.Identifier).filter((identifier) => identifier.text === exportedMember).length === 0) {
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
const modulePath = exportDeclaration.moduleSpecifier.text;
|
|
148
|
+
let moduleFilePath = (0, devkit_1.joinPathFragments)('./', (0, path_1.dirname)(filePath), `${modulePath}.ts`);
|
|
149
|
+
if (!(0, fs_1.existsSync)(moduleFilePath)) {
|
|
150
|
+
// might be a index.ts
|
|
151
|
+
moduleFilePath = (0, devkit_1.joinPathFragments)('./', (0, path_1.dirname)(filePath), `${modulePath}/index.ts`);
|
|
152
|
+
}
|
|
153
|
+
if (hasMemberExport(exportedMember, moduleFilePath)) {
|
|
154
|
+
const foundFilePath = getRelativeImportPath(exportedMember, moduleFilePath, basePath);
|
|
155
|
+
if (foundFilePath) {
|
|
156
|
+
return foundFilePath;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
exports.getRelativeImportPath = getRelativeImportPath;
|
|
164
|
+
//# sourceMappingURL=ast-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ast-utils.js","sourceRoot":"","sources":["../../../../../packages/eslint-plugin-nx/src/utils/ast-utils.ts"],"names":[],"mappings":"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"}
|