Skip to content
This repository was archived by the owner on Dec 4, 2024. It is now read-only.

Commit 2ab7864

Browse files
fix: correct status ranges and merge bug
1 parent 69313c2 commit 2ab7864

File tree

5 files changed

+25
-9
lines changed

5 files changed

+25
-9
lines changed

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
},
1414
"dependencies": {
1515
"colorette": "2.0.19",
16+
"lodash.merge": "4.6.2",
1617
"pino": "8.7.0",
1718
"pino-http": "8.2.1",
1819
"pino-pretty": "9.1.1",
@@ -22,6 +23,7 @@
2223
"@commitlint/cli": "17.1.2",
2324
"@istanbuljs/nyc-config-typescript": "1.0.2",
2425
"@types/chai": "4.3.3",
26+
"@types/lodash.merge": "^4.6.7",
2527
"@types/mocha": "9.1.1",
2628
"@voiceflow/commitlint-config": "2.0.0",
2729
"@voiceflow/eslint-config": "7.0.0",

src/http.logger.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ import { createJSONConfig } from './json.logger';
99
import { LogFormat } from './log-format.enum';
1010
import { LogLevel } from './log-level.enum';
1111
import { LoggerOptions } from './logger-options.interface';
12-
import { getColorizer, isErrorStatus, isWarnStatus } from './utils';
12+
import { getColorizer, isErrorResponse, isWarnResponse } from './utils';
1313

1414
export const createHTTPConfig = ({ format, level }: LoggerOptions): Options => ({
1515
customLogLevel: (_req, res) => {
16-
if (isWarnStatus(res)) return LogLevel.WARN;
17-
if (res.err || isErrorStatus(res)) return LogLevel.ERROR;
16+
if (isWarnResponse(res)) return LogLevel.WARN;
17+
if (isErrorResponse(res)) return LogLevel.ERROR;
1818
return LogLevel.INFO;
1919
},
2020

src/logger.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import _merge from 'lodash.merge';
2+
13
import { createDetailedLogger } from './detailed.logger';
24
import { createInlineLogger } from './inline.logger';
35
import { createJSONLogger } from './json.logger';
@@ -11,7 +13,7 @@ export const DEFAULT_OPTIONS: LoggerOptions = {
1113
};
1214

1315
export const createLogger = (options: Partial<LoggerOptions> = {}) => {
14-
const { format, level } = { ...DEFAULT_OPTIONS, ...options };
16+
const { format, level } = _merge({}, DEFAULT_OPTIONS, options);
1517

1618
switch (format) {
1719
case LogFormat.DETAILED:

src/utils.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ import { ServerResponse } from 'node:http';
22

33
import { green, red, yellow } from 'colorette';
44

5-
export const isWarnStatus = (res: ServerResponse) => res.statusCode >= 400 && res.statusCode < 499;
6-
export const isErrorStatus = (res: ServerResponse) => res.statusCode >= 500 && res.statusCode < 599;
5+
export const isWarnResponse = (res: ServerResponse) => res.statusCode >= 400 && res.statusCode <= 499;
6+
export const isErrorResponse = (res: ServerResponse) => res.err || (res.statusCode >= 500 && res.statusCode <= 599);
77
export const getColorizer = (res: ServerResponse) => {
8-
if (isWarnStatus(res)) return yellow;
9-
if (res.err || isErrorStatus(res)) return red;
8+
if (isWarnResponse(res)) return yellow;
9+
if (isErrorResponse(res)) return red;
1010
return green;
1111
};

yarn.lock

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -812,6 +812,18 @@
812812
resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
813813
integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4=
814814

815+
"@types/lodash.merge@^4.6.7":
816+
version "4.6.7"
817+
resolved "https://registry.yarnpkg.com/@types/lodash.merge/-/lodash.merge-4.6.7.tgz#0af6555dd8bc6568ef73e5e0d820a027362946b1"
818+
integrity sha512-OwxUJ9E50gw3LnAefSHJPHaBLGEKmQBQ7CZe/xflHkyy/wH2zVyEIAKReHvVrrn7zKdF58p16We9kMfh7v0RRQ==
819+
dependencies:
820+
"@types/lodash" "*"
821+
822+
"@types/lodash@*":
823+
version "4.14.189"
824+
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.189.tgz#975ff8c38da5ae58b751127b19ad5e44b5b7f6d2"
825+
integrity sha512-kb9/98N6X8gyME9Cf7YaqIMvYGnBSWqEci6tiettE6iJWH1XdJz/PO8LB0GtLCG7x8dU3KWhZT+lA1a35127tA==
826+
815827
"@types/minimatch@*":
816828
version "5.1.2"
817829
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca"
@@ -6021,7 +6033,7 @@ [email protected]:
60216033
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
60226034
integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
60236035

6024-
lodash.merge@^4.6.2:
6036+
lodash.merge@4.6.2, lodash.merge@^4.6.2:
60256037
version "4.6.2"
60266038
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
60276039
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==

0 commit comments

Comments
 (0)