vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
43 lines (40 loc) • 7.74 kB
JavaScript
/**
* vite-plugin-react-server
* Copyright (c) Nico Brinkkemper
* MIT License
*/
import { createEnvironmentPlugin } from '../environments/createEnvironmentPlugin.js';
import { createBuildEventPlugin } from '../environments/createBuildEventPlugin.js';
import { vitePluginReactDevServer } from '../dev-server/plugin.client.js';
import { reactStaticPlugin } from '../react-static/plugin.client.js';
import { createTransformerPlugin } from '../transformer/createTransformerPlugin.js';
import { virtualRscHmrPlugin } from '../dev-server/virtualRscHmrPlugin.js';
import { vitePluginVendorAlias } from '../vendor/vendor-alias.js';
import { clientPackagesDiscoveryPlugin } from '../clientPackages/plugin.js';
const createPluginOrchestrator = (userOptions) => {
const availableEnvironments = ["client", "ssr", "server"];
const plugins = [];
plugins.push(clientPackagesDiscoveryPlugin(userOptions));
plugins.push(vitePluginVendorAlias());
plugins.push(virtualRscHmrPlugin());
plugins.push(
createTransformerPlugin({
name: "dynamic",
defaultEnvironment: "client",
allowedEnvironments: ["client", "ssr", "server"]
})(userOptions)
);
userOptions.availableEnvironments = availableEnvironments;
plugins.push(createEnvironmentPlugin(userOptions));
plugins.push(createBuildEventPlugin(userOptions));
const devServerPlugins = vitePluginReactDevServer(userOptions);
if (Array.isArray(devServerPlugins)) {
plugins.push(...devServerPlugins);
} else {
plugins.push(devServerPlugins);
}
plugins.push(reactStaticPlugin(userOptions));
return plugins;
};
export { createPluginOrchestrator };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlUGx1Z2luT3JjaGVzdHJhdG9yLmNsaWVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGx1Z2luL29yY2hlc3RyYXRvci9jcmVhdGVQbHVnaW5PcmNoZXN0cmF0b3IuY2xpZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCB7IGNyZWF0ZUVudmlyb25tZW50UGx1Z2luIH0gZnJvbSBcIi4uL2Vudmlyb25tZW50cy9jcmVhdGVFbnZpcm9ubWVudFBsdWdpbi5qc1wiO1xuaW1wb3J0IHsgY3JlYXRlQnVpbGRFdmVudFBsdWdpbiB9IGZyb20gXCIuLi9lbnZpcm9ubWVudHMvY3JlYXRlQnVpbGRFdmVudFBsdWdpbi5qc1wiO1xuaW1wb3J0IHsgdml0ZVBsdWdpblJlYWN0RGV2U2VydmVyIH0gZnJvbSBcIi4uL2Rldi1zZXJ2ZXIvcGx1Z2luLmNsaWVudC5qc1wiO1xuaW1wb3J0IHsgcmVhY3RTdGF0aWNQbHVnaW4gfSBmcm9tIFwiLi4vcmVhY3Qtc3RhdGljL3BsdWdpbi5jbGllbnQuanNcIjtcbmltcG9ydCB7IGNyZWF0ZVRyYW5zZm9ybWVyUGx1Z2luIH0gZnJvbSBcIi4uL3RyYW5zZm9ybWVyL2NyZWF0ZVRyYW5zZm9ybWVyUGx1Z2luLmpzXCI7XG5pbXBvcnQgeyB2aXJ0dWFsUnNjSG1yUGx1Z2luIH0gZnJvbSBcIi4uL2Rldi1zZXJ2ZXIvdmlydHVhbFJzY0htclBsdWdpbi5qc1wiO1xuaW1wb3J0IHsgdml0ZVBsdWdpblZlbmRvckFsaWFzIH0gZnJvbSBcIi4uL3ZlbmRvci92ZW5kb3ItYWxpYXMuanNcIjtcbmltcG9ydCB7IGNsaWVudFBhY2thZ2VzRGlzY292ZXJ5UGx1Z2luIH0gZnJvbSBcIi4uL2NsaWVudFBhY2thZ2VzL2luZGV4LmpzXCI7XG5cbi8vIENsaWVudC1maXJzdCBvcmNoZXN0cmF0b3IgLSBpbmNsdWRlcyBjbGllbnQgU1NHIHBsdWdpbiBmb3IgcmV2ZXJzZSBwYXJhZGlnbVxuZXhwb3J0IGNvbnN0IGNyZWF0ZVBsdWdpbk9yY2hlc3RyYXRvciA9IChcbiAgdXNlck9wdGlvbnM6IGFueVxuKTogUGx1Z2luW10gPT4ge1xuICAvLyBDbGllbnQtZmlyc3QgbG9naWMgLSBwcm92aWRlIGFsbCBlbnZpcm9ubWVudHMgZm9yIEVudmlyb25tZW50IEFQSSBidWlsZHNcbiAgY29uc3QgYXZhaWxhYmxlRW52aXJvbm1lbnRzID0gW1wiY2xpZW50XCIsIFwic3NyXCIsIFwic2VydmVyXCJdO1xuXG4gIGNvbnN0IHBsdWdpbnM6IFBsdWdpbltdID0gW107XG5cbiAgLy8gQXV0by1kaXNjb3ZlciBwYWNrYWdlcyB0aGF0IG9wdCBpbnRvIHRoZSBgXCJ1c2UgY2xpZW50XCJgIGNvbnZlbnRpb24gdmlhXG4gIC8vIGByZWFjdGAgaW4gcGVlckRlcGVuZGVuY2llcywgYW5kIG1lcmdlIHdpdGggYW55IG1hbnVhbCBgY2xpZW50UGFja2FnZXNgXG4gIC8vIHRoZSB1c2VyIHN1cHBsaWVkLiBNdXRhdGVzIGB1c2VyT3B0aW9ucy5jbGllbnRQYWNrYWdlc2Agc28gZG93bnN0cmVhbVxuICAvLyBwbHVnaW5zIHJlYWQgdGhlIG1lcmdlZCBsaXN0IHdoZW4gdGhlaXIgb3duIGhvb2tzIGZpcmUuXG4gIC8vXG4gIC8vIElOVkFSSUFOVDogZXZlcnkgcGx1Z2luIGJlbG93IG11c3QgcmVjZWl2ZSB0aGUgc2FtZSBgdXNlck9wdGlvbnNgXG4gIC8vICpyZWZlcmVuY2UqLiBTcHJlYWRpbmcgKGB7Li4udXNlck9wdGlvbnMsIGZvb31gKSBpbnRvIGEgbmV3IG9iamVjdFxuICAvLyBicmVha3MgdGhlIGNoYWluIOKAlCB0aGUgc3ByZWFkIGNvcHkga2VlcHMgdGhlIHByZS1kaXNjb3ZlcnkgdmFsdWUgb2ZcbiAgLy8gYGNsaWVudFBhY2thZ2VzYCBhbmQgc2lsZW50bHkgcmVncmVzc2VzIG5vZGVfbW9kdWxlcyBgXCJ1c2UgY2xpZW50XCJgXG4gIC8vIGhhbmRsaW5nLiBNdXRhdGUgZmllbGRzIG9uIHVzZXJPcHRpb25zIGRpcmVjdGx5IGluc3RlYWQuXG4gIHBsdWdpbnMucHVzaChjbGllbnRQYWNrYWdlc0Rpc2NvdmVyeVBsdWdpbih1c2VyT3B0aW9ucykpO1xuXG4gIC8vIEFsaWFzIHJlYWN0LXNlcnZlci1kb20tZXNtIHRvIG91ciB2ZW5kb3JlZCBjb3B5XG4gIHBsdWdpbnMucHVzaCh2aXRlUGx1Z2luVmVuZG9yQWxpYXMoKSk7XG5cbiAgLy8gVmlydHVhbCBtb2R1bGUgZm9yIFJTQyBITVIgdXRpbGl0aWVzICh3b3JrcyBpbiBib3RoIGRldiBhbmQgYnVpbGQpXG4gIHBsdWdpbnMucHVzaCh2aXJ0dWFsUnNjSG1yUGx1Z2luKCkpO1xuICBcbiAgLy8gQWRkIHRyYW5zZm9ybWVyIGZpcnN0IHNvIGl0IHJ1bnMgYmVmb3JlIG90aGVyIHBsdWdpbnNcbiAgcGx1Z2lucy5wdXNoKFxuICAgIGNyZWF0ZVRyYW5zZm9ybWVyUGx1Z2luKHtcbiAgICAgIG5hbWU6IFwiZHluYW1pY1wiLFxuICAgICAgZGVmYXVsdEVudmlyb25tZW50OiBcImNsaWVudFwiLFxuICAgICAgYWxsb3dlZEVudmlyb25tZW50czogW1wiY2xpZW50XCIsIFwic3NyXCIsIFwic2VydmVyXCJdLFxuICAgIH0pKHVzZXJPcHRpb25zKVxuICApO1xuICBcbiAgLy8gQ29yZSBwbHVnaW5zLiBNdXRhdGluZyBgYXZhaWxhYmxlRW52aXJvbm1lbnRzYCBvbiB1c2VyT3B0aW9ucyAocmF0aGVyXG4gIC8vIHRoYW4gc3ByZWFkaW5nIGludG8gYSBuZXcgb2JqZWN0KSBwcmVzZXJ2ZXMgdGhlIHNoYXJlZCByZWZlcmVuY2UgcGVyXG4gIC8vIHRoZSBpbnZhcmlhbnQgYWJvdmUuXG4gICh1c2VyT3B0aW9ucyBhcyB7IGF2YWlsYWJsZUVudmlyb25tZW50cz86IHVua25vd24gfSkuYXZhaWxhYmxlRW52aXJvbm1lbnRzID1cbiAgICBhdmFpbGFibGVFbnZpcm9ubWVudHM7XG4gIHBsdWdpbnMucHVzaChjcmVhdGVFbnZpcm9ubWVudFBsdWdpbih1c2VyT3B0aW9ucykpO1xuICBwbHVnaW5zLnB1c2goY3JlYXRlQnVpbGRFdmVudFBsdWdpbih1c2VyT3B0aW9ucykpO1xuICBjb25zdCBkZXZTZXJ2ZXJQbHVnaW5zID0gdml0ZVBsdWdpblJlYWN0RGV2U2VydmVyKHVzZXJPcHRpb25zKTtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZGV2U2VydmVyUGx1Z2lucykpIHtcbiAgICBwbHVnaW5zLnB1c2goLi4uZGV2U2VydmVyUGx1Z2lucyk7XG4gIH0gZWxzZSB7XG4gICAgcGx1Z2lucy5wdXNoKGRldlNlcnZlclBsdWdpbnMpO1xuICB9XG5cbiAgLy8gQ2xpZW50IFNTRyBwbHVnaW4gZm9yIHJldmVyc2UgcGFyYWRpZ21cbiAgcGx1Z2lucy5wdXNoKHJlYWN0U3RhdGljUGx1Z2luKHVzZXJPcHRpb25zKSk7XG5cbiAgcmV0dXJuIHBsdWdpbnM7XG59O1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RyYXRlZ3kge1xuICBtb2RlPzogXCJhdXRvXCIgfCBcInNlcnZlclwiIHwgXCJjbGllbnRcIjtcbiAgYnVuZGxlVGFyZ2V0PzogXCJzZXJ2ZXJcIiB8IFwiY2xpZW50XCIgfCBcInNzclwiO1xuICBpbXBvcnRDb250ZXh0PzogXCJyZWFjdC1zZXJ2ZXJcIiB8IFwicmVhY3QtY2xpZW50XCI7XG4gIG1haW5UaHJlYWRDb25kaXRpb24/OiBcInJlYWN0LXNlcnZlclwiIHwgXCJyZWFjdC1jbGllbnRcIjtcbiAgbGVnYWN5QnVpbGRlcj86IGJvb2xlYW47XG4gIHN0YXRpY0J1aWxkPzogYm9vbGVhbjtcbiAgc3NnPzogYm9vbGVhbjtcbiAgZm9yY2VDYXBhYmlsaXRpZXM/OiB7XG4gICAgc3RhdGljR2VuZXJhdGlvbj86IGJvb2xlYW47XG4gICAgc2VydmVyQ29tcG9uZW50cz86IGJvb2xlYW47XG4gICAgY2xpZW50QnVpbGRzPzogYm9vbGVhbjtcbiAgICBzc3JCdWlsZHM/OiBib29sZWFuO1xuICB9O1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBV2EsTUFBQSx3QkFBQSxHQUEyQixDQUN0QyxXQUNhLEtBQUE7QUFFYixFQUFBLE1BQU0scUJBQXdCLEdBQUEsQ0FBQyxRQUFVLEVBQUEsS0FBQSxFQUFPLFFBQVEsQ0FBQTtBQUV4RCxFQUFBLE1BQU0sVUFBb0IsRUFBQztBQVkzQixFQUFRLE9BQUEsQ0FBQSxJQUFBLENBQUssNkJBQThCLENBQUEsV0FBVyxDQUFDLENBQUE7QUFHdkQsRUFBUSxPQUFBLENBQUEsSUFBQSxDQUFLLHVCQUF1QixDQUFBO0FBR3BDLEVBQVEsT0FBQSxDQUFBLElBQUEsQ0FBSyxxQkFBcUIsQ0FBQTtBQUdsQyxFQUFRLE9BQUEsQ0FBQSxJQUFBO0FBQUEsSUFDTix1QkFBd0IsQ0FBQTtBQUFBLE1BQ3RCLElBQU0sRUFBQSxTQUFBO0FBQUEsTUFDTixrQkFBb0IsRUFBQSxRQUFBO0FBQUEsTUFDcEIsbUJBQXFCLEVBQUEsQ0FBQyxRQUFVLEVBQUEsS0FBQSxFQUFPLFFBQVE7QUFBQSxLQUNoRCxFQUFFLFdBQVc7QUFBQSxHQUNoQjtBQUtBLEVBQUMsWUFBb0QscUJBQ25ELEdBQUEscUJBQUE7QUFDRixFQUFRLE9BQUEsQ0FBQSxJQUFBLENBQUssdUJBQXdCLENBQUEsV0FBVyxDQUFDLENBQUE7QUFDakQsRUFBUSxPQUFBLENBQUEsSUFBQSxDQUFLLHNCQUF1QixDQUFBLFdBQVcsQ0FBQyxDQUFBO0FBQ2hELEVBQU0sTUFBQSxnQkFBQSxHQUFtQix5QkFBeUIsV0FBVyxDQUFBO0FBQzdELEVBQUksSUFBQSxLQUFBLENBQU0sT0FBUSxDQUFBLGdCQUFnQixDQUFHLEVBQUE7QUFDbkMsSUFBUSxPQUFBLENBQUEsSUFBQSxDQUFLLEdBQUcsZ0JBQWdCLENBQUE7QUFBQSxHQUMzQixNQUFBO0FBQ0wsSUFBQSxPQUFBLENBQVEsS0FBSyxnQkFBZ0IsQ0FBQTtBQUFBO0FBSS9CLEVBQVEsT0FBQSxDQUFBLElBQUEsQ0FBSyxpQkFBa0IsQ0FBQSxXQUFXLENBQUMsQ0FBQTtBQUUzQyxFQUFPLE9BQUEsT0FBQTtBQUNUOzs7OyJ9