export interface MorseCharacterSet { letters: Record; digits: Record; punctuation: Record; } const LETTERS: Record = { 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 DIGITS: Record = { "0": "-----", "1": ".----", "2": "..---", "3": "...--", "4": "....-", "5": ".....", "6": "-....", "7": "--...", "8": "---..", "9": "----." }; const PUNCTUATION: Record = { ".": ".-.-.-", ",": "--..--", "?": "..--..", "'": ".----.", "!": "-.-.--", "/": "-..-.", "(": "-.--.", ")": "-.--.-", "&": ".-...", ":": "---...", ";": "-.-.-.", "=": "-...-", "+": ".-.-.", "-": "-....-", "_": "..--.-", "\"": ".-..-.", "$": "...-..-", "@": ".--.-." }; export const MORSE_CHARACTERS: MorseCharacterSet = { letters: LETTERS, digits: DIGITS, punctuation: PUNCTUATION }; export const CHAR_TO_MORSE: Record = { ...LETTERS, ...DIGITS, ...PUNCTUATION }; export const MORSE_TO_CHAR: Record = Object.fromEntries( Object.entries(CHAR_TO_MORSE).map(([char, code]) => [code, char]) );