From 3046b9ea278f8292e9f75e7f2a81c8aafc2696d7 Mon Sep 17 00:00:00 2001 From: Luca Date: Fri, 9 Jan 2026 13:56:52 +0100 Subject: [PATCH] fix(cloudflare): handle URL encoding for src with query parameters --- .changeset/kind-flowers-sit.md | 5 +++++ src/providers/cloudflare.ts | 12 +++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 .changeset/kind-flowers-sit.md diff --git a/.changeset/kind-flowers-sit.md b/.changeset/kind-flowers-sit.md new file mode 100644 index 0000000..4f39452 --- /dev/null +++ b/.changeset/kind-flowers-sit.md @@ -0,0 +1,5 @@ +--- +"unpic": patch +--- + +fix(cloudflare): handle URL encoding for src with query parameters correctly diff --git a/src/providers/cloudflare.ts b/src/providers/cloudflare.ts index d70a31e..a6ce00a 100644 --- a/src/providers/cloudflare.ts +++ b/src/providers/cloudflare.ts @@ -114,9 +114,15 @@ export const generate: URLGenerator<"cloudflare"> = ( ) => { const modifiers = operationsGenerator(operations); const url = toUrl(options?.domain ? `https://${options.domain}` : "/"); - url.pathname = `/cdn-cgi/image/${modifiers}/${ - stripLeadingSlash(src.toString()) - }`; + + const srcStr = src.toString(); + let pathSuffix = stripLeadingSlash(srcStr); + + if (srcStr.startsWith("http") && srcStr.includes("?")) { + pathSuffix = encodeURIComponent(srcStr); + } + + url.pathname = `/cdn-cgi/image/${modifiers}/${pathSuffix}`; return toCanonicalUrlString(url); };