@clipboard-health/util-ts 2.9.0 → 2.9.2

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
@@ -41,7 +41,7 @@ import { ERROR_CODES, ServiceError } from "@clipboard-health/util-ts";
41
41
 
42
42
  {
43
43
  const error = new Error("boom");
44
- const serviceError = ServiceError.fromError(error);
44
+ const serviceError = ServiceError.fromUnknown(error);
45
45
  equal(
46
46
  serviceError.toString(),
47
47
  `ServiceError[${serviceError.id}]: [internal]: boom; [cause]: Error: boom`,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@clipboard-health/util-ts",
3
3
  "description": "TypeScript utilities.",
4
- "version": "2.9.0",
4
+ "version": "2.9.2",
5
5
  "dependencies": {
6
6
  "tslib": "2.8.0"
7
7
  },
package/src/index.d.ts CHANGED
@@ -1,13 +1,20 @@
1
+ export * from "./lib/arrays/head";
2
+ export * from "./lib/arrays/nonEmptyArray";
1
3
  export * from "./lib/deepFreeze";
4
+ export * from "./lib/errors/cbhError";
2
5
  export * from "./lib/errors/isError";
3
6
  export * from "./lib/errors/serviceError";
4
7
  export * from "./lib/errors/toError";
8
+ export * from "./lib/errors/toErrorMessage";
9
+ export * from "./lib/forceCast";
10
+ export * from "./lib/functional/cbhResponse";
5
11
  export * as either from "./lib/functional/either";
6
12
  export * as option from "./lib/functional/option";
7
13
  export * from "./lib/functional/pipe";
8
14
  export * from "./lib/functional/serviceResult";
9
15
  export * from "./lib/nullish/isDefined";
10
16
  export * from "./lib/nullish/isNil";
17
+ export * from "./lib/nullish/nullToUndefined";
11
18
  export * from "./lib/strings/isString";
12
19
  export * from "./lib/strings/stringify";
13
20
  export * from "./lib/types";
package/src/index.js CHANGED
@@ -2,16 +2,23 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.option = exports.either = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ tslib_1.__exportStar(require("./lib/arrays/head"), exports);
6
+ tslib_1.__exportStar(require("./lib/arrays/nonEmptyArray"), exports);
5
7
  tslib_1.__exportStar(require("./lib/deepFreeze"), exports);
8
+ tslib_1.__exportStar(require("./lib/errors/cbhError"), exports);
6
9
  tslib_1.__exportStar(require("./lib/errors/isError"), exports);
7
10
  tslib_1.__exportStar(require("./lib/errors/serviceError"), exports);
8
11
  tslib_1.__exportStar(require("./lib/errors/toError"), exports);
12
+ tslib_1.__exportStar(require("./lib/errors/toErrorMessage"), exports);
13
+ tslib_1.__exportStar(require("./lib/forceCast"), exports);
14
+ tslib_1.__exportStar(require("./lib/functional/cbhResponse"), exports);
9
15
  exports.either = tslib_1.__importStar(require("./lib/functional/either"));
10
16
  exports.option = tslib_1.__importStar(require("./lib/functional/option"));
11
17
  tslib_1.__exportStar(require("./lib/functional/pipe"), exports);
12
18
  tslib_1.__exportStar(require("./lib/functional/serviceResult"), exports);
13
19
  tslib_1.__exportStar(require("./lib/nullish/isDefined"), exports);
14
20
  tslib_1.__exportStar(require("./lib/nullish/isNil"), exports);
21
+ tslib_1.__exportStar(require("./lib/nullish/nullToUndefined"), exports);
15
22
  tslib_1.__exportStar(require("./lib/strings/isString"), exports);
16
23
  tslib_1.__exportStar(require("./lib/strings/stringify"), exports);
17
24
  tslib_1.__exportStar(require("./lib/types"), exports);
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/util-ts/src/index.ts"],"names":[],"mappings":";;;;AAAA,2DAAiC;AACjC,+DAAqC;AACrC,oEAA0C;AAC1C,+DAAqC;AACrC,0EAAkD;AAClD,0EAAkD;AAClD,gEAAsC;AACtC,yEAA+C;AAC/C,kEAAwC;AACxC,8DAAoC;AACpC,iEAAuC;AACvC,kEAAwC;AACxC,sDAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/util-ts/src/index.ts"],"names":[],"mappings":";;;;AAAA,4DAAkC;AAClC,qEAA2C;AAC3C,2DAAiC;AACjC,gEAAsC;AACtC,+DAAqC;AACrC,oEAA0C;AAC1C,+DAAqC;AACrC,sEAA4C;AAC5C,0DAAgC;AAChC,uEAA6C;AAC7C,0EAAkD;AAClD,0EAAkD;AAClD,gEAAsC;AACtC,yEAA+C;AAC/C,kEAAwC;AACxC,8DAAoC;AACpC,wEAA8C;AAC9C,iEAAuC;AACvC,kEAAwC;AACxC,sDAA4B"}
@@ -21,10 +21,15 @@ export interface ServiceIssue {
21
21
  path?: Array<string | number>;
22
22
  }
23
23
  export type ServiceErrorParams = string | {
24
+ /** Error cause */
24
25
  cause?: Readonly<unknown>;
26
+ /** Unique identifier for the issue */
27
+ id?: string;
28
+ /** Array of issues contributing to the error */
25
29
  issues: readonly ServiceIssue[];
26
30
  };
27
31
  export interface ZodLike {
32
+ name: "ZodError";
28
33
  issues: ReadonlyArray<{
29
34
  message?: string | undefined;
30
35
  path: Array<string | number>;
@@ -39,21 +44,20 @@ interface Issue extends ServiceIssue {
39
44
  */
40
45
  export declare class ServiceError extends Error {
41
46
  /**
42
- * Converts an error to a `ServiceError`.
47
+ * Converts an unknown value to a `ServiceError`.
43
48
  *
44
49
  * @param value - The value to convert, which can be any type
45
50
  * @returns If the value is already a `ServiceError`, returns it unchanged. Otherwise, convert it
46
51
  * to a `ServiceError`.
47
52
  */
48
- static fromError(value: unknown): ServiceError;
53
+ static fromUnknown(value: unknown): ServiceError;
49
54
  /**
50
- * Converts a Zod-like error to a `ServiceError`.
55
+ * Converts a ZodError to a `ServiceError`.
51
56
  *
52
- * @param value - An object with a Zod-like error structure containing issues
57
+ * @param value - A ZodError
53
58
  * @returns The converted `ServiceError`
54
- * @throws {ServiceError} If the provided value does not match the expected Zod-like structure
55
59
  */
56
- static fromZodLike(value: ZodLike): ServiceError;
60
+ static fromZodError(value: ZodLike): ServiceError;
57
61
  readonly id: string;
58
62
  readonly issues: readonly Issue[];
59
63
  /**
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ServiceError = exports.ERROR_CODES = void 0;
4
4
  const node_crypto_1 = require("node:crypto");
5
5
  const deepFreeze_1 = require("../deepFreeze");
6
- const isDefined_1 = require("../nullish/isDefined");
7
6
  const toError_1 = require("./toError");
8
7
  /**
9
8
  * Standard error codes used across microservices.
@@ -52,28 +51,18 @@ const ERROR_METADATA = {
52
51
  title: "Internal server error",
53
52
  },
54
53
  };
55
- function isZodLike(value) {
56
- const zodLike = value;
57
- return ((0, isDefined_1.isDefined)(zodLike) &&
58
- "issues" in zodLike &&
59
- Array.isArray(zodLike.issues) &&
60
- zodLike.issues.every((issue) => typeof issue === "object" &&
61
- (0, isDefined_1.isDefined)(issue) &&
62
- "path" in issue &&
63
- Array.isArray(issue.path)));
64
- }
65
54
  /**
66
55
  * Error class for service-level errors, convertible to JSON:API errors.
67
56
  */
68
57
  class ServiceError extends Error {
69
58
  /**
70
- * Converts an error to a `ServiceError`.
59
+ * Converts an unknown value to a `ServiceError`.
71
60
  *
72
61
  * @param value - The value to convert, which can be any type
73
62
  * @returns If the value is already a `ServiceError`, returns it unchanged. Otherwise, convert it
74
63
  * to a `ServiceError`.
75
64
  */
76
- static fromError(value) {
65
+ static fromUnknown(value) {
77
66
  if (value instanceof ServiceError) {
78
67
  return value;
79
68
  }
@@ -84,19 +73,12 @@ class ServiceError extends Error {
84
73
  });
85
74
  }
86
75
  /**
87
- * Converts a Zod-like error to a `ServiceError`.
76
+ * Converts a ZodError to a `ServiceError`.
88
77
  *
89
- * @param value - An object with a Zod-like error structure containing issues
78
+ * @param value - A ZodError
90
79
  * @returns The converted `ServiceError`
91
- * @throws {ServiceError} If the provided value does not match the expected Zod-like structure
92
80
  */
93
- static fromZodLike(value) {
94
- if (!isZodLike(value)) {
95
- throw new ServiceError({
96
- issues: [{ code: exports.ERROR_CODES.internal, message: "Invalid ZodLike" }],
97
- cause: value,
98
- });
99
- }
81
+ static fromZodError(value) {
100
82
  return new ServiceError({
101
83
  issues: value.issues.map((issue) => ({
102
84
  code: exports.ERROR_CODES.unprocessableEntity,
@@ -114,12 +96,12 @@ class ServiceError extends Error {
114
96
  */
115
97
  constructor(parameters) {
116
98
  const params = typeof parameters === "string"
117
- ? { issues: [toIssue({ message: parameters })] }
99
+ ? { cause: undefined, id: undefined, issues: [toIssue({ message: parameters })] }
118
100
  : { ...parameters, issues: parameters.issues.map(toIssue) };
119
101
  super(createServiceErrorMessage(params.issues));
120
- this.id = (0, node_crypto_1.randomUUID)();
102
+ this.cause = params.cause;
103
+ this.id = params.id ?? (0, node_crypto_1.randomUUID)();
121
104
  this.issues = (0, deepFreeze_1.deepFreeze)(params.issues);
122
- this.cause = "cause" in params ? params.cause : undefined;
123
105
  this.name = this.constructor.name;
124
106
  /**
125
107
  * Maintain proper prototype chain in transpiled code
@@ -1 +1 @@
1
- {"version":3,"file":"serviceError.js","sourceRoot":"","sources":["../../../../../../packages/util-ts/src/lib/errors/serviceError.ts"],"names":[],"mappings":"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"}
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;YACH,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IAEQ,EAAE,CAAS;IACX,MAAM,CAAmB;IAElC;;;OAGG;IACH,YAAY,UAA8B;QACxC,MAAM,MAAM,GACV,OAAO,UAAU,KAAK,QAAQ;YAC5B,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE;YACjF,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAChE,KAAK,CAAC,yBAAyB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAEhD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,IAAA,wBAAU,GAAE,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAA,uBAAU,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAElC;;;WAGG;QACH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACM,QAAQ;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,IAAA,iBAAO,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACH,SAAS;QACP,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAClC,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;gBACjD,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC/C,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI;oBAChB,MAAM,EAAE;wBACN,OAAO,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;qBACpC;iBACF,CAAC;aACH,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;CACF;AA5FD,oCA4FC;AAED;;;;GAIG;AACH,SAAS,yBAAyB,CAAC,MAAwB;IACzD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;IACrC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,OAAO,CAAC,KAAmB;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,mBAAW,CAAC,QAAQ,CAAC;IAChD,OAAO,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;AAC/D,CAAC"}