diff --git a/dist/functions/server/handle-hmr.js b/dist/functions/server/handle-hmr.js index 612908d..851723f 100644 --- a/dist/functions/server/handle-hmr.js +++ b/dist/functions/server/handle-hmr.js @@ -6,6 +6,7 @@ function removeController(controller) { } export default async function ({ req }) { const referer = req.headers.get("referer"); + const page_cookie = req.headers.get("cookie"); if (!referer) { return new Response("Missing Referer Header", { status: 400 }); } @@ -29,6 +30,7 @@ export default async function ({ req }) { controller: c, page_url: referer_url.href, target_map, + page_cookie, }); heartbeat = setInterval(() => { try { diff --git a/dist/functions/server/server-post-build-fn.js b/dist/functions/server/server-post-build-fn.js index 04ba176..458ece8 100644 --- a/dist/functions/server/server-post-build-fn.js +++ b/dist/functions/server/server-post-build-fn.js @@ -34,9 +34,11 @@ export default async function serverPostBuildFn(params) { continue; } const mock_req = target_artifact.req_url - ? new Request(target_artifact.req_url) + ? new Request(target_artifact.req_url, {}) : new Request(controller.page_url); - // Always re-run server fns so fixed errors clear on the first HMR + if (controller.page_cookie) { + mock_req.headers.set("cookie", controller.page_cookie); + } const page_component = await grabPageComponent({ req: mock_req, return_server_res_only: true, diff --git a/dist/types/index.d.ts b/dist/types/index.d.ts index 87c46a5..de73d23 100644 --- a/dist/types/index.d.ts +++ b/dist/types/index.d.ts @@ -314,6 +314,7 @@ export type GlobalHMRControllerObject = { target_map?: BundlerCTXMap; page_props?: any; page_reloaded?: boolean; + page_cookie?: string | null; }; export type BunextCacheFileMeta = { date_created: number; diff --git a/package.json b/package.json index f67a829..c48519e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@moduletrace/bunext", - "version": "1.0.101", + "version": "1.0.102", "main": "dist/index.js", "module": "index.ts", "dependencies": { diff --git a/src/functions/server/handle-hmr.ts b/src/functions/server/handle-hmr.ts index 498fdfb..e8f4fd1 100644 --- a/src/functions/server/handle-hmr.ts +++ b/src/functions/server/handle-hmr.ts @@ -13,6 +13,8 @@ function removeController(controller: ReadableStreamDefaultController) { export default async function ({ req }: Params): Promise { const referer = req.headers.get("referer"); + const page_cookie = req.headers.get("cookie"); + if (!referer) { return new Response("Missing Referer Header", { status: 400 }); } @@ -39,6 +41,7 @@ export default async function ({ req }: Params): Promise { controller: c, page_url: referer_url.href, target_map, + page_cookie, }); heartbeat = setInterval(() => { try { diff --git a/src/functions/server/server-post-build-fn.ts b/src/functions/server/server-post-build-fn.ts index 508f5f1..b364794 100644 --- a/src/functions/server/server-post-build-fn.ts +++ b/src/functions/server/server-post-build-fn.ts @@ -47,10 +47,13 @@ export default async function serverPostBuildFn(params?: Params) { } const mock_req = target_artifact.req_url - ? new Request(target_artifact.req_url) + ? new Request(target_artifact.req_url, {}) : new Request(controller.page_url); - // Always re-run server fns so fixed errors clear on the first HMR + if (controller.page_cookie) { + mock_req.headers.set("cookie", controller.page_cookie); + } + const page_component = await grabPageComponent({ req: mock_req, return_server_res_only: true, diff --git a/src/types/index.ts b/src/types/index.ts index f614f41..a996a46 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -353,6 +353,7 @@ export type GlobalHMRControllerObject = { target_map?: BundlerCTXMap; page_props?: any; page_reloaded?: boolean; + page_cookie?: string | null; }; export type BunextCacheFileMeta = {