rwsdk
Version:
Build fast, server-driven webapps on Cloudflare with SSR, RSC, and realtime
20 lines (19 loc) • 894 B
TypeScript
import { type CallServerCallback } from "react-server-dom-webpack/client.browser";
import { type HydrationOptions } from "react-dom/client";
export type ActionResponse<Result> = {
node: React.ReactNode;
actionResult: Result;
};
type TransportContext = {
setRscPayload: <Result>(v: Promise<ActionResponse<Result>>) => void;
handleResponse?: (response: Response) => boolean;
};
export type Transport = (context: TransportContext) => CallServerCallback;
export type CreateCallServer = (context: TransportContext) => <Result>(id: null | string, args: null | unknown[]) => Promise<Result>;
export declare const fetchTransport: Transport;
export declare const initClient: ({ transport, hydrateRootOptions, handleResponse, }?: {
transport?: Transport;
hydrateRootOptions?: HydrationOptions;
handleResponse?: (response: Response) => boolean;
}) => Promise<void>;
export {};