UNPKG

morsegen

Version:
424 lines (420 loc) 6.81 kB
const mapping = { latin: { A: "01", B: "1000", C: "1010", D: "100", E: "0", F: "0010", G: "110", H: "0000", I: "00", J: "0111", K: "101", L: "0100", M: "11", N: "10", O: "111", P: "0110", Q: "1101", R: "010", S: "000", T: "1", U: "001", V: "0001", W: "011", X: "1001", Y: "1011", Z: "1100", }, arabicnumerals: { 0: "11111", 1: "01111", 2: "00111", 3: "00011", 4: "00001", 5: "00000", 6: "10000", 7: "11000", 8: "11100", 9: "11110", }, punctuation: { ".": "010101", ",": "110011", "?": "001100", "'": "011110", "!": "101011", "/": "10010", "(": "10110", ")": "101101", "&": "01000", ":": "111000", ";": "101010", "=": "10001", "+": "01010", "-": "100001", _: "001101", '"': "010010", $: "0001001", "@": "011010", "¿": "00101", "¡": "110001", }, latinextended: { Ã: "01101", Á: "01101", Å: "01101", À: "01101", Â: "01101", Ä: "0101", Ą: "0101", Æ: "0101", Ç: "10100", Ć: "10100", Ĉ: "10100", Č: "110", Ð: "00110", È: "01001", Ę: "00100", Ë: "00100", É: "00100", Ê: "10010", Ğ: "11010", Ĝ: "11010", Ĥ: "1111", İ: "01001", Ï: "10011", Ì: "01110", Ĵ: "01110", Ł: "01001", Ń: "11011", Ñ: "11011", Ó: "1110", Ò: "1110", Ö: "1110", Ô: "1110", Ø: "1110", Ś: "0001000", Ş: "01100", Ș: "1111", Š: "1111", Ŝ: "00010", ß: "000000", Þ: "01100", Ü: "0011", Ù: "0011", Ŭ: "0011", Ž: "11001", Ź: "110010", Ż: "11001", }, cyrillic: { А: "01", Б: "1000", В: "011", Г: "110", Д: "100", Е: "0", Ж: "0001", З: "1100", И: "00", Й: "0111", К: "101", Л: "0100", М: "11", Н: "10", О: "111", П: "0110", Р: "010", С: "000", Т: "1", У: "001", Ф: "0010", Х: "0000", Ц: "1010", Ч: "1110", Ш: "1111", Щ: "1101", Ъ: "11011", Ы: "1011", Ь: "1001", Э: "00100", Ю: "0011", Я: "0101", Ї: "01110", Є: "00100", І: "00", Ґ: "110", }, greek: { Α: "01", Β: "1000", Γ: "110", Δ: "100", Ε: "0", Ζ: "1100", Η: "0000", Θ: "1010", Ι: "00", Κ: "101", Λ: "0100", Μ: "11", Ν: "10", Ξ: "1001", Ο: "111", Π: "0110", Ρ: "010", Σ: "000", Τ: "1", Υ: "1011", Φ: "0010", Χ: "1111", Ψ: "1101", Ω: "011", }, hebrew: { א: "01", ב: "1000", ג: "110", ד: "100", ה: "111", ו: "0", ז: "1100", ח: "0000", ט: "001", י: "00", כ: "101", ל: "0100", מ: "11", נ: "10", ס: "1010", ע: "0111", פ: "0110", צ: "011", ק: "1101", ר: "010", ש: "000", ת: "1", }, arabic: { ا: "01", ب: "1000", ت: "1", ث: "1010", ج: "0111", ح: "0000", خ: "111", د: "100", ذ: "1100", ر: "010", ز: "1110", س: "000", ش: "1111", ص: "1001", ض: "0001", ط: "001", ظ: "1011", ع: "0101", غ: "110", ف: "0010", ق: "1101", ك: "101", ل: "0100", م: "11", ن: "10", ه: "00100", و: "011", ي: "00", ﺀ: "0", }, persian: { ا: "01", ب: "1000", پ: "0110", ت: "1", ث: "1010", ج: "0111", چ: "1110", ح: "0000", خ: "1001", د: "100", ذ: "0001", ر: "010", ز: "1100", ژ: "110", س: "000", ش: "1111", ص: "0101", ض: "00100", ط: "001", ظ: "1011", ع: "111", غ: "0011", ف: "0010", ق: "111000", ک: "101", گ: "1101", ل: "0100", م: "11", ن: "10", و: "011", ه: "0", ی: "00", }, japanese: { ア: "11011", カ: "0100", サ: "10101", タ: "10", ナ: "010", ハ: "1000", マ: "1001", ヤ: "011", ラ: "000", ワ: "101", イ: "01", キ: "10100", シ: "11010", チ: "0010", ニ: "1010", ヒ: "11001", ミ: "00101", リ: "110", ヰ: "01001", ウ: "001", ク: "0001", ス: "11101", ツ: "0110", ヌ: "0000", フ: "1100", ム: "1", ユ: "10011", ル: "10110", ン: "01010", エ: "10111", ケ: "1011", セ: "01110", テ: "01011", ネ: "1101", ヘ: "0", メ: "10001", レ: "111", ヱ: "01100", オ: "01000", コ: "1111", ソ: "1110", ト: "00100", ノ: "0011", ホ: "100", モ: "10010", ヨ: "11", ロ: "0101", ヲ: "0111", "゛": "00", "゜": "00110", "。": "010100", ー: "01101", "、": "010101", "(": "101101", ")": "010010", }, korean: { ㄱ: "0100", ㄴ: "0010", ㄷ: "1000", ㄹ: "0001", ㅁ: "11", ㅂ: "011", ㅅ: "110", ㅇ: "101", ㅈ: "0110", ㅊ: "1010", ㅋ: "1001", ㅌ: "1100", ㅍ: "111", ㅎ: "0111", ㅏ: "0", ㅑ: "00", ㅓ: "1", ㅕ: "000", ㅗ: "01", ㅛ: "10", ㅜ: "0000", ㅠ: "010", ㅡ: "100", ㅣ: "001", ㅐ: "1101", ㅔ: "1011", }, thai: { ก: "110", ข: "1010", ค: "101", ง: "10110", จ: "10010", ฉ: "1111", ช: "1001", ซ: "1100", ญ: "0111", ด: "100", ต: "1", ถ: "10100", ท: "10011", น: "10", บ: "1000", ป: "0110", ผ: "1101", ฝ: "10101", พ: "01100", ฟ: "0010", ม: "11", ย: "1011", ร: "010", ล: "0100", ว: "011", ส: "000", ห: "0000", อ: "10001", ฮ: "11011", ฤ: "01011", ะ: "01000", า: "01", "ิ": "00100", "ี": "00", "ึ": "00110", "ื": "0011", "ุ": "00101", "ู": "1110", เ: "0", แ: "0101", ไ: "01001", โ: "111", ำ: "00010", "่": "001", "้": "0001", "๊": "11000", "๋": "01010", "ั": "01101", "็": "11100", "์": "11001", ๆ: "10111", ฯ: "11010", }, }; const reverse = (obj, dot = "0", dash = "1") => Object.fromEntries( Object.entries(obj).map(([k, v]) => [ k, Object.fromEntries( Object.entries(v).map(([k2, v2]) => [ v2.replace(/0/g, dot).replace(/1/g, dash), k2, ]) ), ]) ); const reverseMapping = (dot = "0", dash = "1") => { return reverse(mapping, dot, dash); }; export { mapping, reverseMapping };