Update HMR logic. Refresh on server props update.

This commit is contained in:
2026-03-21 18:03:36 +01:00
parent a504046a36
commit 32056b5cb6
9 changed files with 58 additions and 8 deletions
+8
View File
@@ -1,4 +1,5 @@
import _ from "lodash";
import grabPageComponent from "./web-pages/grab-page-component";
export default async function serverPostBuildFn({ artifacts }) {
if (!global.IS_FIRST_BUNDLE_READY) {
global.IS_FIRST_BUNDLE_READY = true;
@@ -9,6 +10,10 @@ export default async function serverPostBuildFn({ artifacts }) {
for (let i = 0; i < global.HMR_CONTROLLERS.length; i++) {
const controller = global.HMR_CONTROLLERS[i];
const target_artifact = artifacts.find((a) => controller.target_map?.local_path == a.local_path);
const mock_req = new Request(controller.page_url);
const { serverRes } = await grabPageComponent({
req: mock_req,
});
const final_artifact = {
..._.omit(controller, ["controller"]),
target_map: target_artifact,
@@ -16,6 +21,9 @@ export default async function serverPostBuildFn({ artifacts }) {
if (!target_artifact) {
delete final_artifact.target_map;
}
if (serverRes) {
final_artifact.page_props = serverRes;
}
try {
controller.controller.enqueue(`event: update\ndata: ${JSON.stringify(final_artifact)}\n\n`);
}