UNPKG

one

Version:

One is a new React Framework that makes Vite serve both native and web.

39 lines (33 loc) 1.42 kB
import { setServerGlobals } from './server/setServerGlobals' import { setupBuildInfo } from './server/setupBuildOptions' import { createWorkerHandler, type LazyRoutes } from './server/workerHandler' import { ensureExists } from './utils/ensureExists' import type { One } from './vite/types' // re-export static HTML fetcher utilities for worker use export { getFetchStaticHtml, setFetchStaticHtml } from './server/staticHtmlFetcher' // re-export for use in generated worker code export type { LazyRoutes } /** * Creates a fetch handler for edge/worker environments (Cloudflare Workers, service workers, etc.) * No Hono dependency — routes are matched dynamically via compiled regexes against a mutable table. * * @returns `{ fetch, updateRoutes }` — call `fetch(request)` to handle requests, * `updateRoutes(newBuildInfo, newLazyRoutes?)` to hot-swap the route table. */ export async function serve(buildInfo: One.BuildInfo, lazyRoutes?: LazyRoutes) { setupBuildInfo(buildInfo) ensureExists(buildInfo.oneOptions) setServerGlobals() const handler = createWorkerHandler({ oneOptions: buildInfo.oneOptions!, buildInfo, lazyRoutes: lazyRoutes!, }) return { fetch: handler.handleRequest, updateRoutes(newBuildInfo: One.BuildInfo, newLazyRoutes?: LazyRoutes) { setupBuildInfo(newBuildInfo) handler.updateRoutes(newBuildInfo, newLazyRoutes) }, } }