@nrwl/eslint-plugin-nx 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.
- package/index.d.ts +1 -0
- package/index.js +5 -0
- package/index.js.map +1 -0
- package/package.json +8 -18
- package/README.md +0 -63
- package/src/configs/angular-template.d.ts +0 -20
- package/src/configs/angular-template.js +0 -22
- package/src/configs/angular-template.js.map +0 -1
- package/src/configs/angular.d.ts +0 -25
- package/src/configs/angular.js +0 -43
- package/src/configs/angular.js.map +0 -1
- package/src/configs/javascript.d.ts +0 -42
- package/src/configs/javascript.js +0 -51
- package/src/configs/javascript.js.map +0 -1
- package/src/configs/react-base.d.ts +0 -112
- package/src/configs/react-base.js +0 -141
- package/src/configs/react-base.js.map +0 -1
- package/src/configs/react-jsx.d.ts +0 -71
- package/src/configs/react-jsx.js +0 -65
- package/src/configs/react-jsx.js.map +0 -1
- package/src/configs/react-tmp.d.ts +0 -12
- package/src/configs/react-tmp.js +0 -18
- package/src/configs/react-tmp.js.map +0 -1
- package/src/configs/react-typescript.d.ts +0 -41
- package/src/configs/react-typescript.js +0 -56
- package/src/configs/react-typescript.js.map +0 -1
- package/src/configs/typescript.d.ts +0 -24
- package/src/configs/typescript.js +0 -34
- package/src/configs/typescript.js.map +0 -1
- package/src/constants.d.ts +0 -12
- package/src/constants.js +0 -18
- package/src/constants.js.map +0 -1
- package/src/index.d.ts +0 -1
- package/src/index.js +0 -28
- package/src/index.js.map +0 -1
- package/src/resolve-workspace-rules.d.ts +0 -4
- package/src/resolve-workspace-rules.js +0 -36
- package/src/resolve-workspace-rules.js.map +0 -1
- package/src/rules/enforce-module-boundaries.d.ts +0 -16
- package/src/rules/enforce-module-boundaries.js +0 -428
- package/src/rules/enforce-module-boundaries.js.map +0 -1
- package/src/rules/nx-plugin-checks.d.ts +0 -21
- package/src/rules/nx-plugin-checks.js +0 -359
- package/src/rules/nx-plugin-checks.js.map +0 -1
- package/src/utils/ast-utils.d.ts +0 -12
- package/src/utils/ast-utils.js +0 -181
- package/src/utils/ast-utils.js.map +0 -1
- package/src/utils/config-utils.d.ts +0 -6
- package/src/utils/config-utils.js +0 -21
- package/src/utils/config-utils.js.map +0 -1
- package/src/utils/create-eslint-rule.d.ts +0 -2
- package/src/utils/create-eslint-rule.js +0 -6
- package/src/utils/create-eslint-rule.js.map +0 -1
- package/src/utils/graph-utils.d.ts +0 -5
- package/src/utils/graph-utils.js +0 -117
- package/src/utils/graph-utils.js.map +0 -1
- package/src/utils/project-graph-utils.d.ts +0 -7
- package/src/utils/project-graph-utils.js +0 -46
- package/src/utils/project-graph-utils.js.map +0 -1
- package/src/utils/runtime-lint-utils.d.ts +0 -85
- package/src/utils/runtime-lint-utils.js +0 -329
- package/src/utils/runtime-lint-utils.js.map +0 -1
|
@@ -1,428 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RULE_NAME = void 0;
|
|
4
|
-
const devkit_1 = require("@nrwl/devkit");
|
|
5
|
-
const fileutils_1 = require("nx/src/utils/fileutils");
|
|
6
|
-
const graph_utils_1 = require("../utils/graph-utils");
|
|
7
|
-
const runtime_lint_utils_1 = require("../utils/runtime-lint-utils");
|
|
8
|
-
const utils_1 = require("@typescript-eslint/utils");
|
|
9
|
-
const target_project_locator_1 = require("nx/src/plugins/js/project-graph/build-dependencies/target-project-locator");
|
|
10
|
-
const path_1 = require("path");
|
|
11
|
-
const ast_utils_1 = require("../utils/ast-utils");
|
|
12
|
-
const create_eslint_rule_1 = require("../utils/create-eslint-rule");
|
|
13
|
-
const project_graph_utils_1 = require("../utils/project-graph-utils");
|
|
14
|
-
exports.RULE_NAME = 'enforce-module-boundaries';
|
|
15
|
-
exports.default = (0, create_eslint_rule_1.createESLintRule)({
|
|
16
|
-
name: exports.RULE_NAME,
|
|
17
|
-
meta: {
|
|
18
|
-
type: 'suggestion',
|
|
19
|
-
docs: {
|
|
20
|
-
description: `Ensure that module boundaries are respected within the monorepo`,
|
|
21
|
-
recommended: 'error',
|
|
22
|
-
},
|
|
23
|
-
fixable: 'code',
|
|
24
|
-
schema: [
|
|
25
|
-
{
|
|
26
|
-
type: 'object',
|
|
27
|
-
properties: {
|
|
28
|
-
enforceBuildableLibDependency: { type: 'boolean' },
|
|
29
|
-
allowCircularSelfDependency: { type: 'boolean' },
|
|
30
|
-
checkDynamicDependenciesExceptions: [{ type: 'string' }],
|
|
31
|
-
banTransitiveDependencies: { type: 'boolean' },
|
|
32
|
-
checkNestedExternalImports: { type: 'boolean' },
|
|
33
|
-
allow: [{ type: 'string' }],
|
|
34
|
-
depConstraints: [
|
|
35
|
-
{
|
|
36
|
-
type: 'object',
|
|
37
|
-
properties: {
|
|
38
|
-
oneOf: [
|
|
39
|
-
{ sourceTag: { type: 'string' } },
|
|
40
|
-
{
|
|
41
|
-
allSourceTags: {
|
|
42
|
-
type: 'array',
|
|
43
|
-
items: { type: 'string' },
|
|
44
|
-
minItems: 2,
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
],
|
|
48
|
-
onlyDependOnLibsWithTags: [{ type: 'string' }],
|
|
49
|
-
allowedExternalImports: [{ type: 'string' }],
|
|
50
|
-
bannedExternalImports: [{ type: 'string' }],
|
|
51
|
-
notDependOnLibsWithTags: [{ type: 'string' }],
|
|
52
|
-
},
|
|
53
|
-
additionalProperties: false,
|
|
54
|
-
},
|
|
55
|
-
],
|
|
56
|
-
},
|
|
57
|
-
additionalProperties: false,
|
|
58
|
-
},
|
|
59
|
-
],
|
|
60
|
-
messages: {
|
|
61
|
-
noRelativeOrAbsoluteImportsAcrossLibraries: `Projects cannot be imported by a relative or absolute path, and must begin with a npm scope`,
|
|
62
|
-
noCircularDependencies: `Circular dependency between "{{sourceProjectName}}" and "{{targetProjectName}}" detected: {{path}}\n\nCircular file chain:\n{{filePaths}}`,
|
|
63
|
-
noSelfCircularDependencies: `Projects should use relative imports to import from other files within the same project. Use "./path/to/file" instead of import from "{{imp}}"`,
|
|
64
|
-
noImportsOfApps: 'Imports of apps are forbidden',
|
|
65
|
-
noImportsOfE2e: 'Imports of e2e projects are forbidden',
|
|
66
|
-
noImportOfNonBuildableLibraries: 'Buildable libraries cannot import or export from non-buildable libraries',
|
|
67
|
-
noImportsOfLazyLoadedLibraries: `Imports of lazy-loaded libraries are forbidden`,
|
|
68
|
-
projectWithoutTagsCannotHaveDependencies: `A project without tags matching at least one constraint cannot depend on any libraries`,
|
|
69
|
-
bannedExternalImportsViolation: `A project tagged with "{{sourceTag}}" is not allowed to import the "{{package}}" package`,
|
|
70
|
-
nestedBannedExternalImportsViolation: `A project tagged with "{{sourceTag}}" is not allowed to import the "{{package}}" package. Nested import found at {{childProjectName}}`,
|
|
71
|
-
noTransitiveDependencies: `Transitive dependencies are not allowed. Only packages defined in the "package.json" can be imported`,
|
|
72
|
-
onlyTagsConstraintViolation: `A project tagged with "{{sourceTag}}" can only depend on libs tagged with {{tags}}`,
|
|
73
|
-
emptyOnlyTagsConstraintViolation: 'A project tagged with "{{sourceTag}}" cannot depend on any libs with tags',
|
|
74
|
-
notTagsConstraintViolation: `A project tagged with "{{sourceTag}}" can not depend on libs tagged with {{tags}}\n\nViolation detected in:\n{{projects}}`,
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
defaultOptions: [
|
|
78
|
-
{
|
|
79
|
-
allow: [],
|
|
80
|
-
depConstraints: [],
|
|
81
|
-
enforceBuildableLibDependency: false,
|
|
82
|
-
allowCircularSelfDependency: false,
|
|
83
|
-
checkDynamicDependenciesExceptions: [],
|
|
84
|
-
banTransitiveDependencies: false,
|
|
85
|
-
checkNestedExternalImports: false,
|
|
86
|
-
},
|
|
87
|
-
],
|
|
88
|
-
create(context, [{ allow, depConstraints, enforceBuildableLibDependency, allowCircularSelfDependency, checkDynamicDependenciesExceptions, banTransitiveDependencies, checkNestedExternalImports, },]) {
|
|
89
|
-
/**
|
|
90
|
-
* Globally cached info about workspace
|
|
91
|
-
*/
|
|
92
|
-
const projectPath = (0, devkit_1.normalizePath)(global.projectPath || devkit_1.workspaceRoot);
|
|
93
|
-
const fileName = (0, devkit_1.normalizePath)(context.getFilename());
|
|
94
|
-
const { projectGraph, projectRootMappings } = (0, project_graph_utils_1.readProjectGraph)(exports.RULE_NAME);
|
|
95
|
-
if (!projectGraph) {
|
|
96
|
-
return {};
|
|
97
|
-
}
|
|
98
|
-
const workspaceLayout = global.workspaceLayout;
|
|
99
|
-
if (!global.targetProjectLocator) {
|
|
100
|
-
global.targetProjectLocator = new target_project_locator_1.TargetProjectLocator(projectGraph.nodes, projectGraph.externalNodes);
|
|
101
|
-
}
|
|
102
|
-
const targetProjectLocator = global
|
|
103
|
-
.targetProjectLocator;
|
|
104
|
-
function run(node) {
|
|
105
|
-
// Ignoring ExportNamedDeclarations like:
|
|
106
|
-
// export class Foo {}
|
|
107
|
-
if (!node.source) {
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
// accept only literals because template literals have no value
|
|
111
|
-
if (node.source.type !== utils_1.AST_NODE_TYPES.Literal) {
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
const imp = node.source.value;
|
|
115
|
-
// whitelisted import
|
|
116
|
-
if (allow.some((a) => (0, runtime_lint_utils_1.matchImportWithWildcard)(a, imp))) {
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
const sourceFilePath = (0, runtime_lint_utils_1.getSourceFilePath)(fileName, projectPath);
|
|
120
|
-
const sourceProject = (0, runtime_lint_utils_1.findProject)(projectGraph, projectRootMappings, sourceFilePath);
|
|
121
|
-
// If source is not part of an nx workspace, return.
|
|
122
|
-
if (!sourceProject) {
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
// check for relative and absolute imports
|
|
126
|
-
const isAbsoluteImportIntoAnotherProj = (0, runtime_lint_utils_1.isAbsoluteImportIntoAnotherProject)(imp, workspaceLayout);
|
|
127
|
-
let targetProject;
|
|
128
|
-
if (isAbsoluteImportIntoAnotherProj) {
|
|
129
|
-
targetProject = (0, runtime_lint_utils_1.findProject)(projectGraph, projectRootMappings, imp);
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
targetProject = (0, runtime_lint_utils_1.getTargetProjectBasedOnRelativeImport)(imp, projectPath, projectGraph, projectRootMappings, sourceFilePath);
|
|
133
|
-
}
|
|
134
|
-
if ((targetProject && sourceProject !== targetProject) ||
|
|
135
|
-
isAbsoluteImportIntoAnotherProj) {
|
|
136
|
-
context.report({
|
|
137
|
-
node,
|
|
138
|
-
messageId: 'noRelativeOrAbsoluteImportsAcrossLibraries',
|
|
139
|
-
fix(fixer) {
|
|
140
|
-
if (targetProject) {
|
|
141
|
-
const indexTsPaths = (0, ast_utils_1.getBarrelEntryPointProjectNode)(targetProject);
|
|
142
|
-
if (indexTsPaths && indexTsPaths.length > 0) {
|
|
143
|
-
const specifiers = node.specifiers;
|
|
144
|
-
if (!specifiers || specifiers.length === 0) {
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
const imports = specifiers
|
|
148
|
-
.filter((s) => s.type === 'ImportSpecifier')
|
|
149
|
-
.map((s) => s.imported.name);
|
|
150
|
-
// process each potential entry point and try to find the imports
|
|
151
|
-
const importsToRemap = [];
|
|
152
|
-
for (const entryPointPath of indexTsPaths) {
|
|
153
|
-
for (const importMember of imports) {
|
|
154
|
-
const importPath = (0, ast_utils_1.getRelativeImportPath)(importMember, (0, devkit_1.joinPathFragments)(devkit_1.workspaceRoot, entryPointPath.path), sourceProject.data.sourceRoot);
|
|
155
|
-
// we cannot remap, so leave it as is
|
|
156
|
-
if (importPath) {
|
|
157
|
-
importsToRemap.push({
|
|
158
|
-
member: importMember,
|
|
159
|
-
importPath: entryPointPath.importScope,
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
const adjustedRelativeImports = (0, runtime_lint_utils_1.groupImports)(importsToRemap);
|
|
165
|
-
if (adjustedRelativeImports !== '') {
|
|
166
|
-
return fixer.replaceTextRange(node.range, adjustedRelativeImports);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
},
|
|
171
|
-
});
|
|
172
|
-
return;
|
|
173
|
-
}
|
|
174
|
-
targetProject =
|
|
175
|
-
targetProject ||
|
|
176
|
-
(0, runtime_lint_utils_1.findProjectUsingImport)(projectGraph, targetProjectLocator, sourceFilePath, imp);
|
|
177
|
-
// If target is not part of an nx workspace, return.
|
|
178
|
-
if (!targetProject) {
|
|
179
|
-
return;
|
|
180
|
-
}
|
|
181
|
-
// we only allow relative paths within the same project
|
|
182
|
-
// and if it's not a secondary entrypoint in an angular lib
|
|
183
|
-
if (sourceProject === targetProject) {
|
|
184
|
-
if (!allowCircularSelfDependency &&
|
|
185
|
-
!(0, fileutils_1.isRelativePath)(imp) &&
|
|
186
|
-
!(0, runtime_lint_utils_1.isAngularSecondaryEntrypoint)(imp, sourceFilePath)) {
|
|
187
|
-
context.report({
|
|
188
|
-
node,
|
|
189
|
-
messageId: 'noSelfCircularDependencies',
|
|
190
|
-
data: {
|
|
191
|
-
imp,
|
|
192
|
-
},
|
|
193
|
-
fix(fixer) {
|
|
194
|
-
// imp has form of @myorg/someproject/some/path
|
|
195
|
-
const indexTsPaths = (0, ast_utils_1.getBarrelEntryPointByImportScope)(imp);
|
|
196
|
-
if (indexTsPaths && indexTsPaths.length > 0) {
|
|
197
|
-
const specifiers = node.specifiers;
|
|
198
|
-
if (!specifiers || specifiers.length === 0) {
|
|
199
|
-
return;
|
|
200
|
-
}
|
|
201
|
-
// imported JS functions to remap
|
|
202
|
-
const imports = specifiers
|
|
203
|
-
.filter((s) => s.type === 'ImportSpecifier')
|
|
204
|
-
.map((s) => s.imported.name);
|
|
205
|
-
// process each potential entry point and try to find the imports
|
|
206
|
-
const importsToRemap = [];
|
|
207
|
-
for (const entryPointPath of indexTsPaths) {
|
|
208
|
-
for (const importMember of imports) {
|
|
209
|
-
const importPath = (0, ast_utils_1.getRelativeImportPath)(importMember, (0, devkit_1.joinPathFragments)(devkit_1.workspaceRoot, entryPointPath), sourceProject.data.sourceRoot);
|
|
210
|
-
if (importPath) {
|
|
211
|
-
// resolve the import path
|
|
212
|
-
const relativePath = (0, path_1.relative)((0, path_1.dirname)(fileName), (0, path_1.dirname)(importPath));
|
|
213
|
-
// if the string is empty, it's the current file
|
|
214
|
-
const importPathResolved = relativePath === ''
|
|
215
|
-
? `./${(0, path_1.basename)(importPath)}`
|
|
216
|
-
: (0, devkit_1.joinPathFragments)(relativePath, (0, path_1.basename)(importPath));
|
|
217
|
-
importsToRemap.push({
|
|
218
|
-
member: importMember,
|
|
219
|
-
importPath: importPathResolved.replace('.ts', ''),
|
|
220
|
-
});
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
const adjustedRelativeImports = (0, runtime_lint_utils_1.groupImports)(importsToRemap);
|
|
225
|
-
if (adjustedRelativeImports !== '') {
|
|
226
|
-
return fixer.replaceTextRange(node.range, adjustedRelativeImports);
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
},
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
return;
|
|
233
|
-
}
|
|
234
|
-
// project => npm package
|
|
235
|
-
if (targetProject.type === 'npm') {
|
|
236
|
-
if (banTransitiveDependencies &&
|
|
237
|
-
!(0, runtime_lint_utils_1.isDirectDependency)(sourceProject, targetProject)) {
|
|
238
|
-
context.report({
|
|
239
|
-
node,
|
|
240
|
-
messageId: 'noTransitiveDependencies',
|
|
241
|
-
});
|
|
242
|
-
}
|
|
243
|
-
const constraint = (0, runtime_lint_utils_1.hasBannedImport)(sourceProject, targetProject, depConstraints);
|
|
244
|
-
if (constraint) {
|
|
245
|
-
context.report({
|
|
246
|
-
node,
|
|
247
|
-
messageId: 'bannedExternalImportsViolation',
|
|
248
|
-
data: {
|
|
249
|
-
sourceTag: (0, runtime_lint_utils_1.isComboDepConstraint)(constraint)
|
|
250
|
-
? constraint.allSourceTags.join('" and "')
|
|
251
|
-
: constraint.sourceTag,
|
|
252
|
-
package: targetProject.data.packageName,
|
|
253
|
-
},
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
return;
|
|
257
|
-
}
|
|
258
|
-
// check constraints between libs and apps
|
|
259
|
-
// check for circular dependency
|
|
260
|
-
const circularPath = (0, graph_utils_1.checkCircularPath)(projectGraph, sourceProject, targetProject);
|
|
261
|
-
if (circularPath.length !== 0) {
|
|
262
|
-
const circularFilePath = (0, graph_utils_1.findFilesInCircularPath)(circularPath);
|
|
263
|
-
// spacer text used for indirect dependencies when printing one line per file.
|
|
264
|
-
// without this, we can end up with a very long line that does not display well in the terminal.
|
|
265
|
-
const spacer = ' ';
|
|
266
|
-
context.report({
|
|
267
|
-
node,
|
|
268
|
-
messageId: 'noCircularDependencies',
|
|
269
|
-
data: {
|
|
270
|
-
sourceProjectName: sourceProject.name,
|
|
271
|
-
targetProjectName: targetProject.name,
|
|
272
|
-
path: circularPath.reduce((acc, v) => `${acc} -> ${v.name}`, sourceProject.name),
|
|
273
|
-
filePaths: circularFilePath
|
|
274
|
-
.map((files) => files.length > 1
|
|
275
|
-
? `[${files
|
|
276
|
-
.map((f) => `\n${spacer}${spacer}${f}`)
|
|
277
|
-
.join(',')}\n${spacer}]`
|
|
278
|
-
: files[0])
|
|
279
|
-
.reduce((acc, files) => `${acc}\n- ${files}`, `- ${sourceFilePath}`),
|
|
280
|
-
},
|
|
281
|
-
});
|
|
282
|
-
return;
|
|
283
|
-
}
|
|
284
|
-
// cannot import apps
|
|
285
|
-
if (targetProject.type === 'app') {
|
|
286
|
-
context.report({
|
|
287
|
-
node,
|
|
288
|
-
messageId: 'noImportsOfApps',
|
|
289
|
-
});
|
|
290
|
-
return;
|
|
291
|
-
}
|
|
292
|
-
// cannot import e2e projects
|
|
293
|
-
if (targetProject.type === 'e2e') {
|
|
294
|
-
context.report({
|
|
295
|
-
node,
|
|
296
|
-
messageId: 'noImportsOfE2e',
|
|
297
|
-
});
|
|
298
|
-
return;
|
|
299
|
-
}
|
|
300
|
-
// buildable-lib is not allowed to import non-buildable-lib
|
|
301
|
-
if (enforceBuildableLibDependency === true &&
|
|
302
|
-
sourceProject.type === 'lib' &&
|
|
303
|
-
targetProject.type === 'lib') {
|
|
304
|
-
if ((0, runtime_lint_utils_1.hasBuildExecutor)(sourceProject) &&
|
|
305
|
-
!(0, runtime_lint_utils_1.hasBuildExecutor)(targetProject)) {
|
|
306
|
-
context.report({
|
|
307
|
-
node,
|
|
308
|
-
messageId: 'noImportOfNonBuildableLibraries',
|
|
309
|
-
});
|
|
310
|
-
return;
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
// if we import a library using loadChildren, we should not import it using es6imports
|
|
314
|
-
if (node.type === utils_1.AST_NODE_TYPES.ImportDeclaration &&
|
|
315
|
-
node.importKind !== 'type' &&
|
|
316
|
-
!checkDynamicDependenciesExceptions.some((a) => (0, runtime_lint_utils_1.matchImportWithWildcard)(a, imp)) &&
|
|
317
|
-
(0, runtime_lint_utils_1.onlyLoadChildren)(projectGraph, sourceProject.name, targetProject.name, [])) {
|
|
318
|
-
context.report({
|
|
319
|
-
node,
|
|
320
|
-
messageId: 'noImportsOfLazyLoadedLibraries',
|
|
321
|
-
});
|
|
322
|
-
return;
|
|
323
|
-
}
|
|
324
|
-
// check that dependency constraints are satisfied
|
|
325
|
-
if (depConstraints.length > 0) {
|
|
326
|
-
const constraints = (0, runtime_lint_utils_1.findConstraintsFor)(depConstraints, sourceProject);
|
|
327
|
-
// when no constrains found => error. Force the user to provision them.
|
|
328
|
-
if (constraints.length === 0) {
|
|
329
|
-
context.report({
|
|
330
|
-
node,
|
|
331
|
-
messageId: 'projectWithoutTagsCannotHaveDependencies',
|
|
332
|
-
});
|
|
333
|
-
return;
|
|
334
|
-
}
|
|
335
|
-
const transitiveExternalDeps = checkNestedExternalImports
|
|
336
|
-
? (0, runtime_lint_utils_1.findTransitiveExternalDependencies)(projectGraph, targetProject)
|
|
337
|
-
: [];
|
|
338
|
-
for (let constraint of constraints) {
|
|
339
|
-
if (constraint.onlyDependOnLibsWithTags &&
|
|
340
|
-
constraint.onlyDependOnLibsWithTags.length &&
|
|
341
|
-
(0, runtime_lint_utils_1.hasNoneOfTheseTags)(targetProject, constraint.onlyDependOnLibsWithTags)) {
|
|
342
|
-
context.report({
|
|
343
|
-
node,
|
|
344
|
-
messageId: 'onlyTagsConstraintViolation',
|
|
345
|
-
data: {
|
|
346
|
-
sourceTag: (0, runtime_lint_utils_1.isComboDepConstraint)(constraint)
|
|
347
|
-
? constraint.allSourceTags.join('" and "')
|
|
348
|
-
: constraint.sourceTag,
|
|
349
|
-
tags: (0, runtime_lint_utils_1.stringifyTags)(constraint.onlyDependOnLibsWithTags),
|
|
350
|
-
},
|
|
351
|
-
});
|
|
352
|
-
return;
|
|
353
|
-
}
|
|
354
|
-
if (constraint.onlyDependOnLibsWithTags &&
|
|
355
|
-
constraint.onlyDependOnLibsWithTags.length === 0 &&
|
|
356
|
-
targetProject.data.tags.length !== 0) {
|
|
357
|
-
context.report({
|
|
358
|
-
node,
|
|
359
|
-
messageId: 'emptyOnlyTagsConstraintViolation',
|
|
360
|
-
data: {
|
|
361
|
-
sourceTag: (0, runtime_lint_utils_1.isComboDepConstraint)(constraint)
|
|
362
|
-
? constraint.allSourceTags.join('" and "')
|
|
363
|
-
: constraint.sourceTag,
|
|
364
|
-
},
|
|
365
|
-
});
|
|
366
|
-
return;
|
|
367
|
-
}
|
|
368
|
-
if (constraint.notDependOnLibsWithTags &&
|
|
369
|
-
constraint.notDependOnLibsWithTags.length) {
|
|
370
|
-
const projectPaths = (0, runtime_lint_utils_1.findDependenciesWithTags)(targetProject, constraint.notDependOnLibsWithTags, projectGraph);
|
|
371
|
-
if (projectPaths.length > 0) {
|
|
372
|
-
context.report({
|
|
373
|
-
node,
|
|
374
|
-
messageId: 'notTagsConstraintViolation',
|
|
375
|
-
data: {
|
|
376
|
-
sourceTag: (0, runtime_lint_utils_1.isComboDepConstraint)(constraint)
|
|
377
|
-
? constraint.allSourceTags.join('" and "')
|
|
378
|
-
: constraint.sourceTag,
|
|
379
|
-
tags: (0, runtime_lint_utils_1.stringifyTags)(constraint.notDependOnLibsWithTags),
|
|
380
|
-
projects: projectPaths
|
|
381
|
-
.map((projectPath) => `- ${projectPath.map((p) => p.name).join(' -> ')}`)
|
|
382
|
-
.join('\n'),
|
|
383
|
-
},
|
|
384
|
-
});
|
|
385
|
-
return;
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
if (checkNestedExternalImports &&
|
|
389
|
-
constraint.bannedExternalImports &&
|
|
390
|
-
constraint.bannedExternalImports.length) {
|
|
391
|
-
const matches = (0, runtime_lint_utils_1.hasBannedDependencies)(transitiveExternalDeps, projectGraph, constraint);
|
|
392
|
-
if (matches.length > 0) {
|
|
393
|
-
matches.forEach(([target, violatingSource, constraint]) => {
|
|
394
|
-
context.report({
|
|
395
|
-
node,
|
|
396
|
-
messageId: 'bannedExternalImportsViolation',
|
|
397
|
-
data: {
|
|
398
|
-
sourceTag: (0, runtime_lint_utils_1.isComboDepConstraint)(constraint)
|
|
399
|
-
? constraint.allSourceTags.join('" and "')
|
|
400
|
-
: constraint.sourceTag,
|
|
401
|
-
childProjectName: violatingSource.name,
|
|
402
|
-
package: target.data.packageName,
|
|
403
|
-
},
|
|
404
|
-
});
|
|
405
|
-
});
|
|
406
|
-
return;
|
|
407
|
-
}
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
return {
|
|
413
|
-
ImportDeclaration(node) {
|
|
414
|
-
run(node);
|
|
415
|
-
},
|
|
416
|
-
ImportExpression(node) {
|
|
417
|
-
run(node);
|
|
418
|
-
},
|
|
419
|
-
ExportAllDeclaration(node) {
|
|
420
|
-
run(node);
|
|
421
|
-
},
|
|
422
|
-
ExportNamedDeclaration(node) {
|
|
423
|
-
run(node);
|
|
424
|
-
},
|
|
425
|
-
};
|
|
426
|
-
},
|
|
427
|
-
});
|
|
428
|
-
//# sourceMappingURL=enforce-module-boundaries.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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,21 +0,0 @@
|
|
|
1
|
-
import type { AST } from 'jsonc-eslint-parser';
|
|
2
|
-
import type { TSESLint } from '@typescript-eslint/utils';
|
|
3
|
-
type Options = [
|
|
4
|
-
{
|
|
5
|
-
generatorsJson?: string;
|
|
6
|
-
executorsJson?: string;
|
|
7
|
-
migrationsJson?: string;
|
|
8
|
-
packageJson?: string;
|
|
9
|
-
allowedVersionStrings: string[];
|
|
10
|
-
}
|
|
11
|
-
];
|
|
12
|
-
export type MessageIds = 'missingRequiredSchema' | 'invalidSchemaPath' | 'missingImplementation' | 'invalidImplementationPath' | 'invalidImplementationModule' | 'unableToReadImplementationExports' | 'invalidVersion' | 'missingVersion' | 'noGeneratorsOrSchematicsFound' | 'noExecutorsOrBuildersFound' | 'valueShouldBeObject';
|
|
13
|
-
export declare const RULE_NAME = "nx-plugin-checks";
|
|
14
|
-
declare const _default: TSESLint.RuleModule<MessageIds, Options, TSESLint.RuleListener>;
|
|
15
|
-
export default _default;
|
|
16
|
-
export declare function checkCollectionFileNode(baseNode: AST.JSONObjectExpression, mode: 'migration' | 'generator' | 'executor', context: TSESLint.RuleContext<MessageIds, Options>): void;
|
|
17
|
-
export declare function checkCollectionNode(baseNode: AST.JSONObjectExpression, mode: 'migration' | 'generator' | 'executor', context: TSESLint.RuleContext<MessageIds, Options>): void;
|
|
18
|
-
export declare function validateEntry(baseNode: AST.JSONObjectExpression, key: string, mode: 'migration' | 'generator' | 'executor', context: TSESLint.RuleContext<MessageIds, Options>): void;
|
|
19
|
-
export declare function validateImplemenationNode(implementationNode: AST.JSONProperty, key: string, context: TSESLint.RuleContext<MessageIds, Options>): void;
|
|
20
|
-
export declare function validatePackageGroup(baseNode: AST.JSONObjectExpression, context: TSESLint.RuleContext<MessageIds, Options>): void;
|
|
21
|
-
export declare function validateVersionJsonExpression(node: AST.JSONExpression, context: TSESLint.RuleContext<MessageIds, Options>): string | boolean;
|