1 | "use strict";
|
2 | var __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 | }));
|
9 | var __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 | };
|
12 | Object.defineProperty(exports, "__esModule", { value: true });
|
13 | const LogLevel_1 = require("./LogLevel");
|
14 | const MethodFactory_1 = require("./MethodFactory");
|
15 | const PrefixFactory_1 = require("./PrefixFactory");
|
16 | __exportStar(require("./LogLevel"), exports);
|
17 | __exportStar(require("./MethodFactory"), exports);
|
18 | __exportStar(require("./PrefixFactory"), exports);
|
19 | const factories = Symbol('log-factories');
|
20 | class 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 | }
|
56 | exports.default = new DefaultLogger();
|
57 |
|
\ | No newline at end of file |