Bugfix. Update generate-web-html function

This commit is contained in:
Benjamin Toby 2026-03-21 14:24:12 +01:00
parent 51db0c447c
commit 4b79993d37
5 changed files with 10 additions and 10 deletions

View File

@ -1,4 +1,5 @@
import { jsx as _jsx } from "react/jsx-runtime"; import { jsx as _jsx } from "react/jsx-runtime";
import { renderToString } from "react-dom/server";
import grabContants from "../../../utils/grab-constants"; import grabContants from "../../../utils/grab-constants";
import EJSON from "../../../utils/ejson"; import EJSON from "../../../utils/ejson";
import isDevelopment from "../../../utils/is-development"; import isDevelopment from "../../../utils/is-development";
@ -6,15 +7,11 @@ import grabWebPageHydrationScript from "./grab-web-page-hydration-script";
import grabWebMetaHTML from "./grab-web-meta-html"; import grabWebMetaHTML from "./grab-web-meta-html";
import { log } from "../../../utils/log"; import { log } from "../../../utils/log";
import { AppData } from "../../../data/app-data"; import { AppData } from "../../../data/app-data";
import path from "path";
import importReactDomServer from "../../../utils/import-react-dom-server";
export default async function genWebHTML({ component, pageProps, bundledMap, head: Head, module, meta, routeParams, debug, }) { export default async function genWebHTML({ component, pageProps, bundledMap, head: Head, module, meta, routeParams, debug, }) {
const { ClientRootElementIDName, ClientWindowPagePropsName } = grabContants(); const { ClientRootElementIDName, ClientWindowPagePropsName } = grabContants();
if (debug) { if (debug) {
log.info("component", component); log.info("component", component);
} }
const reactDomServer = await importReactDomServer();
const renderToString = reactDomServer.renderToString;
const componentHTML = renderToString(component); const componentHTML = renderToString(component);
if (debug) { if (debug) {
log.info("componentHTML", componentHTML); log.info("componentHTML", componentHTML);

View File

@ -3,6 +3,9 @@ import reactDomServer from "react-dom/server";
export default async function importReactDomServer() { export default async function importReactDomServer() {
try { try {
const reactDomServerDynamicImport = await import(path.join(process.cwd(), "node_modules", "react-dom", "server")); const reactDomServerDynamicImport = await import(path.join(process.cwd(), "node_modules", "react-dom", "server"));
if (!reactDomServerDynamicImport.renderToString) {
return reactDomServer;
}
return reactDomServerDynamicImport; return reactDomServerDynamicImport;
} }
catch (error) { catch (error) {

View File

@ -2,7 +2,7 @@
"name": "@moduletrace/bunext", "name": "@moduletrace/bunext",
"module": "index.ts", "module": "index.ts",
"type": "module", "type": "module",
"version": "1.0.6", "version": "1.0.7",
"main": "dist/index.js", "main": "dist/index.js",
"types": "dist/index.d.ts", "types": "dist/index.d.ts",
"exports": { "exports": {

View File

@ -1,3 +1,4 @@
import { renderToString } from "react-dom/server";
import grabContants from "../../../utils/grab-constants"; import grabContants from "../../../utils/grab-constants";
import EJSON from "../../../utils/ejson"; import EJSON from "../../../utils/ejson";
import type { LivePageDistGenParams } from "../../../types"; import type { LivePageDistGenParams } from "../../../types";
@ -6,8 +7,6 @@ import grabWebPageHydrationScript from "./grab-web-page-hydration-script";
import grabWebMetaHTML from "./grab-web-meta-html"; import grabWebMetaHTML from "./grab-web-meta-html";
import { log } from "../../../utils/log"; import { log } from "../../../utils/log";
import { AppData } from "../../../data/app-data"; import { AppData } from "../../../data/app-data";
import path from "path";
import importReactDomServer from "../../../utils/import-react-dom-server";
export default async function genWebHTML({ export default async function genWebHTML({
component, component,
@ -26,9 +25,6 @@ export default async function genWebHTML({
log.info("component", component); log.info("component", component);
} }
const reactDomServer = await importReactDomServer();
const renderToString = reactDomServer.renderToString;
const componentHTML = renderToString(component); const componentHTML = renderToString(component);
if (debug) { if (debug) {

View File

@ -7,6 +7,10 @@ export default async function importReactDomServer() {
path.join(process.cwd(), "node_modules", "react-dom", "server") path.join(process.cwd(), "node_modules", "react-dom", "server")
); );
if (!reactDomServerDynamicImport.renderToString) {
return reactDomServer;
}
return reactDomServerDynamicImport; return reactDomServerDynamicImport;
} catch (error) { } catch (error) {
return reactDomServer; return reactDomServer;