create-vanjs
Version:
🍦 Quick tool for scaffolding your first VanJS project
31 lines (26 loc) • 933 B
JavaScript
// entry-server.js
import {
getDataPreload,
renderPreloadLinks,
renderToString,
} from "@vanjs/server";
import { setRouterState } from "@vanjs/router";
import { Head } from "@vanjs/meta";
import { App } from "./App";
import { Header } from "./components/Header";
import { Footer } from "./components/Footer";
export async function render(url, manifest) {
setRouterState(url);
const main = await renderToString(App());
const head = await renderToString(Head());
const header = await renderToString(Header());
const footer = await renderToString(Footer());
// allow code splitting for multiple pages
// by disabling the preloading of page components
const manifestFiles = Object.keys(manifest).filter((file) =>
file !== undefined
);
const preloadLinks = renderPreloadLinks(manifestFiles, manifest);
const preload = getDataPreload();
return { head, main, header, footer, preload, preloadLinks };
}