@@ -23,19 +23,21 @@ class WorkspaceContext {
2323 packageManager : PackageManager = 'npm'
2424 catalogs ?: CatalogsInfo
2525
26- constructor ( folder : WorkspaceFolder ) {
26+ private constructor ( folder : WorkspaceFolder ) {
2727 this . folder = folder
28- this . #init( )
2928 }
3029
31- async #init( ) {
32- this . packageManager = await detectPackageManager ( this . folder )
30+ static async create ( folder : WorkspaceFolder ) : Promise < WorkspaceContext > {
31+ const ctx = new WorkspaceContext ( folder )
32+ ctx . packageManager = await detectPackageManager ( folder )
3333
34- if ( this . packageManager !== 'npm' ) {
35- const workspaceFilename = workspaceFileMapping [ this . packageManager ]
36- const workspaceFile = Uri . joinPath ( this . folder . uri , workspaceFilename )
37- this . catalogs = ( await this . loadWorkspaceCatalogInfo ( workspaceFile ) ) ?. catalogs
34+ if ( ctx . packageManager !== 'npm' ) {
35+ const workspaceFilename = workspaceFileMapping [ ctx . packageManager ]
36+ const workspaceFile = Uri . joinPath ( folder . uri , workspaceFilename )
37+ ctx . catalogs = ( await ctx . loadWorkspaceCatalogInfo ( workspaceFile ) ) ?. catalogs
3838 }
39+
40+ return ctx
3941 }
4042
4143 #memoizeOptions: MemoizeOptions < Uri > = {
@@ -93,7 +95,7 @@ class WorkspaceContext {
9395
9496 return {
9597 ...info ,
96- dependencies : info . dependencies . map ( dep => this . #createResolvedDependencyInfo( dep ) ) ,
98+ dependencies : info . dependencies . map ( ( dep ) => this . #createResolvedDependencyInfo( dep ) ) ,
9799 }
98100 } , this . #memoizeOptions)
99101
@@ -118,7 +120,7 @@ class WorkspaceContext {
118120
119121 return {
120122 ...info ,
121- dependencies : info . dependencies . map ( dep => this . #createResolvedDependencyInfo( dep ) ) ,
123+ dependencies : info . dependencies . map ( ( dep ) => this . #createResolvedDependencyInfo( dep ) ) ,
122124 }
123125 } , this . #memoizeOptions)
124126}
@@ -129,7 +131,7 @@ export const getWorkspaceContext = memoize<Uri, Promise<WorkspaceContext | undef
129131 return
130132
131133 logger . info ( `[workspace-context] built ${ folder . uri . path } ` )
132- return new WorkspaceContext ( folder )
134+ return WorkspaceContext . create ( folder )
133135} , {
134136 getKey : ( uri : Uri ) => workspace . getWorkspaceFolder ( uri ) ! . uri . path ,
135137 ttl : false ,
0 commit comments