smartlog-destination-local/dist/beautylog.log.helpers.js
2016-05-14 01:18:44 +02:00

107 lines
14 KiB
JavaScript

/// <reference path="./typings/main.d.ts" />
"use strict";
var plugins = require("./beautylog.plugins");
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":
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;
}
};
var 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;
}
console.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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJlYXV0eWxvZy5sb2cuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0Q0FBNEM7O0FBRTVDLElBQU8sT0FBTyxXQUFXLHFCQUFxQixDQUFDLENBQUM7QUFFaEQsSUFBSSxPQUFPLEdBQUc7SUFDVixTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHO0lBQ2pFLFdBQVcsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRztJQUM5QyxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHO0lBQ3BFLFlBQVksRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRztJQUM5QyxRQUFRLEVBQUUsR0FBRyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRztJQUN4RCxhQUFhLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUc7SUFDcEQsVUFBVSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEdBQUc7Q0FDakUsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ1EsV0FBRyxHQUFHLFVBQVMsT0FBNEIsRUFBRSxPQUF5QjtJQUF2RCx1QkFBNEIsR0FBNUIscUJBQTRCO0lBQUUsdUJBQXlCLEdBQXpCLGtCQUF5QjtJQUM3RSxNQUFNLENBQUEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FB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QUssT0FBTztZQUNSLE9BQU8sR0FBRyxPQUFPLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ2pELEtBQUssQ0FBQztRQUNWLEtBQUssTUFBTTtZQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxHQUFHLE9BQU8sRUFBQyxtQ0FBbUMsRUFBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzNGLEtBQUssQ0FBQztRQUNWLEtBQUssUUFBUTtZQUNULE9BQU8sR0FBRyxPQUFPLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ25ELEtBQUssQ0FBQztRQUNWLEtBQUssSUFBSTtZQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFHLE9BQU8sRUFBQyxtQ0FBbUMsRUFBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3pGLEtBQUssQ0FBQztRQUNWLEtBQUssU0FBUztZQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxFQUFDLG1DQUFtQyxFQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDOUYsS0FBSyxDQUFDO1FBQ1YsS0FBSyxNQUFNO1lBQ1AsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEdBQUcsT0FBTyxFQUFDLG1DQUFtQyxFQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDM0YsS0FBSyxDQUFDO1FBQ1YsS0FBSyxLQUFLO1lBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsT0FBTyxFQUFDLGtDQUFrQyxFQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDekYsS0FBSyxDQUFDO1FBQ1Y7WUFDSSxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixHQUFHLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQztZQUNyRCxLQUFLLENBQUM7SUFDZCxDQUFDO0FBQ1QsQ0FBQyxDQUFDIiwiZmlsZSI6ImJlYXV0eWxvZy5sb2cuaGVscGVycy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuL3R5cGluZ3MvbWFpbi5kLnRzXCIgLz5cclxuXHJcbmltcG9ydCBwbHVnaW5zID0gcmVxdWlyZShcIi4vYmVhdXR5bG9nLnBsdWdpbnNcIik7XHJcblxyXG52YXIgbG9jYWxCbCA9IHtcclxuICAgIGRpclByZWZpeDogcGx1Z2lucy5jbGMuYmdYdGVybSgzOSkueHRlcm0oMjMxKS5ib2xkKCcgRElSICcpICsgJyAnLFxyXG4gICAgZXJyb3JQcmVmaXg6ICcgRXJyb3I6ICcuYmdSZWQud2hpdGUuYm9sZCArICcgJyxcclxuICAgIGluZm9QcmVmaXg6IHBsdWdpbnMuY2xjLmJnWHRlcm0oMTk4KS54dGVybSgyMzEpLmJvbGQoJyBJTkZPICcpICsgJyAnLFxyXG4gICAgbm9ybWFsUHJlZml4OiAnIExvZzogJy5iZ0N5YW4ud2hpdGUuYm9sZCArICcgJyxcclxuICAgIG9rUHJlZml4OiAnICcuYmdHcmVlbiArICcgT0shICcuYmdCbGFjay5ncmVlbi5ib2xkICsgJyAnLFxyXG4gICAgc3VjY2Vzc1ByZWZpeDogJyBTdWNjZXNzOiAnLmJnR3JlZW4ud2hpdGUuYm9sZCArICcgJyxcclxuICAgIHdhcm5QcmVmaXg6ICcgJy5iZ1llbGxvdyArICcgV2FybjogJy5iZ0JsYWNrLnllbGxvdy5ib2xkICsgJyAnXHJcbn07XHJcblxyXG4vKipcclxuICpcclxuICogQHBhcmFtIGxvZ1RleHRcclxuICogQHBhcmFtIGxvZ1R5cGVcclxuICogQHJldHVybnMge2Jvb2xlYW59XHJcbiAqL1xyXG5leHBvcnQgbGV0IGxvZyA9IGZ1bmN0aW9uKGxvZ1RleHQ6c3RyaW5nID0gJ2VtcHR5IGxvZycsIGxvZ1R5cGU6c3RyaW5nID0gJ25vcm1hbCcpIHtcclxuICAgIHN3aXRjaChwbHVnaW5zLnNtYXJ0ZW52LmdldEVudigpLnJ1bnRpbWVFbnYpIHtcclxuICAgIGNhc2UgXCJub2RlXCI6XHJcbiAgICAgICAgbG9nTm9kZShsb2dUZXh0LGxvZ1R5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSBcImJyb3dzZXJcIjpcclxuICAgICAgICBsb2dCcm93c2VyKGxvZ1RleHQsbG9nVHlwZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwic29tZXRoaW5nIGlzIHN0cmFuZ2UgYWJvdXQgdGhlIHBsYXRmb3JtIGluIHdoaWNoIHlvdSB0cnkgdG8gdXNlIGJlYXV0eWxvZ1wiKTtcclxuICAgICAgICBicmVhaztcclxufVxyXG59O1xyXG5cclxubGV0IGxvZ05vZGUgPSBmdW5jdGlvbihsb2dUZXh0OnN0cmluZyxsb2dUeXBlOnN0cmluZyl7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIHN3aXRjaCAobG9nVHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlICdkaXInOlxyXG4gICAgICAgICAgICAgICAgbG9nVGV4dCA9IGxvY2FsQmwuZGlyUHJlZml4ICsgcGx1Z2lucy5jbGMueHRlcm0oMjYpKGxvZ1RleHQpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2Vycm9yJzpcclxuICAgICAgICAgICAgICAgIGxvZ1RleHQgPSBsb2NhbEJsLmVycm9yUHJlZml4ICsgbG9nVGV4dC5yZWQuYm9sZDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdpbmZvJzpcclxuICAgICAgICAgICAgICAgIGxvZ1RleHQgPSBsb2NhbEJsLmluZm9QcmVmaXggKyBwbHVnaW5zLmNsYy54dGVybSgxOTgpKGxvZ1RleHQpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ25vcm1hbCc6XHJcbiAgICAgICAgICAgICAgICBsb2dUZXh0ID0gbG9jYWxCbC5ub3JtYWxQcmVmaXggKyBsb2dUZXh0LmN5YW4uYm9sZDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdvayc6XHJcbiAgICAgICAgICAgICAgICBsb2dUZXh0ID0gbG9jYWxCbC5va1ByZWZpeCArIGxvZ1RleHQuYm9sZDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdzdWNjZXNzJzpcclxuICAgICAgICAgICAgICAgIGxvZ1RleHQgPSBsb2NhbEJsLnN1Y2Nlc3NQcmVmaXggKyBsb2dUZXh0LmdyZWVuLmJvbGQ7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnd2Fybic6XHJcbiAgICAgICAgICAgICAgICBsb2dUZXh0ID0gbG9jYWxCbC53YXJuUHJlZml4ICsgbG9nVGV4dC5ib2xkO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2xvZyc6XHJcbiAgICAgICAgICAgICAgICBsb2dUZXh0ID0gbG9jYWxCbC5ub3JtYWxQcmVmaXggKyBsb2dUZXh0LmJsdWUuYm9sZDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgbG9nVGV4dC5ibHVlLmJvbGQ7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygoJ3Vua25vd24gbG9nVHlwZSBmb3IgXCInICsgbG9nVGV4dCArICdcIicpLnJlZC5ib2xkKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zb2xlLmxvZyhsb2dUZXh0KTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGxvY2FsQmwuZXJyb3JQcmVmaXggKyAnWW91IHNlZW0gdG8gaGF2ZSB0cmllZCBsb2dnaW5nIHNvbWV0aGluZyBzdHJhbmdlJy5yZWQuYm9sZCArIGVycm9yKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbn1cclxuXHJcbmxldCBsb2dCcm93c2VyID0gZnVuY3Rpb24obG9nVGV4dCxsb2dUeXBlKXtcclxuICAgIHN3aXRjaCAobG9nVHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlICdkaXInOlxyXG4gICAgICAgICAgICAgICAgbG9nVGV4dCA9IGxvY2FsQmwuZGlyUHJlZml4ICsgcGx1Z2lucy5jbGMueHRlcm0oMjYpKGxvZ1RleHQpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2Vycm9yJzpcclxuICAgICAgICAgICAgICAgIGxvZ1RleHQgPSBsb2NhbEJsLmVycm9yUHJlZml4ICsgbG9nVGV4dC5yZWQuYm9sZDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdpbmZvJzpcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCclYyBJbmZvOiAlYyAnICsgbG9nVGV4dCwnYmFja2dyb3VuZDojRUM0MDdBO2NvbG9yOiNmZmZmZmY7JywnY29sb3I6I0VDNDA3QTsnKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdub3JtYWwnOlxyXG4gICAgICAgICAgICAgICAgbG9nVGV4dCA9IGxvY2FsQmwubm9ybWFsUHJlZml4ICsgbG9nVGV4dC5jeWFuLmJvbGQ7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnb2snOlxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJyVjIE9LOiAlYyAnICsgbG9nVGV4dCxcImJhY2tncm91bmQ6IzAwMDAwMDtjb2xvcjojOEJDMzRBO1wiLFwiY29sb3I6IzAwMDAwMDtcIik7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnc3VjY2Vzcyc6XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnJWMgU3VjY2VzczogJWMgJyArIGxvZ1RleHQsXCJiYWNrZ3JvdW5kOiM4QkMzNEE7Y29sb3I6I2ZmZmZmZjtcIixcImNvbG9yOiM4QkMzNEE7XCIpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3dhcm4nOlxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJyVjIFdhcm46ICVjICcgKyBsb2dUZXh0LFwiYmFja2dyb3VuZDojMDAwMDAwO2NvbG9yOiNGQjhDMDA7XCIsXCJjb2xvcjojMDAwMDAwO1wiKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdsb2cnOlxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJyVjIExvZzogJWMgJyArIGxvZ1RleHQsXCJiYWNrZ3JvdW5kOiM0MkE1RjU7Y29sb3I6I2ZmZmZmZlwiLFwiY29sb3I6IzQyQTVGNTtcIik7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd1bmtub3duIGxvZ1R5cGUgZm9yIFwiJyArIGxvZ1RleHQgKyAnXCInKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxufTsiXX0=