UNPKG

balena-cli

Version:

The official balena Command Line Interface

104 lines 3.49 kB
"use strict"; const _ = require("lodash"); const os_1 = require("os"); const resin_stream_logger_1 = require("resin-stream-logger"); const lazy_1 = require("./lazy"); var Level; (function (Level) { Level["BUILD"] = "build"; Level["INFO"] = "info"; Level["DEBUG"] = "debug"; Level["SUCCESS"] = "success"; Level["WARN"] = "warn"; Level["ERROR"] = "error"; Level["LOGS"] = "logs"; Level["LIVEPUSH"] = "livepush"; })(Level || (Level = {})); class Logger { constructor() { const logger = new resin_stream_logger_1.StreamLogger(); const chalk = (0, lazy_1.getChalk)(); logger.addPrefix('build', chalk.blue('[Build]')); logger.addPrefix('info', chalk.cyan('[Info]')); logger.addPrefix('debug', chalk.magenta('[Debug]')); logger.addPrefix('success', chalk.green('[Success]')); logger.addPrefix('warn', chalk.yellow('[Warn]')); logger.addPrefix('error', chalk.red('[Error]')); logger.addPrefix('logs', chalk.green('[Logs]')); logger.addPrefix('live', chalk.yellow('[Live]')); this.streams = { build: logger.createLogStream('build'), info: logger.createLogStream('info'), debug: logger.createLogStream('debug'), success: logger.createLogStream('success'), warn: logger.createLogStream('warn'), error: logger.createLogStream('error'), logs: logger.createLogStream('logs'), livepush: logger.createLogStream('live'), }; _.forEach(this.streams, function (stream, key) { if (key !== 'debug') { stream.pipe(process.stdout); } else if (process.env.DEBUG) { stream.pipe(process.stderr); } }); this.formatMessage = logger.formatWithPrefix.bind(logger); this.deferredLogMessages = []; this.adapter = { debug: (msg) => this.logDebug(msg), error: (msg) => this.logError(msg), info: (msg) => this.logInfo(msg), log: (msg) => this.logLogs(msg), warn: (msg) => this.logWarn(msg), }; } static getLogger() { if (!this.logger) { this.logger = new Logger(); } return this.logger; } logInfo(msg) { return this.streams.info.write(msg + os_1.EOL); } logDebug(msg) { return this.streams.debug.write(msg + os_1.EOL); } logSuccess(msg) { return this.streams.success.write(msg + os_1.EOL); } logWarn(msg) { return this.streams.warn.write(msg + os_1.EOL); } logError(msg) { return this.streams.error.write(msg + os_1.EOL); } logBuild(msg) { return this.streams.build.write(msg + os_1.EOL); } logLogs(msg) { return this.streams.logs.write(msg + os_1.EOL); } logLivepush(msg) { return this.streams.livepush.write(msg + os_1.EOL); } deferredLog(msg, level) { if (!this.deferredLogMessages.find((entry) => entry[0] === msg)) { this.deferredLogMessages.push([msg, level]); } } outputDeferredMessages() { this.deferredLogMessages.forEach((m) => { this.streams[m[1]].write(m[0] + os_1.EOL); }); this.deferredLogMessages = []; } getAdapter() { return this.adapter; } } Logger.Level = Level; module.exports = Logger; //# sourceMappingURL=logger.js.map