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

fix #1739 - add support for number as value in HSET

This commit is contained in:
leibale
2021-11-27 22:58:53 -05:00
parent 2d2d58d881
commit 90c37bd1af
2 changed files with 22 additions and 15 deletions

View File

@@ -4,13 +4,20 @@ import { transformArguments } from './SET';
describe('SET', () => {
describe('transformArguments', () => {
it('simple', () => {
it('string', () => {
assert.deepEqual(
transformArguments('key', 'value'),
['SET', 'key', 'value']
);
});
it('number', () => {
assert.deepEqual(
transformArguments('key', 1),
['SET', 'key', '1']
);
});
describe('TTL', () => {
it('with EX', () => {
assert.deepEqual(

View File

@@ -24,32 +24,32 @@ interface SetCommonOptions {
type SetOptions = SetTTL & SetGuards & SetCommonOptions;
export function transformArguments(key: string | Buffer, value: string | Buffer, options?: SetOptions): RedisCommandArguments {
const args = ['SET', key, value];
export function transformArguments(key: string | Buffer, value: string | number | Buffer, options?: SetOptions): RedisCommandArguments {
const args = [
'SET',
key,
typeof value === 'number' ? value.toString() : value
];
if (!options) {
return args;
}
if (options.EX) {
if (options?.EX) {
args.push('EX', options.EX.toString());
} else if (options.PX) {
} else if (options?.PX) {
args.push('PX', options.PX.toString());
} else if (options.EXAT) {
} else if (options?.EXAT) {
args.push('EXAT', options.EXAT.toString());
} else if (options.PXAT) {
} else if (options?.PXAT) {
args.push('PXAT', options.PXAT.toString());
} else if (options.KEEPTTL) {
} else if (options?.KEEPTTL) {
args.push('KEEPTTL');
}
if (options.NX) {
if (options?.NX) {
args.push('NX');
} else if (options.XX) {
} else if (options?.XX) {
args.push('XX');
}
if (options.GET) {
if (options?.GET) {
args.push('GET');
}