UNPKG

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.

1 lines 3.18 kB
{"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["import { readFileSync } from 'node:fs';\nimport {\n dirname,\n join,\n} from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nimport { defaultBlessings } from './constants';\nimport type {\n BlessingName,\n GodBlessYourCodeOptions,\n} from './types';\n\nexport type * from './types';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst blessingNameToTextMap: Partial<Record<BlessingName, string>> = {};\nconst blessingTextsDirPath = join(__dirname, 'blessing-texts');\n\nexport function godBlessYourCode(\n code: string,\n codeType: 'css' | 'html' | 'js' | 'ts' | 'unknown',\n options: Pick<GodBlessYourCodeOptions, 'blessings' | 'position'> = {},\n) {\n const { blessings = defaultBlessings } = options;\n const chosenBlessingName: BlessingName | undefined = Array.isArray(blessings)\n ? blessings[Math.floor(Math.random() * blessings.length)]\n : blessings;\n\n if (!chosenBlessingName) return;\n\n let blessingText = loadBlessingText(chosenBlessingName);\n if (!blessingText) return;\n const wrap = (content: string) => {\n switch (codeType) {\n case 'css':\n case 'js':\n case 'ts': return `/*\\n${content}\\n*/`;\n case 'html': return `<!--\\n${content}\\n-->`;\n default: return `/*\\n${content}\\n*/`;\n }\n };\n\n blessingText = wrap(blessingText);\n\n return options.position === 'bottom' ? `${code}\\n\\n${blessingText}` : `${blessingText}\\n\\n${code}`;\n}\n\nexport function loadBlessingText(name: BlessingName) {\n if (blessingNameToTextMap[name]) return blessingNameToTextMap[name];\n return blessingNameToTextMap[name] = readFileSync(join(blessingTextsDirPath, `${name}.txt`), 'utf-8').trimEnd();\n}\n"],"names":["__dirname","dirname","fileURLToPath","join","defaultBlessings","readFileSync"],"mappings":";;;;;;;;AAeA,MAAMA,WAAS,GAAGC,iBAAO,CAACC,sBAAa,CAAC,2PAAe,CAAC,CAAC;AACzD,MAAM,qBAAqB,GAA0C,EAAE;AACvE,MAAM,oBAAoB,GAAGC,cAAI,CAACH,WAAS,EAAE,gBAAgB,CAAC;AAExD,SAAU,gBAAgB,CAC5B,IAAY,EACZ,QAAkD,EAClD,UAAmE,EAAE,EAAA;AAErE,IAAA,MAAM,EAAE,SAAS,GAAGI,0BAAgB,EAAE,GAAG,OAAO;AAChD,IAAA,MAAM,kBAAkB,GAA6B,KAAK,CAAC,OAAO,CAAC,SAAS;AACxE,UAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC;UACtD,SAAS;AAEf,IAAA,IAAI,CAAC,kBAAkB;QAAE;AAEzB,IAAA,IAAI,YAAY,GAAG,gBAAgB,CAAC,kBAAkB,CAAC;AACvD,IAAA,IAAI,CAAC,YAAY;QAAE;AACnB,IAAA,MAAM,IAAI,GAAG,CAAC,OAAe,KAAI;QAC7B,QAAQ,QAAQ;AACZ,YAAA,KAAK,KAAK;AACV,YAAA,KAAK,IAAI;AACT,YAAA,KAAK,IAAI,EAAE,OAAO,CAAO,IAAA,EAAA,OAAO,MAAM;AACtC,YAAA,KAAK,MAAM,EAAE,OAAO,CAAS,MAAA,EAAA,OAAO,OAAO;AAC3C,YAAA,SAAS,OAAO,CAAO,IAAA,EAAA,OAAO,MAAM;;AAE5C,KAAC;AAED,IAAA,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAEjC,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,GAAG,CAAG,EAAA,IAAI,OAAO,YAAY,CAAA,CAAE,GAAG,GAAG,YAAY,CAAA,IAAA,EAAO,IAAI,CAAA,CAAE;AACtG;AAEM,SAAU,gBAAgB,CAAC,IAAkB,EAAA;IAC/C,IAAI,qBAAqB,CAAC,IAAI,CAAC;AAAE,QAAA,OAAO,qBAAqB,CAAC,IAAI,CAAC;IACnE,OAAO,qBAAqB,CAAC,IAAI,CAAC,GAAGC,oBAAY,CAACF,cAAI,CAAC,oBAAoB,EAAE,CAAG,EAAA,IAAI,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE;AACnH;;;;;"}