-
Notifications
You must be signed in to change notification settings - Fork 2
/
dictionary.js
119 lines (112 loc) · 2.28 KB
/
dictionary.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
const letters = {
a: '.-',
b: '-...',
c: '-.-.',
d: '-..',
e: '.',
f: '..-.',
g: '--.',
h: '....',
i: '..',
j: '.---',
k: '-.-',
l: '.-..',
m: '--',
n: '-.',
o: '---',
p: '.--.',
q: '--.-',
r: '.-.',
s: '...',
t: '-',
u: '..-',
v: '...-',
w: '.--',
x: '-..-',
y: '-.--',
z: '--..',
}
const numbers = {
0: '-----',
1: '.----',
2: '..---',
3: '...--',
4: '....-',
5: '.....',
6: '-....',
7: '--...',
8: '---..',
9: '----.',
}
const nonEnglish = {
á: '.--.-',
à: '·−−·−', // shared by à, å
ä: '·−·−', // shared by ä, æ, ą
å: '·−−·−', // shared by à, å
ą: '·−·−', // shared by ä, æ, ą
æ: '·−·−', // shared by ä, æ, ą
ć: '−·−··', // shared by ć, ĉ, ç
ĉ: '−·−··', // shared by ć, ĉ, ç
ç: '−·−··', // shared by ć, ĉ, ç
đ: '··−··', // shared by đ, é, ę
ð: '··−−·',
é: '··−··', // shared by đ, é, ę
è: '·−··−', // shared by è, ł
ę: '··−··', // shared by đ, é, ę
ĝ: '−−·−·',
ĥ: '−−−−', // shared by ĥ, š
ĵ: '·−−−·',
ł: '·−··−', // shared by è, ł
ń: '−−·−−', // shared by ń, ñ
ñ: '−−·−−', // shared by ń, ñ
ó: '−−−·', // shared by ó, ö, ø
ö: '−−−·', // shared by ó, ö, ø
ø: '−−−·', // shared by ó, ö, ø
ś: '···−···',
ŝ: '···−·',
š: '−−−−', // shared by ĥ, š
þ: '·−−··',
ü: '··−−', // shared by ü, ŭ
ŭ: '··−−', // shared by ü, ŭ
ź: '−−··−·',
ż: '−−··−',
}
const punctuation = {
'&': '.-...',
"'": '.----.',
'@': '.--.-.',
$: '···−··−',
')': '-.--.-',
'(': '-.--.',
':': '---...',
',': '--..--',
';': '−·−·−·',
'=': '-...-',
'!': '-.-.--',
'.': '.-.-.-',
'-': '-....-',
_: '··−−·−',
'+': '.-.-.',
'"': '.-..-.',
'?': '..--..',
'/': '-..-.',
}
const extra = {
' ': '/',
'\n': '.-.-',
}
const toMorse = {
...letters,
...numbers,
...nonEnglish,
...punctuation,
...extra,
}
const fromMorse = Object.keys(toMorse).reduce(
(obj, char) => ({ ...obj, [toMorse[char]]: char }),
{}
)
module.exports = {
toMorse,
fromMorse,
}