UNPKG

universal-logger-browser

Version:
78 lines (60 loc) 2.7 kB
'use strict'; exports.__esModule = true; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /* eslint no-console: 0 */ var defaultFormatter = function defaultFormatter(context, messages) { var _context = _extends({}, context), level = _context.level, namespace = _context.namespace; var formatters = []; if (level && level.name) { formatters.push(level.name.toUpperCase()); } if (namespace) { formatters.push(namespace); } messages = [formatters.join(' ')].concat(messages); return messages; }; var nativeConsoleMethods = { trace: typeof console !== 'undefined' && console.trace, debug: typeof console !== 'undefined' && console.debug, info: typeof console !== 'undefined' && console.info, warn: typeof console !== 'undefined' && console.warn, error: typeof console !== 'undefined' && console.error }; var noop = function noop() {}; var minimal = function minimal(options) { var _options = _extends({}, options), _options$useNativeCon = _options.useNativeConsoleMethods, useNativeConsoleMethods = _options$useNativeCon === undefined ? true : _options$useNativeCon, _options$showSource = _options.showSource, showSource = _options$showSource === undefined ? true : _options$showSource, _options$formatter = _options.formatter, formatter = _options$formatter === undefined ? defaultFormatter : _options$formatter; if (typeof formatter !== 'function') { formatter = function formatter(context, messages) { return messages; }; } return function (context, messages) { var next = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : noop; if (typeof next !== 'function') { next = noop; } if (typeof console === 'undefined') { next(); return; } messages = formatter(context, messages); if (showSource && context.stackframes.length > 0) { var stackframeIndex = Math.min(4, context.stackframes.length - 1); var source = context.stackframes[stackframeIndex].source || ''; messages = messages.concat(source); } var log = useNativeConsoleMethods ? nativeConsoleMethods[context.level.name] || console.log || noop : console.log || noop; Function.prototype.apply.call(log, console, messages); next(); }; }; exports['default'] = minimal;