UNPKG

@andrei-tatar/node-red-contrib-nibetcp

Version:

Node-red integration for Nibe S series heatpumps using modbus over TCP

46 lines (45 loc) 1.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.logger = exports.Logger = void 0; class Logger { constructor(scopes = []) { this.scopes = scopes; } scope(scope) { return new Logger([...this.scopes, scope]); } log(level, msg, ...args) { const scopes = this.scopes.map(s => `[${s}]`).join(''); const coloredText = this.color(level, `[${level.toUpperCase()}]${scopes}`); const stamp = (new Date().getTime() - Logger.start).toString().padStart(8, ' '); console.log(`[${stamp}]${coloredText} ${msg}`, ...args); } info(msg, ...args) { this.log('info', msg, ...args); } error(msg, ...args) { this.log('error', msg, ...args); } trace(msg, ...args) { this.log('trace', msg, ...args); } warn(msg, ...args) { this.log('warn', msg, ...args); } debug(msg, ...args) { this.log('debug', msg, ...args); } color(level, text) { const MAP = new Map([ ['error', '31m'], ['info', '36m'], ['trace', '32m'], ['warn', '33m'], ['debug', '35m'], ]); return `\x1b[${MAP.get(level)}${text}\x1b[0m`; } } exports.Logger = Logger; Logger.start = new Date().getTime(); exports.logger = null; // new Logger();