smartlog-destination-local/dist/beautylog.log.helpers.js

108 lines
14 KiB
JavaScript

/// <reference path="./typings/main.d.ts" />
"use strict";
var plugins = require("./beautylog.plugins");
var beautylog_console_1 = require("./beautylog.console");
var localBl = {
dirPrefix: plugins.clc.bgXterm(39).xterm(231).bold(' DIR ') + ' ',
errorPrefix: ' Error: '.bgRed.white.bold + ' ',
infoPrefix: plugins.clc.bgXterm(198).xterm(231).bold(' INFO ') + ' ',
normalPrefix: ' Log: '.bgCyan.white.bold + ' ',
okPrefix: ' '.bgGreen + ' OK! '.bgBlack.green.bold + ' ',
successPrefix: ' Success: '.bgGreen.white.bold + ' ',
warnPrefix: ' '.bgYellow + ' Warn: '.bgBlack.yellow.bold + ' '
};
/**
*
* @param logText
* @param logType
* @returns {boolean}
*/
exports.log = function (logText, logType) {
if (logText === void 0) { logText = 'empty log'; }
if (logType === void 0) { logType = 'normal'; }
switch (plugins.smartenv.getEnv().runtimeEnv) {
case "node":
exports.logNode(logText, logType);
break;
case "browser":
logBrowser(logText, logType);
break;
default:
console.log("something is strange about the platform in which you try to use beautylog");
break;
}
};
exports.logNode = function (logText, logType) {
try {
switch (logType) {
case 'dir':
logText = localBl.dirPrefix + plugins.clc.xterm(26)(logText);
break;
case 'error':
logText = localBl.errorPrefix + logText.red.bold;
break;
case 'info':
logText = localBl.infoPrefix + plugins.clc.xterm(198)(logText);
break;
case 'normal':
logText = localBl.normalPrefix + logText.cyan.bold;
break;
case 'ok':
logText = localBl.okPrefix + logText.bold;
break;
case 'success':
logText = localBl.successPrefix + logText.green.bold;
break;
case 'warn':
logText = localBl.warnPrefix + logText.bold;
break;
case 'log':
logText = localBl.normalPrefix + logText.blue.bold;
break;
default:
logText.blue.bold;
console.log(('unknown logType for "' + logText + '"').red.bold);
break;
}
beautylog_console_1.beautyConsole.log(logText);
return true;
}
catch (error) {
console.log(localBl.errorPrefix + 'You seem to have tried logging something strange'.red.bold + error);
return false;
}
};
var logBrowser = function (logText, logType) {
switch (logType) {
case 'dir':
logText = localBl.dirPrefix + plugins.clc.xterm(26)(logText);
break;
case 'error':
logText = localBl.errorPrefix + logText.red.bold;
break;
case 'info':
console.log('%c Info: %c ' + logText, 'background:#EC407A;color:#ffffff;', 'color:#EC407A;');
break;
case 'normal':
logText = localBl.normalPrefix + logText.cyan.bold;
break;
case 'ok':
console.log('%c OK: %c ' + logText, "background:#000000;color:#8BC34A;", "color:#000000;");
break;
case 'success':
console.log('%c Success: %c ' + logText, "background:#8BC34A;color:#ffffff;", "color:#8BC34A;");
break;
case 'warn':
console.log('%c Warn: %c ' + logText, "background:#000000;color:#FB8C00;", "color:#000000;");
break;
case 'log':
console.log('%c Log: %c ' + logText, "background:#42A5F5;color:#ffffff", "color:#42A5F5;");
break;
default:
console.log('unknown logType for "' + logText + '"');
break;
}
};
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJlYXV0eWxvZy5sb2cuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0Q0FBNEM7O0FBRTVDLElBQVksT0FBTyxXQUFNLHFCQUFxQixDQUFDLENBQUE7QUFDL0Msa0NBQTRCLHFCQUFxQixDQUFDLENBQUE7QUFFbEQsSUFBSSxPQUFPLEdBQUc7SUFDVixTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHO0lBQ2pFLFdBQVcsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRztJQUM5QyxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHO0lBQ3BFLFlBQVksRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRztJQUM5QyxRQUFRLEVBQUUsR0FBRyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRztJQUN4RCxhQUFhLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUc7SUFDcEQsVUFBVSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEdBQUc7Q0FDakUsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ1EsV0FBRyxHQUFHLFVBQVMsT0FBNEIsRUFBRSxPQUF5QjtJQUF2RCx1QkFBNEIsR0FBNUIscUJBQTRCO0lBQUUsdUJBQXlCLEdBQXpCLGtCQUF5QjtJQUM3RSxNQUFNLENBQUEsQ0FBQyxPQUFPLENBQUMsUUFB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Ly8vIDxyZWZlcmVuY2UgcGF0aD1cIi4vdHlwaW5ncy9tYWluLmQudHNcIiAvPlxyXG5cclxuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9iZWF1dHlsb2cucGx1Z2luc1wiO1xyXG5pbXBvcnQge2JlYXV0eUNvbnNvbGV9IGZyb20gXCIuL2JlYXV0eWxvZy5jb25zb2xlXCI7XHJcblxyXG52YXIgbG9jYWxCbCA9IHtcclxuICAgIGRpclByZWZpeDogcGx1Z2lucy5jbGMuYmdYdGVybSgzOSkueHRlcm0oMjMxKS5ib2xkKCcgRElSICcpICsgJyAnLFxyXG4gICAgZXJyb3JQcmVmaXg6ICcgRXJyb3I6ICcuYmdSZWQud2hpdGUuYm9sZCArICcgJyxcclxuICAgIGluZm9QcmVmaXg6IHBsdWdpbnMuY2xjLmJnWHRlcm0oMTk4KS54dGVybSgyMzEpLmJvbGQoJyBJTkZPICcpICsgJyAnLFxyXG4gICAgbm9ybWFsUHJlZml4OiAnIExvZzogJy5iZ0N5YW4ud2hpdGUuYm9sZCArICcgJyxcclxuICAgIG9rUHJlZml4OiAnICcuYmdHcmVlbiArICcgT0shICcuYmdCbGFjay5ncmVlbi5ib2xkICsgJyAnLFxyXG4gICAgc3VjY2Vzc1ByZWZpeDogJyBTdWNjZXNzOiAnLmJnR3JlZW4ud2hpdGUuYm9sZCArICcgJyxcclxuICAgIHdhcm5QcmVmaXg6ICcgJy5iZ1llbGxvdyArICcgV2FybjogJy5iZ0JsYWNrLnllbGxvdy5ib2xkICsgJyAnXHJcbn07XHJcblxyXG4vKipcclxuICpcclxuICogQHBhcmFtIGxvZ1RleHRcclxuICogQHBhcmFtIGxvZ1R5cGVcclxuICogQHJldHVybnMge2Jvb2xlYW59XHJcbiAqL1xyXG5leHBvcnQgbGV0IGxvZyA9IGZ1bmN0aW9uKGxvZ1RleHQ6c3RyaW5nID0gJ2VtcHR5IGxvZycsIGxvZ1R5cGU6c3RyaW5nID0gJ25vcm1hbCcpIHtcclxuICAgIHN3aXRjaChwbHVnaW5zLnNtYXJ0ZW52LmdldEVudigpLnJ1bnRpbWVFbnYpIHtcclxuICAgIGNhc2UgXCJub2RlXCI6XHJcbiAgICAgICAgbG9nTm9kZShsb2dUZXh0LGxvZ1R5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSBcImJyb3dzZXJcIjpcclxuICAgICAgICBsb2dCcm93c2VyKGxvZ1RleHQsbG9nVHlwZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwic29tZXRoaW5nIGlzIHN0cmFuZ2UgYWJvdXQgdGhlIHBsYXRmb3JtIGluIHdoaWNoIHlvdSB0cnkgdG8gdXNlIGJlYXV0eWxvZ1wiKTtcclxuICAgICAgICBicmVhaztcclxufVxyXG59O1xyXG5cclxuZXhwb3J0IGxldCBsb2dOb2RlID0gZnVuY3Rpb24obG9nVGV4dDpzdHJpbmcsbG9nVHlwZTpzdHJpbmcpe1xyXG4gICAgdHJ5IHtcclxuICAgICAgICBzd2l0Y2ggKGxvZ1R5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSAnZGlyJzpcclxuICAgICAgICAgICAgICAgIGxvZ1RleHQgPSBsb2NhbEJsLmRpclByZWZpeCArIHBsdWdpbnMuY2xjLnh0ZXJtKDI2KShsb2dUZXh0KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdlcnJvcic6XHJcbiAgICAgICAgICAgICAgICBsb2dUZXh0ID0gbG9jYWxCbC5lcnJvclByZWZpeCArIGxvZ1RleHQucmVkLmJvbGQ7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnaW5mbyc6XHJcbiAgICAgICAgICAgICAgICBsb2dUZXh0ID0gbG9jYWxCbC5pbmZvUHJlZml4ICsgcGx1Z2lucy5jbGMueHRlcm0oMTk4KShsb2dUZXh0KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdub3JtYWwnOlxyXG4gICAgICAgICAgICAgICAgbG9nVGV4dCA9IGxvY2FsQmwubm9ybWFsUHJlZml4ICsgbG9nVGV4dC5jeWFuLmJvbGQ7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnb2snOlxyXG4gICAgICAgICAgICAgICAgbG9nVGV4dCA9IGxvY2FsQmwub2tQcmVmaXggKyBsb2dUZXh0LmJvbGQ7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnc3VjY2Vzcyc6XHJcbiAgICAgICAgICAgICAgICBsb2dUZXh0ID0gbG9jYWxCbC5zdWNjZXNzUHJlZml4ICsgbG9nVGV4dC5ncmVlbi5ib2xkO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3dhcm4nOlxyXG4gICAgICAgICAgICAgICAgbG9nVGV4dCA9IGxvY2FsQmwud2FyblByZWZpeCArIGxvZ1RleHQuYm9sZDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdsb2cnOlxyXG4gICAgICAgICAgICAgICAgbG9nVGV4dCA9IGxvY2FsQmwubm9ybWFsUHJlZml4ICsgbG9nVGV4dC5ibHVlLmJvbGQ7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGxvZ1RleHQuYmx1ZS5ib2xkO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coKCd1bmtub3duIGxvZ1R5cGUgZm9yIFwiJyArIGxvZ1RleHQgKyAnXCInKS5yZWQuYm9sZCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgYmVhdXR5Q29uc29sZS5sb2cobG9nVGV4dCk7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhsb2NhbEJsLmVycm9yUHJlZml4ICsgJ1lvdSBzZWVtIHRvIGhhdmUgdHJpZWQgbG9nZ2luZyBzb21ldGhpbmcgc3RyYW5nZScucmVkLmJvbGQgKyBlcnJvcik7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG59XHJcblxyXG5sZXQgbG9nQnJvd3NlciA9IGZ1bmN0aW9uKGxvZ1RleHQsbG9nVHlwZSl7XHJcbiAgICBzd2l0Y2ggKGxvZ1R5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSAnZGlyJzpcclxuICAgICAgICAgICAgICAgIGxvZ1RleHQgPSBsb2NhbEJsLmRpclByZWZpeCArIHBsdWdpbnMuY2xjLnh0ZXJtKDI2KShsb2dUZXh0KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdlcnJvcic6XHJcbiAgICAgICAgICAgICAgICBsb2dUZXh0ID0gbG9jYWxCbC5lcnJvclByZWZpeCArIGxvZ1RleHQucmVkLmJvbGQ7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnaW5mbyc6XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnJWMgSW5mbzogJWMgJyArIGxvZ1RleHQsJ2JhY2tncm91bmQ6I0VDNDA3QTtjb2xvcjojZmZmZmZmOycsJ2NvbG9yOiNFQzQwN0E7Jyk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnbm9ybWFsJzpcclxuICAgICAgICAgICAgICAgIGxvZ1RleHQgPSBsb2NhbEJsLm5vcm1hbFByZWZpeCArIGxvZ1RleHQuY3lhbi5ib2xkO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ29rJzpcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCclYyBPSzogJWMgJyArIGxvZ1RleHQsXCJiYWNrZ3JvdW5kOiMwMDAwMDA7Y29sb3I6IzhCQzM0QTtcIixcImNvbG9yOiMwMDAwMDA7XCIpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJyVjIFN1Y2Nlc3M6ICVjICcgKyBsb2dUZXh0LFwiYmFja2dyb3VuZDojOEJDMzRBO2NvbG9yOiNmZmZmZmY7XCIsXCJjb2xvcjojOEJDMzRBO1wiKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICd3YXJuJzpcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCclYyBXYXJuOiAlYyAnICsgbG9nVGV4dCxcImJhY2tncm91bmQ6IzAwMDAwMDtjb2xvcjojRkI4QzAwO1wiLFwiY29sb3I6IzAwMDAwMDtcIik7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnbG9nJzpcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCclYyBMb2c6ICVjICcgKyBsb2dUZXh0LFwiYmFja2dyb3VuZDojNDJBNUY1O2NvbG9yOiNmZmZmZmZcIixcImNvbG9yOiM0MkE1RjU7XCIpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygndW5rbm93biBsb2dUeXBlIGZvciBcIicgKyBsb2dUZXh0ICsgJ1wiJyk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbn07Il19