UNPKG

fancy-text-converter

Version:

Converts a given text from https://lingojam.com/FancyTextGenerator to it's normal string equivalent

108 lines (104 loc) 7.32 kB
const punycode = require('punycode'); var map = { " ": " ", "&": "⅋", "%": ["⅍", "℀", "℁", "℆", "℅"], "0": ["0", "Ѳ", "ʘ"], "1": ["➀", "❶", "1"], "2": ["2", "❷", "➁"], "3": ["3", "❸", "➂"], "4": ["4", "❹", "➃"], "5": ["❺", "➄", "5"], "6": ["6", "❻", "➅"], "7": ["7", "❼", "➆"], "8": ["8", "➇", "❽"], "9": ["➈", "❾", "9"], "<": ["≼", "≺", "≪", "☾", "≾", "⋜", "⋞", "⋐", "⊂", "⊏", "⊑", "《", "<", "❮", "❰", "⫷"], ">": ["☽","≫","≻","≽","≿","⋝","⋟","⋑","⊃","⊐","⊒","⫸","》",">","❯❱"], "[": ["【","〖","〘","〚","["], "]": ["】","〗","〙","〛","]"], "*": ["✨","✩","✪","✫","✬","✭","✮","✯","✰","✦","✱","✲","✳","✴","✵","✶","✷","֍","֎","✸","✹","✺","✻","✼","✽","✾","✿","❀","❁","❂","❃","❄","★","☆","*"], "(": ["(","(","🐝☝ ( 🏆🍧","(","(","(","(","🌠★ 🎀 ( 🎀 ★🌠","(","(⃣","(⃞","(","(̴̟̫͇̳̬̃̏̓̊͗","(","₍","⁽","(⃝","("], ")": [")","⛵☠ ) ♛☠",")","•?((¯°·._.• 🎀 ) 🎀 •._.·°¯((?•","(",")⃣",")⃞",")̸͇̻̞͕̿̉͑̌̑͐̌͒̔̃͜ͅ","₎","⁾",")⃝"], "a": ["ⓐ", "α", "a", "Δ", "ค", "α", "ά", "𝔞", "𝓪", "𝒶", "𝐚", "𝕒", "ᵃ", "𝙖"], "b": ["ⓑ", "b", "β", "๒", "β", "𝔟", "𝓫", "𝒷", "𝐛", "𝕓", "ᵇ", "𝙗"], "c": ["ⓒ", "¢", "c", "Ć", "ς", "c", "ς", "𝔠", "𝓬", "𝒸", "𝐜", "𝕔", "ᶜ", "𝙘"], "d": ["ⓓ", "∂", "d", "๔", "∂", "đ", "𝔡", "𝓭", "𝒹", "𝐝", "𝕕", "ᵈ", "𝙙"], "e": ["ⓔ", "є", "e", "€", "є", "ε", "έ", "𝔢", "𝒆", "𝑒", "𝓔", "𝐞", "𝕖", "ᵉ", "𝙚"], "f": ["ⓕ", "ƒ", "f", "ℱ", "Ŧ", "ғ", "ғ", "𝔣", "𝒇", "𝒻", "𝐟", "𝕗", "ᶠ", "𝙛"], "g": ["ⓖ", "ق", "g", "g", "ﻮ", "g", "ģ", "𝔤", "𝓰", "𝑔", "𝓖", "𝐠", "𝕘", "ᵍ", "𝙜"], "h": ["ⓗ", "h", "ђ", "ħ", "𝔥", "𝓱", "𝒽", "𝐡", "𝕙", "ʰ", "𝙝"], "i": ["ⓘ", "ι", "i", "Ꭵ", "เ", "ι", "ί", "𝔦", "𝓲", "𝒾", "𝐢", "𝕚", "ᶤ", "𝙞"], "j": ["ⓙ", "נ", "ڶ", "j", "ᒎ", "Ĵ", "ן", "נ", "ј", "Ĵ", "𝔧", "𝓳", "𝒿", "𝐣", "𝕛", "ʲ"], "k": ["ⓚ", "к", "k", "к", "к", "ķ", "Ќ", "𝔨", "𝓴", "𝓀", "𝐤", "𝕂", "𝕜", "ᵏ", "𝙠"], "l": ["ⓛ", "ℓ", "l", "Ł", "l", "ℓ", "𝔩", "𝓵", "𝓁", "𝓛", "𝐥", "𝕝", "ˡ", "𝙡"], "m": ["ⓜ", "м", "m", "๓", "м", "м", "ϻ", "𝔪", "𝓶", "𝓂", "𝐦", "𝕞", "ᵐ", "𝙢"], "n": ["ⓝ", "η", "n", "ภ", "η", "ή", "𝔫", "𝓷", "𝓃", "𝐧", "𝕟", "ᶰ", "𝙣"], "o": ["ㄖ", "σ", "o", "Ø", "๏", "σ", "ό", "Ỗ", "𝔬", "𝓸", "𝑜", "𝐨", "𝕠", "ᵒ", "𝙤"], "p": ["ⓟ", "ρ", "p", "ᑭ", "Ƥ", "ק", "ρ", "ρ", "Ƥ", "𝔭", "𝓹", "𝓅", "𝐩", "𝕡", "ᵖ", "𝙥"], "q": ["ⓠ", "q", "q", "Ɋ", "ợ", "q", "q", "𝔮", "𝓺", "𝓆", "𝐪", "𝕢", "ᵠ"], "r": ["ⓡ", "r", "г", "ŕ", "𝔯", "𝓻", "𝓇", "𝐫", "𝕣", "ʳ", "𝙧"], "s": ["ⓢ", "ѕ", "s", "ร", "s", "ş", "𝔰", "𝓼", "𝓈", "𝐬", "𝕤", "ˢ", "𝙨"], "t": ["ⓣ", "т", "t", "Ŧ", "t", "т", "ţ", "𝔱", "𝓽", "𝓉", "𝐭", "𝕥", "ᵗ", "𝙩"], "u": ["ⓤ", "υ", "u", "Ữ", "ย", "υ", "ù", "𝔲", "𝓾", "𝓊", "𝐮", "𝕦", "ᵘ", "𝙪"], "v": ["ⓥ", "ν", "v", "ש", "v", "ν", "𝔳", "𝓿", "𝓋", "𝐯", "𝕧", "ᵛ", "𝙫"], "w": ["ⓦ", "ω", "w", "ฬ", "ω", "ώ", "𝔴", "𝔀", "𝓌", "𝐰", "𝕨", "ʷ", "𝙬"], "x": ["ⓧ", "x", "Ж", "א", "x", "x", "Ж", "𝔵", "𝔁", "𝓍", "𝐱", "𝕩", "ˣ"], "y": ["ⓨ", "у", "y", "¥", "ץ", "ү", "ч", "Ў", "𝔶", "𝔂", "𝓎", "𝐲", "𝕪", "ʸ", "𝙮"], "z": ["ⓩ", "z", "z", "Ƶ", "z", "z", "ž", "Ż", "𝔷", "𝔃", "𝓏", "𝐳", "𝕫", "ᶻ"], "A": ["Ⓐ", "A", "ᗩ", "卂", "Δ", "Ã", "𝓐", "𝐀", "𝔸", "𝘼"], "B": ["Ⓑ", "в", "B", "乃", "ᗷ", "в", "в", "𝓑", "𝐁", "𝔹", "𝘽"], "C": ["Ⓒ", "匚", "C", "ᑕ", "Č", "℃", "𝓒", "𝐂", "ℂ", "𝘾"], "D": ["Ⓓ", "D", "ᗪ", "Đ", "Ď", "𝓓", "𝐃", "ᗪ", "𝔻", "𝘿"], "E": ["Ⓔ", "乇", "E", "ᗴ", "Ẹ", "𝐄", "𝔼"], "F": ["Ⓕ", "F", "千", "ᖴ", "Ƒ", "𝓕", "𝐅", "𝔽", "𝙁"], "G": ["Ⓖ", "G", "Ǥ", "Ꮆ", "Ğ", "𝐆", "𝔾", "Ꮆ"], "H": ["Ⓗ", "卄", "н", "H", "ᕼ", "Ħ", "н", "Ĥ", "𝓗", "𝐇", "ℍ"], "I": ["Ⓘ", "ι", "I", "丨", "Ɨ", "Į", "𝓘", "𝐈", "𝕀"], "J": ["Ⓙ", "J", "𝓙", "𝐉", "𝕁"], "K": ["Ⓚ", "K", "ᛕ", "𝓚", "𝐊", "Ҝ"], "L": ["Ⓛ", "ㄥ", "L", "ᒪ", "Ļ", "Ĺ", "𝐋", "𝕃"], "M": ["Ⓜ", "M", "ᗰ", "Μ", "𝓜", "𝐌", "𝕄", "爪", "𝙈"], "N": ["Ⓝ", "几", "N", "ᑎ", "Ň", "Ň", "𝓝", "𝐍", "ℕ", "𝙉"], "O": ["Ⓞ", "ⓞ", "O", "ᗝ", "𝓞", "𝐎", "𝕆", "𝙊"], "P": ["Ⓟ", "P", "卩", "𝓟", "𝐏", "ℙ", "𝙋"], "Q": ["Ⓠ", "Q", "Ω", "Ǫ", "𝓠", "𝐐", "ℚ"], "R": ["Ⓡ", "я", "尺", "R", "ᖇ", "Ř", "я", "Ř", "𝓡", "𝐑", "ℝ"], "S": ["Ⓢ", "S", "丂", "ᔕ", "Ş", "Ŝ", "𝓢", "𝐒", "𝕊", "𝙎"], "T": ["Ⓣ", "T", "丅", "Ť", "𝓣", "𝐓", "𝕋"], "U": ["Ⓤ", "U", "ᑌ", "Ǘ", "𝓤", "𝐔", "𝕌"], "V": ["Ⓥ", "V", "ᐯ", "V", "Ѷ", "𝓥", "𝐕", "𝕍"], "W": ["Ⓦ", "W", "ᗯ", "Ŵ", "𝓦", "𝐖", "𝕎", "山"], "X": ["Ⓧ", "χ", "X", "乂", "᙭", "𝓧", "𝐗", "𝕏"], "Y": ["Ⓨ", "ㄚ", "Y", "Ƴ", "𝓨", "𝐘", "𝕐"], "Z": ["Ⓩ", "乙", "Z", "Ž", "𝓩", "𝐙", "ℤ"] }; var normalise = function normalise(characterString) { var normalisedString = ""; //console.log(`Length: ${characterString.length}`); //console.log(`Punycode length: ${punycode.ucs2.decode(characterString).length}`); var punycodeArray = punycode.ucs2.decode(characterString); for (var i = 0; i < punycodeArray.length; i++) { var key = getKeyByValue(map, punycodeArray[i]); if(!key) key = punycodeArray[i]; normalisedString += key; //console.log(`Character: ${punycodeArray[i]}\tKey: ${key}`); } return normalisedString; } var getKeyByValue = function getKeyByValue(object, value) { var foundKey = ""; Object.keys(object).find(key => { for (i in object[key]) { if (punycode.ucs2.decode(object[key][i]).toString().normalize() === value.toString().normalize()) { //console.log(`key: ${key}\tPunycode i: ${punycode.ucs2.decode(object[key][i])}\tValue: ${value} isEqual?: ${punycode.ucs2.decode(object[key][i]).toString().normalize() === value.toString().normalize()}`); foundKey = key; } } }); return foundKey; } module.exports = { normalise, getKeyByValue };