1import { createTikzAdapter } from '../adapters/tikz'2import { createRendererUnit } from '../runtime/unit'34interface Env {5 RENDERER_BUILD: string6 ASSETS: Fetcher7}89export default {10 async fetch(request: Request<unknown, IncomingRequestCfProperties<unknown>>, env: Env, ctx: ExecutionContext): Promise<Response> {11 const url = new URL(request.url)12 if (request.method === 'GET' && !url.pathname.startsWith('/v1/')) return env.ASSETS.fetch(request.url)13 const renderer = createRendererUnit({14 id: 'tikz',15 kind: 'render',16 adapter: createTikzAdapter(assetPath => env.ASSETS.fetch(new URL(`/${assetPath}`, url.origin))),17 knownLosses: [18 'The edge unit uses the pinned TikZJax TeX/PGF package set, not a full TeX Live installation.',19 'External files, package downloads, shell escape, hyperlinks, and external resources are unavailable.',20 'Typography and SVG details may differ from the browser TikZJax unit.',21 ],22 })23 if (!renderer.fetch) throw new Error('TikZ renderer handler is unavailable.')24 return renderer.fetch(request, env, ctx)25 },26}