UNPKG

logalize

Version:
229 lines (197 loc) 7.99 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _browserAdapter = require('./browserAdapter'); var _browserAdapter2 = _interopRequireDefault(_browserAdapter); var _formatter = require('./formatter'); var _formatter2 = _interopRequireDefault(_formatter); var _namespaceManager = require('./namespaceManager'); var _namespaceManager2 = _interopRequireDefault(_namespaceManager); var _stylesheet = require('./stylesheet.js'); var _stylesheet2 = _interopRequireDefault(_stylesheet); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } function Logalize() { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } Logalize.print.apply(Logalize, ['log'].concat(args)); } Object.assign(Logalize, { init: function init() { this.configure(); }, configure: function configure() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref$enabled = _ref.enabled, enabled = _ref$enabled === undefined ? true : _ref$enabled, _ref$enableFormatting = _ref.enableFormatting, enableFormatting = _ref$enableFormatting === undefined ? true : _ref$enableFormatting, _ref$collapseNamespac = _ref.collapseNamespaces, collapseNamespaces = _ref$collapseNamespac === undefined ? false : _ref$collapseNamespac; Object.assign(this, { enabled: enabled, enableFormatting: enableFormatting, collapseNamespaces: collapseNamespaces, formattableMethods: ['log', 'info', 'debug', 'warn', 'error', 'focus'] }); if (this.enableFormatting) { this.appendStylesToDOM(); } else { this.removeStylesFromDOM(); } _namespaceManager2.default.configure({ loggingEnabled: this.isEnabled(), collapsed: this.collapseNamespaces }); }, namespace: function namespace() { var _ref2; var returnValue = _namespaceManager2.default.setNamespace.apply(_namespaceManager2.default, arguments); return typeof (_ref2 = arguments.length - 1, arguments.length <= _ref2 ? undefined : arguments[_ref2]) === 'function' ? returnValue : this; }, log: function log() { this.print.apply(this, ['log'].concat(Array.prototype.slice.call(arguments))); }, debug: function debug() { this.print.apply(this, ['debug'].concat(Array.prototype.slice.call(arguments))); }, info: function info() { this.print.apply(this, ['info'].concat(Array.prototype.slice.call(arguments))); }, warn: function warn() { this.print.apply(this, ['warn'].concat(Array.prototype.slice.call(arguments))); }, error: function error() { this.print.apply(this, ['error'].concat(Array.prototype.slice.call(arguments))); }, assert: function assert() { this.print.apply(this, ['assert'].concat(Array.prototype.slice.call(arguments))); }, count: function count(label) { this.print('count', label); }, dir: function dir(obj) { this.print('dir', obj); }, dirxml: function dirxml(obj) { this.print('dirxml', obj); }, profile: function profile() { for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } var func = args.pop(); if (typeof func === 'function') { if (this.isEnabled()) _browserAdapter2.default.profile(args[0]); var returnValue = func(); if (this.isEnabled()) this.profileEnd(); return returnValue; } else { if (this.isEnabled()) _browserAdapter2.default.profile(args[0]); } }, profileEnd: function profileEnd() { if (this.isEnabled()) _browserAdapter2.default.profileEnd(); }, time: function time() { for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { args[_key3] = arguments[_key3]; } var func = args.pop(); if (typeof func === 'function') { if (this.isEnabled()) _browserAdapter2.default.time(args[0]); var returnValue = func(); if (this.isEnabled()) this.timeEnd(args[0]); return returnValue; } else { if (this.isEnabled()) _browserAdapter2.default.time(args[0]); } }, timeEnd: function timeEnd(label) { if (this.isEnabled()) _browserAdapter2.default.timeEnd(label); }, timeStamp: function timeStamp(label) { if (this.isEnabled()) _browserAdapter2.default.timeStamp(label); }, trace: function trace(obj) { this.print('trace', obj); }, group: function group() { for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { args[_key4] = arguments[_key4]; } var func = args.pop(); if (typeof func === 'function') { if (this.isEnabled()) _browserAdapter2.default.group.apply(_browserAdapter2.default, _toConsumableArray(args)); var returnValue = func(); if (this.isEnabled()) this.groupEnd(); return returnValue; } else { if (this.isEnabled()) _browserAdapter2.default.group.apply(_browserAdapter2.default, _toConsumableArray(args).concat([func])); } }, groupCollapsed: function groupCollapsed() { for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { args[_key5] = arguments[_key5]; } var func = args.pop(); if (typeof func === 'function') { if (this.isEnabled()) _browserAdapter2.default.groupCollapsed.apply(_browserAdapter2.default, _toConsumableArray(args)); var returnValue = func(); if (this.isEnabled()) this.groupEnd(); return returnValue; } else { if (this.isEnabled()) _browserAdapter2.default.groupCollapsed.apply(_browserAdapter2.default, _toConsumableArray(args).concat([func])); } }, groupEnd: function groupEnd() { if (this.isEnabled()) _browserAdapter2.default.groupEnd(); }, print: function print(method) { for (var _len6 = arguments.length, args = Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) { args[_key6 - 1] = arguments[_key6]; } if (!this.isEnabled()) return; if (this.formattableMethods.indexOf(method) > -1 && this.enableFormatting) { args = _formatter2.default.format(args); } _namespaceManager2.default.group(); _browserAdapter2.default[method].apply(_browserAdapter2.default, _toConsumableArray(args)); }, // Enable / disable enable: function enable() { if (localStorage) localStorage.setItem('logalizeEnabled', 'true'); _namespaceManager2.default.configure({ loggingEnabled: this.isEnabled() }); }, disable: function disable() { if (localStorage) localStorage.setItem('logalizeEnabled', 'false'); _namespaceManager2.default.configure({ loggingEnabled: this.isEnabled() }); }, // Private isEnabled: function isEnabled() { if (localStorage && localStorage.logalizeEnabled) { return localStorage.logalizeEnabled !== 'false'; } else { return this.enabled; } }, performConsoleAction: function performConsoleAction(action, args) { _namespaceManager2.default.clear(); return _browserAdapter2.default[action].apply(_browserAdapter2.default, _toConsumableArray(args)); }, appendStylesToDOM: function appendStylesToDOM() { if (document.getElementById('logalize-stylesheet')) return; var styleEl = document.createElement('style'); styleEl.id = 'logalize-stylesheet'; styleEl.innerHTML = _stylesheet2.default; document.head.insertBefore(styleEl, document.head.firstChild); }, removeStylesFromDOM: function removeStylesFromDOM() { var stylesheetEl = document.getElementById('logalize-stylesheet'); if (!stylesheetEl) return; stylesheetEl.remove(); } }); exports.default = Logalize;