const char_roman_to_thai = [
  { id: "khe", value: "เข" },
  { id: "ghe", value: "เฃ" },
  { id: "che", value: "เฉ" },
  { id: "jhe", value: "เณ" },
  { id: "ṭhe", value: "เฐ" },
  { id: "ḍhe", value: "เฒ" },
  { id: "the", value: "เถ" },
  { id: "dhe", value: "เธ" },
  { id: "phe", value: "เผ" },
  { id: "bhe", value: "เภ" },
  { id: "kho", value: "โข" },
  { id: "gho", value: "โฃ" },
  { id: "cho", value: "โฉ" },
  { id: "jho", value: "โณ" },
  { id: "ṭho", value: "โฐ" },
  { id: "ḍho", value: "โฒ" },
  { id: "tho", value: "โถ" },
  { id: "dho", value: "โธ" },
  { id: "pho", value: "โผ" },
  { id: "bho", value: "โภ" },
  { id: "ke", value: "เก" },
  { id: "ge", value: "เค" },
  { id: "ce", value: "เจ" },
  { id: "je", value: "เช" },
  { id: "ñe", value: "เญ" },
  { id: "ḷe", value: "เฬ" },
  { id: "ṭe", value: "เฏ" },
  { id: "ḍe", value: "เฑ" },
  { id: "ṇe", value: "เฌ" },
  { id: "te", value: "เต" },
  { id: "de", value: "เท" },
  { id: "ne", value: "เน" },
  { id: "pe", value: "เป" },
  { id: "be", value: "เพ" },
  { id: "me", value: "เม" },
  { id: "le", value: "เล" },
  { id: "se", value: "เส" },
  { id: "ṅe", value: "เง" },
  { id: "he", value: "เห" },
  { id: "ye", value: "เย" },
  { id: "re", value: "เร" },
  { id: "ve", value: "เว" },
  { id: "ko", value: "โก" },
  { id: "go", value: "โค" },
  { id: "co", value: "โจ" },
  { id: "jo", value: "โช" },
  { id: "ño", value: "โญ" },
  { id: "ḷo", value: "โฬ" },
  { id: "ṭo", value: "โฏ" },
  { id: "ḍo", value: "โฑ" },
  { id: "ṇo", value: "โฌ" },
  { id: "to", value: "โต" },
  { id: "do", value: "โท" },
  { id: "no", value: "โน" },
  { id: "po", value: "โป" },
  { id: "bo", value: "โพ" },
  { id: "mo", value: "โม" },
  { id: "lo", value: "โล" },
  { id: "so", value: "โส" },
  { id: "ṅo", value: "โง" },
  { id: "ho", value: "โห" },
  { id: "yo", value: "โย" },
  { id: "ro", value: "โร" },
  { id: "vo", value: "โว" },
  { id: "kh", value: "ขฺ" },
  { id: "gh", value: "ฃฺ" },
  { id: "ch", value: "ฉฺ" },
  { id: "jh", value: "ณฺ" },
  { id: "ṭh", value: "ฐฺ" },
  { id: "ḍh", value: "ฒฺ" },
  { id: "th", value: "ถฺ" },
  { id: "dh", value: "ธฺ" },
  { id: "ph", value: "ผฺ" },
  { id: "bh", value: "ภฺ" },
  { id: "k", value: "กฺ" },
  { id: "g", value: "คฺ" },
  { id: "c", value: "จฺ" },
  { id: "j", value: "ชฺ" },
  { id: "ñ", value: "ญฺ" },
  { id: "ḷ", value: "ฬฺ" },
  { id: "ṭ", value: "ฏฺ" },
  { id: "ḍ", value: "ฑฺ" },
  { id: "ṇ", value: "ฌฺ" },
  { id: "t", value: "ตฺ" },
  { id: "d", value: "ทฺ" },
  { id: "n", value: "นฺ" },
  { id: "p", value: "ปฺ" },
  { id: "b", value: "พฺ" },
  { id: "m", value: "มฺ" },
  { id: "l", value: "ลฺ" },
  { id: "s", value: "สฺ" },
  { id: "ṅ", value: "งฺ" },
  { id: "h", value: "หฺ" },
  { id: "y", value: "ยฺ" },
  { id: "r", value: "รฺ" },
  { id: "v", value: "วฺ" },
  { id: "ฺaṃ", value: "ํ" },
  { id: "ฺiṃ", value: "ิํ" },
  { id: "ฺuṃ", value: "ุํ" },
  { id: "ฺā", value: "า" },
  { id: "ฺi", value: "ิ" },
  { id: "ฺī", value: "ี" },
  { id: "ฺu", value: "ุ" },
  { id: "ฺū", value: "ู" },
  { id: "aṃ", value: "อํ" },
  { id: "iṃ", value: "อิํ" },
  { id: "uṃ", value: "อุํ" },
  { id: "a", value: "อ" },
  { id: "ā", value: "อา" },
  { id: "i", value: "อิ" },
  { id: "ī", value: "อี" },
  { id: "u", value: "อุ" },
  { id: "ū", value: "อู" },
  { id: "e", value: "เอ" },
  { id: "o", value: "โอ" },
  { id: "ฺอ", value: "" },
];

export const roman_to_thai = (
  input: string | undefined
): string | undefined => {
  if (typeof input === "undefined") {
    return input;
  }
  let txt = input.toLowerCase();

  try {
    for (const iterator of char_roman_to_thai) {
      txt = txt.replaceAll(iterator.id, iterator.value);
    }
  } catch (err) {
    //error
    console.error(err);
  }
  return txt;
};
