diff --git a/bun.lockb b/bun.lockb index ad76186e1..48d13238c 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/package.json b/package.json index 9ac610823..853ac9021 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "devDependencies": { "@argos-ci/cli": "^1.0.4", "@argos-ci/puppeteer": "^1.2.1", - "@cloudflare/next-on-pages": "beta", + "@cloudflare/next-on-pages": "^1.9.0", "@cloudflare/workers-types": "^4.20231218.0", "@types/js-cookie": "^3.0.6", "@types/js-yaml": "^4.0.9", diff --git a/src/lib/waitUntil.ts b/src/lib/waitUntil.ts index abb335843..42ceedc85 100644 --- a/src/lib/waitUntil.ts +++ b/src/lib/waitUntil.ts @@ -1,21 +1,11 @@ -import { getRequestContext } from '@cloudflare/next-on-pages'; - -const cloudflareRequestContextSymbol = Symbol.for('__cloudflare-request-context__'); +import { getOptionalRequestContext } from '@cloudflare/next-on-pages'; /** * Get a global context object for the current request. * This object can be used as a key to store request-specific data in a WeakMap. */ export function getGlobalContext(): object { - // See https://github.com/cloudflare/next-on-pages/discussions/596#discussioncomment-8450986 - // we need a reliable object that will be different per request - const cloudflareRequestContext = ( - globalThis as unknown as { - [cloudflareRequestContextSymbol]: object; - } - )[cloudflareRequestContextSymbol]; - - return cloudflareRequestContext ?? globalThis; + return getOptionalRequestContext() ?? globalThis; } /** @@ -23,19 +13,10 @@ export function getGlobalContext(): object { * https://developers.cloudflare.com/workers/runtime-apis/handlers/fetch/#contextwaituntil */ export async function waitUntil(promise: Promise) { - const cloudflare = getCloudflareContext(); + const cloudflare = getOptionalRequestContext(); if (cloudflare) { cloudflare.ctx.waitUntil(promise); } else { await promise; } } - -function getCloudflareContext() { - try { - const cloudflare = getRequestContext(); - return cloudflare; - } catch (error) { - return null; - } -}