Skip to content

Commit 3d6d33c

Browse files
committed
feat: added support for format specifiers
1 parent 4b758fe commit 3d6d33c

File tree

3 files changed

+26
-2
lines changed

3 files changed

+26
-2
lines changed

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@
1616
"Titanism"
1717
],
1818
"dependencies": {
19+
"@ladjs/format-util": "^1.0.4",
1920
"ansi-colors": "^4.1.3",
2021
"clf-date": "^0.2.1",
22+
"format-specifiers": "^1.0.0",
2123
"iserror": "^0.0.2",
2224
"merge-options": "^3.0.4",
2325
"ms": "^2.1.3",

src/index.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
const Axe = require('axe');
2+
const format = require('@ladjs/format-util');
3+
const formatSpecifiers = require('format-specifiers');
24
const isError = require('iserror');
3-
const parseErr = require('parse-err');
45
const mergeOptions = require('merge-options');
6+
const parseErr = require('parse-err');
57
const pkg = require('../package.json');
68
const {
79
isNull,
@@ -48,7 +50,15 @@ class Cabin {
4850
isFunction(this.config.logger[key])
4951
)) {
5052
this[level] = (...args) => {
51-
if (args[1]) args[1] = this.parseArg(args[1]);
53+
// support format specifiers
54+
if (
55+
typeof args[0] === 'string' &&
56+
formatSpecifiers.some((t) => args[0].includes(t)) &&
57+
args[1]
58+
) {
59+
args[0] = format(args[0], args[1]);
60+
delete args[1];
61+
} else if (args[1]) args[1] = this.parseArg(args[1]);
5262
return this.config.logger[level](...Array.prototype.slice.call(args));
5363
};
5464
}

src/middleware.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
const format = require('@ladjs/format-util');
2+
const formatSpecifiers = require('format-specifiers');
13
const onFinished = require('on-finished');
24
const parseRequest = require('parse-request');
35
const { isFunction, isUndefined } = require('./utils');
@@ -19,6 +21,16 @@ module.exports = function (...args) {
1921
isFunction(this.config.logger[key])
2022
)) {
2123
logger[key] = (...parameters) => {
24+
// support format specifiers
25+
if (
26+
typeof parameters[0] === 'string' &&
27+
formatSpecifiers.some((t) => parameters[0].includes(t)) &&
28+
parameters[1]
29+
) {
30+
parameters[0] = format(parameters[0], parameters[1]);
31+
parameters[1] = undefined;
32+
}
33+
2234
parameters[1] = isUndefined(parameters[1])
2335
? {}
2436
: this.parseArg(parameters[1]);

0 commit comments

Comments
 (0)