@clipboard-health/util-ts 2.9.2 → 2.9.4
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/README.md
CHANGED
|
@@ -33,19 +33,25 @@ See `./src/lib` for each utility.
|
|
|
33
33
|
import { deepEqual, equal } from "node:assert/strict";
|
|
34
34
|
|
|
35
35
|
import { ERROR_CODES, ServiceError } from "@clipboard-health/util-ts";
|
|
36
|
+
import { z } from "zod";
|
|
36
37
|
|
|
37
38
|
{
|
|
38
39
|
const error = new ServiceError("boom");
|
|
39
40
|
equal(error.toString(), `ServiceError[${error.id}]: [internal]: boom`);
|
|
40
41
|
}
|
|
41
42
|
|
|
42
|
-
{
|
|
43
|
-
|
|
43
|
+
try {
|
|
44
|
+
throw new Error("boom");
|
|
45
|
+
} catch (error) {
|
|
44
46
|
const serviceError = ServiceError.fromUnknown(error);
|
|
45
|
-
equal(
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
equal(serviceError.toString(), `ServiceError[${serviceError.id}]: [internal]: boom`);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
{
|
|
51
|
+
const serviceError = ServiceError.fromZodError(
|
|
52
|
+
new z.ZodError([{ code: "custom", path: ["foo"], message: "boom" }]),
|
|
48
53
|
);
|
|
54
|
+
equal(serviceError.toString(), `ServiceError[${serviceError.id}]: [unprocessableEntity]: boom`);
|
|
49
55
|
}
|
|
50
56
|
|
|
51
57
|
{
|
|
@@ -53,10 +59,7 @@ import { ERROR_CODES, ServiceError } from "@clipboard-health/util-ts";
|
|
|
53
59
|
issues: [{ message: "boom" }],
|
|
54
60
|
cause: new Error("Original error"),
|
|
55
61
|
});
|
|
56
|
-
equal(
|
|
57
|
-
errorWithCause.toString(),
|
|
58
|
-
`ServiceError[${errorWithCause.id}]: [internal]: boom; [cause]: Error: Original error`,
|
|
59
|
-
);
|
|
62
|
+
equal(errorWithCause.toString(), `ServiceError[${errorWithCause.id}]: [internal]: boom`);
|
|
60
63
|
}
|
|
61
64
|
|
|
62
65
|
{
|
|
@@ -78,7 +81,7 @@ import { ERROR_CODES, ServiceError } from "@clipboard-health/util-ts";
|
|
|
78
81
|
|
|
79
82
|
equal(
|
|
80
83
|
multipleIssues.toString(),
|
|
81
|
-
`ServiceError[${multipleIssues.id}]: [badRequest]: Invalid email format; [unprocessableEntity]: Phone number too short
|
|
84
|
+
`ServiceError[${multipleIssues.id}]: [badRequest]: Invalid email format; [unprocessableEntity]: Phone number too short`,
|
|
82
85
|
);
|
|
83
86
|
|
|
84
87
|
deepEqual(multipleIssues.toJsonApi(), {
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clipboard-health/util-ts",
|
|
3
3
|
"description": "TypeScript utilities.",
|
|
4
|
-
"version": "2.9.
|
|
4
|
+
"version": "2.9.4",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"tslib": "2.8.0"
|
|
7
7
|
},
|
|
8
8
|
"devDependencies": {
|
|
9
|
-
"type-fest": "4.26.1"
|
|
9
|
+
"type-fest": "4.26.1",
|
|
10
|
+
"zod": "3.23.8"
|
|
10
11
|
},
|
|
11
12
|
"keywords": [],
|
|
12
13
|
"license": "MIT",
|
|
@@ -29,7 +29,7 @@ export type ServiceErrorParams = string | {
|
|
|
29
29
|
issues: readonly ServiceIssue[];
|
|
30
30
|
};
|
|
31
31
|
export interface ZodLike {
|
|
32
|
-
name:
|
|
32
|
+
name: string;
|
|
33
33
|
issues: ReadonlyArray<{
|
|
34
34
|
message?: string | undefined;
|
|
35
35
|
path: Array<string | number>;
|
|
@@ -44,7 +44,7 @@ interface Issue extends ServiceIssue {
|
|
|
44
44
|
*/
|
|
45
45
|
export declare class ServiceError extends Error {
|
|
46
46
|
/**
|
|
47
|
-
* Converts an unknown value to a `ServiceError`.
|
|
47
|
+
* Converts an unknown value to a `ServiceError`. Typically called from `catch` blocks.
|
|
48
48
|
*
|
|
49
49
|
* @param value - The value to convert, which can be any type
|
|
50
50
|
* @returns If the value is already a `ServiceError`, returns it unchanged. Otherwise, convert it
|
|
@@ -56,7 +56,7 @@ const ERROR_METADATA = {
|
|
|
56
56
|
*/
|
|
57
57
|
class ServiceError extends Error {
|
|
58
58
|
/**
|
|
59
|
-
* Converts an unknown value to a `ServiceError`.
|
|
59
|
+
* Converts an unknown value to a `ServiceError`. Typically called from `catch` blocks.
|
|
60
60
|
*
|
|
61
61
|
* @param value - The value to convert, which can be any type
|
|
62
62
|
* @returns If the value is already a `ServiceError`, returns it unchanged. Otherwise, convert it
|
|
@@ -80,12 +80,12 @@ class ServiceError extends Error {
|
|
|
80
80
|
*/
|
|
81
81
|
static fromZodError(value) {
|
|
82
82
|
return new ServiceError({
|
|
83
|
+
cause: value,
|
|
83
84
|
issues: value.issues.map((issue) => ({
|
|
84
85
|
code: exports.ERROR_CODES.unprocessableEntity,
|
|
85
86
|
message: issue.message,
|
|
86
87
|
path: issue.path,
|
|
87
88
|
})),
|
|
88
|
-
cause: value,
|
|
89
89
|
});
|
|
90
90
|
}
|
|
91
91
|
id;
|
|
@@ -113,8 +113,7 @@ class ServiceError extends Error {
|
|
|
113
113
|
* Return string representation of the error for logging.
|
|
114
114
|
*/
|
|
115
115
|
toString() {
|
|
116
|
-
|
|
117
|
-
return `${this.name}[${this.id}]: ${this.message}${cause}`;
|
|
116
|
+
return `${this.name}[${this.id}]: ${this.message}`;
|
|
118
117
|
}
|
|
119
118
|
/**
|
|
120
119
|
* Converts the error to JSON:API format
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serviceError.js","sourceRoot":"","sources":["../../../../../../packages/util-ts/src/lib/errors/serviceError.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AAEzC,8CAA2C;AAC3C,uCAAoC;AAEpC;;GAEG;AACU,QAAA,WAAW,GAAG;IACzB,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,cAAc;IAC5B,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,mBAAmB,EAAE,qBAAqB;IAC1C,eAAe,EAAE,iBAAiB;IAClC,QAAQ,EAAE,UAAU;CACZ,CAAC;AAmCX,MAAM,cAAc,GAAyD;IAC3E,UAAU,EAAE;QACV,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,8BAA8B;KACtC;IACD,YAAY,EAAE;QACZ,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,gCAAgC;KACxC;IACD,SAAS,EAAE;QACT,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,2BAA2B;KACnC;IACD,QAAQ,EAAE;QACR,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,oBAAoB;KAC5B;IACD,QAAQ,EAAE;QACR,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,4BAA4B;KACpC;IACD,mBAAmB,EAAE;QACnB,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,2BAA2B;KACnC;IACD,eAAe,EAAE;QACf,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,wBAAwB;KAChC;IACD,QAAQ,EAAE;QACR,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,uBAAuB;KAC/B;CACF,CAAC;AAOF;;GAEG;AACH,MAAa,YAAa,SAAQ,KAAK;IACrC;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,CAAC,KAAc;QAC/B,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,KAAK,GAAG,IAAA,iBAAO,EAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,IAAI,YAAY,CAAC;YACtB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YAChE,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CAAC,KAAc;QAChC,OAAO,IAAI,YAAY,CAAC;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACnC,IAAI,EAAE,mBAAW,CAAC,mBAAmB;gBACrC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"serviceError.js","sourceRoot":"","sources":["../../../../../../packages/util-ts/src/lib/errors/serviceError.ts"],"names":[],"mappings":"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"}
|