UNPKG

balena-cli

Version:

The official balena Command Line Interface

103 lines 3.54 kB
"use strict"; 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 ux = (0, lazy_1.getCliUx)(); logger.addPrefix('build', ux.colorize('blue', '[Build]')); logger.addPrefix('info', ux.colorize('cyan', '[Info]')); logger.addPrefix('debug', ux.colorize('magenta', '[Debug]')); logger.addPrefix('success', ux.colorize('green', '[Success]')); logger.addPrefix('warn', ux.colorize('yellow', '[Warn]')); logger.addPrefix('error', ux.colorize('red', '[Error]')); logger.addPrefix('logs', ux.colorize('green', '[Logs]')); logger.addPrefix('live', ux.colorize('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'), }; for (const [key, stream] of Object.entries(this.streams)) { 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