1
0
mirror of https://github.com/redis/node-redis.git synced 2025-08-07 13:22:56 +03:00

fix ZUNIONSTORE

This commit is contained in:
dovi
2023-05-02 17:43:10 -04:00
parent d643134dce
commit 31c91decec
4 changed files with 82 additions and 77 deletions

View File

@@ -1,56 +1,59 @@
// import { strict as assert } from 'assert'; import { strict as assert } from 'assert';
// import testUtils, { GLOBAL } from '../test-utils'; import testUtils, { GLOBAL } from '../test-utils';
// import { transformArguments } from './ZUNIONSTORE'; import ZUNIONSTORE from './ZUNIONSTORE';
// describe('ZUNIONSTORE', () => { describe('ZUNIONSTORE', () => {
// describe('transformArguments', () => { describe('transformArguments', () => {
// it('key (string)', () => { it('key (string)', () => {
// assert.deepEqual( assert.deepEqual(
// transformArguments('destination', 'key'), ZUNIONSTORE.transformArguments('destination', 'key'),
// ['ZUNIONSTORE', 'destination', '1', 'key'] ['ZUNIONSTORE', 'destination', '1', 'key']
// ); );
// }); });
// it('keys (array)', () => { it('keys (array)', () => {
// assert.deepEqual( assert.deepEqual(
// transformArguments('destination', ['1', '2']), ZUNIONSTORE.transformArguments('destination', ['1', '2']),
// ['ZUNIONSTORE', 'destination', '2', '1', '2'] ['ZUNIONSTORE', 'destination', '2', '1', '2']
// ); );
// }); });
// it('with WEIGHTS', () => { it('with WEIGHTS', () => {
// assert.deepEqual( assert.deepEqual(
// transformArguments('destination', 'key', { ZUNIONSTORE.transformArguments('destination', 'key', {
// WEIGHTS: [1] WEIGHTS: [1]
// }), }),
// ['ZUNIONSTORE', 'destination', '1', 'key', 'WEIGHTS', '1'] ['ZUNIONSTORE', 'destination', '1', 'key', 'WEIGHTS', '1']
// ); );
// }); });
// it('with AGGREGATE', () => { it('with AGGREGATE', () => {
// assert.deepEqual( assert.deepEqual(
// transformArguments('destination', 'key', { ZUNIONSTORE.transformArguments('destination', 'key', {
// AGGREGATE: 'SUM' AGGREGATE: 'SUM'
// }), }),
// ['ZUNIONSTORE', 'destination', '1', 'key', 'AGGREGATE', 'SUM'] ['ZUNIONSTORE', 'destination', '1', 'key', 'AGGREGATE', 'SUM']
// ); );
// }); });
// it('with WEIGHTS, AGGREGATE', () => { it('with WEIGHTS, AGGREGATE', () => {
// assert.deepEqual( assert.deepEqual(
// transformArguments('destination', 'key', { ZUNIONSTORE.transformArguments('destination', 'key', {
// WEIGHTS: [1], WEIGHTS: [1],
// AGGREGATE: 'SUM' AGGREGATE: 'SUM'
// }), }),
// ['ZUNIONSTORE', 'destination', '1', 'key', 'WEIGHTS', '1', 'AGGREGATE', 'SUM'] ['ZUNIONSTORE', 'destination', '1', 'key', 'WEIGHTS', '1', 'AGGREGATE', 'SUM']
// ); );
// }); });
// }); });
// testUtils.testWithClient('client.zUnionStore', async client => { testUtils.testAll('zUnionStore', async client => {
// assert.equal( assert.equal(
// await client.zUnionStore('destination', 'key'), await client.zUnionStore('destination', 'key'),
// 0 0
// ); );
// }, GLOBAL.SERVERS.OPEN); }, {
// }); client: GLOBAL.SERVERS.OPEN,
cluster: GLOBAL.CLUSTERS.OPEN
});
});

View File

@@ -1,29 +1,30 @@
// import { RedisCommandArgument, RedisCommandArguments } from '.'; import { RedisArgument, NumberReply, Command, } from '../RESP/types';
// import { pushVariadicArgument } from './generic-transformers'; import { RedisVariadicArgument, pushVariadicArgument } from './generic-transformers';
// export const FIRST_KEY_INDEX = 1; export interface ZUnionOptions {
WEIGHTS?: Array<number>;
AGGREGATE?: 'SUM' | 'MIN' | 'MAX';
}
// interface ZUnionOptions { export default {
// WEIGHTS?: Array<number>; FIRST_KEY_INDEX: 1,
// AGGREGATE?: 'SUM' | 'MIN' | 'MAX'; IS_READ_ONLY: false,
// } transformArguments(
destination: RedisArgument,
keys: RedisVariadicArgument,
options?: ZUnionOptions
) {
const args = pushVariadicArgument(['ZUNIONSTORE', destination], keys);
// export function transformArguments( if (options?.WEIGHTS) {
// destination: RedisCommandArgument, args.push('WEIGHTS', ...options.WEIGHTS.map(weight => weight.toString()));
// keys: Array<RedisCommandArgument> | RedisCommandArgument, }
// options?: ZUnionOptions
// ): RedisCommandArguments {
// const args = pushVariadicArgument(['ZUNIONSTORE', destination], keys);
// if (options?.WEIGHTS) { if (options?.AGGREGATE) {
// args.push('WEIGHTS', ...options.WEIGHTS.map(weight => weight.toString())); args.push('AGGREGATE', options.AGGREGATE);
// } }
// if (options?.AGGREGATE) { return args;
// args.push('AGGREGATE', options.AGGREGATE); },
// } transformReply: undefined as unknown as () => NumberReply
} as const satisfies Command;
// return args;
// }
// export declare function transformReply(): number;

View File

@@ -171,6 +171,7 @@ import ZREVRANK from './ZREVRANK';
import ZSCAN from './ZSCAN'; import ZSCAN from './ZSCAN';
import ZSCORE from './ZSCORE'; import ZSCORE from './ZSCORE';
import ZUNION from './ZUNION'; import ZUNION from './ZUNION';
import ZUNIONSTORE from './ZUNIONSTORE';
import { Command } from '../RESP/types'; import { Command } from '../RESP/types';
export default { export default {
@@ -520,5 +521,7 @@ export default {
ZSCORE, ZSCORE,
zScore: ZSCORE, zScore: ZSCORE,
ZUNION, ZUNION,
zUnion: ZUNION zUnion: ZUNION,
ZUNIONSTORE,
zUnionStore: ZUNIONSTORE,
} as const satisfies Record<string, Command>; } as const satisfies Record<string, Command>;

View File

@@ -15,11 +15,9 @@
# waiting List # waiting List
- `ZRANGEBYSCORE.ts` - `ZRANGEBYSCORE.ts`
- `ZRANGEBYLEX.ts` - `ZRANGEBYLEX.ts`
- `ZUNION.ts`
- `ZREMRANGEBYLEX.ts` - `ZREMRANGEBYLEX.ts`
- `ZREMRANGEBYRANK.ts` - `ZREMRANGEBYRANK.ts`
- `ZREMRANGEBYSCORE.ts` - `ZREMRANGEBYSCORE.ts`
- `ZUNION.ts`
- `ZUNIONSTORE.ts` - `ZUNIONSTORE.ts`
# fot leiba # fot leiba