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
JavaScript
;
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;