export type NumberLanguage = "en" | "kh" | "km";

const KHMER_DIGITS = ["០", "១", "២", "៣", "៤", "៥", "៦", "៧", "៨", "៩"];

export function toKhmerDigits(value: string | number): string {
  return String(value).replace(/\d/g, (digit) => KHMER_DIGITS[Number(digit)]);
}

export function formatNumber(
  value?: string | number | null,
  language: NumberLanguage = "en",
): string {
  if (value === null || value === undefined || value === "") {
    return "-";
  }

  if (typeof value === "number" && !Number.isFinite(value)) {
    return "-";
  }

  const formattedValue = String(value);

  if (language === "kh" || language === "km") {
    return toKhmerDigits(formattedValue);
  }

  return formattedValue;
}
