0.0.1Updated a month ago
import { renderToString } from "npm:preact-render-to-string";
import type { ComponentChildren } from "npm:preact";
import { AppLayout } from "../views/_app.tsx";

export const renderTSX = (c: DivZero.Context.Hono) => (element: ComponentChildren, init?: ResponseInit): Response => {
  const layout = c.get('layout');
  const html = renderToString(AppLayout({ children: layout({ children: element }) }));
  return new Response("<!DOCTYPE html>" + html, {
    ...init,
    headers: {
      ...init?.headers,
      "Content-Type": "text/html"
    },
  });
}