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

add support for date in both EXPIREAT & EXPIRE

This commit is contained in:
leibale
2021-06-11 14:07:55 -04:00
parent a146a9cefd
commit 10e9cbc005
4 changed files with 39 additions and 14 deletions

View File

@@ -3,11 +3,21 @@ import { TestRedisServers, itWithClient } from '../test-utils';
import { transformArguments } from './EXPIREAT';
describe('EXPIREAT', () => {
it('transformArguments', () => {
assert.deepEqual(
transformArguments('key', 1),
['EXPIRE', 'key', '1']
);
describe('transformArguments', () => {
it('number', () => {
assert.deepEqual(
transformArguments('key', 1),
['EXPIREAT', 'key', '1']
);
});
it('date', () => {
const d = new Date();
assert.deepEqual(
transformArguments('key', d),
['EXPIREAT', 'key', Math.floor(d.getTime() / 1000).toString()]
);
});
});
itWithClient(TestRedisServers.OPEN, 'client.expireAt', async client => {

View File

@@ -1,10 +1,11 @@
import { time } from 'console';
import { transformReplyBoolean } from './generic-transformers';
export function transformArguments(key: string, timestamp: Date | number): Array<string> {
export function transformArguments(key: string, timestamp: number | Date): Array<string> {
return [
'EXPIREAT',
key,
(timestamp instanceof Date ? timestamp.getTime() : timestamp).toString()
(typeof timestamp === 'number' ? timestamp : Math.floor(timestamp.getTime() / 1000)).toString()
];
}

View File

@@ -3,11 +3,21 @@ import { TestRedisServers, itWithClient } from '../test-utils';
import { transformArguments } from './PEXPIREAT';
describe('PEXPIREAT', () => {
it('transformArguments', () => {
assert.deepEqual(
transformArguments('key', 1),
['PEXPIREAT', 'key', '1']
);
describe('transformArguments', () => {
it('number', () => {
assert.deepEqual(
transformArguments('key', 1),
['PEXPIREAT', 'key', '1']
);
});
it('date', () => {
const d = new Date();
assert.deepEqual(
transformArguments('key', d),
['PEXPIREAT', 'key', d.getTime().toString()]
);
});
});
itWithClient(TestRedisServers.OPEN, 'client.pExpireAt', async client => {

View File

@@ -2,8 +2,12 @@ import { transformReplyBoolean } from './generic-transformers';
export const FIRST_KEY_INDEX = 1;
export function transformArguments(key: string, millisecondsTimestamp: number): Array<string> {
return ['PEXPIREAT', key, millisecondsTimestamp.toString()];
export function transformArguments(key: string, millisecondsTimestamp: number | Date): Array<string> {
return [
'PEXPIREAT',
key,
(typeof millisecondsTimestamp === 'number' ? millisecondsTimestamp : millisecondsTimestamp.getTime()).toString()
];
}
export const transformReply = transformReplyBoolean;