vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
39 lines (36 loc) • 4.73 kB
JavaScript
/**
* vite-plugin-react-server
* Copyright (c) Nico Brinkkemper
* MIT License
*/
import { createEnvPlugin } from './createEnvPlugin.js';
const envPlugin = createEnvPlugin();
function getEnvironmentName(plugin) {
if (plugin?.environment?.name) return plugin.environment.name;
if (plugin?.config && plugin.config.environment?.name) {
return plugin.config.environment.name;
}
const traditionalModeConfig = globalThis.__vitePluginReactServerTraditionalModeConfig;
if (traditionalModeConfig?.isTraditionalMode) {
return traditionalModeConfig.environmentName;
}
return void 0;
}
function validateEnvironmentName(environmentName, allowedEnvironments) {
return allowedEnvironments.includes(environmentName);
}
function ensureConditionalConfigResolution(environmentName) {
const appModeConfig = globalThis.__vitePluginReactServerAppModeConfig;
if (appModeConfig && appModeConfig.isAppMode) {
const condition = environmentName === "server" ? "react-server" : "react-client";
if (!appModeConfig.resolvedInConditions.has(condition)) {
appModeConfig.resolvedInConditions.add(condition);
return true;
} else {
return false;
}
}
return false;
}
export { ensureConditionalConfigResolution, envPlugin, getEnvironmentName, validateEnvironmentName };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLnNlcnZlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGx1Z2luL2Vudi9wbHVnaW4uc2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUVudlBsdWdpbiB9IGZyb20gXCIuL2NyZWF0ZUVudlBsdWdpbi5qc1wiO1xuZXhwb3J0IGNvbnN0IGVudlBsdWdpbiA9IGNyZWF0ZUVudlBsdWdpbihcInJlYWN0LXNlcnZlclwiKTtcblxuXG5cblxuLy8gU2hhcmVkIHV0aWxpdHkgZnVuY3Rpb25zXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW52aXJvbm1lbnROYW1lKHBsdWdpbjogYW55KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHBsdWdpbj8uZW52aXJvbm1lbnQ/Lm5hbWUpIHJldHVybiBwbHVnaW4uZW52aXJvbm1lbnQubmFtZTtcbiAgaWYgKHBsdWdpbj8uY29uZmlnICYmIChwbHVnaW4uY29uZmlnIGFzIGFueSkuZW52aXJvbm1lbnQ/Lm5hbWUpIHtcbiAgICByZXR1cm4gKHBsdWdpbi5jb25maWcgYXMgYW55KS5lbnZpcm9ubWVudC5uYW1lO1xuICB9XG4gIGNvbnN0IHRyYWRpdGlvbmFsTW9kZUNvbmZpZyA9IChnbG9iYWxUaGlzIGFzIGFueSlcbiAgICAuX192aXRlUGx1Z2luUmVhY3RTZXJ2ZXJUcmFkaXRpb25hbE1vZGVDb25maWc7XG4gIGlmICh0cmFkaXRpb25hbE1vZGVDb25maWc/LmlzVHJhZGl0aW9uYWxNb2RlKSB7XG4gICAgcmV0dXJuIHRyYWRpdGlvbmFsTW9kZUNvbmZpZy5lbnZpcm9ubWVudE5hbWUgYXMgc3RyaW5nO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUVudmlyb25tZW50TmFtZShcbiAgZW52aXJvbm1lbnROYW1lOiBzdHJpbmcsXG4gIGFsbG93ZWRFbnZpcm9ubWVudHM6IHN0cmluZ1tdXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIGFsbG93ZWRFbnZpcm9ubWVudHMuaW5jbHVkZXMoZW52aXJvbm1lbnROYW1lKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZUNvbmRpdGlvbmFsQ29uZmlnUmVzb2x1dGlvbihlbnZpcm9ubWVudE5hbWU6IHN0cmluZykge1xuICBjb25zdCBhcHBNb2RlQ29uZmlnID0gKGdsb2JhbFRoaXMgYXMgYW55KVxuICAgIC5fX3ZpdGVQbHVnaW5SZWFjdFNlcnZlckFwcE1vZGVDb25maWc7XG5cbiAgaWYgKGFwcE1vZGVDb25maWcgJiYgYXBwTW9kZUNvbmZpZy5pc0FwcE1vZGUpIHtcbiAgICAvLyBJbiAtLWFwcCBtb2RlLCBlbnN1cmUgd2UncmUgcmVzb2x2aW5nIGluIHRoZSBjb3JyZWN0IGNvbmRpdGlvblxuICAgIGNvbnN0IGNvbmRpdGlvbiA9XG4gICAgICBlbnZpcm9ubWVudE5hbWUgPT09IFwic2VydmVyXCIgPyBcInJlYWN0LXNlcnZlclwiIDogXCJyZWFjdC1jbGllbnRcIjtcblxuICAgIGlmICghYXBwTW9kZUNvbmZpZy5yZXNvbHZlZEluQ29uZGl0aW9ucy5oYXMoY29uZGl0aW9uKSkge1xuICAgICAgYXBwTW9kZUNvbmZpZy5yZXNvbHZlZEluQ29uZGl0aW9ucy5hZGQoY29uZGl0aW9uKTtcblxuICAgICAgLy8gVGhpcyBjb3VsZCB0cmlnZ2VyIGFkZGl0aW9uYWwgY29uZmlnIHJlc29sdXRpb24gaWYgbmVlZGVkXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ2EsTUFBQSxTQUFBLEdBQVksZ0JBQThCO0FBTWhELFNBQVMsbUJBQW1CLE1BQWlDLEVBQUE7QUFDbEUsRUFBQSxJQUFJLE1BQVEsRUFBQSxXQUFBLEVBQWEsSUFBTSxFQUFBLE9BQU8sT0FBTyxXQUFZLENBQUEsSUFBQTtBQUN6RCxFQUFBLElBQUksTUFBUSxFQUFBLE1BQUEsSUFBVyxNQUFPLENBQUEsTUFBQSxDQUFlLGFBQWEsSUFBTSxFQUFBO0FBQzlELElBQVEsT0FBQSxNQUFBLENBQU8sT0FBZSxXQUFZLENBQUEsSUFBQTtBQUFBO0FBRTVDLEVBQUEsTUFBTSx3QkFBeUIsVUFDNUIsQ0FBQSw0Q0FBQTtBQUNILEVBQUEsSUFBSSx1QkFBdUIsaUJBQW1CLEVBQUE7QUFDNUMsSUFBQSxPQUFPLHFCQUFzQixDQUFBLGVBQUE7QUFBQTtBQUUvQixFQUFPLE9BQUEsTUFBQTtBQUNUO0FBRU8sU0FBUyx1QkFBQSxDQUNkLGlCQUNBLG1CQUNTLEVBQUE7QUFDVCxFQUFPLE9BQUEsbUJBQUEsQ0FBb0IsU0FBUyxlQUFlLENBQUE7QUFDckQ7QUFFTyxTQUFTLGtDQUFrQyxlQUF5QixFQUFBO0FBQ3pFLEVBQUEsTUFBTSxnQkFBaUIsVUFDcEIsQ0FBQSxvQ0FBQTtBQUVILEVBQUksSUFBQSxhQUFBLElBQWlCLGNBQWMsU0FBVyxFQUFBO0FBRTVDLElBQU0sTUFBQSxTQUFBLEdBQ0osZUFBb0IsS0FBQSxRQUFBLEdBQVcsY0FBaUIsR0FBQSxjQUFBO0FBRWxELElBQUEsSUFBSSxDQUFDLGFBQUEsQ0FBYyxvQkFBcUIsQ0FBQSxHQUFBLENBQUksU0FBUyxDQUFHLEVBQUE7QUFDdEQsTUFBYyxhQUFBLENBQUEsb0JBQUEsQ0FBcUIsSUFBSSxTQUFTLENBQUE7QUFHaEQsTUFBTyxPQUFBLElBQUE7QUFBQSxLQUNGLE1BQUE7QUFDTCxNQUFPLE9BQUEsS0FBQTtBQUFBO0FBQ1Q7QUFHRixFQUFPLE9BQUEsS0FBQTtBQUNUOzs7OyJ9