@@ -33,11 +33,12 @@ export interface KeyedCache<T, K = string> {
33
33
save ( key : K , data : T ) : Promise < void >
34
34
35
35
/**
36
- * Removes the data stored at {@link key}, if any.
36
+ * Deletes data stored at {@link key}, if any.
37
37
*
38
38
* @param key Target key to clear.
39
+ * @param reason Partial log message explaining why the data is being deleted.
39
40
*/
40
- clear ( key : K ) : Promise < void >
41
+ clear ( key : K , reason : string ) : Promise < void >
41
42
}
42
43
43
44
/**
@@ -71,7 +72,7 @@ export function mapCache<T, U, K>(cache: KeyedCache<T, K>, get: (data: T) => U,
71
72
const getIf = ( data ?: T ) => ( data !== undefined ? get ( data ) : undefined )
72
73
73
74
return {
74
- clear : key => cache . clear ( key ) ,
75
+ clear : ( key , reason ) => cache . clear ( key , reason ) ,
75
76
load : key => cache . load ( key ) . then ( getIf ) ,
76
77
save : ( key , data ) => cache . save ( key , set ( data ) ) ,
77
78
}
@@ -91,10 +92,10 @@ export function createDiskCache<T, K>(
91
92
mapKey : ( key : K ) => string ,
92
93
logger ?: ( message : string ) => void
93
94
) : KeyedCache < T , K > {
94
- function log ( prefix : string , key : K ) : void {
95
+ function log ( msg : string , key : K ) : void {
95
96
if ( logger ) {
96
97
const keyMessage = typeof key === 'object' ? JSON . stringify ( key ) : key
97
- logger ( `${ prefix } for key ' ${ keyMessage } ' ` )
98
+ logger ( `${ msg } key: ${ keyMessage } ` )
98
99
}
99
100
}
100
101
@@ -104,11 +105,11 @@ export function createDiskCache<T, K>(
104
105
105
106
try {
106
107
const result = JSON . parse ( await SystemUtilities . readFile ( target ) )
107
- log ( 'load succeeded ' , key )
108
+ log ( 'loaded ' , key )
108
109
return result
109
110
} catch ( error ) {
110
111
if ( isFileNotFoundError ( error ) ) {
111
- log ( 'load missed ' , key )
112
+ log ( 'read failed (file not found) ' , key )
112
113
return
113
114
}
114
115
@@ -131,16 +132,16 @@ export function createDiskCache<T, K>(
131
132
} )
132
133
}
133
134
134
- log ( 'save succeeded ' , key )
135
+ log ( 'saved ' , key )
135
136
} ,
136
- clear : async key => {
137
+ clear : async ( key , reason ) => {
137
138
const target = mapKey ( key )
138
139
139
140
try {
140
141
await SystemUtilities . delete ( target )
141
142
} catch ( error ) {
142
143
if ( isFileNotFoundError ( error ) ) {
143
- return log ( 'clear succeeded, file does not exist ' , key )
144
+ return log ( 'file not found ' , key )
144
145
}
145
146
146
147
throw ToolkitError . chain ( error , `Failed to delete "${ target } "` , {
@@ -149,7 +150,7 @@ export function createDiskCache<T, K>(
149
150
} )
150
151
}
151
152
152
- log ( 'clear succeeded' , key )
153
+ log ( `deleted (reason: ${ reason } )` , key )
153
154
} ,
154
155
}
155
156
}
@@ -158,9 +159,9 @@ export function createSecretsCache(
158
159
secrets : vscode . SecretStorage ,
159
160
logger ?: ( message : string ) => void
160
161
) : KeyedCache < string > {
161
- function log ( prefix : string , key : string ) : void {
162
+ function log ( msg : string , key : string ) : void {
162
163
if ( logger ) {
163
- logger ( `${ prefix } for key ' ${ key } ' ` )
164
+ logger ( `${ msg } key: ${ key } ` )
164
165
}
165
166
}
166
167
@@ -170,11 +171,11 @@ export function createSecretsCache(
170
171
const value = await secrets . get ( key )
171
172
172
173
if ( value === undefined ) {
173
- log ( 'load missed ' , key )
174
+ log ( 'read failed (key not found) ' , key )
174
175
return
175
176
}
176
177
177
- log ( 'load succeeded ' , key )
178
+ log ( 'loaded ' , key )
178
179
return value
179
180
} catch ( error ) {
180
181
throw ToolkitError . chain ( error , 'Failed to get value from secrets storage' , {
@@ -193,9 +194,9 @@ export function createSecretsCache(
193
194
} )
194
195
}
195
196
196
- log ( 'save succeeded ' , key )
197
+ log ( 'saved ' , key )
197
198
} ,
198
- clear : async key => {
199
+ clear : async ( key , reason ) => {
199
200
try {
200
201
await secrets . delete ( key )
201
202
} catch ( error ) {
@@ -205,7 +206,7 @@ export function createSecretsCache(
205
206
} )
206
207
}
207
208
208
- log ( 'clear succeeded' , key )
209
+ log ( `deleted (reason: ${ reason } )` , key )
209
210
} ,
210
211
}
211
212
}
0 commit comments