@@ -28,13 +28,9 @@ export class MainThreadSecretState extends Disposable implements MainThreadSecre
28
28
this . _proxy = extHostContext . getProxy ( ExtHostContext . ExtHostSecretState ) ;
29
29
30
30
this . _register ( this . secretStorageService . onDidChangeSecret ( ( e : string ) => {
31
- try {
32
- const { extensionId, key } = this . parseKey ( e ) ;
33
- if ( extensionId && key ) {
34
- this . _proxy . $onDidChangePassword ( { extensionId, key } ) ;
35
- }
36
- } catch ( e ) {
37
- // Core can use non-JSON values as keys, so we may not be able to parse them.
31
+ const parsedKey = this . parseKey ( e ) ;
32
+ if ( parsedKey ) {
33
+ this . _proxy . $onDidChangePassword ( parsedKey ) ;
38
34
}
39
35
} ) ) ;
40
36
}
@@ -85,7 +81,7 @@ export class MainThreadSecretState extends Disposable implements MainThreadSecre
85
81
const allKeys = await this . secretStorageService . keys ( ) ;
86
82
const keys = allKeys
87
83
. map ( key => this . parseKey ( key ) )
88
- . filter ( ( { extensionId : id } ) => id === extensionId )
84
+ . filter ( ( parsedKey ) : parsedKey is { extensionId : string ; key : string } => parsedKey !== undefined && parsedKey . extensionId === extensionId )
89
85
. map ( ( { key } ) => key ) ; // Return only my keys
90
86
this . logService . trace ( `[mainThreadSecretState] Got ${ keys . length } key(s) for: ` , extensionId ) ;
91
87
return keys ;
@@ -95,7 +91,11 @@ export class MainThreadSecretState extends Disposable implements MainThreadSecre
95
91
return JSON . stringify ( { extensionId, key } ) ;
96
92
}
97
93
98
- private parseKey ( key : string ) : { extensionId : string ; key : string } {
99
- return JSON . parse ( key ) ;
94
+ private parseKey ( key : string ) : { extensionId : string ; key : string } | undefined {
95
+ try {
96
+ return JSON . parse ( key ) ;
97
+ } catch {
98
+ return undefined ;
99
+ }
100
100
}
101
101
}
0 commit comments