UNPKG

dwnpm

Version:

Decentralized Registry Package Manager (DRPM) helps developers publish, install, find and manage Decentralized Packages (DPKs) published to Decentralized Web Nodes (DWNs). DRPM does this by looking up a Decentralized Identifier (DID) to find its DID docum

68 lines (56 loc) 1.91 kB
/* eslint-disable no-undef */ import chalk from 'chalk'; enum Env { Development = 'development', Production = 'production', Test = 'test', } type Level = 'debug' | 'error' | 'info' | 'log' | 'warn' | 'test'; const NODE_ENV = process.env.NODE_ENV as Env || Env.Development; const DEFAULT_LEVELS = ['error', 'security', 'warn'] as Level[]; /** * * A simple console logger with colorized output. * * @class Logger - A simple console logger with colorized output. * * @property {Env} env - The current environment. * @property {Level} level - The current log level. * */ export class Logger implements Partial<Console> { public static levels: Level[] = ['test', 'development'].includes(NODE_ENV) ? ['debug', ...DEFAULT_LEVELS] : DEFAULT_LEVELS; public static debug(message?: unknown, ...args: unknown[]): void { console.debug(chalk.green('debug') + ':', message, ...args); } public static error(message?: unknown, ...args: unknown[]): void { console.error(chalk.red('error') + ':', message, ...args); } public static info(message?: unknown, ...args: unknown[]): void { console.info(chalk.blue('info') + ':', message, ...args); } public static warn(message?: unknown, ...args: unknown[]): void { console.warn(chalk.yellow('warn') + ':', message, ...args); } public static security(message?: unknown, ...args: unknown[]): void { console.warn(chalk.red('security') + ':', message, ...args); } public static plain(message?: unknown, ...args: unknown[]): void { console.log(message, ...args); } public static newline(): void { console.log(); } public static log(message?: unknown, ...args: unknown[]): void { switch (NODE_ENV) { case 'test': case 'development': Logger.debug(message, ...args); break; default: console.log(chalk.gray('log') + ':', message, ...args); } } }