From 5632f49401962814318ac4d13b6fb3da0438b430 Mon Sep 17 00:00:00 2001 From: u Date: Thu, 30 Mar 2023 11:51:11 +0200 Subject: [PATCH] fix(cloudflare): drop `set-cookie-parser` --- package.json | 1 - pnpm-lock.yaml | 7 ------- src/runtime/entries/cloudflare.ts | 16 ++++++++++------ 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index a9d053eee2..2e386039ed 100644 --- a/package.json +++ b/package.json @@ -107,7 +107,6 @@ "semver": "^7.5.3", "serve-placeholder": "^2.0.1", "serve-static": "^1.15.0", - "set-cookie-parser": "^2.5.1", "source-map-support": "^0.5.21", "std-env": "^3.3.3", "ufo": "^1.1.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f6dbbc555d..4a882d7afb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -183,9 +183,6 @@ importers: serve-static: specifier: ^1.15.0 version: 1.15.0 - set-cookie-parser: - specifier: ^2.5.1 - version: 2.5.1 source-map-support: specifier: ^0.5.21 version: 0.5.21 @@ -4990,10 +4987,6 @@ packages: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: false - /set-cookie-parser@2.5.1: - resolution: {integrity: sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==} - dev: false - /set-cookie-parser@2.6.0: resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} dev: true diff --git a/src/runtime/entries/cloudflare.ts b/src/runtime/entries/cloudflare.ts index ff7ea2d31f..a889190a63 100644 --- a/src/runtime/entries/cloudflare.ts +++ b/src/runtime/entries/cloudflare.ts @@ -4,7 +4,7 @@ import { mapRequestToAsset, } from "@cloudflare/kv-asset-handler"; import { withLeadingSlash, withoutBase, withoutTrailingSlash } from "ufo"; -import { splitCookiesString } from "set-cookie-parser"; +import { splitCookiesString } from "h3"; import { requestHasBody } from "../utils"; import { nitroApp } from "#internal/nitro/app"; import { useRuntimeConfig } from "#internal/nitro"; @@ -25,10 +25,14 @@ async function handleEvent(event: FetchEvent) { // Fetch public assets from KV only if (isPublicAssetURL(id)) { - return await getAssetFromKV(event, { - cacheControl: assetsCacheControl, - mapRequestToAsset: baseURLModifier, - }); + try { + return await getAssetFromKV(event, { + cacheControl: assetsCacheControl, + mapRequestToAsset: baseURLModifier, + }); + } catch (e) { + return new Response(e.message || e.toString(), { status: 404 }); + } } let body; @@ -85,7 +89,7 @@ function normalizeOutgoingHeaders( for (const [k, v] of Object.entries(headers)) { if (k === "set-cookie") { - for (const cookie of splitCookiesString(v)) { + for (const cookie of splitCookiesString(Array.isArray(v) ? v.join(',') : v)) { result.append("set-cookie", cookie); }