vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
30 lines (27 loc) • 3.48 kB
JavaScript
/**
* vite-plugin-react-server
* Copyright (c) Nico Brinkkemper
* MIT License
*/
import { React, ReactDOMServer } from '../vendor/vendor.static.js';
import { DEFAULT_CONFIG } from '../config/defaults.js';
const createFromNodeStream = function _createFromNodeStreamServer(options) {
const { model, moduleBasePath = DEFAULT_CONFIG.MODULE_BASE_PATH } = options;
if (!model) {
throw new Error(
"[createFromNodeStream.server] model is required for server version"
);
}
return {
type: "server",
children: React.createElement(
() => React.use(
// Stable React exposes `prerenderToNodeStream`; the experimental
// channel still uses the `unstable_` name. Support both.
(ReactDOMServer.prerenderToNodeStream ?? ReactDOMServer.unstable_prerenderToNodeStream)(model, moduleBasePath)
)
)
};
};
export { createFromNodeStream };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlRnJvbU5vZGVTdHJlYW0uc2VydmVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vc3RyZWFtL2NyZWF0ZUZyb21Ob2RlU3RyZWFtLnNlcnZlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENyZWF0ZUZyb21Ob2RlU3RyZWFtRm4gfSBmcm9tIFwiLi9jcmVhdGVGcm9tTm9kZVN0cmVhbS50eXBlcy5qc1wiO1xuLy8gbm90ZTogc3RhdGljLm5vZGUgaXMgdXNlZCBoZXJlIGJlY2F1c2Ugd2UgbmVlZCB0byB1c2UgdGhlIHVuc3RhYmxlX3ByZXJlbmRlclRvTm9kZVN0cmVhbSBmdW5jdGlvblxuaW1wb3J0IHsgUmVhY3QsIFJlYWN0RE9NU2VydmVyIH0gZnJvbSBcIi4uL3ZlbmRvci92ZW5kb3Iuc3RhdGljLmpzXCI7XG5pbXBvcnQgeyBERUZBVUxUX0NPTkZJRyB9IGZyb20gXCIuLi9jb25maWcvZGVmYXVsdHMuanNcIjtcblxuLyoqXG4gKiBTZXJ2ZXIgdmVyc2lvbiBvZiBjcmVhdGVOb2RlU3RyZWFtLlxuICpcbiAqIFN0cmF0ZWd5OiBJbiBzZXJ2ZXIgZW52aXJvbm1lbnQsIHdlIGNvbnZlcnQgUmVhY3QgZWxlbWVudHMgdG8gUlNDIHN0cmVhbXNcbiAqIHVzaW5nIFJlYWN0RE9NU2VydmVyLnVuc3RhYmxlX3ByZXJlbmRlclRvTm9kZVN0cmVhbS5cbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZUZyb21Ob2RlU3RyZWFtOiBDcmVhdGVGcm9tTm9kZVN0cmVhbUZuPFwic2VydmVyXCI+ID1cbiAgZnVuY3Rpb24gX2NyZWF0ZUZyb21Ob2RlU3RyZWFtU2VydmVyKG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IG1vZGVsLCBtb2R1bGVCYXNlUGF0aCA9IERFRkFVTFRfQ09ORklHLk1PRFVMRV9CQVNFX1BBVEggfSA9IG9wdGlvbnM7XG5cbiAgICBpZiAoIW1vZGVsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiW2NyZWF0ZUZyb21Ob2RlU3RyZWFtLnNlcnZlcl0gbW9kZWwgaXMgcmVxdWlyZWQgZm9yIHNlcnZlciB2ZXJzaW9uXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFwic2VydmVyXCIgYXMgY29uc3QsXG4gICAgICBjaGlsZHJlbjogUmVhY3QuY3JlYXRlRWxlbWVudCgoKSA9PlxuICAgICAgICBSZWFjdC51c2UoXG4gICAgICAgICAgLy8gU3RhYmxlIFJlYWN0IGV4cG9zZXMgYHByZXJlbmRlclRvTm9kZVN0cmVhbWA7IHRoZSBleHBlcmltZW50YWxcbiAgICAgICAgICAvLyBjaGFubmVsIHN0aWxsIHVzZXMgdGhlIGB1bnN0YWJsZV9gIG5hbWUuIFN1cHBvcnQgYm90aC5cbiAgICAgICAgICAoXG4gICAgICAgICAgICBSZWFjdERPTVNlcnZlci5wcmVyZW5kZXJUb05vZGVTdHJlYW0gPz9cbiAgICAgICAgICAgIFJlYWN0RE9NU2VydmVyLnVuc3RhYmxlX3ByZXJlbmRlclRvTm9kZVN0cmVhbVxuICAgICAgICAgICkobW9kZWwsIG1vZHVsZUJhc2VQYXRoKVxuICAgICAgICApXG4gICAgICApLFxuICAgIH07XG4gIH07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFXYSxNQUFBLG9CQUFBLEdBQ1gsU0FBUywyQkFBQSxDQUE0QixPQUFTLEVBQUE7QUFDNUMsRUFBQSxNQUFNLEVBQUUsS0FBQSxFQUFPLGNBQWlCLEdBQUEsY0FBQSxDQUFlLGtCQUFxQixHQUFBLE9BQUE7QUFFcEUsRUFBQSxJQUFJLENBQUMsS0FBTyxFQUFBO0FBQ1YsSUFBQSxNQUFNLElBQUksS0FBQTtBQUFBLE1BQ1I7QUFBQSxLQUNGO0FBQUE7QUFHRixFQUFPLE9BQUE7QUFBQSxJQUNMLElBQU0sRUFBQSxRQUFBO0FBQUEsSUFDTixVQUFVLEtBQU0sQ0FBQSxhQUFBO0FBQUEsTUFBYyxNQUM1QixLQUFNLENBQUEsR0FBQTtBQUFBO0FBQUE7QUFBQSxRQUFBLENBSUYsY0FBZSxDQUFBLHFCQUFBLElBQ2YsY0FBZSxDQUFBLDhCQUFBLEVBQ2YsT0FBTyxjQUFjO0FBQUE7QUFDekI7QUFDRixHQUNGO0FBQ0Y7Ozs7In0=