UNPKG

1.33 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.PrefixFactory = void 0;
4const MethodFactory_1 = require("./MethodFactory");
5const defaults = {
6 level: (opts) => `[${opts.level}]`,
7 name: (opts) => opts.logger.name,
8 template: '{{time}} {{level}} ',
9 time: () => new Date().toTimeString().split(' ')[0]
10};
11class 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}
40exports.PrefixFactory = PrefixFactory;
41//# sourceMappingURL=PrefixFactory.js.map
\No newline at end of file