@@ -154,6 +154,15 @@ let connectionSocket: WebSocket;
154154
155155let serverManagerApi : any ;
156156
157+ // Map of the intersystems.server connection specs we have resolved via the API to that extension
158+ const resolvedConnSpecs = new Map < string , any > ( ) ;
159+
160+ // Accessor for the connection specs
161+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
162+ export function getResolvedConnectionSpec ( key : string , dflt : any ) : any {
163+ return resolvedConnSpecs . has ( key ) ? resolvedConnSpecs . get ( key ) : dflt ;
164+ }
165+
157166export function checkConnection ( clearCookies = false , uri ?: vscode . Uri ) : void {
158167 const { apiTarget, configName } = connectionTarget ( uri ) ;
159168 if ( clearCookies ) {
@@ -339,14 +348,14 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
339348 reporter = new TelemetryReporter ( extensionId , extensionVersion , aiKey ) ;
340349 }
341350
342- // Get api for servermanager extension, perhaps offering to install it
343- serverManagerApi = await serverManager ( ) ;
344-
345351 const languages = packageJson . contributes . languages . map ( ( lang ) => lang . id ) ;
346352 workspaceState = context . workspaceState ;
347353 extensionContext = context ;
348354 workspaceState . update ( "workspaceFolder" , "" ) ;
349355
356+ // Get api for servermanager extension, perhaps offering to install it
357+ serverManagerApi = await serverManager ( ) ;
358+
350359 documentContentProvider = new DocumentContentProvider ( ) ;
351360 xmlContentProvider = new XmlContentProvider ( ) ;
352361 fileSystemProvider = new FileSystemProvider ( ) ;
@@ -375,7 +384,13 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
375384 const { configName } = connectionTarget ( uri ) ;
376385 toCheck . set ( configName , uri ) ;
377386 } ) ;
378- toCheck . forEach ( function ( uri ) {
387+ toCheck . forEach ( async function ( uri , configName ) {
388+ if ( serverManagerApi && serverManagerApi . getServerSpec ) {
389+ const connSpec = await serverManagerApi . getServerSpec ( configName ) ;
390+ if ( connSpec ) {
391+ resolvedConnSpecs . set ( configName , connSpec ) ;
392+ }
393+ }
379394 checkConnection ( true , uri ) ;
380395 } ) ;
381396
0 commit comments