vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
43 lines (40 loc) • 5.59 kB
JavaScript
/**
* vite-plugin-react-server
* Copyright (c) Nico Brinkkemper
* MIT License
*/
import { assertNonReactServer } from '../config/getCondition.js';
import { createRenderToPipeableStreamHandler } from './createRenderToPipeableStreamHandler.client.js';
import { DEFAULT_CONFIG } from '../config/defaults.js';
assertNonReactServer();
const createHtmlStream = function _createHtmlStream(options) {
if (!options.children && !options.rscStream) {
throw new Error(
"either children or rscStream is required for HTML streaming on client"
);
}
return createRenderToPipeableStreamHandler({
route: options.route,
logger: options.logger,
verbose: options.verbose || DEFAULT_CONFIG.VERBOSE,
panicThreshold: options.panicThreshold,
htmlTimeout: options.htmlTimeout || DEFAULT_CONFIG.HTML_TIMEOUT,
rscStream: options.rscStream,
children: options.children,
moduleRootPath: options.moduleRootPath,
moduleBasePath: options.moduleBasePath,
moduleBaseURL: options.moduleBaseURL,
clientPipeableStreamOptions: options.clientPipeableStreamOptions,
// Provide minimal required properties for the handler
pageExportName: options.pageExportName,
propsExportName: options.propsExportName,
rootExportName: options.rootExportName,
htmlExportName: options.htmlExportName,
moduleBase: options.moduleBase,
publicOrigin: options.publicOrigin,
projectRoot: options.projectRoot,
url: options.url || ""
});
};
export { createHtmlStream };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlSHRtbFN0cmVhbS5jbGllbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BsdWdpbi9zdHJlYW0vY3JlYXRlSHRtbFN0cmVhbS5jbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDcmVhdGVIdG1sU3RyZWFtRm4gfSBmcm9tIFwiLi9jcmVhdGVIdG1sU3RyZWFtLnR5cGVzLmpzXCI7XG5pbXBvcnQgeyBhc3NlcnROb25SZWFjdFNlcnZlciB9IGZyb20gXCIuLi9jb25maWcvZ2V0Q29uZGl0aW9uLmpzXCI7XG5pbXBvcnQgeyBjcmVhdGVSZW5kZXJUb1BpcGVhYmxlU3RyZWFtSGFuZGxlciB9IGZyb20gXCIuL2NyZWF0ZVJlbmRlclRvUGlwZWFibGVTdHJlYW1IYW5kbGVyLmNsaWVudC5qc1wiO1xuaW1wb3J0IHsgREVGQVVMVF9DT05GSUcgfSBmcm9tIFwiLi4vY29uZmlnL2RlZmF1bHRzLmpzXCI7XG5cbmFzc2VydE5vblJlYWN0U2VydmVyKCk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVIdG1sU3RyZWFtOiBDcmVhdGVIdG1sU3RyZWFtRm4gPSBmdW5jdGlvbiBfY3JlYXRlSHRtbFN0cmVhbShcbiAgb3B0aW9uc1xuKSB7XG4gIC8vIENsaWVudC1zaWRlIEhUTUwgc3RyZWFtaW5nIHVzZXMgdGhlIHVuaWZpZWQgcmVuZGVyVG9QaXBlYWJsZVN0cmVhbSBoYW5kbGVyXG4gIC8vIFRoaXMgcHJvdmlkZXMgY29uc2lzdGVudCBiZWhhdmlvciBhY3Jvc3MgY2xpZW50IGFuZCBzZXJ2ZXIgZW52aXJvbm1lbnRzXG4gIFxuICBpZiAoIW9wdGlvbnMuY2hpbGRyZW4gJiYgIW9wdGlvbnMucnNjU3RyZWFtKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJlaXRoZXIgY2hpbGRyZW4gb3IgcnNjU3RyZWFtIGlzIHJlcXVpcmVkIGZvciBIVE1MIHN0cmVhbWluZyBvbiBjbGllbnRcIlxuICAgICk7XG4gIH1cblxuICAvLyBUaGUgaGFuZGxlciBjYW4gaGFuZGxlIGJvdGggY2FzZXM6XG4gIC8vIDEuIElmIHJzY1N0cmVhbSBpcyBwcm92aWRlZCwgaXQgd2lsbCBjb252ZXJ0IGl0IHRvIFJlYWN0IGVsZW1lbnRzXG4gIC8vIDIuIElmIGNoaWxkcmVuIGlzIHByb3ZpZGVkLCBpdCB3aWxsIHVzZSB0aGVtIGRpcmVjdGx5XG4gIC8vIFRoaXMgcmVwbGFjZXMgdGhlIG9yaWdpbmFsIGNyZWF0ZUZyb21Ob2RlU3RyZWFtIGxvZ2ljXG4gIFxuICByZXR1cm4gY3JlYXRlUmVuZGVyVG9QaXBlYWJsZVN0cmVhbUhhbmRsZXIoe1xuICAgIHJvdXRlOiBvcHRpb25zLnJvdXRlLFxuICAgIGxvZ2dlcjogb3B0aW9ucy5sb2dnZXIsXG4gICAgdmVyYm9zZTogb3B0aW9ucy52ZXJib3NlIHx8IERFRkFVTFRfQ09ORklHLlZFUkJPU0UsXG4gICAgcGFuaWNUaHJlc2hvbGQ6IG9wdGlvbnMucGFuaWNUaHJlc2hvbGQsXG4gICAgaHRtbFRpbWVvdXQ6IG9wdGlvbnMuaHRtbFRpbWVvdXQgfHwgREVGQVVMVF9DT05GSUcuSFRNTF9USU1FT1VULFxuICAgIHJzY1N0cmVhbTogb3B0aW9ucy5yc2NTdHJlYW0sXG4gICAgY2hpbGRyZW46IG9wdGlvbnMuY2hpbGRyZW4sXG4gICAgbW9kdWxlUm9vdFBhdGg6IG9wdGlvbnMubW9kdWxlUm9vdFBhdGgsXG4gICAgbW9kdWxlQmFzZVBhdGg6IG9wdGlvbnMubW9kdWxlQmFzZVBhdGgsXG4gICAgbW9kdWxlQmFzZVVSTDogb3B0aW9ucy5tb2R1bGVCYXNlVVJMLFxuICAgIGNsaWVudFBpcGVhYmxlU3RyZWFtT3B0aW9uczogb3B0aW9ucy5jbGllbnRQaXBlYWJsZVN0cmVhbU9wdGlvbnMsXG4gICAgLy8gUHJvdmlkZSBtaW5pbWFsIHJlcXVpcmVkIHByb3BlcnRpZXMgZm9yIHRoZSBoYW5kbGVyXG4gICAgcGFnZUV4cG9ydE5hbWU6IG9wdGlvbnMucGFnZUV4cG9ydE5hbWUsXG4gICAgcHJvcHNFeHBvcnROYW1lOiBvcHRpb25zLnByb3BzRXhwb3J0TmFtZSwgXG4gICAgcm9vdEV4cG9ydE5hbWU6IG9wdGlvbnMucm9vdEV4cG9ydE5hbWUsXG4gICAgaHRtbEV4cG9ydE5hbWU6IG9wdGlvbnMuaHRtbEV4cG9ydE5hbWUsXG4gICAgbW9kdWxlQmFzZTogb3B0aW9ucy5tb2R1bGVCYXNlLFxuICAgIHB1YmxpY09yaWdpbjogb3B0aW9ucy5wdWJsaWNPcmlnaW4sXG4gICAgcHJvamVjdFJvb3Q6IG9wdGlvbnMucHJvamVjdFJvb3QsXG4gICAgdXJsOiBvcHRpb25zLnVybCB8fCBcIlwiLFxuICB9KTtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBS0Esb0JBQXFCLEVBQUE7QUFFUixNQUFBLGdCQUFBLEdBQXVDLFNBQVMsaUJBQUEsQ0FDM0QsT0FDQSxFQUFBO0FBSUEsRUFBQSxJQUFJLENBQUMsT0FBQSxDQUFRLFFBQVksSUFBQSxDQUFDLFFBQVEsU0FBVyxFQUFBO0FBQzNDLElBQUEsTUFBTSxJQUFJLEtBQUE7QUFBQSxNQUNSO0FBQUEsS0FDRjtBQUFBO0FBUUYsRUFBQSxPQUFPLG1DQUFvQyxDQUFBO0FBQUEsSUFDekMsT0FBTyxPQUFRLENBQUEsS0FBQTtBQUFBLElBQ2YsUUFBUSxPQUFRLENBQUEsTUFBQTtBQUFBLElBQ2hCLE9BQUEsRUFBUyxPQUFRLENBQUEsT0FBQSxJQUFXLGNBQWUsQ0FBQSxPQUFBO0FBQUEsSUFDM0MsZ0JBQWdCLE9BQVEsQ0FBQSxjQUFBO0FBQUEsSUFDeEIsV0FBQSxFQUFhLE9BQVEsQ0FBQSxXQUFBLElBQWUsY0FBZSxDQUFBLFlBQUE7QUFBQSxJQUNuRCxXQUFXLE9BQVEsQ0FBQSxTQUFBO0FBQUEsSUFDbkIsVUFBVSxPQUFRLENBQUEsUUFBQTtBQUFBLElBQ2xCLGdCQUFnQixPQUFRLENBQUEsY0FBQTtBQUFBLElBQ3hCLGdCQUFnQixPQUFRLENBQUEsY0FBQTtBQUFBLElBQ3hCLGVBQWUsT0FBUSxDQUFBLGFBQUE7QUFBQSxJQUN2Qiw2QkFBNkIsT0FBUSxDQUFBLDJCQUFBO0FBQUE7QUFBQSxJQUVyQyxnQkFBZ0IsT0FBUSxDQUFBLGNBQUE7QUFBQSxJQUN4QixpQkFBaUIsT0FBUSxDQUFBLGVBQUE7QUFBQSxJQUN6QixnQkFBZ0IsT0FBUSxDQUFBLGNBQUE7QUFBQSxJQUN4QixnQkFBZ0IsT0FBUSxDQUFBLGNBQUE7QUFBQSxJQUN4QixZQUFZLE9BQVEsQ0FBQSxVQUFBO0FBQUEsSUFDcEIsY0FBYyxPQUFRLENBQUEsWUFBQTtBQUFBLElBQ3RCLGFBQWEsT0FBUSxDQUFBLFdBQUE7QUFBQSxJQUNyQixHQUFBLEVBQUssUUFBUSxHQUFPLElBQUE7QUFBQSxHQUNyQixDQUFBO0FBQ0g7Ozs7In0=