import fs from "fs"; const isProd = process.env.NODE_ENV === "production"; const template = async function ({ vite, url }, name, title = "", props = {}) { const ogTags = []; const ogMeta = props.ogMeta ?? {}; Object.entries(ogMeta).forEach(([key, value]) => { if (!value) return; ogTags.push(``); }); const ogMetaTags = ogTags.join("\n"); // ---------------- // PROD // ---------------- if (isProd) { const ssrModule = await import(`../build/entry-server-${name}/bundle.js`); return ` ${ogMetaTags} ${title.length ? `${title} - The Homebrewery` : "The Homebrewery - NaturalCrit"}
${ssrModule.default(props)}
`; } // ---------------- // DEV // ---------------- const { default: render } = await vite.ssrLoadModule(`/client/entry-server-${name}.jsx`); let html = ` ${ogMetaTags} ${title.length ? `${title} - The Homebrewery` : "The Homebrewery - NaturalCrit"}
${render(props)}
`; return vite.transformIndexHtml(url, html); }; export default template;