@@ -9,19 +9,19 @@ export abstract class TaskStorable extends TaskBase {
99 static readonly taskTtl : number | undefined = undefined
1010 static readonly taskTtlDone : number | undefined = undefined
1111
12- getTaskPrefix ( ) : string {
12+ getTaskPrefix < T extends TaskStorable > ( _context ?: Partial < T > ) : string {
1313 return ( this . constructor as typeof TaskStorable ) . taskPrefix
1414 }
1515
16- getTaskPrefixDone ( ) : string {
16+ getTaskPrefixDone < T extends TaskStorable > ( _context ?: Partial < T > ) : string {
1717 return ( this . constructor as typeof TaskStorable ) . taskPrefixDone
1818 }
1919
20- getTaskTtl ( ) : number | undefined {
20+ getTaskTtl < T extends TaskStorable > ( _context ?: Partial < T > ) : number | undefined {
2121 return ( this . constructor as typeof TaskStorable ) . taskTtl
2222 }
2323
24- getTaskTtlDone ( ) : number | undefined {
24+ getTaskTtlDone < T extends TaskStorable > ( _context ?: Partial < T > ) : number | undefined {
2525 return ( this . constructor as typeof TaskStorable ) . taskTtlDone
2626 }
2727
@@ -35,7 +35,7 @@ export abstract class TaskStorable extends TaskBase {
3535 static async _load < T extends TaskStorable > ( this : Constructor < T > , sm : StoreManager , context ?: Partial < T > ) : Promise < T > {
3636 const instance = ( this as any ) . createInstance ( context )
3737 // get all task keys
38- const keys = await sm . keys ( `${ instance . getTaskPrefix ( ) } *` , true )
38+ const keys = await sm . keys ( `${ instance . getTaskPrefix ( context ) } *` , true )
3939 // get the first task (del when finish)
4040 const serializedTask : string = ( await sm . get ( keys [ 0 ] ) ) ! // never undefined ensured by keys isWait=true
4141
@@ -46,16 +46,16 @@ export abstract class TaskStorable extends TaskBase {
4646 return await ( this as any ) . _load ( sm , context )
4747 }
4848
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 ) )
5151 }
5252
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 ( ) )
5555 }
5656
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 ) )
5959 await this . remove ( sm )
6060 }
6161}
0 commit comments