UNPKG

@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
'use strict'; 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