23 lines
740 B
TypeScript
23 lines
740 B
TypeScript
export const SUPPORTED_LOCALES = ["en", "es"] as const
|
|
|
|
export type Locale = (typeof SUPPORTED_LOCALES)[number]
|
|
|
|
export const FALLBACK_LOCALE: Locale = "en"
|
|
export const DEFAULT_LOCALE_ENV_VAR = "STOCK_MANAGER_DEFAULT_LOCALE"
|
|
export const LOCALE_COOKIE_NAME = "stock-manager-locale"
|
|
export const LOCALE_COOKIE_MAX_AGE_SECONDS = 60 * 60 * 24 * 365
|
|
|
|
export function isLocale(value: unknown): value is Locale {
|
|
return (
|
|
typeof value === "string" && SUPPORTED_LOCALES.includes(value as Locale)
|
|
)
|
|
}
|
|
|
|
export function resolveDefaultLocale(value: unknown): Locale {
|
|
return isLocale(value) ? value : FALLBACK_LOCALE
|
|
}
|
|
|
|
export function resolveLocale(value: unknown, fallback: Locale): Locale {
|
|
return isLocale(value) ? value : fallback
|
|
}
|