renderedPage
A page of a component app (at, a path within its base), rendered as tcm start renders a page's first paint, as
a string: for a request with these headers (its cookies, its host). Undefined if it can't render on the server.
import type { Codebase } from "#codebase/tcmts/cli/codebase"; import { renderPage } from "#codebase/tcmts/cli/web"; import type { ComponentPlan, RenderApp, RpcOptions } from "#codebase/tcmts/cli/web"; import type http from "node:http"; export async function renderedPage( cb: Codebase, at: string, headers: http.IncomingHttpHeaders, page: string, render: RenderApp, plan: ComponentPlan, opts: RpcOptions, ): Promise<string | undefined> { let html = ""; const req = { url: at, method: "GET", headers: { ...headers, accept: "text/html" }, socket: { remoteAddress: "127.0.0.1" }, }; const res = { statusCode: 200, headersSent: false, writableFinished: false, on() { return res; }, setHeader() {}, write(s: string) { html += s; return true; }, end(s?: string) { if (s) html += s; }, }; const rendered = await renderPage( cb, req as unknown as http.IncomingMessage, res as unknown as http.ServerResponse, page, render, plan, opts, ); return rendered ? html : undefined; }
uses
- tcmts.cli.codebase.Codebase
- tcmts.cli.web.ComponentPlan
- tcmts.cli.web.RenderApp
- tcmts.cli.web.RpcOptions
- tcmts.cli.web.renderPage