export interface LocaleData {
  locale: string,
  messages: Record<string, string>,
}

let loadedLocale: LocaleData | undefined;

export function setLocale(locale: LocaleData) {
  loadedLocale = locale;
}

export function getLocale(): LocaleData {
  if (!loadedLocale) {
    if (process.env.NODE_ENV === "development") {
      throw new Error("getLocale() called before any locale has been set");
    } else {
      return { locale: "unknown", messages: {} };
    }
  }

  return loadedLocale;
}

export function isLocaleLoaded() {
  return !!loadedLocale;
}
