diff --git a/packages/@hydrogen/remix/server.ts b/packages/@hydrogen/remix/server.ts index ba223861a3..2021844146 100644 --- a/packages/@hydrogen/remix/server.ts +++ b/packages/@hydrogen/remix/server.ts @@ -5,19 +5,30 @@ type HydrogenHandlerParams = { storefront: StorefrontClientProps; }; -export function createRequestHandler({ - storefront, - getLoadContext, - ...oxygenHandlerParams -}: Parameters[0] & HydrogenHandlerParams) { - return createOxygenRequestHandler({ - ...oxygenHandlerParams, - getLoadContext: async (request) => { - const context = getLoadContext ? await getLoadContext(request) : {}; - // @ts-ignore - context.storefront = createStorefrontClient(storefront); +export function createRequestHandler( + oxygenHandlerParams: Parameters[0], +) { + const handleRequest = createOxygenRequestHandler(oxygenHandlerParams); - return context; - }, - }); + return ( + request: Request, + { + storefront, + context, + ...options + }: Omit[1], 'loadContext'> & + HydrogenHandlerParams, + ) => { + try { + return handleRequest(request, { + ...options, + context: {...context, storefront: createStorefrontClient(storefront)}, + }); + } catch (e) { + // eslint-disable-next-line no-console + console.error(e); + + return new Response('Internal Error', {status: 500}); + } + }; } diff --git a/packages/@remix-run/oxygen/server.ts b/packages/@remix-run/oxygen/server.ts index d33c138d61..5d081f659f 100644 --- a/packages/@remix-run/oxygen/server.ts +++ b/packages/@remix-run/oxygen/server.ts @@ -21,9 +21,14 @@ export function createRequestHandler({ request: Request, // This may be temporary unless we adjust @shopify/oxygen-workers-types { - ctx, env, - }: {ctx: Omit; env: any}, + context, + }: { + env: any; + context: Omit & { + [key: string]: any; + }; + }, ) => { try { if ( @@ -36,14 +41,13 @@ export function createRequestHandler({ return fetch(request.url.replace(url.origin, assetBasePath), request); } - const loadContext = await getLoadContext?.(request); - return await handleRequest(request, { env, - ...ctx, - ...loadContext, + ...context, + ...(await getLoadContext?.(request)), } as AppLoadContext); } catch (e) { + // eslint-disable-next-line no-console console.error(e); return new Response('Internal Error', {status: 500}); diff --git a/worker/index.ts b/worker/index.ts index 47d0c23df2..5842367ef1 100644 --- a/worker/index.ts +++ b/worker/index.ts @@ -6,25 +6,26 @@ const requestHandler = createRequestHandler({ build: remixBuild, mode: process.env.NODE_ENV, shouldProxyAsset: () => false, - storefront: { - publicStorefrontToken: '3b580e70970c4528da70c98e097c2fa0', - storeDomain: 'hydrogen-preview', - storefrontApiVersion: '2022-07', - }, }); export default { async fetch( request: Request, env: Env, - ctx: ExecutionContext, + context: ExecutionContext, ): Promise { try { return await requestHandler(request, { env, - ctx, + context, + storefront: { + publicStorefrontToken: '3b580e70970c4528da70c98e097c2fa0', + storeDomain: 'hydrogen-preview', + storefrontApiVersion: '2022-07', + }, }); } catch (error) { + // eslint-disable-next-line no-console console.error(error); return new Response('An unexpected error occurred', {status: 500}); }