58 lines
1.6 KiB
JavaScript
58 lines
1.6 KiB
JavaScript
(function (root) {
|
||
"use strict";
|
||
|
||
const pairs = [
|
||
["А", "Ⰰ"], ["а", "ⰰ"],
|
||
["Б", "Ⰱ"], ["б", "ⰱ"],
|
||
["В", "Ⰲ"], ["в", "ⰲ"],
|
||
["Г", "Ⰳ"], ["г", "ⰳ"],
|
||
["Д", "Ⰴ"], ["д", "ⰴ"],
|
||
["Е", "Ⰵ"], ["е", "ⰵ"],
|
||
["Ё", "Ⱖ"], ["ё", "ⱖ"],
|
||
["Ж", "Ⰶ"], ["ж", "ⰶ"],
|
||
["З", "Ⰸ"], ["з", "ⰸ"],
|
||
["И", "Ⰹ"], ["и", "ⰹ"],
|
||
["Й", "Ⰻ"], ["й", "ⰻ"],
|
||
["К", "Ⰽ"], ["к", "ⰽ"],
|
||
["Л", "Ⰾ"], ["л", "ⰾ"],
|
||
["М", "Ⰿ"], ["м", "ⰿ"],
|
||
["Н", "Ⱀ"], ["н", "ⱀ"],
|
||
["О", "Ⱁ"], ["о", "ⱁ"],
|
||
["П", "Ⱂ"], ["п", "ⱂ"],
|
||
["Р", "Ⱃ"], ["р", "ⱃ"],
|
||
["С", "Ⱄ"], ["с", "ⱄ"],
|
||
["Т", "Ⱅ"], ["т", "ⱅ"],
|
||
["У", "Ⱆ"], ["у", "ⱆ"],
|
||
["Ф", "Ⱇ"], ["ф", "ⱇ"],
|
||
["Х", "Ⱈ"], ["х", "ⱈ"],
|
||
["Ц", "Ⱌ"], ["ц", "ⱌ"],
|
||
["Ч", "Ⱍ"], ["ч", "ⱍ"],
|
||
["Ш", "Ⱎ"], ["ш", "ⱎ"],
|
||
["Щ", "Ⱋ"], ["щ", "ⱋ"],
|
||
["Ъ", "Ⱏ"], ["ъ", "ⱏ"],
|
||
["Ы", "ⰟⰉ"], ["ы", "ⱏⰹ"],
|
||
["Ь", "Ⱐ"], ["ь", "ⱐ"],
|
||
["Э", "Ⰵ"], ["э", "ⰵ"],
|
||
["Ю", "Ⱓ"], ["ю", "ⱓ"],
|
||
["Я", "Ⱑ"], ["я", "ⱑ"]
|
||
];
|
||
|
||
const characterMap = new Map(pairs);
|
||
const russianPattern = /[А-Яа-яЁё]/g;
|
||
|
||
function transliterate(text) {
|
||
return text.replace(russianPattern, (character) => characterMap.get(character));
|
||
}
|
||
|
||
const api = Object.freeze({
|
||
characterMap,
|
||
transliterate
|
||
});
|
||
|
||
root.Glagolify = api;
|
||
|
||
if (typeof module === "object" && module.exports) {
|
||
module.exports = api;
|
||
}
|
||
})(typeof globalThis === "object" ? globalThis : this);
|