@@ -9,19 +9,19 @@ export abstract class TaskStorable extends TaskBase {
9
9
static readonly taskTtl : number | undefined = undefined
10
10
static readonly taskTtlDone : number | undefined = undefined
11
11
12
- getTaskPrefix ( ) : string {
12
+ getTaskPrefix < T extends TaskStorable > ( _context ?: Partial < T > ) : string {
13
13
return ( this . constructor as typeof TaskStorable ) . taskPrefix
14
14
}
15
15
16
- getTaskPrefixDone ( ) : string {
16
+ getTaskPrefixDone < T extends TaskStorable > ( _context ?: Partial < T > ) : string {
17
17
return ( this . constructor as typeof TaskStorable ) . taskPrefixDone
18
18
}
19
19
20
- getTaskTtl ( ) : number | undefined {
20
+ getTaskTtl < T extends TaskStorable > ( _context ?: Partial < T > ) : number | undefined {
21
21
return ( this . constructor as typeof TaskStorable ) . taskTtl
22
22
}
23
23
24
- getTaskTtlDone ( ) : number | undefined {
24
+ getTaskTtlDone < T extends TaskStorable > ( _context ?: Partial < T > ) : number | undefined {
25
25
return ( this . constructor as typeof TaskStorable ) . taskTtlDone
26
26
}
27
27
@@ -35,7 +35,7 @@ export abstract class TaskStorable extends TaskBase {
35
35
static async _load < T extends TaskStorable > ( this : Constructor < T > , sm : StoreManager , context ?: Partial < T > ) : Promise < T > {
36
36
const instance = ( this as any ) . createInstance ( context )
37
37
// get all task keys
38
- const keys = await sm . keys ( `${ instance . getTaskPrefix ( ) } *` , true )
38
+ const keys = await sm . keys ( `${ instance . getTaskPrefix ( context ) } *` , true )
39
39
// get the first task (del when finish)
40
40
const serializedTask : string = ( await sm . get ( keys [ 0 ] ) ) ! // never undefined ensured by keys isWait=true
41
41
@@ -46,16 +46,16 @@ export abstract class TaskStorable extends TaskBase {
46
46
return await ( this as any ) . _load ( sm , context )
47
47
}
48
48
49
- async save ( sm : StoreManager ) {
50
- await sm . set ( this . getTaskPrefix ( ) + this . toKey ( ) , this . toString ( ) , this . getTaskTtl ( ) )
49
+ async save < T extends TaskStorable > ( sm : StoreManager , context ?: Partial < T > ) {
50
+ await sm . set ( this . getTaskPrefix ( context ) + this . toKey ( ) , this . toString ( ) , this . getTaskTtl ( context ) )
51
51
}
52
52
53
- async remove ( sm : StoreManager ) {
54
- await sm . del ( this . getTaskPrefix ( ) + this . toKey ( ) )
53
+ async remove < T extends TaskStorable > ( sm : StoreManager , context ?: Partial < T > ) {
54
+ await sm . del ( this . getTaskPrefix ( context ) + this . toKey ( ) )
55
55
}
56
56
57
- async done ( sm : StoreManager ) {
58
- await sm . set ( this . getTaskPrefixDone ( ) + this . toKey ( ) , this . toString ( ) , this . getTaskTtlDone ( ) )
57
+ async done < T extends TaskStorable > ( sm : StoreManager , context ?: Partial < T > ) {
58
+ await sm . set ( this . getTaskPrefixDone ( context ) + this . toKey ( ) , this . toString ( ) , this . getTaskTtlDone ( context ) )
59
59
await this . remove ( sm )
60
60
}
61
61
}
0 commit comments