@@ -3,9 +3,14 @@ import { Uri } from 'vscode';
3
3
import { extensionId , ServerSpec } from '../extension' ;
4
4
import { makeRESTRequest } from '../makeRESTRequest' ;
5
5
6
- const allTokens = new Map < string , string > ( ) ;
6
+ export enum BrowserTarget {
7
+ SIMPLE = 0 ,
8
+ EXTERNAL = 1
9
+ }
10
+
11
+ const allTokens = [ new Map < string , string > ( ) , new Map < string , string > ( ) ] ;
7
12
8
- export async function getPortalUriWithToken ( name : string , scope ?: vscode . ConfigurationScope ) : Promise < Uri | undefined > {
13
+ export async function getPortalUriWithToken ( target : BrowserTarget , name : string , scope ?: vscode . ConfigurationScope ) : Promise < Uri | undefined > {
9
14
10
15
const PORTAL_HOME = '/csp/sys/UtilHome.csp' ;
11
16
@@ -16,19 +21,19 @@ export async function getPortalUriWithToken(name: string, scope?: vscode.Configu
16
21
if ( typeof spec !== 'undefined' ) {
17
22
18
23
// Retrieve previously cached token
19
- let token = allTokens . get ( name ) || '' ;
24
+ let token = allTokens [ target ] . get ( name ) || '' ;
20
25
21
26
// Revalidate and extend existing token, or obtain a new one
22
27
const response = await makeRESTRequest ( "POST" , spec , { apiVersion : 1 , namespace : '%SYS' , path :'/action/query' } , { query : 'select %Atelier_v1_Utils.General_GetCSPToken(?, ?) token' , parameters : [ PORTAL_HOME , token ] } ) ;
23
28
24
29
if ( ! response ) {
25
30
// User will have to enter credentials
26
31
token = '' ;
27
- allTokens . delete ( name ) ;
32
+ allTokens [ target ] . delete ( name ) ;
28
33
}
29
34
else {
30
35
token = response . data ?. result ?. content [ 0 ] ?. token || '' ;
31
- allTokens . set ( name , token ) ;
36
+ allTokens [ target ] . set ( name , token ) ;
32
37
}
33
38
34
39
const webServer = spec . webServer ;
0 commit comments