1
0
mirror of https://github.com/redis/node-redis.git synced 2025-08-06 02:15:48 +03:00

more commands

This commit is contained in:
dovi
2023-07-10 12:29:36 -04:00
parent 9915d67510
commit d2b0b4e5b0
12 changed files with 196 additions and 156 deletions

View File

@@ -1,19 +1,19 @@
import { strict as assert } from 'assert';
import testUtils, { GLOBAL } from '../test-utils';
import { transformArguments } from './ARRAPPEND';
import ARRAPPEND from './ARRAPPEND';
describe('ARRAPPEND', () => {
describe('transformArguments', () => {
it('single JSON', () => {
assert.deepEqual(
transformArguments('key', '$', 1),
ARRAPPEND.transformArguments('key', '$', 1),
['JSON.ARRAPPEND', 'key', '$', '1']
);
});
it('multiple JSONs', () => {
assert.deepEqual(
transformArguments('key', '$', 1, 2),
ARRAPPEND.transformArguments('key', '$', 1, 2),
['JSON.ARRAPPEND', 'key', '$', '1', '2']
);
});

View File

@@ -1,8 +1,10 @@
import { RedisJSON, transformRedisJsonArgument } from '.';
import { RedisArgument, ArrayReply, NumberReply, Command } from '@redis/client/dist/lib/RESP/types';
export const FIRST_KEY_INDEX = 1;
export function transformArguments(key: string, path: string, ...jsons: Array<RedisJSON>): Array<string> {
export default {
FIRST_KEY_INDEX: 1,
IS_READ_ONLY: false,
transformArguments(key: RedisArgument, path: RedisArgument, ...jsons: Array<RedisJSON>) {
const args = ['JSON.ARRAPPEND', key, path];
for (const json of jsons) {
@@ -10,6 +12,6 @@ export function transformArguments(key: string, path: string, ...jsons: Array<Re
}
return args;
}
export declare function transformReply(): number | Array<number>;
},
transformReply: undefined as unknown as () => NumberReply | ArrayReply<NumberReply>
} as const satisfies Command;

View File

@@ -1,26 +1,26 @@
import { strict as assert } from 'assert';
import testUtils, { GLOBAL } from '../test-utils';
import { transformArguments } from './ARRINDEX';
import ARRINDEX from './ARRINDEX';
describe('ARRINDEX', () => {
describe('transformArguments', () => {
it('simple', () => {
assert.deepEqual(
transformArguments('key', '$', 'json'),
ARRINDEX.transformArguments('key', '$', 'json'),
['JSON.ARRINDEX', 'key', '$', '"json"']
);
});
it('with start', () => {
assert.deepEqual(
transformArguments('key', '$', 'json', 1),
ARRINDEX.transformArguments('key', '$', 'json', 1),
['JSON.ARRINDEX', 'key', '$', '"json"', '1']
);
});
it('with start, end', () => {
assert.deepEqual(
transformArguments('key', '$', 'json', 1, 2),
ARRINDEX.transformArguments('key', '$', 'json', 1, 2),
['JSON.ARRINDEX', 'key', '$', '"json"', '1', '2']
);
});

View File

@@ -1,10 +1,16 @@
import { RedisArgument, ArrayReply, NumberReply, Command } from '@redis/client/dist/lib/RESP/types';
import { RedisJSON, transformRedisJsonArgument } from '.';
export const FIRST_KEY_INDEX = 1;
export const IS_READ_ONLY = true;
export function transformArguments(key: string, path: string, json: RedisJSON, start?: number, stop?: number): Array<string> {
export default {
FIRST_KEY_INDEX: 1,
IS_READ_ONLY: true,
transformArguments(
key: RedisArgument,
path: RedisArgument,
json: RedisJSON,
start?: number,
stop?: number
) {
const args = ['JSON.ARRINDEX', key, path, transformRedisJsonArgument(json)];
if (start !== undefined && start !== null) {
@@ -16,6 +22,6 @@ export function transformArguments(key: string, path: string, json: RedisJSON, s
}
return args;
}
export declare function transformReply(): number | Array<number>;
},
transformReply: undefined as unknown as () => NumberReply | ArrayReply<NumberReply>
} as const satisfies Command;

View File

@@ -1,11 +1,11 @@
import { strict as assert } from 'assert';
import testUtils, { GLOBAL } from '../test-utils';
import { transformArguments } from './DICTDUMP';
import DICTDUMP from './DICTDUMP';
describe('DICTDUMP', () => {
it('transformArguments', () => {
assert.deepEqual(
transformArguments('dictionary'),
DICTDUMP.transformArguments('dictionary'),
['FT.DICTDUMP', 'dictionary']
);
});

View File

@@ -1,5 +1,13 @@
export function transformArguments(dictionary: string): Array<string> {
return ['FT.DICTDUMP', dictionary];
}
import { RedisArgument, ArrayReply, SetReply, BlobStringReply, Command } from '@redis/client/dist/lib/RESP/types';
export declare function transformReply(): Array<string>;
export default {
FIRST_KEY_INDEX: undefined,
IS_READ_ONLY: true,
transformArguments(dictionary: RedisArgument) {
return ['FT.DICTDUMP', dictionary];
},
transformReply: {
2: undefined as unknown as () => ArrayReply<BlobStringReply>,
3: undefined as unknown as () => SetReply<BlobStringReply>
}
} as const satisfies Command;

View File

@@ -1,20 +1,20 @@
import { strict as assert } from 'assert';
import testUtils, { GLOBAL } from '../test-utils';
import { SchemaFieldTypes } from '.';
import { transformArguments } from './DROPINDEX';
import DROPINDEX from './DROPINDEX';
describe('DROPINDEX', () => {
describe('transformArguments', () => {
it('without options', () => {
assert.deepEqual(
transformArguments('index'),
DROPINDEX.transformArguments('index'),
['FT.DROPINDEX', 'index']
);
});
it('with DD', () => {
assert.deepEqual(
transformArguments('index', { DD: true }),
DROPINDEX.transformArguments('index', { DD: true }),
['FT.DROPINDEX', 'index', 'DD']
);
});

View File

@@ -1,8 +1,13 @@
interface DropIndexOptions {
import { RedisArgument, SimpleStringReply, NumberReply, Command } from '@redis/client/dist/lib/RESP/types';
export interface FtDropIndexOptions {
DD?: true;
}
export function transformArguments(index: string, options?: DropIndexOptions): Array<string> {
export default {
FIRST_KEY_INDEX: undefined,
IS_READ_ONLY: false,
transformArguments(index: RedisArgument, options?: FtDropIndexOptions) {
const args = ['FT.DROPINDEX', index];
if (options?.DD) {
@@ -10,6 +15,9 @@ export function transformArguments(index: string, options?: DropIndexOptions): A
}
return args;
}
export declare function transformReply(): 'OK';
},
transformReply: {
2: undefined as unknown as () => SimpleStringReply<'OK'>,
3: undefined as unknown as () => NumberReply
}
} as const satisfies Command;

View File

@@ -1,12 +1,12 @@
import { strict as assert } from 'assert';
import testUtils, { GLOBAL } from '../test-utils';
import { SchemaFieldTypes } from '.';
import { transformArguments } from './TAGVALS';
import TAGVALS from './TAGVALS';
describe('TAGVALS', () => {
it('transformArguments', () => {
assert.deepEqual(
transformArguments('index', '@field'),
TAGVALS.transformArguments('index', '@field'),
['FT.TAGVALS', 'index', '@field']
);
});

View File

@@ -1,5 +1,13 @@
export function transformArguments(index: string, fieldName: string): Array<string> {
return ['FT.TAGVALS', index, fieldName];
}
import { RedisArgument, ArrayReply, SetReply, BlobStringReply, Command } from '@redis/client/dist/lib/RESP/types';
export declare function transformReply(): Array<string>;
export default {
FIRST_KEY_INDEX: undefined,
IS_READ_ONLY: false,
transformArguments(index: RedisArgument, fieldName: RedisArgument) {
return ['FT.TAGVALS', index, fieldName];
},
transformReply: {
2: undefined as unknown as () => ArrayReply<BlobStringReply>,
3: undefined as unknown as () => SetReply<BlobStringReply>
}
} as const satisfies Command;

View File

@@ -1,11 +1,11 @@
import { strict as assert } from 'assert';
import testUtils, { GLOBAL } from '../test-utils';
import { transformArguments } from './_LIST';
import _LIST from './_LIST';
describe('_LIST', () => {
it('transformArguments', () => {
assert.deepEqual(
transformArguments(),
_LIST.transformArguments(),
['FT._LIST']
);
});

View File

@@ -1,5 +1,13 @@
export function transformArguments(): Array<string> {
return ['FT._LIST'];
}
import { ArrayReply, SetReply, BlobStringReply, Command } from '@redis/client/dist/lib/RESP/types';
export declare function transformReply(): Array<string>;
export default {
FIRST_KEY_INDEX: undefined,
IS_READ_ONLY: true,
transformArguments() {
return ['FT._LIST'];
},
transformReply: {
2: undefined as unknown as () => ArrayReply<BlobStringReply>,
3: undefined as unknown as () => SetReply<BlobStringReply>
}
} as const satisfies Command;