1
- import { UnwrapReply , ArrayReply , BlobStringReply , BooleanReply , CommandArguments , DoubleReply , NullReply , NumberReply , RedisArgument , TuplesReply } from '../RESP/types' ;
1
+ import { UnwrapReply , ArrayReply , BlobStringReply , BooleanReply , CommandArguments , DoubleReply , NullReply , NumberReply , RedisArgument , TuplesReply , MapReply } from '../RESP/types' ;
2
2
3
3
export function isNullReply ( reply : unknown ) : reply is NullReply {
4
4
return reply === null ;
@@ -88,28 +88,6 @@ export function transformTuplesReply(
88
88
return message ;
89
89
}
90
90
91
- export type StreamMessageRawReply = TuplesReply < [
92
- id : BlobStringReply ,
93
- message : ArrayReply < BlobStringReply >
94
- ] > ;
95
-
96
- export type StreamMessageReply = {
97
- id : BlobStringReply ,
98
- message : Record < string , BlobStringReply > ,
99
- } ;
100
-
101
- export function transformStreamMessageReply ( reply : StreamMessageRawReply ) : StreamMessageReply {
102
- const [ id , message ] = reply as unknown as UnwrapReply < typeof reply > ;
103
- return {
104
- id : id ,
105
- message : transformTuplesReply ( message )
106
- } ;
107
- }
108
-
109
- export function transformStreamMessageNullReply ( reply : StreamMessageRawReply | NullReply ) {
110
- return isNullReply ( reply ) ? reply : transformStreamMessageReply ( reply ) ;
111
- }
112
-
113
91
export interface SortedSetMember {
114
92
value : RedisArgument ;
115
93
score : number ;
@@ -452,27 +430,60 @@ function isPlainKeys(keys: Array<RedisArgument> | Array<ZKeyAndWeight>): keys is
452
430
return isPlainKey ( keys [ 0 ] ) ;
453
431
}
454
432
433
+ export type StreamMessageRawReply = TuplesReply < [
434
+ id : BlobStringReply ,
435
+ message : ArrayReply < BlobStringReply >
436
+ ] > ;
437
+
438
+ export type StreamMessageReply = {
439
+ id : BlobStringReply ,
440
+ message : Record < string , BlobStringReply > ,
441
+ } ;
442
+
443
+ export function transformStreamMessageReply ( reply : StreamMessageRawReply ) : StreamMessageReply {
444
+ const [ id , message ] = reply as unknown as UnwrapReply < typeof reply > ;
445
+ return {
446
+ id : id ,
447
+ message : transformTuplesReply ( message )
448
+ } ;
449
+ }
450
+
451
+ export function transformStreamMessageNullReply ( reply : StreamMessageRawReply | NullReply ) {
452
+ return isNullReply ( reply ) ? reply : transformStreamMessageReply ( reply ) ;
453
+ }
454
+
455
455
export type StreamMessagesReply = Array < StreamMessageReply > ;
456
456
457
457
export type StreamsMessagesReply = Array < {
458
458
name : BlobStringReply | string ;
459
459
messages : StreamMessagesReply ;
460
460
} > | null ;
461
461
462
- export function transformStreamMessagesReply ( reply : Array < any > ) : StreamMessagesReply {
462
+ export function transformStreamMessagesReply ( r : ArrayReply < StreamMessageRawReply > ) : StreamMessagesReply {
463
+ const reply = r as unknown as UnwrapReply < typeof r > ;
464
+
463
465
return reply . map ( transformStreamMessageReply ) ;
464
466
}
465
467
466
- export function transformStreamsMessagesReplyResp2 ( reply : Array < any > | null ) : StreamsMessagesReply | null {
468
+ type StreamMessagesRawReply = TuplesReply < [ name : BlobStringReply , ArrayReply < StreamMessageRawReply > ] > ;
469
+ type StreamsMessagesRawReply2 = ArrayReply < StreamMessagesRawReply > ;
470
+
471
+ export function transformStreamsMessagesReplyResp2 ( reply : UnwrapReply < StreamsMessagesRawReply2 > | UnwrapReply < NullReply > ) : StreamsMessagesReply | null {
467
472
if ( reply === null ) return null ;
468
473
469
- return reply . map ( ( [ name , rawMessages ] ) => ( {
470
- name,
471
- messages : transformStreamMessagesReply ( rawMessages )
472
- } ) ) ;
474
+ return reply . map ( ( s ) => {
475
+ const stream = s as unknown as UnwrapReply < typeof s > ;
476
+
477
+ return {
478
+ name : stream [ 0 ] ,
479
+ messages : transformStreamMessagesReply ( stream [ 1 ] )
480
+ }
481
+ } )
473
482
}
474
483
475
- export function transformStreamsMessagesReplyResp3 ( reply : any | null ) : StreamsMessagesReply | null {
484
+ type StreamsMessagesRawReply3 = MapReply < BlobStringReply , ArrayReply < StreamMessageRawReply > > ;
485
+
486
+ export function transformStreamsMessagesReplyResp3 ( reply : UnwrapReply < StreamsMessagesRawReply3 > | UnwrapReply < NullReply > ) : StreamsMessagesReply | null {
476
487
if ( reply === null ) return null ;
477
488
478
489
const ret : StreamsMessagesReply = [ ] ;
@@ -487,8 +498,8 @@ export function transformStreamsMessagesReplyResp3(reply: any | null): StreamsMe
487
498
return ret ;
488
499
} else if ( reply instanceof Array ) {
489
500
for ( let i = 0 ; i < reply . length ; i += 2 ) {
490
- const name = reply [ i ] ;
491
- const rawMessages = reply [ i + 1 ] ;
501
+ const name = reply [ i ] as BlobStringReply
502
+ const rawMessages = reply [ i + 1 ] as ArrayReply < StreamMessageRawReply > ;
492
503
493
504
ret . push ( {
494
505
name,
@@ -497,10 +508,9 @@ export function transformStreamsMessagesReplyResp3(reply: any | null): StreamsMe
497
508
}
498
509
} else {
499
510
for ( const [ name , rawMessages ] of Object . entries ( reply ) ) {
500
- const m = rawMessages as Array < any > ;
501
511
ret . push ( {
502
512
name,
503
- messages : transformStreamMessagesReply ( m ) ,
513
+ messages : transformStreamMessagesReply ( rawMessages ) ,
504
514
} )
505
515
}
506
516
}
0 commit comments