diff options
Diffstat (limited to 'node_modules/loglevelnext/index.js')
| -rw-r--r-- | node_modules/loglevelnext/index.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/node_modules/loglevelnext/index.js b/node_modules/loglevelnext/index.js new file mode 100644 index 00000000..000d636d --- /dev/null +++ b/node_modules/loglevelnext/index.js @@ -0,0 +1,61 @@ +'use strict'; + +require('object.assign/shim')(); +require('es6-symbol/implement'); + +/* global window: true */ +const LogLevel = require('./lib/LogLevel'); +const MethodFactory = require('./lib/MethodFactory'); +const PrefixFactory = require('./factory/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; + +module.exports = 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; + } +}); |
