UNPKG

@strapi/strapi

Version:

An open source headless CMS solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier. Databases supported: MySQL, MariaDB, PostgreSQL, SQLite

1 lines 7.2 kB
{"version":3,"file":"logger.mjs","sources":["../../../../src/cli/utils/logger.ts"],"sourcesContent":["import chalk from 'chalk';\nimport ora, { 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 silentSpinner = {\n succeed() {\n return this;\n },\n fail() {\n return this;\n },\n start() {\n return this;\n },\n text: '',\n isSpinning: false,\n} as Ora;\n\nconst silentProgressBar = {\n start() {\n return this;\n },\n stop() {\n return this;\n },\n update() {\n return this;\n },\n} as unknown as cliProgress.SingleBar;\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 debug(...args) {\n if (silent || !debug) {\n return;\n }\n\n console.log(\n chalk.cyan(`[DEBUG]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args\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\n );\n },\n\n log(...args) {\n if (silent) {\n return;\n }\n\n console.info(chalk.blue(`${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`), ...args);\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\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\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\n );\n },\n\n spinner(text: string) {\n if (silent) {\n return silentSpinner;\n }\n\n return ora(text);\n },\n\n progressBar(totalSize: number, text: string) {\n if (silent) {\n return silentProgressBar;\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":["silentSpinner","succeed","fail","start","text","isSpinning","silentProgressBar","stop","update","createLogger","options","silent","debug","timestamp","state","errors","warning","warnings","args","console","log","chalk","cyan","Date","toISOString","info","blue","success","green","warn","yellow","error","red","spinner","ora","progressBar","totalSize","cliProgress","SingleBar","format","barCompleteChar","barIncompleteChar","hideCursor","forceRedraw"],"mappings":"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"}