1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.PrefixFactory = void 0;
|
4 | const MethodFactory_1 = require("./MethodFactory");
|
5 | const defaults = {
|
6 | level: (opts) => `[${opts.level}]`,
|
7 | name: (opts) => opts.logger.name,
|
8 | template: '{{time}} {{level}} ',
|
9 | time: () => new Date().toTimeString().split(' ')[0]
|
10 | };
|
11 | class PrefixFactory extends MethodFactory_1.MethodFactory {
|
12 | constructor(logger, options) {
|
13 | super(logger);
|
14 | this.options = Object.assign({}, defaults, options);
|
15 | }
|
16 | interpolate(level) {
|
17 | return this.options.template.replace(/{{([^{}]*)}}/g, (stache, prop) => {
|
18 | const fn = this.options[prop];
|
19 | if (typeof fn === 'function') {
|
20 | return fn({ level, logger: this.logger });
|
21 | }
|
22 | return stache;
|
23 | });
|
24 | }
|
25 | make(methodName) {
|
26 | const og = super.make(methodName);
|
27 | return (...args) => {
|
28 | const output = this.interpolate(methodName);
|
29 | const [first] = args;
|
30 | if (typeof first === 'string') {
|
31 | args[0] = output + first;
|
32 | }
|
33 | else {
|
34 | args.unshift(output);
|
35 | }
|
36 | og(...args);
|
37 | };
|
38 | }
|
39 | }
|
40 | exports.PrefixFactory = PrefixFactory;
|
41 |
|
\ | No newline at end of file |