god-bless-your-code
Version:
Bless your code with ASCII gods, monsters, and mystical powers — your last line of defense against bugs and angry PMs.
113 lines (110 loc) • 12.7 kB
JavaScript
/*
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMN00KKKKXXXNNNNNNNNNNNNNNNNNNNNNNNWWNWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMWWWWNNNNNXXXXNMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMM0oooooodddxxkkkkkkkkkkkkkkkkkkkkkkkkkkkkkOOOOOOOOOOOOOOOO0000000000000KKKKK0000000000000000000OOOOOkkkxxdddooo0WMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMM0oooollooddddddxxxxxxxxxdxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxdddddoooollOWMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMKxddooooodddxxxxxxxxkxxxxxkxxxkkxxxkkxxkxxxxkxxxxkkxxkkxxkkkkxxxkxxkkkkkkkkkkkkkkkkkkkkkkxxxxxxxxxxxdddddodollOWMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMNkddxddxxkkkkkkkkkOOOOOkkkOkkOOOkkOOOkkOOkkkOOkkkOOOkOOOkOOOOOkkOOOOOOOOOOOOOOOOOOOOOOOOkkkkkkkkkkkkkkxxxxdoodKWMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMXxoddxxkkkOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOkkkkkkkkkkkkkkkkkOOOOOkkkOOOOkkOOOkkxxddolldKWMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMNOddxxxxkkkkxdolclllodkOOOOOOOOOOOOkOOOOOOkkOkxkOOOOOOOOOOOOOOkkkxxxxkkkkkOOOkOOOkOOkOkkOOOkxddddddxdddookNMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMWXOxxkkkkdc;,,,,,,,,,:oxxkOkxl:::ldxc;clodxo,,cccclxkkkOOOOOOOkkxxxxxkkkOOO0K0OkOKOxOOkkkkkxc,:lc;lxxdoOWMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMXkdkkOxlcooo:,,:lool:cxOd,'';::c,.'c:,,::.'c:;,;:okkkkkOOOOOkkkxxkkkkOOOO0K0OkOK0OkkOkkxkd'.::;,:odlkNMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMKoldkOddO00Oxc;dO0Oko;oO:.,,;:cl;..;''.;lc,.;cc::dkOOkkkOOOOOkkkkOOOOOOOOOOOkkOK00OkOOkkkx:;clllldolOWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMKolokOxk00kkOo:xOkkkx;lOl.;l,;olc'.:ol',ox;.cl:ldxkkOkkkkOOOOOOOOOOOOOkkOO0OkkkkOOkOOOOOOxdodxxxdolckWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMKocldOOkxxkoc::::oo:::dOOo,:ccll:;cldo:cdxocllldkkkkkOkkkOOOOOOOOOOkdc::coxOOOOkOOkOOOkkOo;cdxxocclcxWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMM0olodk00kxxolc::cl:,;okOOOkxxxxxxkOOOOkkkkkkkxxxxxkkkOkkkOOOkkxxddl;:c;,,,;:clllllokxdkkOdcdxdxdlclcxNMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMM0lclox0K0Oxol:;;;:clxOOOOOOOkkddolccccccclloxkkkkOOkkkkkxoc:;,''....''....,,. .'::;,'ckkOd:ldddocclcdNMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMM0lcloxOKXXKOxoooodxkkOOkdlc::cllloooddooollc:okkkkkkkdc;,.................',..ckOOOo':kOko,;cooc;:lcxNMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMM0lclodOKXXKK0OkkkkkOxo:::ldxk0Kkk0kd0Od00dkKddkkOOko;.....................',..o0Ok0x.'kOkc,:oxxl:clcxNMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMM0l:codOKXXXK0OOkkxl:;cdO0kkxcldllxxokOdOOok0xkOOOd;.......................',. .:ddc. .dOkxxkkkkkdlccxNMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMM0c:codOK000xxkdl:;:d00xkd;;dxxkOkkxxxxxxxkkkddOOo'........................',. ,oxxd; .dOkkkkkOOkxlccxNMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMM0lclodkOxdolccclokOOOxod0Odddoc:;;;::;'..'::;lxl...........................,..dOkk0k''xOkkkkkOOOxlccxNMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMM0lclodOKKK00OkkOd:lxOOOkdl:;:coddxdl;.....:xkxc............................,. ,odxo; 'xOkkkkOOOOxlccxNMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMKlclodkXWWKOko;cxddOkdc;:loxkkOkkl'........':;...,;,.....:oddxxdol:,.......'. .:ddc. 'xOkkkkOOOkxlccxNMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMKoclodkKXNKkO0kkOOdc;:ldkkOOkkkkkl.............,xKK0l..'lxclONWWWNkodo:...'c,.o0kO0x.'xOkkkkOOOkxllcxNMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMXoclodkKK0Okkdol:;:ldkOOOkxxxddddd;............lXOxKx.:OKx:kNWNNWXd;;kXk;..::'ckOOOl.'xOkkkO00OOxllcxNMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMXdclodkKK0kdlccloxkkkxddxkOO00Od:;c'...........lKKkOko0WNl'dNNNNKl:kKXNKc..,c,.'::,. 'dOkkO0000OxolckWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMXdclodk000OOOkkkkdooddxk0XWMMXxc;cxd' ....'oO0XNKdlkK0XXKKNO;c0WNNo.'lxOko'......;xOO00KOdddollOWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMXdclodk00OOOkkxlloOOxddodkKNNXKklcdOd' 'cc'. ,ONNNx. .l0XXXXNN0xkKNXdlOX00K0l'.,;...'coxxxolcclll0MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMNxclodk000OOko:l0WWKkkkXNWWNXXWWXo;oOx;,kWXc':;.;KWNNl .dX0k0Xx:'.oKXNNNNKxONNNx;xXx,...':clllc,;llOMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMNxccoox000Oxl;dNMMWKkkkkxxdOKXWMWKc:xOxxXWOo0Xd.'ONNXo..'ldccOKo. ;0NNNNXX0OKXXW0cxXO:...,:llllc'.:lOWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMNxclooxO0Oko;lXWWWWWKOkdoooxKNWWWNd;dOxkNWXXXO:..lXNNOoddolclooc,:ONNNN0l,ckXXKxc;dKO:...,:llllc'.;lOWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMWxclodkOOOkl,dKxook0kxdkxoolkKOdkKocOK0KNNNWNXx' .c0NXOxxkkOOOkkkKNNNKko::cONNNc.,dKl....,:cllllccllkWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMWkccldxkkkko;okccdddl:clc;,;o0OldxcoOO0KNNNNNOlc:,';d0KK0OOkkOOKXNNKOxdoooloKN0;..,;.....,:ldxkOxolckWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMWOccloxkkxkxl:ldxOkOkxxkOkdd0X0xoldOOOkkOOOOxllooolcckOOOOOO0000Okkxoddoooolol' .. ..:oxOK00OxllckWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMWOllodxkkkkxxdloOXWMNK00OOXWWXkddkOOOOOkkkdlcccccccoOXkoxkdk00OOdodddoolc:;'.. ...';clxO00000OkdlcckWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMM0llodxkkkkkkkkdodxOkxxxolxOkxxkkkkkOkkxkkkkxdooolcdOOdlllo0KK0kdddol:,'....',;..'ckkkkkOO00000kdllckWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMM0lloxOOOOOOOOOOOOkxxxxxxxxkOOOkkkkkkkkkkkkkkkkkkko:llllollxOOkkxdoloddxxkkO000o:cx0000KKXXXXXXOolcckWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMOlloxKXNNNNNNNNNNXXXXXNXXXXXXXXXXXXXXXXXXXXXXXXXXK0KKKKKKKXXXXXKKKKXNNNNNNNNNNNNNNWWWWWWWWWWWNOollckWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMWOllodONWWXKKXNNXKKXNNXKKXNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMWKxlllckWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMWkclookXWXkkOOKKkkOOKKkOOOKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWN0oclllkWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMWkllolxKNN0OO0XN0OO0NN0O0KNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNklclllkWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMWxccllo0NWWWWMMMWWWMMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXd:colckWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMNxcclllONWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNNNXXKKNWWNXXXXXKKXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKo:colckWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMNxccoolkNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNkoolcllokX0olllcclldKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMW0c;lolckWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMNxcloolkXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKdcccc:cldOxlc;c:ccclOWMMMMMMMMMMMMMMMMMMMMMMMMMMMMWk:;lolckWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMNdcllolxXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXkl:clccookOo:,clcclokWMMMMMMMMMMMMMMMMMMMMMMMMMMMWNx;;lollOWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMNdclloldXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXOxdoloxxxO0kdodloxxdOWMMMMMMMMMMMMMMMMMMMMMMMMMMMWNx,:oollOWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMXdclodldKWWMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXKXWWWWWWWWNKXWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWXd,coollOWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMKoclododKWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXNWWXo,colllOWMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMKlclloldKWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXl'lolccOMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMM0l:cloldKWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXl,lollcOMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMM0lcllooxKWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXl,odollOMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMM0lcloddkXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXl;odollOMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMM0lcloddkXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXo;odollOMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMOccloddOXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXd:odolcOMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMOccloddOXNMWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXNWWNx:odoll0MMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMOlcloddOXWMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWNkcodoloKMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMOlclodx0NWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW0lldoldKMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMM0lloodx0NWMMMMMMMMMMMMMMMMMMMN0KNNNX0KNXO0NNNX0KNXOO0O0XKOkKKkOKKOK0O0K0XWMMMMMMNKKKNWWXKKXWWXdldoldXMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMM0oloodxKNWMMMMMMMMMMMMMMMMMMMN00XNNX00NXO0XNNX00NKkO00KXKOk00kOKKO00k0K0KWMMMMMW0kOOOX0kOOOXWNOooolxNMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMKoloodkKNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX000KWX0OOKNWWXxdolOWMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMKoloodOXNWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWNNWNNNXXXXKK0kdoo0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMKoclodkOOkkkkkkkkkkkkkkOOOOO000000KKKKKKKKKKKKKKK00000000000OOOOOOOOkkkkkkxxxxxxxddddooooooooooooloKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMKocloddxxollllllllllloooooodddxxxxxxxxxxxxxxxxxddddooddoollllccc::::::;;;;;;;::::::ccccclllllooodooONMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMKocloooddddddxxxxxxkkkxxkxxkxxxxxxkkkkkkkkkkkkkOkkk0KKKKK0OkkOkxxkkkxxddddxxddxxxdxxxxdddxddxddddoold0WMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMNOocccloodddxxxxxddxddddddddddddddddxxooxkxxkkxdxkxxx0K00000kxkkxoodxxxdddddxxxxxxxxxxxxxxxdddddddddoollxXWMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMWKoc::ccloooooooooooooollllllllllllllllooooooddddooooooddddddooooooooooooollloooooddddddddddooolllloooolllcl0WMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMW0l::cclllllolllllllllccclccccccccccccccccccccccccccccccccccc::::::::c::cccccccccclllllllllllcccccccccccllcccdXMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMWx:::cccllloololoooooooooddddddddoddddddddddoddddddooodooooodoooooooooooooooodddddddddoooooodoolloooooolllllcoXMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMWk::cccclooooollooddoddoddddddddddddddxxxdddddddddddddddddddddddddddddddddddddxxxdxxxxddddddddooodddddooooolldXMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMWOllooddxxxkkxxkkOkOOOOOOOOOOkkkkkxxkkkkkkkkkkkkOOOOOOOOOOOOOOkkkkkkkkkkkkkkkkkkxxxxxxxxxxxxxxdddddddddddooolxNMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMWNNNNNNWWWWWWWWWWWWWMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMWWWWWWWWWWWWWWWWWWWNNNNNNNNNNNNNNNNNXXXXXXXXXKKK00KWMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
*/
import { defaultBlessings } from "./constants.js";
import { readFileSync } from "node:fs";
import { dirname, join } from "node:path";
import { fileURLToPath } from "node:url";
//#region src/index.ts
const __dirname = dirname(fileURLToPath(import.meta.url));
const blessingNameToTextMap = {};
const blessingTextsDirPath = join(__dirname, "blessing-texts");
function godBlessYourCode(code, codeType, options = {}) {
const { blessings = defaultBlessings } = options;
const chosenBlessingName = Array.isArray(blessings) ? blessings[Math.floor(Math.random() * blessings.length)] : blessings;
if (!chosenBlessingName) return;
let blessingText = loadBlessingText(chosenBlessingName);
if (!blessingText) return;
const wrap = (content) => {
switch (codeType) {
case "css":
case "js":
case "ts": return `/*\n${content}\n*/`;
case "html": return `<!--\n${content}\n-->`;
default: return `/*\n${content}\n*/`;
}
};
blessingText = wrap(blessingText);
return options.position === "bottom" ? `${code}\n\n${blessingText}` : `${blessingText}\n\n${code}`;
}
function loadBlessingText(name) {
if (blessingNameToTextMap[name]) return blessingNameToTextMap[name];
return blessingNameToTextMap[name] = readFileSync(join(blessingTextsDirPath, `${name}.txt`), "utf-8").trimEnd();
}
//#endregion
export { godBlessYourCode, loadBlessingText };
//# sourceMappingURL=index.js.map