feat(storage-fs): serialize errors recursively if "cause" is an Error instance
This commit is contained in:
parent
d4d87036df
commit
e79dd4bca9
2 changed files with 16 additions and 1 deletions
5
.changeset/shiny-penguins-kneel.md
Normal file
5
.changeset/shiny-penguins-kneel.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
'@emigrate/storage-fs': minor
|
||||
---
|
||||
|
||||
Serialize errors recursively if they have a "cause" set to an Error instance
|
||||
|
|
@ -11,6 +11,16 @@ type SerializedError = {
|
|||
name: string;
|
||||
message: string;
|
||||
stack?: string;
|
||||
cause?: unknown;
|
||||
};
|
||||
|
||||
const serializeError = (error: Error): SerializedError => {
|
||||
return {
|
||||
name: error.name,
|
||||
message: error.message,
|
||||
stack: error.stack,
|
||||
cause: error.cause instanceof Error ? serializeError(error.cause) : error.cause,
|
||||
};
|
||||
};
|
||||
|
||||
export default function storageFs({ filename }: StorageFsOptions): EmigrateStorage {
|
||||
|
|
@ -41,7 +51,7 @@ export default function storageFs({ filename }: StorageFsOptions): EmigrateStora
|
|||
[migration]: {
|
||||
status,
|
||||
date: new Date().toISOString(),
|
||||
error: error ? { name: error.name, message: error.message, stack: error.stack } : undefined,
|
||||
error: error ? serializeError(error) : undefined,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue