nuxt-site-config
Version:
Shared site configuration for Nuxt 3 modules.
26 lines (25 loc) • 1.11 kB
JavaScript
import { useNuxtApp, useRequestEvent, useRuntimeConfig } from "#app";
import { defineNuxtPlugin } from "nuxt/app";
export default defineNuxtPlugin({
name: "nuxt-site-config:i18n",
// @ts-expect-error untyped
dependsOn: ["i18n-plugin-loader"],
setup(nuxtApp) {
const { $getLocale, $getLocales, $ts } = nuxtApp;
const runtimeConfig = useRuntimeConfig();
const locale = $getLocale();
const locales = $getLocales();
const defaultLocale = runtimeConfig.public.i18nConfig?.defaultLocale;
const localeDefinition = locales.find((l) => l.code === locale) || locales.find((l) => l.code === defaultLocale);
const stack = import.meta.server ? useRequestEvent()?.context.siteConfig : useNuxtApp().$nuxtSiteConfig;
stack.push({
_priority: import.meta.server ? -2 : -1,
_context: "nuxt-i18n-micro",
currentLocale: localeDefinition.language || localeDefinition.iso || locale,
// @ts-expect-error untyped
description: $ts("nuxtSiteConfig.description", {}, ""),
// @ts-expect-error untyped
name: $ts("nuxtSiteConfig.name", {}, "")
});
}
});