@@ -29,16 +29,17 @@ class FakeRedisRuntime {
2929 Set < ( ...args : unknown [ ] ) => void >
3030 > ( ) ;
3131
32- async connect ( ) : Promise < void > {
32+ connect ( ) : Promise < void > {
3333 this . emit ( "ready" ) ;
34+ return Promise . resolve ( ) ;
3435 }
3536
36- async ping ( ) : Promise < "PONG" > {
37- return "PONG" ;
37+ ping ( ) : Promise < "PONG" > {
38+ return Promise . resolve ( "PONG" ) ;
3839 }
3940
40- async quit ( ) : Promise < "OK" > {
41- return "OK" ;
41+ quit ( ) : Promise < "OK" > {
42+ return Promise . resolve ( "OK" ) ;
4243 }
4344
4445 private ensureList ( key : string ) : string [ ] {
@@ -54,86 +55,88 @@ class FakeRedisRuntime {
5455 return list ;
5556 }
5657
57- async lpush ( key : string , value : string ) : Promise < number > {
58+ lpush ( key : string , value : string ) : Promise < number > {
5859 const list = this . ensureList ( key ) ;
5960 list . unshift ( value ) ;
60- return list . length ;
61+ return Promise . resolve ( list . length ) ;
6162 }
6263
63- async rpush ( key : string , value : string ) : Promise < number > {
64+ rpush ( key : string , value : string ) : Promise < number > {
6465 const list = this . ensureList ( key ) ;
6566 list . push ( value ) ;
66- return list . length ;
67+ return Promise . resolve ( list . length ) ;
6768 }
6869
69- async lmove (
70+ lmove (
7071 source : string ,
7172 destination : string ,
7273 sourceSide : "LEFT" | "RIGHT" ,
7374 destinationSide : "LEFT" | "RIGHT" ,
7475 ) : Promise < string | null > {
7576 const sourceList = this . lists . get ( source ) ?? [ ] ;
7677 const value = sourceSide === "LEFT" ? sourceList . shift ( ) : sourceList . pop ( ) ;
77- if ( value === undefined ) return null ;
78+ if ( value === undefined ) return Promise . resolve ( null ) ;
7879 const destinationList = this . ensureList ( destination ) ;
7980 if ( destinationSide === "LEFT" ) destinationList . unshift ( value ) ;
8081 else destinationList . push ( value ) ;
81- return value ;
82+ return Promise . resolve ( value ) ;
8283 }
8384
84- async lrange ( key : string , start : number , stop : number ) : Promise < string [ ] > {
85+ lrange ( key : string , start : number , stop : number ) : Promise < string [ ] > {
8586 const list = this . lists . get ( key ) ?? [ ] ;
8687 const normalizedStop = stop < 0 ? list . length + stop : stop ;
87- return list . slice ( start , normalizedStop + 1 ) ;
88+ return Promise . resolve ( list . slice ( start , normalizedStop + 1 ) ) ;
8889 }
8990
90- async llen ( key : string ) : Promise < number > {
91- return ( this . lists . get ( key ) ?? [ ] ) . length ;
91+ llen ( key : string ) : Promise < number > {
92+ return Promise . resolve ( ( this . lists . get ( key ) ?? [ ] ) . length ) ;
9293 }
9394
94- async ltrim ( key : string , start : number , stop : number ) : Promise < void > {
95+ ltrim ( key : string , start : number , stop : number ) : Promise < void > {
9596 const list = this . lists . get ( key ) ?? [ ] ;
9697 const normalizedStop = stop < 0 ? list . length + stop : stop ;
9798 this . lists . set ( key , list . slice ( start , normalizedStop + 1 ) ) ;
99+ return Promise . resolve ( ) ;
98100 }
99101
100- async lindex ( key : string , index : number ) : Promise < string | null > {
101- return this . lists . get ( key ) ?. [ index ] ?? null ;
102+ lindex ( key : string , index : number ) : Promise < string | null > {
103+ return Promise . resolve ( this . lists . get ( key ) ?. [ index ] ?? null ) ;
102104 }
103105
104- async lset ( key : string , index : number , value : string ) : Promise < void > {
106+ lset ( key : string , index : number , value : string ) : Promise < void > {
105107 const list = this . lists . get ( key ) ;
106108 if ( ! list || index < 0 || index >= list . length ) {
107- throw new Error ( "ERR index out of range" ) ;
109+ return Promise . reject ( new Error ( "ERR index out of range" ) ) ;
108110 }
109111 list [ index ] = value ;
112+ return Promise . resolve ( ) ;
110113 }
111114
112- async get ( key : string ) : Promise < string | null > {
113- return this . values . get ( key ) ?? null ;
115+ get ( key : string ) : Promise < string | null > {
116+ return Promise . resolve ( this . values . get ( key ) ?? null ) ;
114117 }
115118
116- async set (
119+ set (
117120 key : string ,
118121 value : string ,
119122 ...args : Array < string | number >
120123 ) : Promise < "OK" | null > {
121124 const onlyIfAbsent = args . includes ( "NX" ) ;
122- if ( onlyIfAbsent && this . values . has ( key ) ) return null ;
125+ if ( onlyIfAbsent && this . values . has ( key ) ) return Promise . resolve ( null ) ;
123126 this . values . set ( key , value ) ;
124- return "OK" ;
127+ return Promise . resolve ( "OK" ) ;
125128 }
126129
127- async expire ( _key : string , _ttlSeconds : number ) : Promise < number > {
128- return 1 ;
130+ expire ( _key : string , _ttlSeconds : number ) : Promise < number > {
131+ return Promise . resolve ( 1 ) ;
129132 }
130133
131- async del ( key : string ) : Promise < number > {
134+ del ( key : string ) : Promise < number > {
132135 const deleted = this . values . delete ( key ) || this . lists . delete ( key ) ;
133- return deleted ? 1 : 0 ;
136+ return Promise . resolve ( deleted ? 1 : 0 ) ;
134137 }
135138
136- async eval (
139+ eval (
137140 script : string ,
138141 _numKeys : number ,
139142 ...args : string [ ]
@@ -142,19 +145,19 @@ class FakeRedisRuntime {
142145 script . includes ( "redis.call('GET', KEYS[1]) == ARGV[1]" ) &&
143146 script . includes ( "redis.call('EXPIRE', KEYS[1], ARGV[2])" )
144147 ) {
145- return this . values . get ( args [ 0 ] ) === args [ 1 ] ? 1 : 0 ;
148+ return Promise . resolve ( this . values . get ( args [ 0 ] ) === args [ 1 ] ? 1 : 0 ) ;
146149 }
147150
148151 if (
149152 script . includes ( "redis.call('GET', KEYS[1]) == ARGV[1]" ) &&
150153 script . includes ( "redis.call('DEL', KEYS[1])" )
151154 ) {
152- if ( this . values . get ( args [ 0 ] ) !== args [ 1 ] ) return 0 ;
155+ if ( this . values . get ( args [ 0 ] ) !== args [ 1 ] ) return Promise . resolve ( 0 ) ;
153156 this . values . delete ( args [ 0 ] ) ;
154- return 1 ;
157+ return Promise . resolve ( 1 ) ;
155158 }
156159
157- throw new Error ( "unsupported eval script" ) ;
160+ return Promise . reject ( new Error ( "unsupported eval script" ) ) ;
158161 }
159162
160163 on ( event : RedisEvent , listener : ( ...args : unknown [ ] ) => void ) : void {
0 commit comments