2025-09-05 14:59:21 +08:00

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
}
};
}
});