Skip to content

Commit b1a321e

Browse files
committed
extract json helper functions in client package
1 parent d2635ed commit b1a321e

File tree

14 files changed

+32
-34
lines changed

14 files changed

+32
-34
lines changed

packages/client/lib/commands/VADD.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { CommandParser } from '../client/parser';
2-
import { RedisArgument, NumberReply, Command, BooleanReply } from '../RESP/types';
2+
import { RedisArgument, Command } from '../RESP/types';
33
import { transformBooleanReply, transformDoubleArgument } from './generic-transformers';
44

55
export interface VAddOptions {

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -662,3 +662,21 @@ export function transformStreamsMessagesReplyResp3(reply: UnwrapReply<StreamsMes
662662
return ret as unknown as MapReply<BlobStringReply, StreamMessagesReply>
663663
}
664664
}
665+
666+
export type RedisJSON = null | boolean | number | string | Date | Array<RedisJSON> | {
667+
[key: string]: RedisJSON;
668+
[key: number]: RedisJSON;
669+
};
670+
671+
export function transformRedisJsonArgument(json: RedisJSON): string {
672+
return JSON.stringify(json);
673+
}
674+
675+
export function transformRedisJsonReply(json: BlobStringReply): RedisJSON {
676+
const res = JSON.parse((json as unknown as UnwrapReply<typeof json>).toString());
677+
return res;
678+
}
679+
680+
export function transformRedisJsonNullReply(json: NullReply | BlobStringReply): NullReply | RedisJSON {
681+
return isNullReply(json) ? json : transformRedisJsonReply(json);
682+
}

packages/json/lib/commands/ARRAPPEND.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { CommandParser } from '@redis/client/dist/lib/client/parser';
2-
import { RedisJSON, transformRedisJsonArgument } from './helpers';
2+
import { RedisJSON, transformRedisJsonArgument } from '@redis/client/dist/lib/commands/generic-transformers';
33
import { RedisArgument, NumberReply, ArrayReply, NullReply, Command } from '@redis/client/dist/lib/RESP/types';
44

55
export default {

packages/json/lib/commands/ARRINDEX.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { CommandParser } from '@redis/client/dist/lib/client/parser';
22
import { RedisArgument, NumberReply, ArrayReply, NullReply, Command } from '@redis/client/dist/lib/RESP/types';
3-
import { RedisJSON, transformRedisJsonArgument } from './helpers';
3+
import { RedisJSON, transformRedisJsonArgument } from '@redis/client/dist/lib/commands/generic-transformers';
44

55
export interface JsonArrIndexOptions {
66
range?: {

packages/json/lib/commands/ARRINSERT.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { CommandParser } from '@redis/client/dist/lib/client/parser';
22
import { RedisArgument, NumberReply, ArrayReply, NullReply, Command } from '@redis/client/dist/lib/RESP/types';
3-
import { RedisJSON, transformRedisJsonArgument } from './helpers';
3+
import { RedisJSON, transformRedisJsonArgument } from '@redis/client/dist/lib/commands/generic-transformers';
44

55
export default {
66
IS_READ_ONLY: false,

packages/json/lib/commands/ARRPOP.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { CommandParser } from '@redis/client/dist/lib/client/parser';
22
import { RedisArgument, ArrayReply, NullReply, BlobStringReply, Command, UnwrapReply } from '@redis/client/dist/lib/RESP/types';
3-
import { isArrayReply } from '@redis/client/dist/lib/commands/generic-transformers';
4-
import { transformRedisJsonNullReply } from './helpers';
3+
import { isArrayReply, transformRedisJsonNullReply } from '@redis/client/dist/lib/commands/generic-transformers';
54

65
export interface RedisArrPopOptions {
76
path: RedisArgument;

packages/json/lib/commands/GET.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { CommandParser } from '@redis/client/dist/lib/client/parser';
22
import { RedisArgument, Command } from '@redis/client/dist/lib/RESP/types';
3-
import { RedisVariadicArgument } from '@redis/client/dist/lib/commands/generic-transformers';
4-
import { transformRedisJsonNullReply } from './helpers';
3+
import { RedisVariadicArgument, transformRedisJsonNullReply } from '@redis/client/dist/lib/commands/generic-transformers';
54

65
export interface JsonGetOptions {
76
path?: RedisVariadicArgument;

packages/json/lib/commands/MERGE.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { CommandParser } from '@redis/client/dist/lib/client/parser';
22
import { SimpleStringReply, Command, RedisArgument } from '@redis/client/dist/lib/RESP/types';
3-
import { RedisJSON, transformRedisJsonArgument } from './helpers';
3+
import { RedisJSON, transformRedisJsonArgument } from '@redis/client/dist/lib/commands/generic-transformers';
44

55
export default {
66
IS_READ_ONLY: false,

packages/json/lib/commands/MGET.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { CommandParser } from '@redis/client/dist/lib/client/parser';
22
import { RedisArgument, UnwrapReply, ArrayReply, NullReply, BlobStringReply, Command } from '@redis/client/dist/lib/RESP/types';
3-
import { transformRedisJsonNullReply } from './helpers';
3+
import { transformRedisJsonNullReply } from '@redis/client/dist/lib/commands/generic-transformers';
44

55
export default {
66
IS_READ_ONLY: true,

packages/json/lib/commands/MSET.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { CommandParser } from '@redis/client/dist/lib/client/parser';
22
import { RedisArgument, SimpleStringReply, Command } from '@redis/client/dist/lib/RESP/types';
3-
import { RedisJSON, transformRedisJsonArgument } from './helpers';
3+
import { RedisJSON, transformRedisJsonArgument } from '@redis/client/dist/lib/commands/generic-transformers';
44

55
export interface JsonMSetItem {
66
key: RedisArgument;

0 commit comments

Comments
 (0)