You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-04 15:02:09 +03:00
JSON.STRAPPEND
This commit is contained in:
@@ -1,30 +1,32 @@
|
||||
// import { strict as assert } from 'assert';
|
||||
// import testUtils, { GLOBAL } from '../test-utils';
|
||||
// import { transformArguments } from './STRAPPEND';
|
||||
import { strict as assert } from 'assert';
|
||||
import testUtils, { GLOBAL } from '../test-utils';
|
||||
import STRAPPEND from './STRAPPEND';
|
||||
|
||||
// describe('STRAPPEND', () => {
|
||||
// describe('transformArguments', () => {
|
||||
// it('without path', () => {
|
||||
// assert.deepEqual(
|
||||
// transformArguments('key', 'append'),
|
||||
// ['JSON.STRAPPEND', 'key', '"append"']
|
||||
// );
|
||||
// });
|
||||
describe('JSON.STRAPPEND', () => {
|
||||
describe('transformArguments', () => {
|
||||
it('simple', () => {
|
||||
assert.deepEqual(
|
||||
STRAPPEND.transformArguments('key', 'append'),
|
||||
['JSON.STRAPPEND', 'key', '"append"']
|
||||
);
|
||||
});
|
||||
|
||||
// it('with path', () => {
|
||||
// assert.deepEqual(
|
||||
// transformArguments('key', '$', 'append'),
|
||||
// ['JSON.STRAPPEND', 'key', '$', '"append"']
|
||||
// );
|
||||
// });
|
||||
// });
|
||||
it('with path', () => {
|
||||
assert.deepEqual(
|
||||
STRAPPEND.transformArguments('key', 'append', {
|
||||
path: '$'
|
||||
}),
|
||||
['JSON.STRAPPEND', 'key', '$', '"append"']
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
// testUtils.testWithClient('client.json.strAppend', async client => {
|
||||
// await client.json.set('key', '$', '');
|
||||
testUtils.testWithClient('client.json.strAppend', async client => {
|
||||
const [, reply] = await Promise.all([
|
||||
client.json.set('key', '$', ''),
|
||||
client.json.strAppend('key', 'append')
|
||||
]);
|
||||
|
||||
// assert.deepEqual(
|
||||
// await client.json.strAppend('key', '$', 'append'),
|
||||
// [6]
|
||||
// );
|
||||
// }, GLOBAL.SERVERS.OPEN);
|
||||
// });
|
||||
assert.deepEqual(reply, 6);
|
||||
}, GLOBAL.SERVERS.OPEN);
|
||||
});
|
||||
|
@@ -1,32 +1,21 @@
|
||||
// import { transformRedisJsonArgument } from '.';
|
||||
import { RedisArgument, Command, NullReply, NumberReply, ArrayReply } from '@redis/client/dist/lib/RESP/types';
|
||||
|
||||
// export const FIRST_KEY_INDEX = 1;
|
||||
|
||||
// type AppendArguments = [key: string, append: string];
|
||||
|
||||
// type AppendWithPathArguments = [key: string, path: string, append: string];
|
||||
|
||||
// export function transformArguments(...[key, pathOrAppend, append]: AppendArguments | AppendWithPathArguments): Array<string> {
|
||||
// const args = ['JSON.STRAPPEND', key];
|
||||
|
||||
// if (append !== undefined && append !== null) {
|
||||
// args.push(pathOrAppend, transformRedisJsonArgument(append));
|
||||
// } else {
|
||||
// args.push(transformRedisJsonArgument(pathOrAppend));
|
||||
// }
|
||||
|
||||
// return args;
|
||||
// }
|
||||
|
||||
// export declare function transformReply(): number | Array<number>;
|
||||
|
||||
import { SimpleStringReply, Command } from '@redis/client/dist/lib/RESP/types';
|
||||
export interface JsonStrAppendOptions {
|
||||
path?: RedisArgument;
|
||||
}
|
||||
|
||||
export default {
|
||||
FIRST_KEY_INDEX: 1,
|
||||
IS_READ_ONLY: false,
|
||||
transformArguments() {
|
||||
return ['JSON.STRAPPEND'];
|
||||
transformArguments(key: RedisArgument, append: RedisArgument, options?: JsonStrAppendOptions) {
|
||||
const args = ['JSON.STRAPPEND', key];
|
||||
|
||||
if (options?.path) {
|
||||
args.push(options.path);
|
||||
}
|
||||
|
||||
args.push(append);
|
||||
return args;
|
||||
},
|
||||
transformReply: undefined as unknown as () => SimpleStringReply
|
||||
transformReply: undefined as unknown as () => NumberReply | ArrayReply<NullReply | NumberReply>
|
||||
} as const satisfies Command;
|
||||
|
Reference in New Issue
Block a user