UNPKG

gibberlink

Version:

Use the Ai's Own language, gibberlink!

36 lines (29 loc) 1.27 kB
module.exports = { gibberlinkEncode(text) { const vowelMap = { a: "e", e: "i", i: "o", o: "u", u: "a" }; let words = text.split(" "); return words.map((word, index) => { let encoded = ""; for (let char of word) { if (/[bcdfghjklmnpqrstvwxyz]/i.test(char)) { encoded += char + "ib"; } else if (vowelMap[char.toLowerCase()]) { encoded += vowelMap[char.toLowerCase()]; } else { encoded += char; } } return index % 3 === 2 ? encoded.split("").reverse().join("") : encoded; }).join(" "); }, gibberlinkDecode(text) { let words = text.split(" "); return words.map((word, index) => { let decoded = index % 3 === 2 ? word.split("").reverse().join("") : word; decoded = decoded.replace(/([bcdfghjklmnpqrstvwxyz])ib/gi, "$1"); const reverseVowelMap = { e: "a", i: "e", o: "i", u: "o", a: "u" }; decoded = decoded.replace(/[aeiou]/g, match => reverseVowelMap[match]); return decoded; }).join(" "); } }