import { COOKIE_KEY_TEMPLATES, DEFAULT_LOCALE_FALLBACK, SUPPORTED_LOCALES } from '~/constants'; import { createProjectKey } from "~/utils/transliterator"; export default defineNuxtPlugin(() => { const runtimeConfig = useRuntimeConfig(); const APP_NAME = runtimeConfig.public.schonProjectName as string; const APP_NAME_KEY = createProjectKey(APP_NAME); const envLocale = runtimeConfig.public.schonLanguageCode as string; const isValid = SUPPORTED_LOCALES.some(locale => locale.code === envLocale); const DEFAULT_LOCALE = isValid ? envLocale : DEFAULT_LOCALE_FALLBACK; return { provide: { appHelpers: { APP_DOMAIN: runtimeConfig.public.schonBaseDomain, APP_NAME, APP_NAME_KEY, DEFAULT_LOCALE, COOKIES_LOCALE_KEY: COOKIE_KEY_TEMPLATES.LOCALE(APP_NAME_KEY), COOKIES_REFRESH_TOKEN_KEY: COOKIE_KEY_TEMPLATES.REFRESH_TOKEN(APP_NAME_KEY), COOKIES_ACCESS_TOKEN_KEY: COOKIE_KEY_TEMPLATES.ACCESS_TOKEN(APP_NAME_KEY), COOKIES_WISHLIST_KEY: COOKIE_KEY_TEMPLATES.WISHLIST_TOKEN(APP_NAME_KEY), COOKIES_CART_KEY: COOKIE_KEY_TEMPLATES.CART_TOKEN(APP_NAME_KEY), COOKIES_PRODUCT_VIEW_KEY: COOKIE_KEY_TEMPLATES.PRODUCT_VIEW(APP_NAME_KEY), COOKIES_THEME_KEY: COOKIE_KEY_TEMPLATES.THEME(APP_NAME_KEY), }, }, }; });