Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
leibale committed Jul 6, 2023
1 parent 9e1ec97 commit 6ca420f
Show file tree
Hide file tree
Showing 9 changed files with 45 additions and 44 deletions.
2 changes: 1 addition & 1 deletion docs/v4-to-v5.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ Some command arguments/replies have changed to align more closely to data types
- `LCS IDX`: `length` has been changed to `len`, `matches` has been changed from `Array<{ key1: RangeReply; key2: RangeReply; }>` to `Array<[key1: RangeReply, key2: RangeReply]>`
- `HEXISTS`: `boolean` -> `number` [^boolean-to-number]
- `HRANDFIELD_COUNT_WITHVALUES`: `Record<BlobString, BlobString>` -> `Array<{ field: BlobString; value: BlobString; }>` (it can return duplicates).
- `SCAN`, `HSCAN`, `SSCAN`, and `ZSCAN`: cursor type is `string` instead of `number`?
- `SCAN`, `HSCAN`, `SSCAN`, and `ZSCAN`: `cursor` type is `string | Buffer` instead of `number`
- `HSETNX`: `boolean` -> `number` [^boolean-to-number]
- `ZINTER`: instead of `client.ZINTER('key', { WEIGHTS: [1] })` use `client.ZINTER({ key: 'key', weight: 1 }])`
- `ZINTER_WITHSCORES`: instead of `client.ZINTER_WITHSCORES('key', { WEIGHTS: [1] })` use `client.ZINTER_WITHSCORES({ key: 'key', weight: 1 }])`
Expand Down
31 changes: 16 additions & 15 deletions packages/client/lib/commands/HSCAN.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ describe('HSCAN', () => {
describe('transformArguments', () => {
it('cusror only', () => {
assert.deepEqual(
HSCAN.transformArguments('key', 0),
HSCAN.transformArguments('key', '0'),
['HSCAN', 'key', '0']
);
});

it('with MATCH', () => {
assert.deepEqual(
HSCAN.transformArguments('key', 0, {
HSCAN.transformArguments('key', '0', {
MATCH: 'pattern'
}),
['HSCAN', 'key', '0', 'MATCH', 'pattern']
Expand All @@ -22,7 +22,7 @@ describe('HSCAN', () => {

it('with COUNT', () => {
assert.deepEqual(
HSCAN.transformArguments('key', 0, {
HSCAN.transformArguments('key', '0', {
COUNT: 1
}),
['HSCAN', 'key', '0', 'COUNT', '1']
Expand All @@ -31,7 +31,7 @@ describe('HSCAN', () => {

it('with MATCH & COUNT', () => {
assert.deepEqual(
HSCAN.transformArguments('key', 0, {
HSCAN.transformArguments('key', '0', {
MATCH: 'pattern',
COUNT: 1
}),
Expand All @@ -41,16 +41,17 @@ describe('HSCAN', () => {
});

testUtils.testWithClient('client.hScan', async client => {
await client.hSet('key', 'field', 'value');
assert.deepEqual(
await client.hScan('key', 0),
{
cursor: 0,
entries: [{
field: 'field',
value: 'value'
}]
}
);
const [, reply] = await Promise.all([
client.hSet('key', 'field', 'value'),
client.hScan('key', '0')
]);

assert.deepEqual(reply, {
cursor: '0',
entries: [{
field: 'field',
value: 'value'
}]
});
}, GLOBAL.SERVERS.OPEN);
});
4 changes: 2 additions & 2 deletions packages/client/lib/commands/HSCAN.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export default {
IS_READ_ONLY: true,
transformArguments(
key: RedisArgument,
cursor: number,
cursor: RedisArgument,
options?: ScanCommonOptions
) {
return pushScanArguments(['HSCAN', key], cursor, options);
Expand All @@ -27,7 +27,7 @@ export default {
}

return {
cursor: Number(cursor),
cursor,
entries
};
}
Expand Down
14 changes: 7 additions & 7 deletions packages/client/lib/commands/SCAN.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ describe('SCAN', () => {
describe('transformArguments', () => {
it('cusror only', () => {
assert.deepEqual(
SCAN.transformArguments(0),
SCAN.transformArguments('0'),
['SCAN', '0']
);
});

it('with MATCH', () => {
assert.deepEqual(
SCAN.transformArguments(0, {
SCAN.transformArguments('0', {
MATCH: 'pattern'
}),
['SCAN', '0', 'MATCH', 'pattern']
Expand All @@ -22,7 +22,7 @@ describe('SCAN', () => {

it('with COUNT', () => {
assert.deepEqual(
SCAN.transformArguments(0, {
SCAN.transformArguments('0', {
COUNT: 1
}),
['SCAN', '0', 'COUNT', '1']
Expand All @@ -31,7 +31,7 @@ describe('SCAN', () => {

it('with TYPE', () => {
assert.deepEqual(
SCAN.transformArguments(0, {
SCAN.transformArguments('0', {
TYPE: 'stream'
}),
['SCAN', '0', 'TYPE', 'stream']
Expand All @@ -40,7 +40,7 @@ describe('SCAN', () => {

it('with MATCH & COUNT & TYPE', () => {
assert.deepEqual(
SCAN.transformArguments(0, {
SCAN.transformArguments('0', {
MATCH: 'pattern',
COUNT: 1,
TYPE: 'stream'
Expand All @@ -52,9 +52,9 @@ describe('SCAN', () => {

testUtils.testAll('scan', async client => {
assert.deepEqual(
await client.scan(0),
await client.scan('0'),
{
cursor: 0,
cursor: '0',
keys: []
}
);
Expand Down
6 changes: 3 additions & 3 deletions packages/client/lib/commands/SCAN.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export interface ScanCommonOptions {

export function pushScanArguments(
args: CommandArguments,
cursor: number,
cursor: RedisArgument,
options?: ScanOptions
): CommandArguments {
args.push(cursor.toString());
Expand All @@ -30,7 +30,7 @@ export interface ScanOptions extends ScanCommonOptions {
export default {
FIRST_KEY_INDEX: undefined,
IS_READ_ONLY: true,
transformArguments(cursor: number, options?: ScanOptions) {
transformArguments(cursor: string, options?: ScanOptions) {
const args = pushScanArguments(['SCAN'], cursor, options);

if (options?.TYPE) {
Expand All @@ -41,7 +41,7 @@ export default {
},
transformReply([cursor, keys]: [BlobStringReply, ArrayReply<BlobStringReply>]) {
return {
cursor: Number(cursor),
cursor,
keys
};
}
Expand Down
12 changes: 6 additions & 6 deletions packages/client/lib/commands/SSCAN.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ describe('SSCAN', () => {
describe('transformArguments', () => {
it('cusror only', () => {
assert.deepEqual(
SSCAN.transformArguments('key', 0),
SSCAN.transformArguments('key', '0'),
['SSCAN', 'key', '0']
);
});

it('with MATCH', () => {
assert.deepEqual(
SSCAN.transformArguments('key', 0, {
SSCAN.transformArguments('key', '0', {
MATCH: 'pattern'
}),
['SSCAN', 'key', '0', 'MATCH', 'pattern']
Expand All @@ -22,7 +22,7 @@ describe('SSCAN', () => {

it('with COUNT', () => {
assert.deepEqual(
SSCAN.transformArguments('key', 0, {
SSCAN.transformArguments('key', '0', {
COUNT: 1
}),
['SSCAN', 'key', '0', 'COUNT', '1']
Expand All @@ -31,7 +31,7 @@ describe('SSCAN', () => {

it('with MATCH & COUNT', () => {
assert.deepEqual(
SSCAN.transformArguments('key', 0, {
SSCAN.transformArguments('key', '0', {
MATCH: 'pattern',
COUNT: 1
}),
Expand All @@ -42,9 +42,9 @@ describe('SSCAN', () => {

testUtils.testAll('sScan', async client => {
assert.deepEqual(
await client.sScan('key', 0),
await client.sScan('key', '0'),
{
cursor: 0,
cursor: '0',
members: []
}
);
Expand Down
4 changes: 2 additions & 2 deletions packages/client/lib/commands/SSCAN.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ export default {
IS_READ_ONLY: true,
transformArguments(
key: RedisArgument,
cursor: number,
cursor: RedisArgument,
options?: ScanCommonOptions
) {
return pushScanArguments(['SSCAN', key], cursor, options);
},
transformReply([cursor, members]: [BlobStringReply, Array<BlobStringReply>]) {
return {
cursor: Number(cursor),
cursor,
members
};
}
Expand Down
12 changes: 6 additions & 6 deletions packages/client/lib/commands/ZSCAN.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ describe('ZSCAN', () => {
describe('transformArguments', () => {
it('cusror only', () => {
assert.deepEqual(
ZSCAN.transformArguments('key', 0),
ZSCAN.transformArguments('key', '0'),
['ZSCAN', 'key', '0']
);
});

it('with MATCH', () => {
assert.deepEqual(
ZSCAN.transformArguments('key', 0, {
ZSCAN.transformArguments('key', '0', {
MATCH: 'pattern'
}),
['ZSCAN', 'key', '0', 'MATCH', 'pattern']
Expand All @@ -22,7 +22,7 @@ describe('ZSCAN', () => {

it('with COUNT', () => {
assert.deepEqual(
ZSCAN.transformArguments('key', 0, {
ZSCAN.transformArguments('key', '0', {
COUNT: 1
}),
['ZSCAN', 'key', '0', 'COUNT', '1']
Expand All @@ -31,7 +31,7 @@ describe('ZSCAN', () => {

it('with MATCH & COUNT', () => {
assert.deepEqual(
ZSCAN.transformArguments('key', 0, {
ZSCAN.transformArguments('key', '0', {
MATCH: 'pattern',
COUNT: 1
}),
Expand All @@ -42,9 +42,9 @@ describe('ZSCAN', () => {

testUtils.testWithClient('zScan', async client => {
assert.deepEqual(
await client.zScan('key', 0),
await client.zScan('key', '0'),
{
cursor: 0,
cursor: '0',
members: []
}
);
Expand Down
4 changes: 2 additions & 2 deletions packages/client/lib/commands/ZSCAN.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@ export default {
IS_READ_ONLY: true,
transformArguments(
key: RedisArgument,
cursor: number,
cursor: RedisArgument,
options?: ScanCommonOptions
) {
return pushScanArguments(['ZSCAN', key], cursor, options);
},
transformReply([cursor, rawMembers]: [BlobStringReply, ArrayReply<BlobStringReply>]) {
return {
cursor: Number(cursor),
cursor,
members: transformSortedSetReply[2](rawMembers)
};
}
Expand Down

0 comments on commit 6ca420f

Please sign in to comment.