UNPKG

@hashgraph/hedera-cli

Version:

CLI tool to manage and setup developer environments for Hedera Hashgraph.

55 lines (46 loc) 1.26 kB
export class Logger { private static instance: Logger; level: 'verbose' | 'quiet' | 'normal' = 'normal'; public static getInstance(): Logger { if (!Logger.instance) { Logger.instance = new Logger(); } return Logger.instance; } setLevel(level: 'verbose' | 'quiet' | 'normal') { this.level = level; } log(message: string | object) { if (this.level !== 'quiet') { if (typeof message === 'object') { message = this._convertObjectToString(message); } console.log(message); } } verbose(message: string | object) { if (this.level === 'verbose') { if (typeof message === 'object') { message = this._convertObjectToString(message); } console.log(message); } } // Overload signatures error(message: string | object): void; error(message: string, error: object): void; // Unified implementation error(message: string, error?: object) { if (typeof message === 'object') { message = this._convertObjectToString(message); } if (error) { console.error(message, error); } else { console.error('Error:', message); } } _convertObjectToString(object: object) { return JSON.stringify(object, null, 2); } }