From b90228a5ee04b94c69d96c1384d931d0d99220cb Mon Sep 17 00:00:00 2001 From: Jiaqi Liu Date: Fri, 13 Sep 2024 20:26:47 +0800 Subject: [PATCH] fix: fix maxAge in express --- dist/server.cjs.js | 10 +++++++++- dist/server.esm.js | 10 +++++++++- package.json | 2 +- src/server.ts | 14 +++++++++++++- 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/dist/server.cjs.js b/dist/server.cjs.js index 6862064..80cd546 100644 --- a/dist/server.cjs.js +++ b/dist/server.cjs.js @@ -210,9 +210,17 @@ function setCookie(name, val, options) { } = asyncLocalStorage.getStore() || {}; if (res) { if (typeof res.cookie === 'function') { + /** + * The unit of maxAge in the specification is seconds, + * but in Express' cookie() method this is milliseconds + */ + const fixMaxAge = typeof options?.maxAge === 'number' ? { + maxAge: options.maxAge * 1000 + } : undefined; res.cookie(name, val, { ...defaultOptions, - ...options + ...options, + ...fixMaxAge }); if (req?.cookies) { req.cookies[name] = val; diff --git a/dist/server.esm.js b/dist/server.esm.js index 9cc1a5d..79784e7 100644 --- a/dist/server.esm.js +++ b/dist/server.esm.js @@ -206,9 +206,17 @@ function setCookie(name, val, options) { } = asyncLocalStorage.getStore() || {}; if (res) { if (typeof res.cookie === 'function') { + /** + * The unit of maxAge in the specification is seconds, + * but in Express' cookie() method this is milliseconds + */ + const fixMaxAge = typeof options?.maxAge === 'number' ? { + maxAge: options.maxAge * 1000 + } : undefined; res.cookie(name, val, { ...defaultOptions, - ...options + ...options, + ...fixMaxAge }); if (req?.cookies) { req.cookies[name] = val; diff --git a/package.json b/package.json index 12b294b..b793947 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cookick", - "version": "1.0.1", + "version": "1.0.3", "description": "Utilities for cookie APIs", "author": "qiqiboy", "main": "dist/server.cjs.js", diff --git a/src/server.ts b/src/server.ts index 0823a25..38da933 100644 --- a/src/server.ts +++ b/src/server.ts @@ -19,9 +19,21 @@ export function setCookie(name: string, val: string | number, options?: CookieOp if (res) { if (typeof res.cookie === 'function') { + /** + * The unit of maxAge in the specification is seconds, + * but in Express' cookie() method this is milliseconds + */ + const fixMaxAge = + typeof options?.maxAge === 'number' + ? { + maxAge: options.maxAge * 1000 + } + : undefined; + res.cookie(name, val, { ...defaultOptions, - ...options + ...options, + ...fixMaxAge }); if (req?.cookies) {