1 line
7.7 KiB
Plaintext
1 line
7.7 KiB
Plaintext
{"version":3,"file":"logger.mjs","sources":["../../src/services/logger.ts"],"sourcesContent":["import chalk from 'chalk';\nimport stringify from 'fast-safe-stringify';\n\nimport ora from 'ora';\nimport * as cliProgress from 'cli-progress';\n\nexport interface LoggerOptions {\n silent?: boolean;\n debug?: boolean;\n timestamp?: boolean;\n}\n\nexport interface Logger {\n warnings: number;\n errors: number;\n debug: (...args: unknown[]) => void;\n info: (...args: unknown[]) => void;\n success: (...args: unknown[]) => void;\n warn: (...args: unknown[]) => void;\n error: (...args: unknown[]) => void;\n log: (...args: unknown[]) => void;\n spinner: (text: string) => Pick<ora.Ora, 'succeed' | 'fail' | 'start' | 'text' | 'isSpinning'>;\n progressBar: (\n totalSize: number,\n text: string\n ) => Pick<cliProgress.SingleBar, 'start' | 'stop' | 'update'>;\n}\n\nconst stringifyArg = (arg: unknown) => {\n return typeof arg === 'object' ? stringify(arg) : arg;\n};\n\nconst createLogger = (options: LoggerOptions = {}): Logger => {\n const { silent = false, debug = false, timestamp = true } = options;\n\n const state = { errors: 0, warning: 0 };\n\n return {\n get warnings() {\n return state.warning;\n },\n\n get errors() {\n return state.errors;\n },\n\n async debug(...args) {\n if (silent || !debug) {\n return;\n }\n\n console.log(\n chalk.cyan(`[DEBUG]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args.map(stringifyArg)\n );\n },\n\n info(...args) {\n if (silent) {\n return;\n }\n\n console.info(\n chalk.blue(`[INFO]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args.map(stringifyArg)\n );\n },\n\n log(...args) {\n if (silent) {\n return;\n }\n\n console.info(\n chalk.blue(`${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args.map(stringifyArg)\n );\n },\n\n success(...args) {\n if (silent) {\n return;\n }\n\n console.info(\n chalk.green(`[SUCCESS]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args.map(stringifyArg)\n );\n },\n\n warn(...args) {\n state.warning += 1;\n\n if (silent) {\n return;\n }\n\n console.warn(\n chalk.yellow(`[WARN]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args.map(stringifyArg)\n );\n },\n\n error(...args) {\n state.errors += 1;\n\n if (silent) {\n return;\n }\n\n console.error(\n chalk.red(`[ERROR]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args.map(stringifyArg)\n );\n },\n\n // @ts-expect-error – returning a subpart of ora is fine because the types tell us what is what.\n spinner(text: string) {\n if (silent) {\n return {\n succeed() {\n return this;\n },\n fail() {\n return this;\n },\n start() {\n return this;\n },\n text: '',\n isSpinning: false,\n };\n }\n\n return ora(text);\n },\n\n progressBar(totalSize: number, text: string) {\n if (silent) {\n return {\n start() {\n return this;\n },\n stop() {\n return this;\n },\n update() {\n return this;\n },\n };\n }\n\n const progressBar = new cliProgress.SingleBar({\n format: `${text ? `${text} |` : ''}${chalk.green('{bar}')}| {percentage}%`,\n barCompleteChar: '\\u2588',\n barIncompleteChar: '\\u2591',\n hideCursor: true,\n forceRedraw: true,\n });\n\n progressBar.start(totalSize, 0);\n\n return progressBar;\n },\n };\n};\n\nexport { createLogger };\n"],"names":["stringifyArg","arg","stringify","createLogger","options","silent","debug","timestamp","state","errors","warning","warnings","args","console","log","chalk","cyan","Date","toISOString","map","info","blue","success","green","warn","yellow","error","red","spinner","text","succeed","fail","start","isSpinning","ora","progressBar","totalSize","stop","update","cliProgress","SingleBar","format","barCompleteChar","barIncompleteChar","hideCursor","forceRedraw"],"mappings":"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"} |