@veams/plugin-logger
Version:
The VeamsLogger plugin disables `console` logs by default. You can provide parameters (`?devmode`) in the URL to show the logs in your console.
76 lines • 2.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Imports
*/
var extend_1 = require("@veams/helpers/lib/object/extend");
/**
* Plugin
*/
var VeamsLogger = {
options: {
devmodeParam: 'devmode',
loggerParam: 'logger'
},
pluginName: 'Logger',
initialize: function (Veams, opts) {
if (opts) {
this.options = extend_1.default(this.options, opts || {});
}
/**
* Devmode and logger
*/
Veams.devmode = false;
Veams.logger = false;
if (document.location.search.indexOf(this.options.devmodeParam) > -1 ||
window.sessionStorage && sessionStorage.getItem('devmodeEnabled')) {
Veams.devmode = true;
if (window.sessionStorage && !sessionStorage.getItem('devmodeEnabled')) {
sessionStorage.setItem('devmodeEnabled', 'true');
}
document.documentElement.classList.add(this.options.devmodeParam);
}
if (document.location.search.indexOf(this.options.loggerParam) > -1) {
Veams.logger = true;
}
// hide all warnings and logs if not in devmode
if (!Veams.devmode) {
console.log = console.warn = function () {
};
}
// add console output element (triggered by parameter 'devmode' and 'logger' in url)
if (Veams.devmode && Veams.logger) {
var logger_1 = document.createElement('pre');
logger_1.setAttribute('id', 'logger');
document.body.appendChild(logger_1);
var write_1 = function () {
for (var i = 0; i < arguments.length; i++) {
if (typeof arguments[i] === 'object') {
logger_1.innerHTML +=
(JSON && JSON.stringify ? JSON.stringify(arguments[i], undefined, 2) : arguments[i]) +
'<br />';
}
else {
logger_1.innerHTML += arguments[i] + '<br />';
}
}
logger_1.innerHTML += '<br />';
logger_1.scrollTop = logger_1.scrollHeight;
};
console.error = function () {
logger_1.innerHTML += '[Error]<br />';
write_1.apply(this, arguments);
};
console.warn = function () {
logger_1.innerHTML += '[Warn]<br />';
write_1.apply(this, arguments);
};
console.log = function () {
logger_1.innerHTML += '[Log]<br />';
write_1.apply(this, arguments);
};
}
}
};
exports.default = VeamsLogger;
//# sourceMappingURL=index.js.map