vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
65 lines (62 loc) • 5.06 kB
JavaScript
/**
* vite-plugin-react-server
* Copyright (c) Nico Brinkkemper
* MIT License
*/
import { createHtmlStream } from '../stream/createHtmlStream.server.js';
const createRscToHtmlStream = function _createRscToHtmlStream(options) {
const {
id,
worker,
htmlWorker,
route,
url,
moduleBasePath,
moduleBaseURL,
moduleRootPath,
projectRoot,
verbose,
panicThreshold,
clientPipeableStreamOptions,
signal,
logger,
build
} = options;
if (!worker) {
throw new Error("HTML worker is required for RSC to HTML stream");
}
if (verbose) {
logger?.info(
`[createRscToHtmlStream:${route}] Creating RSC to HTML transform stream`
);
}
const htmlStream = createHtmlStream({
id,
url,
route,
rscStream: options.rscStream,
htmlWorker: htmlWorker || worker,
logger,
verbose,
moduleRootPath,
moduleBasePath,
moduleBaseURL,
projectRoot,
panicThreshold,
clientPipeableStreamOptions,
build,
onMetrics: options.onMetrics,
onError: options.onError
});
if (signal) {
signal.addEventListener("abort", () => {
if (verbose) {
logger?.info(`[createRscToHtmlStream:${route}] Abort signal received`);
}
htmlStream.abort();
});
}
return htmlStream;
};
export { createRscToHtmlStream };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnNjVG9IdG1sU3RyZWFtLnNlcnZlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGx1Z2luL3JlYWN0LXN0YXRpYy9yc2NUb0h0bWxTdHJlYW0uc2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnNjVG9IdG1sU3RyZWFtRm4gfSBmcm9tIFwiLi90eXBlcy5qc1wiO1xuaW1wb3J0IHsgY3JlYXRlSHRtbFN0cmVhbSB9IGZyb20gXCIuLi9zdHJlYW0vY3JlYXRlSHRtbFN0cmVhbS5zZXJ2ZXIuanNcIjtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVJzY1RvSHRtbFN0cmVhbTogUnNjVG9IdG1sU3RyZWFtRm4gPSBmdW5jdGlvbiBfY3JlYXRlUnNjVG9IdG1sU3RyZWFtKFxuICBvcHRpb25zXG4pIHtcbiAgY29uc3Qge1xuICAgIGlkLFxuICAgIHdvcmtlcixcbiAgICBodG1sV29ya2VyLFxuICAgIHJvdXRlLFxuICAgIHVybCxcbiAgICBtb2R1bGVCYXNlUGF0aCxcbiAgICBtb2R1bGVCYXNlVVJMLFxuICAgIG1vZHVsZVJvb3RQYXRoLFxuICAgIHByb2plY3RSb290LFxuICAgIHZlcmJvc2UsXG4gICAgcGFuaWNUaHJlc2hvbGQsXG4gICAgY2xpZW50UGlwZWFibGVTdHJlYW1PcHRpb25zLFxuICAgIHNpZ25hbCxcbiAgICBsb2dnZXIsXG4gICAgYnVpbGQsXG4gIH0gPSBvcHRpb25zO1xuXG4gIGlmICghd29ya2VyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiSFRNTCB3b3JrZXIgaXMgcmVxdWlyZWQgZm9yIFJTQyB0byBIVE1MIHN0cmVhbVwiKTtcbiAgfVxuXG4gIGlmICh2ZXJib3NlKSB7XG4gICAgbG9nZ2VyPy5pbmZvKFxuICAgICAgYFtjcmVhdGVSc2NUb0h0bWxTdHJlYW06JHtyb3V0ZX1dIENyZWF0aW5nIFJTQyB0byBIVE1MIHRyYW5zZm9ybSBzdHJlYW1gXG4gICAgKTtcbiAgfVxuXG4gIC8vIFVzZSBjcmVhdGVIdG1sU3RyZWFtIHdoaWNoIHdvcmtzIGNvcnJlY3RseSB3aXRoIHRoZSBIVE1MIHdvcmtlclxuICBjb25zdCBodG1sU3RyZWFtID0gY3JlYXRlSHRtbFN0cmVhbSh7XG4gICAgaWQsXG4gICAgdXJsLFxuICAgIHJvdXRlLFxuICAgIHJzY1N0cmVhbTogb3B0aW9ucy5yc2NTdHJlYW0sXG4gICAgaHRtbFdvcmtlcjogaHRtbFdvcmtlciB8fCB3b3JrZXIsXG4gICAgbG9nZ2VyLFxuICAgIHZlcmJvc2UsXG4gICAgbW9kdWxlUm9vdFBhdGgsXG4gICAgbW9kdWxlQmFzZVBhdGgsXG4gICAgbW9kdWxlQmFzZVVSTCxcbiAgICBwcm9qZWN0Um9vdCxcbiAgICBwYW5pY1RocmVzaG9sZCxcbiAgICBjbGllbnRQaXBlYWJsZVN0cmVhbU9wdGlvbnMsXG4gICAgYnVpbGQsXG4gICAgb25NZXRyaWNzOiBvcHRpb25zLm9uTWV0cmljcyxcbiAgICBvbkVycm9yOiBvcHRpb25zLm9uRXJyb3IsXG4gIH0pO1xuXG4gIC8vIEhhbmRsZSBhYm9ydCBzaWduYWxcbiAgaWYgKHNpZ25hbCkge1xuICAgIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgKCkgPT4ge1xuICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgbG9nZ2VyPy5pbmZvKGBbY3JlYXRlUnNjVG9IdG1sU3RyZWFtOiR7cm91dGV9XSBBYm9ydCBzaWduYWwgcmVjZWl2ZWRgKTtcbiAgICAgIH1cbiAgICAgIGh0bWxTdHJlYW0uYWJvcnQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBodG1sU3RyZWFtO1xufTsiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUdhLE1BQUEscUJBQUEsR0FBMkMsU0FBUyxzQkFBQSxDQUMvRCxPQUNBLEVBQUE7QUFDQSxFQUFNLE1BQUE7QUFBQSxJQUNKLEVBQUE7QUFBQSxJQUNBLE1BQUE7QUFBQSxJQUNBLFVBQUE7QUFBQSxJQUNBLEtBQUE7QUFBQSxJQUNBLEdBQUE7QUFBQSxJQUNBLGNBQUE7QUFBQSxJQUNBLGFBQUE7QUFBQSxJQUNBLGNBQUE7QUFBQSxJQUNBLFdBQUE7QUFBQSxJQUNBLE9BQUE7QUFBQSxJQUNBLGNBQUE7QUFBQSxJQUNBLDJCQUFBO0FBQUEsSUFDQSxNQUFBO0FBQUEsSUFDQSxNQUFBO0FBQUEsSUFDQTtBQUFBLEdBQ0UsR0FBQSxPQUFBO0FBRUosRUFBQSxJQUFJLENBQUMsTUFBUSxFQUFBO0FBQ1gsSUFBTSxNQUFBLElBQUksTUFBTSxnREFBZ0QsQ0FBQTtBQUFBO0FBR2xFLEVBQUEsSUFBSSxPQUFTLEVBQUE7QUFDWCxJQUFRLE1BQUEsRUFBQSxJQUFBO0FBQUEsTUFDTiwwQkFBMEIsS0FBSyxDQUFBLHVDQUFBO0FBQUEsS0FDakM7QUFBQTtBQUlGLEVBQUEsTUFBTSxhQUFhLGdCQUFpQixDQUFBO0FBQUEsSUFDbEMsRUFBQTtBQUFBLElBQ0EsR0FBQTtBQUFBLElBQ0EsS0FBQTtBQUFBLElBQ0EsV0FBVyxPQUFRLENBQUEsU0FBQTtBQUFBLElBQ25CLFlBQVksVUFBYyxJQUFBLE1BQUE7QUFBQSxJQUMxQixNQUFBO0FBQUEsSUFDQSxPQUFBO0FBQUEsSUFDQSxjQUFBO0FBQUEsSUFDQSxjQUFBO0FBQUEsSUFDQSxhQUFBO0FBQUEsSUFDQSxXQUFBO0FBQUEsSUFDQSxjQUFBO0FBQUEsSUFDQSwyQkFBQTtBQUFBLElBQ0EsS0FBQTtBQUFBLElBQ0EsV0FBVyxPQUFRLENBQUEsU0FBQTtBQUFBLElBQ25CLFNBQVMsT0FBUSxDQUFBO0FBQUEsR0FDbEIsQ0FBQTtBQUdELEVBQUEsSUFBSSxNQUFRLEVBQUE7QUFDVixJQUFPLE1BQUEsQ0FBQSxnQkFBQSxDQUFpQixTQUFTLE1BQU07QUFDckMsTUFBQSxJQUFJLE9BQVMsRUFBQTtBQUNYLFFBQVEsTUFBQSxFQUFBLElBQUEsQ0FBSyxDQUEwQix1QkFBQSxFQUFBLEtBQUssQ0FBeUIsdUJBQUEsQ0FBQSxDQUFBO0FBQUE7QUFFdkUsTUFBQSxVQUFBLENBQVcsS0FBTSxFQUFBO0FBQUEsS0FDbEIsQ0FBQTtBQUFBO0FBR0gsRUFBTyxPQUFBLFVBQUE7QUFDVDs7OzsifQ==