From a9ae11b6e86d33a4de7eb10c3883404ef3395e3f Mon Sep 17 00:00:00 2001 From: "S. Elliott Johnson" Date: Thu, 11 May 2023 15:52:37 -0600 Subject: [PATCH] technically fixed, though types will have to catch up --- packages/kit/src/runtime/server/cookie.js | 12 +++++++++++- packages/kit/src/runtime/server/fetch.js | 9 ++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/packages/kit/src/runtime/server/cookie.js b/packages/kit/src/runtime/server/cookie.js index f8d872207005..54119b411f0e 100644 --- a/packages/kit/src/runtime/server/cookie.js +++ b/packages/kit/src/runtime/server/cookie.js @@ -107,13 +107,23 @@ export function get_cookies(request, url, trailing_slash) { * @param {import('cookie').CookieSerializeOptions} opts */ set(name, value, opts = {}) { + return this.set_internal(name, value, { with_defaults: true, ...opts }); + }, + + /** + * @param {string} name + * @param {string} value + * @param {import('cookie').CookieSerializeOptions & { with_defaults?: boolean }} opts + */ + set_internal(name, value, opts = {}) { let path = opts.path ?? default_path; + const with_defaults = opts.with_defaults ?? true; new_cookies[name] = { name, value, options: { - ...defaults, + ...(with_defaults ? defaults : {}), ...opts, path } diff --git a/packages/kit/src/runtime/server/fetch.js b/packages/kit/src/runtime/server/fetch.js index ca5df895f9a8..90abe108a6f9 100644 --- a/packages/kit/src/runtime/server/fetch.js +++ b/packages/kit/src/runtime/server/fetch.js @@ -131,11 +131,10 @@ export function create_fetch({ event, options, manifest, state, get_cookie_heade const { name, value, ...options } = set_cookie_parser.parseString(str); // options.sameSite is string, something more specific is required - type cast is safe - event.cookies.set( - name, - value, - /** @type {import('cookie').CookieSerializeOptions} */ (options) - ); + event.cookies.set_internal(name, value, { + with_defaults: false, + .../** @type {import('cookie').CookieSerializeOptions} */ (options) + }); } }