@crestron/ch5-shell-utilities-cli
Version:
CH5 Shell Utilities CLI for command scripts
221 lines (220 loc) • 7.71 kB
JavaScript
"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;