vike
Version:
The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.
48 lines (47 loc) • 2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isViteServerBuild = isViteServerBuild;
exports.isViteClientBuild = isViteClientBuild;
exports.isViteServerBuild_options = isViteServerBuild_options;
exports.isViteServerBuild_safe = isViteServerBuild_safe;
exports.isViteServerBuild_onlySsrEnv = isViteServerBuild_onlySsrEnv;
const assert_js_1 = require("../../../utils/assert.js");
function isViteServerBuild(configGlobal, viteEnv) {
const configEnv = viteEnv?.config ?? configGlobal;
return !!configEnv?.build?.ssr;
}
// Only `ssr` env: for example don't include `vercel_edge` nor `vercel_node`.
function isViteServerBuild_onlySsrEnv(configGlobal, viteEnv) {
return viteEnv ? viteEnv.name === 'ssr' : isViteServerBuild(configGlobal);
}
function isViteClientBuild(configGlobal, viteEnv) {
const yes = !isViteServerBuild(configGlobal, viteEnv);
const isVite5 = viteEnv === undefined;
if (!isVite5) {
const yes2 = viteEnv.name === 'client';
(0, assert_js_1.assert)(yes === yes2);
}
return yes;
}
function isViteServerBuild_options(options) {
return !!options?.ssr;
}
// Vite is quite messy about setting `ssr: boolean`, thus we use an extra safe implementation for security purposes.
// It's used for .client.js and .server.js guarantee thus we use aggressive assert() calls for added safety.
function isViteServerBuild_safe(config, options) {
if (config.command === 'build') {
(0, assert_js_1.assert)(typeof config.build.ssr === 'boolean');
const val = config.build.ssr;
if (options?.ssr !== undefined)
(0, assert_js_1.assert)(val === options.ssr);
return val;
}
else {
(0, assert_js_1.assert)(typeof options?.ssr === 'boolean');
const val = options.ssr;
/* This assert() fails (which is very unexpected).
if (typeof config.build.ssr === 'boolean') assert(val === config.build.ssr)
//*/
return val;
}
}