UNPKG

@redwoodjs/sdk

Version:

Build fast, server-driven webapps on Cloudflare with SSR, RSC, and realtime

19 lines (18 loc) 874 B
import { route } from "../../entries/router"; import { validateUpgradeRequest } from "./validateUpgradeRequest"; import { DEFAULT_REALTIME_KEY } from "./constants"; import { requestInfo } from "../../requestInfo/worker"; import { env } from "cloudflare:workers"; export { renderRealtimeClients } from "./renderRealtimeClients"; export const realtimeRoute = (getDurableObjectNamespace) => route("/__realtime", async function () { const { request } = requestInfo; const validation = validateUpgradeRequest(request); if (!validation.valid) { return validation.response; } const url = new URL(request.url); const key = url.searchParams.get("key") || DEFAULT_REALTIME_KEY; const id = getDurableObjectNamespace(env).idFromName(key); const durableObject = getDurableObjectNamespace(env).get(id); return durableObject.fetch(request); });