@pilotlab/lux-debug
Version:
A luxurious user experience framework, developed by your friends at Pilot.
84 lines • 3.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var lux_is_1 = require("@pilotlab/lux-is");
var logger_1 = require("./logger");
var logMessage_1 = require("./logMessage");
var Debug = (function () {
function Debug() {
}
Debug.setCategoryMode = function (category, isOn) {
this.logger.setCategoryMode(category, isOn);
};
Debug.assert = function (isConditionMet, message, tag, category) {
return this.logger.assert(isConditionMet, message, tag, category);
};
Debug.data = function (data, tag, category) { return this.logger.data(data, tag, category); };
Debug.error = function (message, tag, category) { return this.logger.error(message, tag, category); };
Debug.info = function (message, tag, category) { return this.logger.info(message, tag, category); };
Debug.warn = function (message, tag, category) {
if (!this.isProduction)
return this.logger.warn(message, tag, category);
else
return new logMessage_1.default(this.logger);
};
Debug.log = function (message, tag, category) {
if (!this.isProduction)
return this.logger.log(message, tag, category);
else
return new logMessage_1.default(this.logger);
};
Debug.test = function (message, tag, category) {
if (!this.isProduction)
return this.logger.test(message, tag, category);
else
return new logMessage_1.default(this.logger);
};
Debug.save = function (data, fileName) {
if (fileName === void 0) { fileName = 'console.json'; }
if (!data)
return;
if (typeof data === 'object')
data = JSON.stringify(data, undefined, 4);
var blob = new Blob([data], { type: 'text/json' });
var mouseEvent = document.createEvent('MouseEvents');
var link = document.createElement('a');
link.setAttribute('download', fileName);
link.href = window.URL.createObjectURL(blob);
link.dataset['downloadurl'] = ['text/json', fileName, link.href].join(':');
mouseEvent.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
link.dispatchEvent(mouseEvent);
};
Debug.copy = function (data, category) {
if (!data)
return;
if (typeof data === 'object')
data = JSON.stringify(data, undefined, 4);
var listenerCopy = function (e) {
if (lux_is_1.default.empty(window))
return;
var win = window;
var isIE = (lux_is_1.default.notEmpty(navigator.userAgent.match(/msie/i))
|| lux_is_1.default.notEmpty(navigator.userAgent.match(/trident/i)));
if (isIE)
win['clipboardData'].setData('text/plain', data);
else
e.clipboardData.setData('text/plain', data);
e.preventDefault();
};
document.addEventListener('copy', listenerCopy);
document.execCommand('copy');
document.removeEventListener('copy', listenerCopy);
console.log('%ccopied', 'color: blue');
console.log(data);
};
Debug.getClassName = function (instance) {
var results = (instance).constructor.name;
return (results && results.length > 1) ? results : '';
};
Debug.isProduction = false;
Debug.logger = new logger_1.default();
return Debug;
}());
exports.Debug = Debug;
exports.default = Debug;
//# sourceMappingURL=debug.js.map