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

108 lines
14 KiB
JavaScript

"use strict";
require("typings-global");
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJlYXV0eWxvZy5sb2cuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBRXhCLElBQVksT0FBTyxXQUFNLHFCQUFxQixDQUFDLENBQUE7QUFDL0Msa0NBQTRCLHFCQUFxQixDQUFDLENBQUE7QUFFbEQsSUFBSSxPQUFPLEdBQUc7SUFDVixTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHO0lBQ2pFLFdBQVcsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRztJQUM5QyxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHO0lBQ3BFLFlBQVksRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRztJQUM5QyxRQUFRLEVBQUUsR0FBRyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRztJQUN4RCxhQUFhLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUc7SUFDcEQsVUFBVSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEdBQUc7Q0FDakUsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ1EsV0FBRyxHQUFHLFVBQVMsT0FBNEIsRUFBRSxPQUF5QjtJQUF2RCx1QkFBNEIsR0FBNUIscUJBQTRCO0lBQUUsdUJBQXlCLEdBQXpCLGtCQUF5QjtJQUM3RSxNQUFNLENBQUEsQ0FB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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcclxuXHJcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSBcIi4vYmVhdXR5bG9nLnBsdWdpbnNcIjtcclxuaW1wb3J0IHtiZWF1dHlDb25zb2xlfSBmcm9tIFwiLi9iZWF1dHlsb2cuY29uc29sZVwiO1xyXG5cclxudmFyIGxvY2FsQmwgPSB7XHJcbiAgICBkaXJQcmVmaXg6IHBsdWdpbnMuY2xjLmJnWHRlcm0oMzkpLnh0ZXJtKDIzMSkuYm9sZCgnIERJUiAnKSArICcgJyxcclxuICAgIGVycm9yUHJlZml4OiAnIEVycm9yOiAnLmJnUmVkLndoaXRlLmJvbGQgKyAnICcsXHJcbiAgICBpbmZvUHJlZml4OiBwbHVnaW5zLmNsYy5iZ1h0ZXJtKDE5OCkueHRlcm0oMjMxKS5ib2xkKCcgSU5GTyAnKSArICcgJyxcclxuICAgIG5vcm1hbFByZWZpeDogJyBMb2c6ICcuYmdDeWFuLndoaXRlLmJvbGQgKyAnICcsXHJcbiAgICBva1ByZWZpeDogJyAnLmJnR3JlZW4gKyAnIE9LISAnLmJnQmxhY2suZ3JlZW4uYm9sZCArICcgJyxcclxuICAgIHN1Y2Nlc3NQcmVmaXg6ICcgU3VjY2VzczogJy5iZ0dyZWVuLndoaXRlLmJvbGQgKyAnICcsXHJcbiAgICB3YXJuUHJlZml4OiAnICcuYmdZZWxsb3cgKyAnIFdhcm46ICcuYmdCbGFjay55ZWxsb3cuYm9sZCArICcgJ1xyXG59O1xyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBwYXJhbSBsb2dUZXh0XHJcbiAqIEBwYXJhbSBsb2dUeXBlXHJcbiAqIEByZXR1cm5zIHtib29sZWFufVxyXG4gKi9cclxuZXhwb3J0IGxldCBsb2cgPSBmdW5jdGlvbihsb2dUZXh0OnN0cmluZyA9ICdlbXB0eSBsb2cnLCBsb2dUeXBlOnN0cmluZyA9ICdub3JtYWwnKSB7XHJcbiAgICBzd2l0Y2gocGx1Z2lucy5zbWFydGVudi5nZXRFbnYoKS5ydW50aW1lRW52KSB7XHJcbiAgICBjYXNlIFwibm9kZVwiOlxyXG4gICAgICAgIGxvZ05vZGUobG9nVGV4dCxsb2dUeXBlKTtcclxuICAgICAgICBicmVhaztcclxuICAgIGNhc2UgXCJicm93c2VyXCI6XHJcbiAgICAgICAgbG9nQnJvd3Nlcihsb2dUZXh0LGxvZ1R5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgZGVmYXVsdDpcclxuICAgICAgICBjb25zb2xlLmxvZyhcInNvbWV0aGluZyBpcyBzdHJhbmdlIGFib3V0IHRoZSBwbGF0Zm9ybSBpbiB3aGljaCB5b3UgdHJ5IHRvIHVzZSBiZWF1dHlsb2dcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbn1cclxufTtcclxuXHJcbmV4cG9ydCBsZXQgbG9nTm9kZSA9IGZ1bmN0aW9uKGxvZ1RleHQ6c3RyaW5nLGxvZ1R5cGU6c3RyaW5nKXtcclxuICAgIHRyeSB7XHJcbiAgICAgICAgc3dpdGNoIChsb2dUeXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2Rpcic6XHJcbiAgICAgICAgICAgICAgICBsb2dUZXh0ID0gbG9jYWxCbC5kaXJQcmVmaXggKyBwbHVnaW5zLmNsYy54dGVybSgyNikobG9nVGV4dCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnZXJyb3InOlxyXG4gICAgICAgICAgICAgICAgbG9nVGV4dCA9IGxvY2FsQmwuZXJyb3JQcmVmaXggKyBsb2dUZXh0LnJlZC5ib2xkO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2luZm8nOlxyXG4gICAgICAgICAgICAgICAgbG9nVGV4dCA9IGxvY2FsQmwuaW5mb1ByZWZpeCArIHBsdWdpbnMuY2xjLnh0ZXJtKDE5OCkobG9nVGV4dCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnbm9ybWFsJzpcclxuICAgICAgICAgICAgICAgIGxvZ1RleHQgPSBsb2NhbEJsLm5vcm1hbFByZWZpeCArIGxvZ1RleHQuY3lhbi5ib2xkO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ29rJzpcclxuICAgICAgICAgICAgICAgIGxvZ1RleHQgPSBsb2NhbEJsLm9rUHJlZml4ICsgbG9nVGV4dC5ib2xkO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxyXG4gICAgICAgICAgICAgICAgbG9nVGV4dCA9IGxvY2FsQmwuc3VjY2Vzc1ByZWZpeCArIGxvZ1RleHQuZ3JlZW4uYm9sZDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICd3YXJuJzpcclxuICAgICAgICAgICAgICAgIGxvZ1RleHQgPSBsb2NhbEJsLndhcm5QcmVmaXggKyBsb2dUZXh0LmJvbGQ7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnbG9nJzpcclxuICAgICAgICAgICAgICAgIGxvZ1RleHQgPSBsb2NhbEJsLm5vcm1hbFByZWZpeCArIGxvZ1RleHQuYmx1ZS5ib2xkO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBsb2dUZXh0LmJsdWUuYm9sZDtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCgndW5rbm93biBsb2dUeXBlIGZvciBcIicgKyBsb2dUZXh0ICsgJ1wiJykucmVkLmJvbGQpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJlYXV0eUNvbnNvbGUubG9nKGxvZ1RleHQpO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2cobG9jYWxCbC5lcnJvclByZWZpeCArICdZb3Ugc2VlbSB0byBoYXZlIHRyaWVkIGxvZ2dpbmcgc29tZXRoaW5nIHN0cmFuZ2UnLnJlZC5ib2xkICsgZXJyb3IpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxufVxyXG5cclxubGV0IGxvZ0Jyb3dzZXIgPSBmdW5jdGlvbihsb2dUZXh0LGxvZ1R5cGUpe1xyXG4gICAgc3dpdGNoIChsb2dUeXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2Rpcic6XHJcbiAgICAgICAgICAgICAgICBsb2dUZXh0ID0gbG9jYWxCbC5kaXJQcmVmaXggKyBwbHVnaW5zLmNsYy54dGVybSgyNikobG9nVGV4dCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnZXJyb3InOlxyXG4gICAgICAgICAgICAgICAgbG9nVGV4dCA9IGxvY2FsQmwuZXJyb3JQcmVmaXggKyBsb2dUZXh0LnJlZC5ib2xkO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2luZm8nOlxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJyVjIEluZm86ICVjICcgKyBsb2dUZXh0LCdiYWNrZ3JvdW5kOiNFQzQwN0E7Y29sb3I6I2ZmZmZmZjsnLCdjb2xvcjojRUM0MDdBOycpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ25vcm1hbCc6XHJcbiAgICAgICAgICAgICAgICBsb2dUZXh0ID0gbG9jYWxCbC5ub3JtYWxQcmVmaXggKyBsb2dUZXh0LmN5YW4uYm9sZDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdvayc6XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnJWMgT0s6ICVjICcgKyBsb2dUZXh0LFwiYmFja2dyb3VuZDojMDAwMDAwO2NvbG9yOiM4QkMzNEE7XCIsXCJjb2xvcjojMDAwMDAwO1wiKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdzdWNjZXNzJzpcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCclYyBTdWNjZXNzOiAlYyAnICsgbG9nVGV4dCxcImJhY2tncm91bmQ6IzhCQzM0QTtjb2xvcjojZmZmZmZmO1wiLFwiY29sb3I6IzhCQzM0QTtcIik7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnd2Fybic6XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnJWMgV2FybjogJWMgJyArIGxvZ1RleHQsXCJiYWNrZ3JvdW5kOiMwMDAwMDA7Y29sb3I6I0ZCOEMwMDtcIixcImNvbG9yOiMwMDAwMDA7XCIpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2xvZyc6XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnJWMgTG9nOiAlYyAnICsgbG9nVGV4dCxcImJhY2tncm91bmQ6IzQyQTVGNTtjb2xvcjojZmZmZmZmXCIsXCJjb2xvcjojNDJBNUY1O1wiKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3Vua25vd24gbG9nVHlwZSBmb3IgXCInICsgbG9nVGV4dCArICdcIicpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG59OyJdfQ==