UNPKG

@crestron/ch5-shell-utilities-cli

Version:
221 lines (220 loc) 7.71 kB
"use strict"; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Ch5CliLogger = exports.LOG_LEVELS = void 0; // Copyright (C) 2021 to the present, Crestron Electronics, Inc. // All rights reserved. // No part of this software may be reproduced in any form, machine // or natural, without the express written consent of Crestron Electronics. // Use of this source code is subject to the terms of the Crestron Software License Agreement // under which you licensed this source code. var process = require('process'); exports.LOG_LEVELS = { TRACE: 1, DEBUG: 2, INFO: 6, WARN: 9, ERROR: 13, FATAL: 20, OFF: 99, }; var Ch5CliLogger = /** @class */ (function () { function Ch5CliLogger(allowLogging, logLevel) { if (allowLogging === void 0) { allowLogging = false; } if (logLevel === void 0) { logLevel = exports.LOG_LEVELS.TRACE; } this.allowLogging = true; this.logLevel = exports.LOG_LEVELS.TRACE; this.FORMATTING = { Reset: "\x1b[0m", Bright: "\x1b[1m", Dim: "\x1b[2m", Underscore: "\x1b[4m", Blink: "\x1b[5m", Reverse: "\x1b[7m", Hidden: "\x1b[8m", SpaceChar: "%s" }; this.FOREGROUND_COLORS = { Black: "\x1b[30m", Red: "\x1b[31m", Green: "\x1b[32m", Yellow: "\x1b[33m", Blue: "\x1b[34m", Magenta: "\x1b[35m", Cyan: "\x1b[36m", White: "\x1b[37m" }; this.BACKGROUND_COLORS = { Black: "\x1b[40m", Red: "\x1b[41m", Green: "\x1b[42m", Yellow: "\x1b[43m", Blue: "\x1b[44m", Magenta: "\x1b[45m", Cyan: "\x1b[46m", White: "\x1b[47m" }; this.allowLogging = allowLogging; this.logLevel = logLevel; } /** * * @param {*} noOfLineBreaks */ Ch5CliLogger.prototype.linebreak = function (noOfLineBreaks) { var lineBreakText = ""; if (noOfLineBreaks && noOfLineBreaks > 0) { for (var i = 0; i < noOfLineBreaks; i++) { lineBreakText += "\n"; } console.log(lineBreakText); } }; /** * * @param {...any} input */ Ch5CliLogger.prototype.log = function () { var input = []; for (var _i = 0; _i < arguments.length; _i++) { input[_i] = arguments[_i]; } if (this.allowLogging === true && this.logLevel <= exports.LOG_LEVELS.DEBUG) { console.log.apply(console, __spreadArray(__spreadArray([this.FOREGROUND_COLORS.Blue], input, false), [this.FORMATTING.Reset], false)); } }; Ch5CliLogger.prototype.start = function () { var input = []; for (var _i = 0; _i < arguments.length; _i++) { input[_i] = arguments[_i]; } if (this.allowLogging === true && this.logLevel <= exports.LOG_LEVELS.DEBUG) { console.group.apply(console, __spreadArray(__spreadArray([this.FOREGROUND_COLORS.Blue], input, false), [this.FORMATTING.Reset], false)); } }; Ch5CliLogger.prototype.end = function () { if (this.allowLogging === true && this.logLevel <= exports.LOG_LEVELS.DEBUG) { console.groupEnd(); } }; /** * * @param {...any} input */ Ch5CliLogger.prototype.warn = function () { var input = []; for (var _i = 0; _i < arguments.length; _i++) { input[_i] = arguments[_i]; } if (this.allowLogging === true && this.logLevel <= exports.LOG_LEVELS.WARN) { console.warn.apply(console, __spreadArray(__spreadArray([this.FOREGROUND_COLORS.Yellow], input, false), [this.FORMATTING.Reset], false)); } }; /** * * @param {...any} input */ Ch5CliLogger.prototype.error = function () { var input = []; for (var _i = 0; _i < arguments.length; _i++) { input[_i] = arguments[_i]; } if (this.allowLogging === true && this.logLevel <= exports.LOG_LEVELS.ERROR) { console.error.apply(console, __spreadArray(__spreadArray([this.FOREGROUND_COLORS.Red], input, false), [this.FORMATTING.Reset], false)); } }; /** * * @param {...any} input */ Ch5CliLogger.prototype.info = function () { var input = []; for (var _i = 0; _i < arguments.length; _i++) { input[_i] = arguments[_i]; } if (this.allowLogging === true && this.logLevel <= exports.LOG_LEVELS.INFO) { console.info.apply(console, __spreadArray(__spreadArray([this.FOREGROUND_COLORS.Magenta], input, false), [this.FORMATTING.Reset], false)); } }; /** * * @param {...any} input */ Ch5CliLogger.prototype.trace = function () { var input = []; for (var _i = 0; _i < arguments.length; _i++) { input[_i] = arguments[_i]; } if (this.allowLogging === true && this.logLevel <= exports.LOG_LEVELS.TRACE) { console.trace.apply(console, __spreadArray(__spreadArray([this.FOREGROUND_COLORS.Cyan], input, false), [this.FORMATTING.Reset], false)); } }; /** * * @param {...any} input */ Ch5CliLogger.prototype.printSuccess = function () { var input = []; for (var _i = 0; _i < arguments.length; _i++) { input[_i] = arguments[_i]; } console.log.apply(console, __spreadArray(__spreadArray([this.FOREGROUND_COLORS.Green], input, false), [this.FORMATTING.Reset], false)); }; /** * * @param {...any} input */ Ch5CliLogger.prototype.printWarning = function () { var input = []; for (var _i = 0; _i < arguments.length; _i++) { input[_i] = arguments[_i]; } console.log.apply(console, __spreadArray(__spreadArray([this.FOREGROUND_COLORS.Yellow], input, false), [this.FORMATTING.Reset], false)); }; /** * * @param {...any} input */ Ch5CliLogger.prototype.printError = function () { var input = []; for (var _i = 0; _i < arguments.length; _i++) { input[_i] = arguments[_i]; } var outputString = ""; for (var i = 0; i < input.length; i++) { outputString += input[i] + ", "; } outputString = outputString.substring(0, outputString.length - 2); outputString = this.FOREGROUND_COLORS.Red + outputString + this.FORMATTING.Reset + "\n"; process.stderr.write(outputString); }; /** * * @param {...any} input */ Ch5CliLogger.prototype.printLog = function () { var input = []; for (var _i = 0; _i < arguments.length; _i++) { input[_i] = arguments[_i]; } console.log.apply(console, __spreadArray(__spreadArray([this.FOREGROUND_COLORS.Blue], input, false), [this.FORMATTING.Reset], false)); }; /** * Throw any error raised * @param {any} err */ Ch5CliLogger.prototype.onErr = function (err) { this.error(err); throw err; }; return Ch5CliLogger; }()); exports.Ch5CliLogger = Ch5CliLogger;