| 1 |
|
| 2 | import { RSCPayload } from "./server.rsc.js";
|
| 3 | import * as React$1 from "react";
|
| 4 |
|
| 5 | //#region lib/rsc/server.ssr.d.ts
|
| 6 | type DecodedPayload = Promise<RSCPayload> & {
|
| 7 | _deepestRenderedBoundaryId?: string | null;
|
| 8 | formState: Promise<any>;
|
| 9 | };
|
| 10 | type SSRCreateFromReadableStreamFunction = (body: ReadableStream<Uint8Array>) => Promise<unknown>;
|
| 11 | /**
|
| 12 | * Routes the incoming [`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request)
|
| 13 | * to the [RSC](https://react.dev/reference/rsc/server-components) server and
|
| 14 | * appropriately proxies the server response for data / resource requests, or
|
| 15 | * renders to HTML for a document request.
|
| 16 | *
|
| 17 | * @example
|
| 18 | * import { createFromReadableStream } from "@vitejs/plugin-rsc/ssr";
|
| 19 | * import * as ReactDomServer from "react-dom/server.edge";
|
| 20 | * import {
|
| 21 | * unstable_RSCStaticRouter as RSCStaticRouter,
|
| 22 | * unstable_routeRSCServerRequest as routeRSCServerRequest,
|
| 23 | * } from "react-router";
|
| 24 | *
|
| 25 | * routeRSCServerRequest({
|
| 26 | * request,
|
| 27 | * serverResponse,
|
| 28 | * createFromReadableStream,
|
| 29 | * async renderHTML(getPayload) {
|
| 30 | * const payload = getPayload();
|
| 31 | *
|
| 32 | * return await renderHTMLToReadableStream(
|
| 33 | * <RSCStaticRouter getPayload={getPayload} />,
|
| 34 | * {
|
| 35 | * bootstrapScriptContent,
|
| 36 | * formState: await payload.formState,
|
| 37 | * }
|
| 38 | * );
|
| 39 | * },
|
| 40 | * });
|
| 41 | *
|
| 42 | * @name unstable_routeRSCServerRequest
|
| 43 | * @public
|
| 44 | * @category RSC
|
| 45 | * @mode data
|
| 46 | * @param opts Options
|
| 47 | * @param opts.createFromReadableStream Your `react-server-dom-xyz/client`'s
|
| 48 | * `createFromReadableStream` function, used to decode payloads from the server.
|
| 49 | * @param opts.serverResponse A Response or partial response generated by the [RSC](https://react.dev/reference/rsc/server-components) handler containing a serialized {@link unstable_RSCPayload}.
|
| 50 | * @param opts.hydrate Whether to hydrate the server response with the RSC payload.
|
| 51 | * Defaults to `true`.
|
| 52 | * @param opts.renderHTML A function that renders the {@link unstable_RSCPayload} to
|
| 53 | * HTML, usually using a {@link unstable_RSCStaticRouter | `<RSCStaticRouter>`}.
|
| 54 | * @param opts.request The request to route.
|
| 55 | * @returns A [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response)
|
| 56 | * that either contains the [RSC](https://react.dev/reference/rsc/server-components)
|
| 57 | * payload for data requests, or renders the HTML for document requests.
|
| 58 | */
|
| 59 | declare function routeRSCServerRequest({
|
| 60 | request,
|
| 61 | serverResponse,
|
| 62 | createFromReadableStream,
|
| 63 | renderHTML,
|
| 64 | hydrate
|
| 65 | }: {
|
| 66 | request: Request;
|
| 67 | serverResponse: Response;
|
| 68 | createFromReadableStream: SSRCreateFromReadableStreamFunction;
|
| 69 | renderHTML: (getPayload: () => DecodedPayload, options: {
|
| 70 | onError(error: unknown): string | undefined;
|
| 71 | onHeaders(headers: Headers): void;
|
| 72 | }) => ReadableStream<Uint8Array> | Promise<ReadableStream<Uint8Array>>;
|
| 73 | hydrate?: boolean;
|
| 74 | }): Promise<Response>;
|
| 75 | /**
|
| 76 | * Props for the {@link unstable_RSCStaticRouter} component.
|
| 77 | *
|
| 78 | * @name unstable_RSCStaticRouterProps
|
| 79 | * @category Types
|
| 80 | */
|
| 81 | interface RSCStaticRouterProps {
|
| 82 | /**
|
| 83 | * A function that starts decoding of the {@link unstable_RSCPayload}. Usually passed
|
| 84 | * through from {@link unstable_routeRSCServerRequest}'s `renderHTML`.
|
| 85 | */
|
| 86 | getPayload: () => DecodedPayload;
|
| 87 | }
|
| 88 | /**
|
| 89 | * Pre-renders an {@link unstable_RSCPayload} to HTML. Usually used in
|
| 90 | * {@link unstable_routeRSCServerRequest}'s `renderHTML` callback.
|
| 91 | *
|
| 92 | * @example
|
| 93 | * import { createFromReadableStream } from "@vitejs/plugin-rsc/ssr";
|
| 94 | * import * as ReactDomServer from "react-dom/server.edge";
|
| 95 | * import {
|
| 96 | * unstable_RSCStaticRouter as RSCStaticRouter,
|
| 97 | * unstable_routeRSCServerRequest as routeRSCServerRequest,
|
| 98 | * } from "react-router";
|
| 99 | *
|
| 100 | * routeRSCServerRequest({
|
| 101 | * request,
|
| 102 | * serverResponse,
|
| 103 | * createFromReadableStream,
|
| 104 | * async renderHTML(getPayload) {
|
| 105 | * const payload = getPayload();
|
| 106 | *
|
| 107 | * return await renderHTMLToReadableStream(
|
| 108 | * <RSCStaticRouter getPayload={getPayload} />,
|
| 109 | * {
|
| 110 | * bootstrapScriptContent,
|
| 111 | * formState: await payload.formState,
|
| 112 | * }
|
| 113 | * );
|
| 114 | * },
|
| 115 | * });
|
| 116 | *
|
| 117 | * @name unstable_RSCStaticRouter
|
| 118 | * @public
|
| 119 | * @category RSC
|
| 120 | * @mode data
|
| 121 | * @param props Props
|
| 122 | * @param {unstable_RSCStaticRouterProps.getPayload} props.getPayload n/a
|
| 123 | * @returns A React component that renders the {@link unstable_RSCPayload} as HTML.
|
| 124 | */
|
| 125 | declare function RSCStaticRouter({
|
| 126 | getPayload
|
| 127 | }: RSCStaticRouterProps): React$1.JSX.Element | null;
|
| 128 | //#endregion
|
| 129 | export { RSCStaticRouter, RSCStaticRouterProps, SSRCreateFromReadableStreamFunction, routeRSCServerRequest }; |
| \ | No newline at end of file |