You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-06 02:15:48 +03:00
fix ZUNION
This commit is contained in:
@@ -1,48 +1,51 @@
|
|||||||
// 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 './ZUNION';
|
import ZUNION from './ZUNION';
|
||||||
|
|
||||||
// describe('ZUNION', () => {
|
describe('ZUNION', () => {
|
||||||
// testUtils.isVersionGreaterThanHook([6, 2]);
|
testUtils.isVersionGreaterThanHook([6, 2]);
|
||||||
|
|
||||||
// describe('transformArguments', () => {
|
describe('transformArguments', () => {
|
||||||
// it('key (string)', () => {
|
it('key (string)', () => {
|
||||||
// assert.deepEqual(
|
assert.deepEqual(
|
||||||
// transformArguments('key'),
|
ZUNION.transformArguments('key'),
|
||||||
// ['ZUNION', '1', 'key']
|
['ZUNION', '1', 'key']
|
||||||
// );
|
);
|
||||||
// });
|
});
|
||||||
|
|
||||||
// it('keys (array)', () => {
|
it('keys (array)', () => {
|
||||||
// assert.deepEqual(
|
assert.deepEqual(
|
||||||
// transformArguments(['1', '2']),
|
ZUNION.transformArguments(['1', '2']),
|
||||||
// ['ZUNION', '2', '1', '2']
|
['ZUNION', '2', '1', '2']
|
||||||
// );
|
);
|
||||||
// });
|
});
|
||||||
|
|
||||||
// it('with WEIGHTS', () => {
|
it('with WEIGHTS', () => {
|
||||||
// assert.deepEqual(
|
assert.deepEqual(
|
||||||
// transformArguments('key', {
|
ZUNION.transformArguments('key', {
|
||||||
// WEIGHTS: [1]
|
WEIGHTS: [1]
|
||||||
// }),
|
}),
|
||||||
// ['ZUNION', '1', 'key', 'WEIGHTS', '1']
|
['ZUNION', '1', 'key', 'WEIGHTS', '1']
|
||||||
// );
|
);
|
||||||
// });
|
});
|
||||||
|
|
||||||
// it('with AGGREGATE', () => {
|
it('with AGGREGATE', () => {
|
||||||
// assert.deepEqual(
|
assert.deepEqual(
|
||||||
// transformArguments('key', {
|
ZUNION.transformArguments('key', {
|
||||||
// AGGREGATE: 'SUM'
|
AGGREGATE: 'SUM'
|
||||||
// }),
|
}),
|
||||||
// ['ZUNION', '1', 'key', 'AGGREGATE', 'SUM']
|
['ZUNION', '1', 'key', 'AGGREGATE', 'SUM']
|
||||||
// );
|
);
|
||||||
// });
|
});
|
||||||
// });
|
});
|
||||||
|
|
||||||
// testUtils.testWithClient('client.zUnion', async client => {
|
testUtils.testAll('client.zUnion', async client => {
|
||||||
// assert.deepEqual(
|
assert.deepEqual(
|
||||||
// await client.zUnion('key'),
|
await client.zUnion('key'),
|
||||||
// []
|
[]
|
||||||
// );
|
);
|
||||||
// }, GLOBAL.SERVERS.OPEN);
|
}, {
|
||||||
// });
|
client: GLOBAL.SERVERS.OPEN,
|
||||||
|
cluster: GLOBAL.CLUSTERS.OPEN
|
||||||
|
});
|
||||||
|
});
|
||||||
|
@@ -1,30 +1,29 @@
|
|||||||
// import { RedisCommandArgument, RedisCommandArguments } from '.';
|
import { ArrayReply, BlobStringReply, Command } from '../RESP/types';
|
||||||
// import { pushVariadicArgument } from './generic-transformers';
|
import { RedisVariadicArgument, pushVariadicArgument } from './generic-transformers';
|
||||||
|
|
||||||
// export const FIRST_KEY_INDEX = 2;
|
export interface ZUnionOptions {
|
||||||
|
WEIGHTS?: Array<number>;
|
||||||
|
AGGREGATE?: 'SUM' | 'MIN' | 'MAX';
|
||||||
|
}
|
||||||
|
|
||||||
// export const IS_READ_ONLY = true;
|
export default {
|
||||||
|
FIRST_KEY_INDEX: 2,
|
||||||
|
IS_READ_ONLY: true,
|
||||||
|
transformArguments(
|
||||||
|
keys: RedisVariadicArgument,
|
||||||
|
options?: ZUnionOptions
|
||||||
|
) {
|
||||||
|
const args = pushVariadicArgument(['ZUNION'], keys);
|
||||||
|
|
||||||
// interface ZUnionOptions {
|
if (options?.WEIGHTS) {
|
||||||
// WEIGHTS?: Array<number>;
|
args.push('WEIGHTS', ...options.WEIGHTS.map(weight => weight.toString()));
|
||||||
// AGGREGATE?: 'SUM' | 'MIN' | 'MAX';
|
}
|
||||||
// }
|
|
||||||
|
|
||||||
// export function transformArguments(
|
if (options?.AGGREGATE) {
|
||||||
// keys: Array<RedisCommandArgument> | RedisCommandArgument,
|
args.push('AGGREGATE', options.AGGREGATE);
|
||||||
// options?: ZUnionOptions
|
}
|
||||||
// ): RedisCommandArguments {
|
|
||||||
// const args = pushVariadicArgument(['ZUNION'], keys);
|
|
||||||
|
|
||||||
// if (options?.WEIGHTS) {
|
return args;
|
||||||
// args.push('WEIGHTS', ...options.WEIGHTS.map(weight => weight.toString()));
|
},
|
||||||
// }
|
transformReply: undefined as unknown as () => ArrayReply<BlobStringReply>
|
||||||
|
} as const satisfies Command;
|
||||||
// if (options?.AGGREGATE) {
|
|
||||||
// args.push('AGGREGATE', options.AGGREGATE);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// return args;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// export declare function transformReply(): Array<RedisCommandArgument>;
|
|
||||||
|
@@ -170,6 +170,7 @@ import ZREM from './ZREM';
|
|||||||
import ZREVRANK from './ZREVRANK';
|
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 { Command } from '../RESP/types';
|
import { Command } from '../RESP/types';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -517,5 +518,7 @@ export default {
|
|||||||
ZSCAN,
|
ZSCAN,
|
||||||
zScan: ZSCAN,
|
zScan: ZSCAN,
|
||||||
ZSCORE,
|
ZSCORE,
|
||||||
zScore: ZSCORE
|
zScore: ZSCORE,
|
||||||
|
ZUNION,
|
||||||
|
zUnion: ZUNION
|
||||||
} as const satisfies Record<string, Command>;
|
} as const satisfies Record<string, Command>;
|
||||||
|
15
todo.md
15
todo.md
@@ -1,6 +1,7 @@
|
|||||||
# return type \ missing documentation
|
# return type \ missing documentation
|
||||||
- `XAUTOCLAIM`
|
- `XAUTOCLAIM`
|
||||||
- `XSETID`
|
- `XSETID`
|
||||||
|
- `ZUNION`
|
||||||
|
|
||||||
|
|
||||||
# create commands
|
# create commands
|
||||||
@@ -12,14 +13,8 @@
|
|||||||
|
|
||||||
|
|
||||||
# waiting List
|
# waiting List
|
||||||
- `BZMPOP.ts`
|
|
||||||
- `BZPOPMAX.ts`
|
|
||||||
- `BZPOPMIN.ts`
|
|
||||||
- `ZRANGEBYSCORE.ts`
|
- `ZRANGEBYSCORE.ts`
|
||||||
- `ZRANGEBYLEX.ts`
|
- `ZRANGEBYLEX.ts`
|
||||||
- `ZPOPMIN.ts`
|
|
||||||
- `ZPOPMAX.ts`
|
|
||||||
- `ZMPOP.ts`
|
|
||||||
- `ZUNION.ts`
|
- `ZUNION.ts`
|
||||||
- `ZREMRANGEBYLEX.ts`
|
- `ZREMRANGEBYLEX.ts`
|
||||||
- `ZREMRANGEBYRANK.ts`
|
- `ZREMRANGEBYRANK.ts`
|
||||||
@@ -27,6 +22,14 @@
|
|||||||
- `ZUNION.ts`
|
- `ZUNION.ts`
|
||||||
- `ZUNIONSTORE.ts`
|
- `ZUNIONSTORE.ts`
|
||||||
|
|
||||||
|
# fot leiba
|
||||||
|
- `BZMPOP.ts`
|
||||||
|
- `BZPOPMAX.ts`
|
||||||
|
- `BZPOPMIN.ts`
|
||||||
|
- `ZMPOP.ts`
|
||||||
|
- `ZPOPMAX.ts`
|
||||||
|
- `ZPOPMIN.ts`
|
||||||
|
|
||||||
|
|
||||||
# other
|
# other
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user