fix(linter): fix dep-checks projPackageJsonDeps caching for IDE (#18935)
This commit is contained in:
parent
af53c7cfb2
commit
2bc7031017
@ -148,11 +148,8 @@ export default createESLintRule<Options, MessageIds>({
|
||||
'package.json'
|
||||
);
|
||||
|
||||
globalThis.projPackageJsonDeps ??= getProductionDependencies(
|
||||
getPackageJson(projPackageJsonPath)
|
||||
);
|
||||
const projPackageJsonDeps: Record<string, string> =
|
||||
globalThis.projPackageJsonDeps;
|
||||
getProductionDependencies(projPackageJsonPath);
|
||||
const rootPackageJsonDeps = getAllDependencies(rootPackageJson);
|
||||
|
||||
function validateMissingDependencies(node: AST.JSONProperty) {
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import { ProjectFileMap, readJsonFile } from '@nx/devkit';
|
||||
import { readJsonFile } from '@nx/devkit';
|
||||
import { existsSync } from 'fs';
|
||||
import { PackageJson } from 'nx/src/utils/package-json';
|
||||
import { isTerminalRun } from './runtime-lint-utils';
|
||||
|
||||
export function getAllDependencies(
|
||||
packageJson: PackageJson
|
||||
@ -14,13 +15,18 @@ export function getAllDependencies(
|
||||
}
|
||||
|
||||
export function getProductionDependencies(
|
||||
packageJson: PackageJson
|
||||
packageJsonPath: string
|
||||
): Record<string, string> {
|
||||
return {
|
||||
if (!globalThis.projPackageJsonDeps || !isTerminalRun()) {
|
||||
const packageJson = getPackageJson(packageJsonPath);
|
||||
globalThis.projPackageJsonDeps = {
|
||||
...packageJson.dependencies,
|
||||
...packageJson.peerDependencies,
|
||||
...packageJson.optionalDependencies,
|
||||
};
|
||||
}
|
||||
|
||||
return globalThis.projPackageJsonDeps;
|
||||
}
|
||||
|
||||
export function getPackageJson(path: string): PackageJson {
|
||||
|
||||
@ -19,13 +19,13 @@ export function ensureGlobalProjectGraph(ruleName: string) {
|
||||
* Enforce every IDE change to get a fresh nxdeps.json
|
||||
*/
|
||||
if (
|
||||
!(global as any).projectGraph ||
|
||||
!(global as any).projectRootMappings ||
|
||||
!(global as any).projectFileMap ||
|
||||
!globalThis.projectGraph ||
|
||||
!globalThis.projectRootMappings ||
|
||||
!globalThis.projectFileMap ||
|
||||
!isTerminalRun()
|
||||
) {
|
||||
const nxJson = readNxJson();
|
||||
(global as any).workspaceLayout = nxJson.workspaceLayout;
|
||||
globalThis.workspaceLayout = nxJson.workspaceLayout;
|
||||
|
||||
/**
|
||||
* Because there are a number of ways in which the rule can be invoked (executor vs ESLint CLI vs IDE Plugin),
|
||||
@ -33,12 +33,12 @@ export function ensureGlobalProjectGraph(ruleName: string) {
|
||||
*/
|
||||
try {
|
||||
const projectGraph = readCachedProjectGraph();
|
||||
(global as any).projectGraph = projectGraph;
|
||||
(global as any).projectRootMappings = createProjectRootMappings(
|
||||
globalThis.projectGraph = projectGraph;
|
||||
globalThis.projectRootMappings = createProjectRootMappings(
|
||||
projectGraph.nodes
|
||||
);
|
||||
(global as any).projectFileMap = readProjectFileMapCache().projectFileMap;
|
||||
(global as any).targetProjectLocator = new TargetProjectLocator(
|
||||
globalThis.projectFileMap = readProjectFileMapCache().projectFileMap;
|
||||
globalThis.targetProjectLocator = new TargetProjectLocator(
|
||||
projectGraph.nodes,
|
||||
projectGraph.externalNodes
|
||||
);
|
||||
@ -61,9 +61,9 @@ export function readProjectGraph(ruleName: string): {
|
||||
} {
|
||||
ensureGlobalProjectGraph(ruleName);
|
||||
return {
|
||||
projectGraph: (global as any).projectGraph,
|
||||
projectFileMap: (global as any).projectFileMap,
|
||||
projectRootMappings: (global as any).projectRootMappings,
|
||||
targetProjectLocator: (global as any).targetProjectLocator,
|
||||
projectGraph: globalThis.projectGraph,
|
||||
projectFileMap: globalThis.projectFileMap,
|
||||
projectRootMappings: globalThis.projectRootMappings,
|
||||
targetProjectLocator: globalThis.targetProjectLocator,
|
||||
};
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user