UNPKG

cfg-test

Version:

In-source testing using Node.js Test Runner

8 lines (7 loc) 2.75 kB
{ "version": 3, "sources": ["../../src/core/log.ts"], "sourcesContent": ["import process from \"node:process\";\nimport { formatWithOptions } from \"node:util\";\n\n// Constants\n\nconst isColorSupported = !(\"NO_COLOR\" in process.env) && (\n \"FORCE_COLOR\" in process.env\n || process.platform === \"win32\"\n || process.stdout.isTTY\n);\n\nconst isDebugMode = \"CFG_TEST_DEBUG\" in process.env\n || \"ACT\" in process.env\n || \"DEBUG\" in process.env\n || \"TRACE\" in process.env;\n\n// Colors\n\ntype Fmt = (s: string) => string;\n\nconst dim: Fmt = !isColorSupported\n ? String\n : s => `\\x1b[2m${s}\\x1b[22m`;\nconst red: Fmt = !isColorSupported\n ? String\n : s => `\\x1b[31m${s}\\x1b[39m`;\nconst yellow: Fmt = !isColorSupported\n ? String\n : s => `\\x1b[33m${s}\\x1b[39m`;\n\n// Utilities\n\nconst time = (): string => (new Date()).toLocaleTimeString();\n\nconst toStr = (msg: unknown): string =>\n typeof msg === \"object\" && msg !== null\n ? formatWithOptions({ colors: isColorSupported }, \"%O\", msg)\n : String(msg);\n\n// Logger\n\nfunction log(\n o: NodeJS.WriteStream,\n lv: string,\n msg: () => readonly unknown[],\n): void {\n for (const m of msg()) {\n o.write(`${dim(time())} ${lv} ${dim(\"[cfg-test]\")} ${toStr(m)}\\n`, \"utf8\");\n }\n}\n\nexport function debug(msg: () => readonly unknown[]): void {\n if (isDebugMode) {\n log(process.stdout, \"DEBUG\", msg);\n }\n}\n\nexport function error(msg: () => readonly unknown[]): void {\n log(process.stderr, red(\"ERROR\"), msg);\n}\n\nexport function warn(msg: () => readonly unknown[]): void {\n log(process.stdout, yellow(\"WARN\") + \" \", msg);\n}\n"], "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAoB;AACpB,uBAAkC;AAIlC,IAAM,mBAAmB,EAAE,cAAc,oBAAAA,QAAQ,SAC/C;AAAA,aAAiB,oBAAAA,QAAQ,OACtB,oBAAAA,QAAQ;AAAa,WACrB,oBAAAA,QAAQ,OAAO;AAGpB,IAAM,cAAc,oBAAoB,oBAAAA,QAAQ,OAC3C;AAAS,oBAAAA,QAAQ,OACjB,WAAW,oBAAAA,QAAQ;AACnB,WAAW,oBAAAA,QAAQ;AAMxB,IAAM,MAAW,CAAC,mBACd,SACA,OAAK,UAAU,CAAC;AACpB,IAAM,MAAW,CAAC,mBACd,SACA,OAAK,WAAW,CAAC;AACrB,IAAM,SAAc,CAAC,mBACjB,SACA,OAAK,WAAW,CAAC;AAIrB,IAAM,OAAO,OAAe,oBAAI,KAAK,GAAG,mBAAmB;AAE3D,IAAM,QAAQ,CAAC,QACb,OAAO,QAAQ,YAAY,QAAQ,WAC/B;AAAkB,EAAE,QAAQ,iBAAiB,GAAG,MAAM,GAAG,IACzD,OAAO,GAAG;AAIhB,SAAS,IACP,GACA,IACA,KACM;AACN,aAAW,KAAK,IAAI,GAAG;AACrB,MAAE,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,YAAY,CAAC,IAAI,MAAM,CAAC,CAAC;AAAA,GAAM,MAAM;AAAA,EAC3E;AACF;AAEO,SAAS,MAAM,KAAqC;AACzD,MAAI,aAAa;AACf,QAAI,oBAAAA,QAAQ,QAAQ,SAAS,GAAG;AAAA,EAClC;AACF;AAEO,SAAS,MAAM,KAAqC;AACzD,MAAI,oBAAAA,QAAQ,QAAQ,IAAI,OAAO,GAAG,GAAG;AACvC;AAEO,SAAS,KAAK,KAAqC;AACxD,MAAI,oBAAAA,QAAQ,QAAQ,OAAO,MAAM,IAAI,KAAK,GAAG;AAC/C;", "names": ["process"] }