UNPKG

romanize-string

Version:

A fully typed, general-purpose utility for unidirectional string transliteration (non-Latin script => Latin script).

58 lines (57 loc) 2.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.romanizeString = void 0; const arabic_romanization_js_1 = require("./transliterators/arabic-romanization.js"); const korean_romanization_js_1 = require("./transliterators/korean-romanization.js"); const japanese_romanization_js_1 = require("./transliterators/japanese-romanization.js"); const type_guards_js_1 = require("./utils/type-guards.js"); const inidic_romanization_js_1 = require("./transliterators/inidic-romanization.js"); const thai_romanization_js_1 = require("./transliterators/thai-romanization.js"); const cantonese_romanization_js_1 = require("./transliterators/cantonese-romanization.js"); const mandarin_romanization_js_1 = require("./transliterators/mandarin-romanization.js"); const cyrillic_romanization_js_1 = require("./transliterators/cyrillic-romanization.js"); const greek_romanization_js_1 = require("./transliterators/greek-romanization.js"); const romanizeString = async (string, language, omitDiacritics) => { if (!string.trim()) return ""; let transliteratedString; // Kanji, Hiragana, or Katakana if (language === "ja") { transliteratedString = await (0, japanese_romanization_js_1.romanizeJapanese)(string); // Hangul } else if (language === "ko") { transliteratedString = (0, korean_romanization_js_1.romanizeKorean)(string); // Hanzi - Mandarin } else if ((0, type_guards_js_1.isMandarinLanguageCode)(language)) { transliteratedString = (0, mandarin_romanization_js_1.romanizeMandarin)(string, omitDiacritics); // Hanzi - Cantonese } else if (language === "yue") { transliteratedString = (0, cantonese_romanization_js_1.romanizeCantonese)(string); // Devanagari } else if ((0, type_guards_js_1.isIndicLanguageCode)(language)) { transliteratedString = (0, inidic_romanization_js_1.romanizeIndic)(string, language, omitDiacritics); // Cyrillic } else if (language === "th") { transliteratedString = (0, thai_romanization_js_1.romanizeThai)(string); } else if ((0, type_guards_js_1.isCyrillicLanguageCode)(language)) { transliteratedString = (0, cyrillic_romanization_js_1.romanizeCyrillic)(string, language); // Arabic } else if ((0, type_guards_js_1.isArabicLanguageCode)(language)) { transliteratedString = (0, arabic_romanization_js_1.romanizeArabic)(string); } else if (language === "el") { transliteratedString = (0, greek_romanization_js_1.romanizeGreek)(string, omitDiacritics); } else { transliteratedString = string; } return transliteratedString.trim(); }; exports.romanizeString = romanizeString;