@douglasneuroinformatics/libjs 2.7.0 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/exception.d.ts +4 -1
- package/dist/exception.d.ts.map +1 -1
- package/dist/exception.js +16 -3
- package/package.json +2 -1
package/dist/exception.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { serializeError } from 'serialize-error';
|
|
1
2
|
import type { IsNever, RequiredKeysOf } from 'type-fest';
|
|
2
3
|
import type { z } from 'zod';
|
|
3
4
|
import { Result, ResultAsync } from './vendor/neverthrow.js';
|
|
@@ -32,7 +33,9 @@ interface ExceptionLike extends Error, ExceptionOptions {
|
|
|
32
33
|
toErr(): Result<never, this>;
|
|
33
34
|
toString(): string;
|
|
34
35
|
}
|
|
36
|
+
declare function parseStack(stack: string | undefined): string[];
|
|
35
37
|
declare function parseStack(error: Error): string[];
|
|
38
|
+
declare function errorToJSON(error: Error): string;
|
|
36
39
|
declare abstract class BaseException<TParams extends ExceptionParams, TOptions extends ExceptionOptions> extends Error implements ExceptionLike {
|
|
37
40
|
cause: TOptions['cause'];
|
|
38
41
|
details: TOptions['details'];
|
|
@@ -125,5 +128,5 @@ export declare const ValidationException: ExceptionType<{
|
|
|
125
128
|
[key: string]: unknown;
|
|
126
129
|
}>;
|
|
127
130
|
export type { ExceptionConstructor, ExceptionConstructorArgs, ExceptionLike, ExceptionName, ExceptionOptions, ExceptionParams, ExceptionStatic, ExceptionType };
|
|
128
|
-
export { BaseException, ExceptionBuilder, OutOfRangeException, parseStack, RuntimeException, ValueException };
|
|
131
|
+
export { BaseException, errorToJSON, ExceptionBuilder, OutOfRangeException, parseStack, RuntimeException, serializeError, ValueException };
|
|
129
132
|
//# sourceMappingURL=exception.d.ts.map
|
package/dist/exception.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exception.d.ts","sourceRoot":"","sources":["../src/exception.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"exception.d.ts","sourceRoot":"","sources":["../src/exception.ts"],"names":[],"mappings":"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"}
|
package/dist/exception.js
CHANGED
|
@@ -3,12 +3,25 @@
|
|
|
3
3
|
/* eslint-disable no-dupe-class-members */
|
|
4
4
|
import cleanStack from 'clean-stack';
|
|
5
5
|
import extractStack from 'extract-stack';
|
|
6
|
+
import { isErrorLike, serializeError } from 'serialize-error';
|
|
6
7
|
import stringifyObject from 'stringify-object';
|
|
7
8
|
import { objectify } from './object.js';
|
|
8
9
|
import { indentLines } from './string.js';
|
|
9
10
|
import { err, errAsync, Result, ResultAsync } from './vendor/neverthrow.js';
|
|
10
|
-
function parseStack(
|
|
11
|
-
|
|
11
|
+
function parseStack(errorOrStack) {
|
|
12
|
+
const stack = typeof errorOrStack === 'string' ? errorOrStack : errorOrStack?.stack;
|
|
13
|
+
return extractStack.lines(cleanStack(stack, { pretty: true }));
|
|
14
|
+
}
|
|
15
|
+
function errorToJSON(error) {
|
|
16
|
+
const serialize = (error) => {
|
|
17
|
+
const { cause, stack, ...serialized } = serializeError(error);
|
|
18
|
+
return {
|
|
19
|
+
...serialized,
|
|
20
|
+
cause: isErrorLike(cause) ? serialize(cause) : cause,
|
|
21
|
+
stack: parseStack(stack)
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
return JSON.stringify(serialize(error), null, 2);
|
|
12
25
|
}
|
|
13
26
|
class BaseException extends Error {
|
|
14
27
|
cause;
|
|
@@ -119,4 +132,4 @@ export const { ValidationException } = new ExceptionBuilder()
|
|
|
119
132
|
.setOptionsType()
|
|
120
133
|
.setParams({ message: 'Zod schema validation failed', name: 'ValidationException' })
|
|
121
134
|
.build();
|
|
122
|
-
export { BaseException, ExceptionBuilder, OutOfRangeException, parseStack, RuntimeException, ValueException };
|
|
135
|
+
export { BaseException, errorToJSON, ExceptionBuilder, OutOfRangeException, parseStack, RuntimeException, serializeError, ValueException };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@douglasneuroinformatics/libjs",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.8.0",
|
|
5
5
|
"packageManager": "pnpm@10.3.0",
|
|
6
6
|
"description": "A collection of utility functions and types for Node.js and the browser",
|
|
7
7
|
"author": "Joshua Unrau",
|
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"clean-stack": "^5.2.0",
|
|
46
46
|
"extract-stack": "^3.0.0",
|
|
47
|
+
"serialize-error": "^12.0.0",
|
|
47
48
|
"stringify-object": "^5.0.0",
|
|
48
49
|
"type-fest": "^4.34.1"
|
|
49
50
|
},
|