UNPKG

2.14 kBJavaScriptView Raw
1"use strict";
2var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3 if (k2 === undefined) k2 = k;
4 Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5}) : (function(o, m, k, k2) {
6 if (k2 === undefined) k2 = k;
7 o[k2] = m[k];
8}));
9var __exportStar = (this && this.__exportStar) || function(m, exports) {
10 for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11};
12Object.defineProperty(exports, "__esModule", { value: true });
13const LogLevel_1 = require("./LogLevel");
14const MethodFactory_1 = require("./MethodFactory");
15const PrefixFactory_1 = require("./PrefixFactory");
16__exportStar(require("./LogLevel"), exports);
17__exportStar(require("./MethodFactory"), exports);
18__exportStar(require("./PrefixFactory"), exports);
19const factories = Symbol('log-factories');
20class DefaultLogger extends LogLevel_1.LogLevel {
21 constructor() {
22 super({ name: 'default' });
23 this.cache = { default: this };
24 this[factories] = { MethodFactory: MethodFactory_1.MethodFactory, PrefixFactory: PrefixFactory_1.PrefixFactory };
25 }
26 get factories() {
27 return this[factories];
28 }
29 get loggers() {
30 return this.cache;
31 }
32 create(opts) {
33 let options;
34 if (typeof opts === 'string') {
35 options = { name: opts };
36 }
37 else {
38 options = Object.assign({}, opts);
39 }
40 if (!options.id) {
41 options.id = options.name.toString();
42 }
43 const { name, id } = options;
44 const defaults = { level: this.level };
45 if (typeof name !== 'string' || !name || !name.length) {
46 throw new TypeError('You must supply a name when creating a logger.');
47 }
48 let logger = this.cache[id];
49 if (!logger) {
50 logger = new LogLevel_1.LogLevel(Object.assign({}, defaults, options));
51 this.cache[id] = logger;
52 }
53 return logger;
54 }
55}
56exports.default = new DefaultLogger();
57//# sourceMappingURL=index.js.map
\No newline at end of file