@@ -22,12 +22,12 @@ export class CacheHelper {
22
22
if ( ! obj ) {
23
23
obj = { } ;
24
24
}
25
- const exp = expiration ? ( ( + new Date ( ) ) / 1000 + expiration ) : undefined ;
25
+ const exp = expiration ? ( Date . now ( ) / 1000 + expiration ) : undefined ;
26
26
obj [ key ] = { value, expiration : exp } ;
27
27
return this . context . globalState . update ( CACHE_KEY , obj ) ;
28
28
}
29
29
30
- get ( key : string ) {
30
+ get < T > ( key : string ) : T | undefined {
31
31
const value = this . context . globalState . get < CacheMap > ( CACHE_KEY ) ;
32
32
if ( ! value || ! value [ key ] ) {
33
33
return undefined ;
@@ -36,17 +36,17 @@ export class CacheHelper {
36
36
if ( ! data . expiration ) {
37
37
return data . value ;
38
38
}
39
- const now = ( + new Date ( ) ) / 1000 ;
39
+ const now = Date . now ( ) / 1000 ;
40
40
return now > data . expiration ? undefined : data . value ;
41
41
}
42
42
43
- async handy < T > ( key : string , cb : ( ) => Thenable < { value : T ; ttl ?: number } > ) {
44
- let d = this . get ( key ) ;
45
- if ( d === undefined ) {
46
- const tmp = await cb ( ) ;
47
- await this . set ( key , tmp . value , tmp . ttl ) ;
48
- d = tmp . value ;
43
+ async getOrRefresh < T > ( key : string , refreshCallback : ( ) => Thenable < { value : T ; ttl ?: number } > ) : Promise < T > {
44
+ let value = this . get < T > ( key ) ;
45
+ if ( value === undefined ) {
46
+ const result = await refreshCallback ( ) ;
47
+ await this . set ( key , result . value , result . ttl ) ;
48
+ value = result . value ;
49
49
}
50
- return d as T ;
50
+ return value ;
51
51
}
52
52
}
0 commit comments