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

Commit 4f8f45f

Browse files
authored
feat: look for original url when formatting (PL-000) (#61)
1 parent 9f5e6c7 commit 4f8f45f

File tree

12 files changed

+14841
-10167
lines changed

12 files changed

+14841
-10167
lines changed

.circleci/config.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
version: 2.1
22

33
orbs:
4-
vfcommon: voiceflow/common@0.15.1
4+
vfcommon: voiceflow/common@0.48.0
55
sonarcloud: sonarsource/[email protected]
66

77
jobs:
88
test:
9-
executor: vfcommon/default-executor
9+
executor: vfcommon/code-test-executor-node-20
1010
steps:
1111
- checkout
12-
- vfcommon/install_node_modules
12+
- vfcommon/install_node_modules:
13+
cache_prefix: v1
1314
- attach_workspace:
1415
at: ~/voiceflow
1516
- vfcommon/lint_report:

.depcheckrc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"husky",
2121
"istanbul",
2222
"lint-staged",
23-
"pino-pretty"
23+
"pino-pretty",
24+
"rimraf"
2425
]
2526
}

.gitignore

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,4 +69,13 @@ build/
6969

7070
#Sonar report
7171
sonar/
72-
nyc_coverage*
72+
nyc_coverage*
73+
74+
# Yarn
75+
.pnp.*
76+
.yarn/*
77+
!.yarn/patches
78+
!.yarn/plugins
79+
!.yarn/releases
80+
!.yarn/sdks
81+
!.yarn/versions

.lintstagedrc.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
module.exports = {
22
'package.json': ['fixpack'],
3-
'**/*.{js,ts}': ['eslint --fix', 'prettier-eslint --write'],
3+
'**/*.{js,ts}': ['eslint --fix'],
44
};

.yarn/releases/yarn-3.2.1.cjs

Lines changed: 786 additions & 0 deletions
Large diffs are not rendered by default.

.yarnrc.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
yarnPath: .yarn/releases/yarn-3.2.1.cjs
2+
enableTelemetry: false
3+
nodeLinker: node-modules

package.json

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,14 @@
4444
"mocha": "10.0.0",
4545
"nyc": "^15.1.0",
4646
"prettier": "2.7.1",
47+
"rimraf": "5.0.0",
4748
"ts-mocha": "10.0.0",
4849
"tsc-alias": "1.7.0",
4950
"typescript": "4.8.3"
5051
},
52+
"engines": {
53+
"node": "20"
54+
},
5155
"files": [
5256
"build/"
5357
],
@@ -57,11 +61,12 @@
5761
],
5862
"license": "ISC",
5963
"main": "build/main.js",
64+
"packageManager": "[email protected]",
6065
"prettier": "@voiceflow/prettier-config",
6166
"repository": "[email protected]:voiceflow/logger.git",
6267
"scripts": {
6368
"build": "yarn clean && tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json",
64-
"clean": "rimraf build",
69+
"clean": "yarn rimraf build",
6570
"commit": "cz",
6671
"eslint-output": "eslint-output",
6772
"lint": "eslint '**/*.{js,ts}'",
@@ -75,5 +80,9 @@
7580
"test:single": "NODE_ENV=test ts-mocha --paths --config ./config/test/.mocharc.yml",
7681
"test:unit": "NODE_ENV=test nyc --report-dir=nyc_coverage_unit ts-mocha --paths --config ./config/test/.mocharc.yml 'test/**/*.unit.ts'"
7782
},
78-
"types": "build/main.d.ts"
83+
"types": "build/main.d.ts",
84+
"volta": {
85+
"node": "20.10.0",
86+
"yarn": "3.2.1"
87+
}
7988
}

src/http.logger.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
/* eslint-disable sonarjs/no-nested-template-literals */
2+
import type { IncomingMessage } from 'node:http';
3+
24
import { gray, white } from 'colorette';
35
import pinoHttp, { Options } from 'pino-http';
46
import { match } from 'ts-pattern';
@@ -19,16 +21,16 @@ export const createHTTPConfig = ({ format, level }: LoggerOptions): Options => (
1921
},
2022
wrapSerializers: true,
2123

22-
...match<LogFormat, Options>(format)
24+
...match<LogFormat, Options<IncomingMessage & { originalUrl?: string }>>(format)
2325
.with(LogFormat.INLINE, () => ({
2426
customSuccessMessage: (req, res) =>
25-
`${getColorizer(res)(`(${res.statusCode})`)} ${white(`${req.method} ${req.url}`)} ${gray(
27+
`${getColorizer(res)(`(${res.statusCode})`)} ${white(`${req.method} ${req.originalUrl ?? req.url}`)} ${gray(
2628
`(${req.socket.remoteAddress}:${req.socket.remotePort})`
2729
)}`,
2830
customErrorMessage: (req, res) =>
29-
`${getColorizer(res)(`(${res.statusCode})`)} ${white(`${req.method} ${req.url} -`)} ${gray(
31+
`${getColorizer(res)(`(${res.statusCode})`)} ${white(`${req.method} ${req.originalUrl ?? req.url}`)} ${gray(
3032
`(${req.socket.remoteAddress}:${req.socket.remotePort})`
31-
)} ${res.err?.message}`,
33+
)} - ${res.err?.message}`,
3234
...createInlineConfig(level),
3335
}))
3436
.with(LogFormat.DETAILED, () => createDetailedConfig(level))

src/serializers/maximal.ts

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,14 @@
1-
import { SerializedError, SerializedRequest, SerializedResponse } from 'pino';
1+
import { MinimalSerializer } from './minimal';
2+
import type { Serializer } from './serializer.interface';
23

3-
export const MaximalSerializer = {
4-
req: (req: SerializedRequest) => ({
5-
id: req.id,
6-
method: req.method,
7-
url: req.url,
8-
query: req.query,
9-
params: req.params,
4+
export const MaximalSerializer: Serializer = {
5+
req: (req) => ({
6+
...MinimalSerializer.req(req),
107
headers: Object.fromEntries(Object.entries(req.headers).filter(([key]) => key === 'authorization')),
11-
remoteAddress: req.remoteAddress,
12-
remotePort: req.remotePort,
138
}),
14-
res: (res: SerializedResponse) => ({
15-
statusCode: res.statusCode,
9+
res: (res) => ({
10+
...MinimalSerializer.res(res),
1611
headers: res.headers,
1712
}),
18-
err: (err: SerializedError) => ({
19-
type: err.type,
20-
message: err.message,
21-
stack: err.stack,
22-
}),
13+
err: (err) => MinimalSerializer.err(err),
2314
};

src/serializers/minimal.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
import { SerializedError, SerializedRequest, SerializedResponse } from 'pino';
1+
import type { Serializer } from './serializer.interface';
22

3-
export const MinimalSerializer = {
4-
req: (req: SerializedRequest) => ({
3+
export const MinimalSerializer: Serializer = {
4+
req: (req) => ({
55
method: req.method,
6-
url: req.url,
6+
url: req.raw.originalUrl ?? req.url,
77
query: req.query,
88
params: req.params,
99
remoteAddress: req.remoteAddress,
1010
remotePort: req.remotePort,
1111
}),
12-
res: (res: SerializedResponse) => ({
12+
res: (res) => ({
1313
statusCode: res.statusCode,
1414
}),
15-
err: (err: SerializedError) => ({
15+
err: (err) => ({
1616
type: err.type,
1717
message: err.message,
1818
stack: err.stack,

0 commit comments

Comments
 (0)