Skip to content

Commit ea51f39

Browse files
committed
revert to be v4 compat for xread/xreadgroup
1 parent 9adac9d commit ea51f39

File tree

3 files changed

+45
-28
lines changed

3 files changed

+45
-28
lines changed

packages/client/lib/commands/XREAD.spec.ts

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -101,14 +101,7 @@ describe('XREAD', () => {
101101
}),
102102
])
103103

104-
const arr = ['key', [{
105-
'id': id,
106-
'message': [
107-
'field',
108-
'value',
109-
]
110-
}]];
111-
104+
// FUTURE resp3 compatible
112105
const obj = Object.assign(Object.create(null), {
113106
'key': [{
114107
id: id,
@@ -122,7 +115,18 @@ describe('XREAD', () => {
122115
}]
123116
});
124117

125-
assert.deepStrictEqual(reply, arr);
118+
// v4 compatible
119+
const expected = [{
120+
name: 'key',
121+
messages: [{
122+
id: id,
123+
message: Object.assign(Object.create(null), {
124+
field: 'value'
125+
})
126+
}]
127+
}];
128+
129+
assert.deepStrictEqual(reply, expected);
126130
}, {
127131
client: GLOBAL.SERVERS.OPEN,
128132
cluster: GLOBAL.CLUSTERS.OPEN

packages/client/lib/commands/XREADGROUP.spec.ts

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -123,14 +123,8 @@ describe('XREADGROUP', () => {
123123
})
124124
]);
125125

126-
const arr = ['key', [{
127-
'id': id,
128-
'message': [
129-
'field',
130-
'value',
131-
]
132-
}]];
133126

127+
// FUTURE resp3 compatible
134128
const obj = Object.assign(Object.create(null), {
135129
'key': [{
136130
id: id,
@@ -144,7 +138,18 @@ describe('XREADGROUP', () => {
144138
}]
145139
});
146140

147-
assert.deepStrictEqual(readGroupReply, arr);
141+
// v4 compatible
142+
const expected = [{
143+
name: 'key',
144+
messages: [{
145+
id: id,
146+
message: Object.assign(Object.create(null), {
147+
field: 'value'
148+
})
149+
}]
150+
}];
151+
152+
assert.deepStrictEqual(readGroupReply, expected);
148153
}, {
149154
client: GLOBAL.SERVERS.OPEN,
150155
cluster: GLOBAL.CLUSTERS.OPEN

packages/client/lib/commands/generic-transformers.ts

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -530,11 +530,13 @@ export function transformStreamsMessagesReplyResp2(
530530
reply: UnwrapReply<StreamsMessagesRawReply2 | NullReply>,
531531
preserve?: any,
532532
typeMapping?: TypeMapping
533-
): MapReply<BlobStringReply | string, StreamMessagesReply> | NullReply {
533+
): StreamsMessagesReply | NullReply {
534+
// FUTURE: resposne type if resp3 was working, reverting to old v4 for now
535+
//: MapReply<BlobStringReply | string, StreamMessagesReply> | NullReply {
534536
if (reply === null) return null as unknown as NullReply;
535537

536538
switch (typeMapping? typeMapping[RESP_TYPES.MAP] : undefined) {
537-
/*
539+
/* FUTURE: a response type for when resp3 is working properly
538540
case Map: {
539541
const ret = new Map<string, StreamMessagesReply>();
540542
@@ -549,14 +551,6 @@ export function transformStreamsMessagesReplyResp2(
549551
550552
return ret as unknown as MapReply<string, StreamMessagesReply>;
551553
}
552-
*/
553-
/* work around for now */
554-
default:
555-
if (!typeMapping) {
556-
typeMapping = {};
557-
}
558-
// console.log("forcing map type map to array");
559-
// typeMapping[RESP_TYPES.MAP] = Array;
560554
case Array: {
561555
const ret: Array<BlobStringReply | StreamMessagesReply> = [];
562556
@@ -572,7 +566,6 @@ export function transformStreamsMessagesReplyResp2(
572566
573567
return ret as unknown as MapReply<string, StreamMessagesReply>;
574568
}
575-
/*
576569
default: {
577570
const ret: Record<string, StreamMessagesReply> = Object.create(null);
578571
@@ -588,6 +581,21 @@ export function transformStreamsMessagesReplyResp2(
588581
return ret as unknown as MapReply<string, StreamMessagesReply>;
589582
}
590583
*/
584+
// V4 compatible response type
585+
default: {
586+
const ret: StreamsMessagesReply = [];
587+
588+
for (let i=0; i < reply.length; i++) {
589+
const stream = reply[i] as unknown as UnwrapReply<StreamMessagesRawReply>;
590+
591+
ret.push({
592+
name: stream[0],
593+
messages: transformStreamMessagesReply(stream[1])
594+
});
595+
}
596+
597+
return ret;
598+
}
591599
}
592600
}
593601

0 commit comments

Comments
 (0)