UNPKG

react-router-ga

Version:

[![Downloads](https://img.shields.io/npm/dm/react-router-ga)](https://npm.im/react-router-ga) [![Version](https://img.shields.io/npm/v/react-router-ga)](https://npm.im/react-router-ga) [![License](https://img.shields.io/npm/l/react-router-ga)](https://ope

65 lines (51 loc) 1.43 kB
'use strict'; /* global window: true */ /* eslint-disable no-shadow, no-param-reassign, space-before-function-paren */ const LogLevel = require('./LogLevel'); const MethodFactory = require('./MethodFactory'); const PrefixFactory = require('./PrefixFactory'); const defaultLogger = new LogLevel({ name: 'default' }); const cache = { default: defaultLogger }; // Grab the current global log variable in case of overwrite const existing = (typeof window !== 'undefined') ? window.log : null; const loglevel = Object.assign(defaultLogger, { get factories() { return { MethodFactory, PrefixFactory }; }, get loggers() { return cache; }, getLogger(options) { if (typeof options === 'string') { options = { name: options }; } if (!options.id) { options.id = options.name; } const { name, id } = options; const defaults = { level: defaultLogger.level }; if (typeof name !== 'string' || !name || !name.length) { throw new TypeError('You must supply a name when creating a logger'); } let logger = cache[id]; if (!logger) { logger = new LogLevel(Object.assign({}, defaults, options)); cache[id] = logger; } return logger; }, noConflict() { if (typeof window !== 'undefined' && window.log === defaultLogger) { window.log = existing; } return defaultLogger; } }); module.exports = loglevel;