vike
Version:
The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.
52 lines (51 loc) • 2.11 kB
JavaScript
import '../assertEnvVite.js';
export { pluginSetGlobalContext };
import { setGlobalContext_viteDevServer, setGlobalContext_viteConfig, setGlobalContext_isProductionAccordingToVite, } from '../../../server/runtime/globalContext.js';
import { markSetup_isViteDev, markSetup_viteDevServer, markSetup_vitePreviewServer, } from '../../../utils/assertSetup.js';
import { isDevCheck } from '../../../utils/isDev.js';
import { reloadVikeConfig } from '../shared/resolveVikeConfigInternal.js';
import { getViteConfigRuntime } from '../shared/getViteConfigRuntime.js';
function pluginSetGlobalContext() {
let isServerReload = false;
return [
{
name: 'vike:pluginSetGlobalContext:pre',
enforce: 'pre',
// This hook is called not only at server start but also at server restart (a new `viteDevServer` instance is created)
configureServer: {
order: 'pre',
handler(viteDevServer) {
if (isServerReload)
reloadVikeConfig();
isServerReload = true;
setGlobalContext_viteDevServer(viteDevServer);
markSetup_viteDevServer();
},
},
configurePreviewServer: {
handler() {
markSetup_vitePreviewServer();
},
},
config: {
order: 'pre',
handler(_, env) {
const isViteDev = isDevCheck(env);
setGlobalContext_isProductionAccordingToVite(!isViteDev);
markSetup_isViteDev(isViteDev);
},
},
},
{
name: 'vike:pluginSetGlobalContext:post',
enforce: 'post',
configResolved: {
order: 'post',
async handler(config) {
const viteConfigRuntime = getViteConfigRuntime(config);
setGlobalContext_viteConfig(config, viteConfigRuntime);
},
},
},
];
}