diff --git a/.changeset/cuddly-pigs-teach.md b/.changeset/cuddly-pigs-teach.md new file mode 100644 index 000000000000..a7f3e6b252a7 --- /dev/null +++ b/.changeset/cuddly-pigs-teach.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/adapter-cloudflare-workers': minor +--- + +feat: add cloudflare's `request.cf` object to the `event.platform` property diff --git a/packages/adapter-cloudflare-workers/ambient.d.ts b/packages/adapter-cloudflare-workers/ambient.d.ts index 5978f0dd3850..fbd01afd6557 100644 --- a/packages/adapter-cloudflare-workers/ambient.d.ts +++ b/packages/adapter-cloudflare-workers/ambient.d.ts @@ -1,4 +1,4 @@ -import { CacheStorage } from '@cloudflare/workers-types'; +import { CacheStorage, IncomingRequestCfProperties } from '@cloudflare/workers-types'; declare global { namespace App { @@ -7,6 +7,7 @@ declare global { waitUntil(promise: Promise): void; }; caches: CacheStorage; + cf?: IncomingRequestCfProperties; } } } diff --git a/packages/adapter-cloudflare-workers/files/entry.js b/packages/adapter-cloudflare-workers/files/entry.js index 0969ba1bbf07..0233f9017ae1 100644 --- a/packages/adapter-cloudflare-workers/files/entry.js +++ b/packages/adapter-cloudflare-workers/files/entry.js @@ -71,7 +71,9 @@ export default { env, context, // @ts-expect-error lib.dom is interfering with workers-types - caches + caches, + // @ts-expect-error req is actually a Cloudflare request not a standard request + cf: req.cf }, getClientAddress() { return req.headers.get('cf-connecting-ip');