@redwoodjs/sdk
Version:
A full-stack webapp toolkit designed for TypeScript, Vite, and React Server Components
16 lines (15 loc) • 755 B
JavaScript
import { route } from "../../entries/router";
import { validateUpgradeRequest } from "./validateUpgradeRequest";
import { DEFAULT_REALTIME_KEY } from "./constants";
export { renderRealtimeClients } from "./renderRealtimeClients";
export const realtimeRoute = (getDurableObjectNamespace) => route("/__realtime", async function ({ request, env }) {
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);
});