27 lines
751 B
JavaScript
27 lines
751 B
JavaScript
import { defineNuxtPlugin } from "#app";
|
|
import { useRequestEvent, useRuntimeConfig, useState } from "#imports";
|
|
export default defineNuxtPlugin({
|
|
name: "nuxt-site-config:init",
|
|
enforce: "pre",
|
|
async setup(nuxtApp) {
|
|
const state = useState("site-config");
|
|
if (import.meta.server) {
|
|
const context = useRequestEvent()?.context;
|
|
nuxtApp.hooks.hook("app:rendered", () => {
|
|
state.value = context?.siteConfig.get({
|
|
debug: useRuntimeConfig()["nuxt-site-config"].debug,
|
|
resolveRefs: true
|
|
});
|
|
});
|
|
}
|
|
let stack = {};
|
|
if (import.meta.client)
|
|
stack = state.value || window.__NUXT_SITE_CONFIG__;
|
|
return {
|
|
provide: {
|
|
nuxtSiteConfig: stack
|
|
}
|
|
};
|
|
}
|
|
});
|