@@ -28,13 +28,9 @@ export class MainThreadSecretState extends Disposable implements MainThreadSecre
2828 this . _proxy = extHostContext . getProxy ( ExtHostContext . ExtHostSecretState ) ;
2929
3030 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 ) ;
3834 }
3935 } ) ) ;
4036 }
@@ -85,7 +81,7 @@ export class MainThreadSecretState extends Disposable implements MainThreadSecre
8581 const allKeys = await this . secretStorageService . keys ( ) ;
8682 const keys = allKeys
8783 . 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 )
8985 . map ( ( { key } ) => key ) ; // Return only my keys
9086 this . logService . trace ( `[mainThreadSecretState] Got ${ keys . length } key(s) for: ` , extensionId ) ;
9187 return keys ;
@@ -95,7 +91,11 @@ export class MainThreadSecretState extends Disposable implements MainThreadSecre
9591 return JSON . stringify ( { extensionId, key } ) ;
9692 }
9793
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+ }
100100 }
101101}
0 commit comments