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

Commit 13c27e2

Browse files
committed
[1.1.1] Add original error in result object in createErrorSerializer
1 parent 5e7ff1e commit 13c27e2

4 files changed

Lines changed: 37 additions & 9 deletions

File tree

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@augu/pino-transport",
33
"description": "🐻‍❄️🌲 Pino transport that roughly matches what I like to see in my logs.",
4-
"version": "1.1.0",
4+
"version": "1.1.1",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",
77
"files": [
@@ -45,7 +45,7 @@
4545
"prettier": "2.8.3",
4646
"rimraf": "4.1.2",
4747
"signale": "1.4.0",
48-
"tsup": "^6.5.0",
48+
"tsup": "6.5.0",
4949
"tsx": "3.12.2",
5050
"typescript": "4.9.4"
5151
},

src/formatters/default.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,15 +79,18 @@ export class DefaultFormatter extends BaseFormatter {
7979
});
8080

8181
#dateTimeFormatter: Intl.DateTimeFormat;
82+
#targetPadding: number;
8283
#levels: Record<number, string>;
8384

8485
constructor(
8586
levels: Record<number, string> = defaultLevelColors,
86-
formatter: Intl.DateTimeFormat = defaultDateTimeFormatter
87+
formatter: Intl.DateTimeFormat = defaultDateTimeFormatter,
88+
targetPadding: number = 30
8789
) {
8890
super();
8991

9092
this.#dateTimeFormatter = formatter;
93+
this.#targetPadding = targetPadding;
9194
this.#levels = levels;
9295
}
9396

@@ -101,8 +104,8 @@ export class DefaultFormatter extends BaseFormatter {
101104
const hostname = colors.magenta(`${this.#username.get()}@${record.hostname}`);
102105
const pid = colors.isColorSupported ? `\x1b[38;2;169;147;227m${record.pid}\x1b[0m` : record.pid;
103106
const target = colors.isColorSupported
104-
? `\x1b[38;2;120;231;255m${record.name || 'root'}\x1b[0m`
105-
: record.name || 'root';
107+
? `\x1b[38;2;120;231;255m${(record.name || 'root').padEnd(this.#targetPadding, ' ')}\x1b[0m`
108+
: (record.name || 'root').padEnd(this.#targetPadding, ' ');
106109

107110
// 120, 231, 255
108111
buf += `${level} ${target} ${PIPE} ${hostname} ${gray('(')}${pid}${gray(')')}`.trim();

src/serializers/error.ts

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
import { useCallsites } from '../utils';
2525
import { deprecate } from '../deprecated';
2626

27+
export const originalErrorSymbol = Symbol.for('$noel:pino:serialization:originalError');
28+
2729
export interface SerializedCallsite {
2830
eval_invocation: boolean;
2931
this_context: string;
@@ -41,6 +43,9 @@ export interface SerializedError {
4143
name: string;
4244
message: string;
4345
stack?: SerializedCallsite[];
46+
47+
/** The original {@link Error} that was thrown */
48+
[originalErrorSymbol]?: Error;
4449
}
4550

4651
/**
@@ -51,10 +56,23 @@ export interface SerializedError {
5156
export const createErrorSerializer =
5257
(callsites = true) =>
5358
(error: Error): SerializedError => {
54-
if (!callsites) return { name: error.name, message: error.message };
59+
if (!callsites) {
60+
const result: SerializedError = {
61+
name: error.name,
62+
message: error.message
63+
};
64+
65+
Object.defineProperty(result, originalErrorSymbol, {
66+
enumerable: false,
67+
value: error
68+
});
69+
70+
return result;
71+
}
5572

5673
const stack = useCallsites(error);
57-
return {
74+
75+
const result: SerializedError = {
5876
name: error.name,
5977
message: error.message,
6078
stack: stack
@@ -72,6 +90,13 @@ export const createErrorSerializer =
7290
col: site.getColumnNumber() || -1
7391
}))
7492
};
93+
94+
Object.defineProperty(result, originalErrorSymbol, {
95+
enumerable: false,
96+
value: error
97+
});
98+
99+
return result;
75100
};
76101

77102
/**

yarn.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ __metadata:
6060
rimraf: 4.1.2
6161
signale: 1.4.0
6262
sonic-boom: 3.2.1
63-
tsup: ^6.5.0
63+
tsup: 6.5.0
6464
tsx: 3.12.2
6565
typescript: 4.9.4
6666
dependenciesMeta:
@@ -3013,7 +3013,7 @@ __metadata:
30133013
languageName: node
30143014
linkType: hard
30153015

3016-
"tsup@npm:^6.5.0":
3016+
"tsup@npm:6.5.0":
30173017
version: 6.5.0
30183018
resolution: "tsup@npm:6.5.0"
30193019
dependencies:

0 commit comments

Comments
 (0)