UNPKG

vike

Version:

The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.

48 lines (47 loc) 2 kB
"use strict"; 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; } }