@favware/zalgo
Version:
Invoke and banish the power of the Zalgo Monster
3 lines (2 loc) • 3.1 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).FavwareZalgo={})}(this,(function(e){"use strict";const t={up:["̍","̎","̄","̅","̿","̑","̆","̐","͒","͗","͑","̇","̈","̊","͂","̓","̈́","͊","͋","͌","̃","̂","̌","͐","̀","́","̋","̏","̒","̓","̔","̽","̉","ͣ","ͤ","ͥ","ͦ","ͧ","ͨ","ͩ","ͪ","ͫ","ͬ","ͭ","ͮ","ͯ","̾","͛","͆","̚"],middle:["̕","̛","̀","́","͘","̡","̢","̧","̨","̴","̵","̶","͏","͜","͝","͞","͟","͠","͢","̸","̷","͡","҉"],down:["̖","̗","̘","̙","̜","̝","̞","̟","̠","̤","̥","̦","̩","̪","̫","̬","̭","̮","̯","̰","̱","̲","̳","̹","̺","̻","̼","ͅ","͇","͈","͉","͍","͎","͓","͔","͕","͖","͙","͚","̣"]};t.all=[...t.up,...t.middle,...t.down],t.pattern=RegExp(`(${t.all.join("|")})`,"g");const randomizer=e=>~~(Math.random()*e),zalgo=(e,n={up:!0,middle:!0,down:!0,size:""})=>{try{if(!e)throw new Error("no_input");if("string"!=typeof e)throw new Error("not_a_string");Reflect.has(n,"up")||(n.up=!0),Reflect.has(n,"middle")||(n.middle=!0),Reflect.has(n,"down")||(n.down=!0),Reflect.has(n,"size")||(n.size="");const u=(e=>{const t=/([\uD800-\uDBFF])([\uDC00-\uDFFF])([\uD800-\uDBFF])?([\uDC00-\uDFFF])?|([0-9])?([\0-\u02FF\u0370-\u1AAF\u1B00-\u1DBF\u1E00-\u20CF\u2100-\uD7FF\uE000-\uFE1F\uFE30-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])([\u0300-\u036F\u1AB0-\u1AFF\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F\uFE0F]+)/g,n=e.replace(t,"•").split("");let u,o=0;for(;u=t.exec(e);)u.index-=o,o+=u[0].length-1,n.splice(u.index,1,u[0]);return n})(e),o=u.length;let i,r="";const s=[];n.up&&s.push("up"),n.middle&&s.push("middle"),n.down&&s.push("down");for(let a=0;a<o;a++)if(!t.pattern.test(u[a]))if(u[a].length>1)r+=u[a];else{i={up:0,middle:0,down:0},i="mini"===n.size?{up:randomizer(8),middle:randomizer(2),down:randomizer(8)}:"maxi"===n.size?{up:randomizer(16)+3,middle:randomizer(4)+1,down:randomizer(64)+3}:{up:randomizer(8)+1,middle:randomizer(3),down:randomizer(8)+1},r+=e[a];for(let e=0,n=s.length;e<n;e++){const n=s[e];let u=i[n];const o=t[n],a=o.length-1;for(;u--;)r+=o[randomizer(a)]}}return r}catch(e){if(/(?:no_input)/i.test(e.message))throw SyntaxError("The zalgo function at least requires some text as input!");if(/(?:not_a_string)/i.test(e.message))throw new SyntaxError("The zalgo function expects input of type string as first argument!");throw e}};e.banish=e=>{try{if(!e)throw new Error("no_input");if("string"!=typeof e)throw new Error("not_a_string");return e.replace(t.pattern,"")}catch(e){if(/(?:no_input)/i.test(e.message))throw new SyntaxError("The banish function at least requires some text as input!");if(/(?:not_a_string)/i.test(e.message))throw new SyntaxError("The banish function expects input of type string as first argument!");throw e}},e.chars=t,e.default=zalgo,e.zalgo=zalgo,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=index.umd.js.map