Skip to content

Commit 570d838

Browse files
committed
fix: get workspace file correctly
1 parent 8caaa25 commit 570d838

1 file changed

Lines changed: 13 additions & 8 deletions

File tree

src/utils/workspace.ts

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { CatalogsInfo, ResolvedDependencyInfo, WorkspaceContext } from '#types/context'
22
import type { DependencyInfo, PackageManifestInfo, WorkspaceCatalogInfo } from '#types/extractor'
33
import type { MemoizedFunction } from '#utils/memoize'
4-
import type { Uri, WorkspaceFolder } from 'vscode'
4+
import type { WorkspaceFolder } from 'vscode'
55
import { packageManifestExtractorEntry, workspaceCatalogExtractorEntries } from '#extractors'
66
import { logger } from '#state'
77
import { getPackageInfo } from '#utils/api/package'
@@ -10,7 +10,7 @@ import { resolveDependencySpec } from '#utils/dependency'
1010
import { memoize } from '#utils/memoize'
1111
import { resolveExactVersion } from '#utils/package'
1212
import { detectPackageManager } from '#utils/package-manager'
13-
import { workspace } from 'vscode'
13+
import { Uri, workspace } from 'vscode'
1414
import { getDocumentText } from './document'
1515

1616
type WithResolvedDependencyInfo<T> = Omit<T, 'dependencies'> & {
@@ -71,7 +71,6 @@ export const getWorkspaceContextState = memoize<Uri, Promise<WorkspaceContextSta
7171
if (!folder)
7272
return
7373

74-
const workspacePath = folder.uri.path
7574
const packageManager = await detectPackageManager(folder)
7675

7776
const loadWorkspaceCatalogInfo = memoize(async (uri: Uri): Promise<WithResolvedDependencyInfo<WorkspaceCatalogInfo> | undefined> => {
@@ -94,11 +93,17 @@ export const getWorkspaceContextState = memoize<Uri, Promise<WorkspaceContextSta
9493
}
9594
}, { ttl: false, maxSize: Number.POSITIVE_INFINITY, fallbackToCachedOnError: false })
9695

97-
const catalogs = packageManager === 'npm'
98-
? undefined
99-
: (await loadWorkspaceCatalogInfo(folder.uri))?.catalogs
96+
let catalogs: CatalogsInfo | undefined
10097

101-
logger.info(`[workspace-context] built ${workspacePath}`)
98+
if (packageManager !== 'npm') {
99+
const workspaceFile = Uri.joinPath(
100+
folder.uri,
101+
workspaceCatalogExtractorEntries.find((entry) => packageManager === entry.packageManager)!.basename,
102+
)
103+
catalogs = (await loadWorkspaceCatalogInfo(workspaceFile))?.catalogs
104+
}
105+
106+
logger.info(`[workspace-context] built ${folder.uri.path}`)
102107

103108
return {
104109
folder,
@@ -107,7 +112,7 @@ export const getWorkspaceContextState = memoize<Uri, Promise<WorkspaceContextSta
107112
catalogs,
108113
},
109114
loadPackageManifestInfo: memoize(async (uri: Uri) => {
110-
if (isPackageManifestPath(uri.path))
115+
if (!isPackageManifestPath(uri.path))
111116
return
112117

113118
const text = await getDocumentText(uri)

0 commit comments

Comments
 (0)