@vitejs/plugin-rsc
Version:
React Server Components (RSC) support for Vite.
64 lines (62 loc) • 1.94 kB
JavaScript
import "./dist-BRSdGcl7.js";
import { a as toReferenceValidationVirtual, i as toCssVirtual } from "./shared-AtH_QTi7.js";
import "./shared-DEpnONZf.js";
import { n as setRequireModule, t as createServerConsumerManifest } from "./ssr-CDPTWY93.js";
import { i as findSourceMapURL, n as createFromReadableStream, r as createServerReference, t as callServer } from "./ssr-B-bLmlbm.js";
import * as clientReferences from "virtual:vite-rsc/client-references";
import assetsManifest from "virtual:vite-rsc/assets-manifest";
import * as ReactDOM from "react-dom";
//#region src/ssr.tsx
initialize();
function initialize() {
setRequireModule({ load: async (id) => {
if (!import.meta.env.__vite_rsc_build__) {
await import(
/* @vite-ignore */
"/@id/__x00__" + toReferenceValidationVirtual({
id,
type: "client"
})
);
return wrapResourceProxy(await import(
/* @vite-ignore */
id
), {
js: [],
css: (await import(
/* @vite-ignore */
"/@id/__x00__" + toCssVirtual({
id,
type: "ssr"
})
)).default
});
} else {
const import_ = clientReferences.default[id];
if (!import_) throw new Error(`client reference not found '${id}'`);
const deps = assetsManifest.clientReferenceDeps[id];
if (deps) preloadDeps(deps);
return wrapResourceProxy(await import_(), deps);
}
} });
}
function wrapResourceProxy(mod, deps) {
return new Proxy(mod, { get(target, p, receiver) {
if (p in mod) {
if (deps) preloadDeps(deps);
}
return Reflect.get(target, p, receiver);
} });
}
function preloadDeps(deps) {
for (const href of deps.js) ReactDOM.preloadModule(href, {
as: "script",
crossOrigin: ""
});
for (const href of deps.css) ReactDOM.preinit(href, {
as: "style",
precedence: "vite-rsc/client-reference"
});
}
//#endregion
export { callServer, createFromReadableStream, createServerConsumerManifest, createServerReference, findSourceMapURL, setRequireModule };