From f94cb892575b03c61a9b9c69262e6bdb4457bdff Mon Sep 17 00:00:00 2001 From: Movwf Date: Tue, 9 May 2023 21:14:56 +0300 Subject: [PATCH] Add ttl interception for conditional ttl handling --- index.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/index.ts b/index.ts index 51de30f..6d14097 100644 --- a/index.ts +++ b/index.ts @@ -21,7 +21,7 @@ interface RedisStoreOptions { prefix?: string scanCount?: number serializer?: Serializer - ttl?: number + ttl?: number | {(sess: SessionData): number} disableTTL?: boolean disableTouch?: boolean } @@ -31,7 +31,7 @@ class RedisStore extends Store { prefix: string scanCount: number serializer: Serializer - ttl: number + ttl: number | {(sess: SessionData): number} disableTTL: boolean disableTouch: boolean @@ -181,6 +181,10 @@ class RedisStore extends Store { } private _getTTL(sess: SessionData) { + if (typeof this.ttl === "function") { + return this.ttl(sess) + } + let ttl if (sess && sess.cookie && sess.cookie.expires) { let ms = Number(new Date(sess.cookie.expires)) - Date.now()