vike
Version:
The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.
48 lines (47 loc) • 1.93 kB
JavaScript
export { pluginSetGlobalContext };
import { setGlobalContext_viteDevServer, setGlobalContext_viteConfig, setGlobalContext_isProduction, } from '../../runtime/globalContext.js';
import { isDevCheck, markSetup_isViteDev, markSetup_viteDevServer, markSetup_vitePreviewServer } from '../utils.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() {
markSetup_vitePreviewServer();
},
config: {
order: 'pre',
handler(_, env) {
const isViteDev = isDevCheck(env);
setGlobalContext_isProduction(!isViteDev);
markSetup_isViteDev(isViteDev);
},
},
},
{
name: 'vike:pluginSetGlobalContext:post',
enforce: 'post',
configResolved: {
order: 'post',
async handler(config) {
const viteConfigRuntime = getViteConfigRuntime(config);
setGlobalContext_viteConfig(config, viteConfigRuntime);
},
},
},
];
}