@nx/eslint-plugin 23.0.0-beta.11 → 23.0.0-beta.13
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 +4 -4
- package/src/resolve-workspace-rules.js +1 -1
- package/src/rules/dependency-checks.d.ts.map +1 -1
- package/src/rules/dependency-checks.js +17 -4
- package/src/rules/enforce-module-boundaries.js +1 -1
- package/src/rules/nx-plugin-checks.d.ts +2 -1
- package/src/rules/nx-plugin-checks.d.ts.map +1 -1
- package/src/rules/nx-plugin-checks.js +43 -3
- package/src/utils/ast-utils.js +2 -2
- package/src/utils/project-graph-utils.d.ts +1 -1
- package/src/utils/project-graph-utils.d.ts.map +1 -1
- package/src/utils/project-graph-utils.js +1 -1
- package/src/utils/runtime-lint-utils.d.ts +1 -1
- package/src/utils/runtime-lint-utils.d.ts.map +1 -1
- package/src/utils/runtime-lint-utils.js +1 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx/eslint-plugin",
|
|
3
|
-
"version": "23.0.0-beta.
|
|
3
|
+
"version": "23.0.0-beta.13",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The eslint-plugin package is an ESLint plugin that contains a collection of recommended ESLint rule configurations which you can extend from in your own ESLint configs, as well as an Nx-specific lint rule called enforce-module-boundaries.",
|
|
6
6
|
"repository": {
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@nx/devkit": "23.0.0-beta.
|
|
39
|
-
"@nx/js": "23.0.0-beta.
|
|
38
|
+
"@nx/devkit": "23.0.0-beta.13",
|
|
39
|
+
"@nx/js": "23.0.0-beta.13",
|
|
40
40
|
"@phenomnomnominal/tsquery": "~6.2.0",
|
|
41
41
|
"@typescript-eslint/type-utils": "^8.0.0",
|
|
42
42
|
"@typescript-eslint/utils": "^8.0.0",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"tslib": "^2.3.0"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"nx": "23.0.0-beta.
|
|
51
|
+
"nx": "23.0.0-beta.13"
|
|
52
52
|
},
|
|
53
53
|
"publishConfig": {
|
|
54
54
|
"access": "public"
|
|
@@ -4,7 +4,7 @@ exports.workspaceRules = void 0;
|
|
|
4
4
|
exports.loadWorkspaceRules = loadWorkspaceRules;
|
|
5
5
|
const devkit_1 = require("@nx/devkit");
|
|
6
6
|
const internal_1 = require("@nx/devkit/internal");
|
|
7
|
-
const internal_2 = require("@nx/js/
|
|
7
|
+
const internal_2 = require("@nx/js/internal");
|
|
8
8
|
const fs_1 = require("fs");
|
|
9
9
|
const path_1 = require("path");
|
|
10
10
|
const constants_1 = require("./constants");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-checks.d.ts","sourceRoot":"","sources":["../../../../../packages/eslint-plugin/src/rules/dependency-checks.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAmBvD,MAAM,MAAM,OAAO,GAAG;IACpB;QACE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,wBAAwB,CAAC,EAAE,OAAO,CAAC;QACnC,yBAAyB,CAAC,EAAE,OAAO,CAAC;QACpC,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,6BAA6B,CAAC,EAAE,OAAO,CAAC;QACxC,qCAAqC,CAAC,EAAE,OAAO,CAAC;QAChD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,uBAAuB,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;KACrD;CACF,CAAC;AAEF,MAAM,MAAM,UAAU,GAClB,mBAAmB,GACnB,oBAAoB,GACpB,iBAAiB,GACjB,0BAA0B,GAC1B,yBAAyB,CAAC;AAE9B,eAAO,MAAM,SAAS,sBAAsB,CAAC;;;;AAE7C,
|
|
1
|
+
{"version":3,"file":"dependency-checks.d.ts","sourceRoot":"","sources":["../../../../../packages/eslint-plugin/src/rules/dependency-checks.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAmBvD,MAAM,MAAM,OAAO,GAAG;IACpB;QACE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,wBAAwB,CAAC,EAAE,OAAO,CAAC;QACnC,yBAAyB,CAAC,EAAE,OAAO,CAAC;QACpC,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,6BAA6B,CAAC,EAAE,OAAO,CAAC;QACxC,qCAAqC,CAAC,EAAE,OAAO,CAAC;QAChD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,uBAAuB,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;KACrD;CACF,CAAC;AAEF,MAAM,MAAM,UAAU,GAClB,mBAAmB,GACnB,oBAAoB,GACpB,iBAAiB,GACjB,0BAA0B,GAC1B,yBAAyB,CAAC;AAE9B,eAAO,MAAM,SAAS,sBAAsB,CAAC;;;;AAE7C,wBAghBG"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.RULE_NAME = void 0;
|
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
|
5
5
|
const internal_1 = require("@nx/devkit/internal");
|
|
6
|
-
const
|
|
6
|
+
const internal_2 = require("@nx/js/internal");
|
|
7
7
|
const utils_1 = require("@typescript-eslint/utils");
|
|
8
8
|
const path_1 = require("path");
|
|
9
9
|
const semver_1 = require("semver");
|
|
@@ -89,7 +89,7 @@ exports.default = utils_1.ESLintUtils.RuleCreator(() => `https://github.com/nrwl
|
|
|
89
89
|
return {};
|
|
90
90
|
}
|
|
91
91
|
const rootPackageJson = (0, package_json_utils_1.getPackageJson)((0, path_1.join)(devkit_1.workspaceRoot, 'package.json'));
|
|
92
|
-
const npmDependencies = (0,
|
|
92
|
+
const npmDependencies = (0, internal_2.findNpmDependencies)(devkit_1.workspaceRoot, sourceProject, projectGraph, projectFileMap, buildTarget, // TODO: What if child library has a build target different from the parent?
|
|
93
93
|
{
|
|
94
94
|
includeTransitiveDependencies,
|
|
95
95
|
ignoredFiles,
|
|
@@ -97,6 +97,17 @@ exports.default = utils_1.ESLintUtils.RuleCreator(() => `https://github.com/nrwl
|
|
|
97
97
|
runtimeHelpers,
|
|
98
98
|
});
|
|
99
99
|
const expectedDependencyNames = Object.keys(npmDependencies);
|
|
100
|
+
// Packages eligible for `workspace:*` rewrites under
|
|
101
|
+
// `peerDepsVersionStrategy: 'workspace'`. Must be both a workspace project
|
|
102
|
+
// and registered in the package manager's workspaces — otherwise
|
|
103
|
+
// `workspace:*` won't resolve at install time.
|
|
104
|
+
const workspacePackageNames = new Set();
|
|
105
|
+
for (const node of Object.values(projectGraph.nodes)) {
|
|
106
|
+
const js = node.data?.metadata?.js;
|
|
107
|
+
if (js?.packageName && js.isInPackageManagerWorkspaces) {
|
|
108
|
+
workspacePackageNames.add(js.packageName);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
100
111
|
const packageJson = JSON.parse(context.sourceCode.getText());
|
|
101
112
|
const projPackageJsonDeps = (0, package_json_utils_1.getProductionDependencies)(packageJson);
|
|
102
113
|
const rootPackageJsonDeps = (0, package_json_utils_1.getAllDependencies)(rootPackageJson);
|
|
@@ -189,7 +200,8 @@ exports.default = utils_1.ESLintUtils.RuleCreator(() => `https://github.com/nrwl
|
|
|
189
200
|
fix(fixer) {
|
|
190
201
|
missingDeps.forEach((d) => {
|
|
191
202
|
if (dependencySection === 'peerDependencies' &&
|
|
192
|
-
peerDepsVersionStrategy === 'workspace'
|
|
203
|
+
peerDepsVersionStrategy === 'workspace' &&
|
|
204
|
+
workspacePackageNames.has(d)) {
|
|
193
205
|
projPackageJsonDeps[d] = WORKSPACE_VERSION_WILDCARD;
|
|
194
206
|
}
|
|
195
207
|
else {
|
|
@@ -237,7 +249,8 @@ exports.default = utils_1.ESLintUtils.RuleCreator(() => `https://github.com/nrwl
|
|
|
237
249
|
const dependencySection = getDependencySection(node);
|
|
238
250
|
if (dependencySection === 'peerDependencies' &&
|
|
239
251
|
peerDepsVersionStrategy === 'workspace' &&
|
|
240
|
-
!packageRange.startsWith('workspace:')
|
|
252
|
+
!packageRange.startsWith('workspace:') &&
|
|
253
|
+
workspacePackageNames.has(packageName)) {
|
|
241
254
|
context.report({
|
|
242
255
|
node: node,
|
|
243
256
|
messageId: 'versionMismatch',
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.RULE_NAME = void 0;
|
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
|
5
5
|
const utils_1 = require("@typescript-eslint/utils");
|
|
6
|
-
const internal_1 = require("@nx/js/
|
|
6
|
+
const internal_1 = require("@nx/js/internal");
|
|
7
7
|
const fileutils_1 = require("nx/src/utils/fileutils");
|
|
8
8
|
const path_1 = require("path");
|
|
9
9
|
const ast_utils_1 = require("../utils/ast-utils");
|
|
@@ -14,7 +14,7 @@ type NormalizedOptions = Options[0] & {
|
|
|
14
14
|
rootDir?: string;
|
|
15
15
|
outDir?: string;
|
|
16
16
|
};
|
|
17
|
-
export type MessageIds = 'missingRequiredSchema' | 'invalidSchemaPath' | 'missingImplementation' | 'invalidImplementationPath' | 'invalidImplementationModule' | 'unableToReadImplementationExports' | 'invalidVersion' | 'missingVersion' | 'noGeneratorsOrSchematicsFound' | 'noExecutorsOrBuildersFound' | 'valueShouldBeObject';
|
|
17
|
+
export type MessageIds = 'missingRequiredSchema' | 'invalidSchemaPath' | 'missingImplementation' | 'invalidImplementationPath' | 'invalidImplementationModule' | 'unableToReadImplementationExports' | 'invalidPromptPath' | 'invalidVersion' | 'missingVersion' | 'noGeneratorsOrSchematicsFound' | 'noExecutorsOrBuildersFound' | 'valueShouldBeObject';
|
|
18
18
|
export declare const RULE_NAME = "nx-plugin-checks";
|
|
19
19
|
declare const _default: TSESLint.RuleModule<MessageIds, Options, unknown, TSESLint.RuleListener> & {
|
|
20
20
|
name: string;
|
|
@@ -24,6 +24,7 @@ export declare function checkCollectionFileNode(baseNode: AST.JSONObjectExpressi
|
|
|
24
24
|
export declare function checkCollectionNode(baseNode: AST.JSONObjectExpression, mode: 'migration' | 'generator' | 'executor', context: TSESLint.RuleContext<MessageIds, Options>, options: NormalizedOptions): void;
|
|
25
25
|
export declare function validateEntry(baseNode: AST.JSONObjectExpression, key: string, mode: 'migration' | 'generator' | 'executor', context: TSESLint.RuleContext<MessageIds, Options>, options: NormalizedOptions): void;
|
|
26
26
|
export declare function validateImplementationNode(implementationNode: AST.JSONProperty, key: string, context: TSESLint.RuleContext<MessageIds, Options>, options: NormalizedOptions): void;
|
|
27
|
+
export declare function validatePromptNode(promptNode: AST.JSONProperty, key: string, context: TSESLint.RuleContext<MessageIds, Options>, options: NormalizedOptions): void;
|
|
27
28
|
export declare function validatePackageGroup(baseNode: AST.JSONObjectExpression, context: TSESLint.RuleContext<MessageIds, Options>): void;
|
|
28
29
|
export declare function validateVersionJsonExpression(node: AST.JSONExpression, context: TSESLint.RuleContext<MessageIds, Options>): string | boolean;
|
|
29
30
|
export declare function checkIfIdentifierIsFunction(filePath: string, identifier: string): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nx-plugin-checks.d.ts","sourceRoot":"","sources":["../../../../../packages/eslint-plugin/src/rules/nx-plugin-checks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAoB/C,MAAM,MAAM,OAAO,GAAG;IACpB;QACE,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,qBAAqB,EAAE,MAAM,EAAE,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;CACF,CAAC;AAEF,KAAK,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAWF,MAAM,MAAM,UAAU,GAClB,uBAAuB,GACvB,mBAAmB,GACnB,uBAAuB,GACvB,2BAA2B,GAC3B,6BAA6B,GAC7B,mCAAmC,GACnC,gBAAgB,GAChB,gBAAgB,GAChB,+BAA+B,GAC/B,4BAA4B,GAC5B,qBAAqB,CAAC;AAE1B,eAAO,MAAM,SAAS,qBAAqB,CAAC;;;;AAE5C,
|
|
1
|
+
{"version":3,"file":"nx-plugin-checks.d.ts","sourceRoot":"","sources":["../../../../../packages/eslint-plugin/src/rules/nx-plugin-checks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAoB/C,MAAM,MAAM,OAAO,GAAG;IACpB;QACE,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,qBAAqB,EAAE,MAAM,EAAE,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;CACF,CAAC;AAEF,KAAK,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAWF,MAAM,MAAM,UAAU,GAClB,uBAAuB,GACvB,mBAAmB,GACnB,uBAAuB,GACvB,2BAA2B,GAC3B,6BAA6B,GAC7B,mCAAmC,GACnC,mBAAmB,GACnB,gBAAgB,GAChB,gBAAgB,GAChB,+BAA+B,GAC/B,4BAA4B,GAC5B,qBAAqB,CAAC;AAE1B,eAAO,MAAM,SAAS,qBAAqB,CAAC;;;;AAE5C,wBA4HG;AAqDH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,GAAG,CAAC,oBAAoB,EAClC,IAAI,EAAE,WAAW,GAAG,WAAW,GAAG,UAAU,EAC5C,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,EAClD,OAAO,EAAE,iBAAiB,QAkD3B;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,GAAG,CAAC,oBAAoB,EAClC,IAAI,EAAE,WAAW,GAAG,WAAW,GAAG,UAAU,EAC5C,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,EAClD,OAAO,EAAE,iBAAiB,QAqB3B;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,GAAG,CAAC,oBAAoB,EAClC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,GAAG,WAAW,GAAG,UAAU,EAC5C,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,EAClD,OAAO,EAAE,iBAAiB,GACzB,IAAI,CA4GN;AAED,wBAAgB,0BAA0B,CACxC,kBAAkB,EAAE,GAAG,CAAC,YAAY,EACpC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,EAClD,OAAO,EAAE,iBAAiB,QAqE3B;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,GAAG,CAAC,YAAY,EAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,EAClD,OAAO,EAAE,iBAAiB,QAuC3B;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,GAAG,CAAC,oBAAoB,EAClC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,QAsEnD;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,GAAG,CAAC,cAAc,EACxB,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,oBASnD;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAgCT"}
|
|
@@ -5,6 +5,7 @@ exports.checkCollectionFileNode = checkCollectionFileNode;
|
|
|
5
5
|
exports.checkCollectionNode = checkCollectionNode;
|
|
6
6
|
exports.validateEntry = validateEntry;
|
|
7
7
|
exports.validateImplementationNode = validateImplementationNode;
|
|
8
|
+
exports.validatePromptNode = validatePromptNode;
|
|
8
9
|
exports.validatePackageGroup = validatePackageGroup;
|
|
9
10
|
exports.validateVersionJsonExpression = validateVersionJsonExpression;
|
|
10
11
|
exports.checkIfIdentifierIsFunction = checkIfIdentifierIsFunction;
|
|
@@ -14,7 +15,7 @@ const fs_1 = require("fs");
|
|
|
14
15
|
const tsquery_1 = require("@phenomnomnominal/tsquery");
|
|
15
16
|
const devkit_1 = require("@nx/devkit");
|
|
16
17
|
const js_1 = require("@nx/js");
|
|
17
|
-
const internal_1 = require("@nx/js/
|
|
18
|
+
const internal_1 = require("@nx/js/internal");
|
|
18
19
|
const path = tslib_1.__importStar(require("path"));
|
|
19
20
|
const semver_1 = require("semver");
|
|
20
21
|
const project_graph_utils_1 = require("../utils/project-graph-utils");
|
|
@@ -79,6 +80,7 @@ exports.default = utils_1.ESLintUtils.RuleCreator(() => ``)({
|
|
|
79
80
|
valueShouldBeObject: '{{ key }} should be an object',
|
|
80
81
|
missingRequiredSchema: '{{ key }}: Missing required property - `schema`',
|
|
81
82
|
missingImplementation: '{{ key }}: Missing required property - `implementation`',
|
|
83
|
+
invalidPromptPath: '{{ key }}: Prompt path should point to a valid file',
|
|
82
84
|
missingVersion: '{{ key }}: Missing required property - `version`',
|
|
83
85
|
},
|
|
84
86
|
},
|
|
@@ -265,7 +267,8 @@ function validateEntry(baseNode, key, mode, context, options) {
|
|
|
265
267
|
}
|
|
266
268
|
const implementationNode = baseNode.properties.find((x) => x.key.type === 'JSONLiteral' &&
|
|
267
269
|
(x.key.value === 'implementation' || x.key.value === 'factory'));
|
|
268
|
-
|
|
270
|
+
const promptNode = baseNode.properties.find((x) => x.key.type === 'JSONLiteral' && x.key.value === 'prompt');
|
|
271
|
+
if (!implementationNode && !(mode === 'migration' && promptNode)) {
|
|
269
272
|
context.report({
|
|
270
273
|
messageId: 'missingImplementation',
|
|
271
274
|
data: {
|
|
@@ -274,9 +277,12 @@ function validateEntry(baseNode, key, mode, context, options) {
|
|
|
274
277
|
node: baseNode,
|
|
275
278
|
});
|
|
276
279
|
}
|
|
277
|
-
else {
|
|
280
|
+
else if (implementationNode) {
|
|
278
281
|
validateImplementationNode(implementationNode, key, context, options);
|
|
279
282
|
}
|
|
283
|
+
if (mode === 'migration' && promptNode) {
|
|
284
|
+
validatePromptNode(promptNode, key, context, options);
|
|
285
|
+
}
|
|
280
286
|
if (mode === 'migration') {
|
|
281
287
|
const versionNode = baseNode.properties.find((x) => x.key.type === 'JSONLiteral' && x.key.value === 'version');
|
|
282
288
|
if (!versionNode) {
|
|
@@ -373,6 +379,40 @@ function validateImplementationNode(implementationNode, key, context, options) {
|
|
|
373
379
|
}
|
|
374
380
|
}
|
|
375
381
|
}
|
|
382
|
+
function validatePromptNode(promptNode, key, context, options) {
|
|
383
|
+
if (promptNode.value.type !== 'JSONLiteral' ||
|
|
384
|
+
typeof promptNode.value.value !== 'string') {
|
|
385
|
+
context.report({
|
|
386
|
+
messageId: 'invalidPromptPath',
|
|
387
|
+
data: {
|
|
388
|
+
key,
|
|
389
|
+
},
|
|
390
|
+
node: promptNode.value,
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
else {
|
|
394
|
+
const promptPath = path.join(path.dirname(context.filename ?? context.getFilename()), promptNode.value.value);
|
|
395
|
+
let resolvedPath;
|
|
396
|
+
if ((0, fs_1.existsSync)(promptPath)) {
|
|
397
|
+
resolvedPath = promptPath;
|
|
398
|
+
}
|
|
399
|
+
else if (options.outDir && options.rootDir) {
|
|
400
|
+
const mapped = promptPath.replace(options.outDir, options.rootDir);
|
|
401
|
+
if ((0, fs_1.existsSync)(mapped)) {
|
|
402
|
+
resolvedPath = mapped;
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
if (!resolvedPath) {
|
|
406
|
+
context.report({
|
|
407
|
+
messageId: 'invalidPromptPath',
|
|
408
|
+
data: {
|
|
409
|
+
key,
|
|
410
|
+
},
|
|
411
|
+
node: promptNode.value,
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
}
|
|
376
416
|
function validatePackageGroup(baseNode, context) {
|
|
377
417
|
const migrationsNode = baseNode.properties.find((x) => x.key.type === 'JSONLiteral' &&
|
|
378
418
|
x.value.type === 'JSONObjectExpression' &&
|
package/src/utils/ast-utils.js
CHANGED
|
@@ -5,7 +5,7 @@ exports.getBarrelEntryPointProjectNode = getBarrelEntryPointProjectNode;
|
|
|
5
5
|
exports.getRelativeImportPath = getRelativeImportPath;
|
|
6
6
|
const devkit_1 = require("@nx/devkit");
|
|
7
7
|
const js_1 = require("@nx/js");
|
|
8
|
-
const
|
|
8
|
+
const internal_1 = require("@nx/js/internal");
|
|
9
9
|
const type_utils_1 = require("@typescript-eslint/type-utils");
|
|
10
10
|
const fs_1 = require("fs");
|
|
11
11
|
const path_1 = require("path");
|
|
@@ -61,7 +61,7 @@ function getBarrelEntryPointProjectNode(projectNode) {
|
|
|
61
61
|
const sourceFolderPaths = tsConfigBase.compilerOptions.paths[entry];
|
|
62
62
|
return sourceFolderPaths.some((sourceFolderPath) => {
|
|
63
63
|
const normalizedPath = sourceFolderPath.replace(/^\.\//, '');
|
|
64
|
-
const sourceRoot = (0,
|
|
64
|
+
const sourceRoot = (0, internal_1.getProjectSourceRoot)(projectNode.data);
|
|
65
65
|
return (normalizedPath === sourceRoot ||
|
|
66
66
|
normalizedPath.indexOf(`${sourceRoot}/`) === 0);
|
|
67
67
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ProjectFileMap, ProjectGraph } from '@nx/devkit';
|
|
2
2
|
import { ProjectRootMappings } from 'nx/src/project-graph/utils/find-project-for-path';
|
|
3
|
-
import { TargetProjectLocator } from '@nx/js/
|
|
3
|
+
import { TargetProjectLocator } from '@nx/js/internal';
|
|
4
4
|
export declare function ensureGlobalProjectGraph(ruleName: string): void;
|
|
5
5
|
export declare function readProjectGraph(ruleName: string): {
|
|
6
6
|
projectGraph: ProjectGraph;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-graph-utils.d.ts","sourceRoot":"","sources":["../../../../../packages/eslint-plugin/src/utils/project-graph-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,YAAY,EAEb,MAAM,YAAY,CAAC;AAGpB,OAAO,EAEL,mBAAmB,EACpB,MAAM,kDAAkD,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"project-graph-utils.d.ts","sourceRoot":"","sources":["../../../../../packages/eslint-plugin/src/utils/project-graph-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,YAAY,EAEb,MAAM,YAAY,CAAC;AAGpB,OAAO,EAEL,mBAAmB,EACpB,MAAM,kDAAkD,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAGvD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,QAsCxD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG;IAClD,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,oBAAoB,EAAE,oBAAoB,CAAC;CAC5C,CAQA"}
|
|
@@ -7,7 +7,7 @@ const runtime_lint_utils_1 = require("./runtime-lint-utils");
|
|
|
7
7
|
const chalk = require("chalk");
|
|
8
8
|
const find_project_for_path_1 = require("nx/src/project-graph/utils/find-project-for-path");
|
|
9
9
|
const configuration_1 = require("nx/src/config/configuration");
|
|
10
|
-
const internal_1 = require("@nx/js/
|
|
10
|
+
const internal_1 = require("@nx/js/internal");
|
|
11
11
|
const nx_deps_cache_1 = require("nx/src/project-graph/nx-deps-cache");
|
|
12
12
|
function ensureGlobalProjectGraph(ruleName) {
|
|
13
13
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ProjectGraph, ProjectGraphDependency, ProjectGraphExternalNode, ProjectGraphProjectNode } from '@nx/devkit';
|
|
2
|
-
import { TargetProjectLocator } from '@nx/js/
|
|
2
|
+
import { TargetProjectLocator } from '@nx/js/internal';
|
|
3
3
|
import { TSESLint, TSESTree } from '@typescript-eslint/utils';
|
|
4
4
|
import { ProjectRootMappings } from 'nx/src/project-graph/utils/find-project-for-path';
|
|
5
5
|
export type Deps = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-lint-utils.d.ts","sourceRoot":"","sources":["../../../../../packages/eslint-plugin/src/utils/runtime-lint-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,YAAY,EACZ,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EAExB,MAAM,YAAY,CAAC;AAEpB,OAAO,
|
|
1
|
+
{"version":3,"file":"runtime-lint-utils.d.ts","sourceRoot":"","sources":["../../../../../packages/eslint-plugin/src/utils/runtime-lint-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,6 @@ exports.getParserServices = getParserServices;
|
|
|
28
28
|
const tslib_1 = require("tslib");
|
|
29
29
|
const devkit_1 = require("@nx/devkit");
|
|
30
30
|
const js_1 = require("@nx/js");
|
|
31
|
-
const internal_1 = require("@nx/js/src/internal");
|
|
32
31
|
const utils_1 = require("@typescript-eslint/utils");
|
|
33
32
|
const path = tslib_1.__importStar(require("node:path"));
|
|
34
33
|
const find_project_for_path_1 = require("nx/src/project-graph/utils/find-project-for-path");
|
|
@@ -335,7 +334,7 @@ function belongsToDifferentEntryPoint(importExpr, filePath, projectRoot) {
|
|
|
335
334
|
return importEntryPoint !== srcEntryPoint;
|
|
336
335
|
}
|
|
337
336
|
function getSecondaryEntryPointPath(importExpr, filePath, projectRoot) {
|
|
338
|
-
const resolvedImportFile = (0,
|
|
337
|
+
const resolvedImportFile = (0, js_1.resolveModuleByImport)(importExpr, filePath, // not strictly necessary, but speeds up resolution
|
|
339
338
|
path.join(devkit_1.workspaceRoot, (0, js_1.getRootTsConfigFileName)()));
|
|
340
339
|
if (!resolvedImportFile) {
|
|
341
340
|
return undefined;
|