@webpieces/core-util 0.2.93 → 0.2.95
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 +5 -5
- package/package.json +1 -1
- package/src/lib/errorUtils.d.ts +7 -7
- package/src/lib/errorUtils.js +7 -6
- package/src/lib/errorUtils.js.map +1 -1
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ import { toError } from '@webpieces/core-util';
|
|
|
21
21
|
|
|
22
22
|
try {
|
|
23
23
|
await riskyOperation();
|
|
24
|
-
} catch (err:
|
|
24
|
+
} catch (err: unknown) {
|
|
25
25
|
const error = toError(err);
|
|
26
26
|
console.error('Operation failed:', error.message);
|
|
27
27
|
throw error;
|
|
@@ -49,7 +49,7 @@ WebPieces projects enforce this pattern via ESLint rule `@webpieces/catch-error-
|
|
|
49
49
|
```typescript
|
|
50
50
|
try {
|
|
51
51
|
operation();
|
|
52
|
-
} catch (err:
|
|
52
|
+
} catch (err: unknown) {
|
|
53
53
|
const error = toError(err);
|
|
54
54
|
// Handle error...
|
|
55
55
|
}
|
|
@@ -59,7 +59,7 @@ try {
|
|
|
59
59
|
```typescript
|
|
60
60
|
try {
|
|
61
61
|
operation();
|
|
62
|
-
} catch (err:
|
|
62
|
+
} catch (err: unknown) {
|
|
63
63
|
//const error = toError(err);
|
|
64
64
|
}
|
|
65
65
|
```
|
|
@@ -71,11 +71,11 @@ For nested catches, use numbered suffixes:
|
|
|
71
71
|
```typescript
|
|
72
72
|
try {
|
|
73
73
|
operation1();
|
|
74
|
-
} catch (err:
|
|
74
|
+
} catch (err: unknown) {
|
|
75
75
|
const error = toError(err);
|
|
76
76
|
try {
|
|
77
77
|
rollback();
|
|
78
|
-
} catch (err2:
|
|
78
|
+
} catch (err2: unknown) {
|
|
79
79
|
const error2 = toError(err2);
|
|
80
80
|
console.error('Rollback failed:', error2);
|
|
81
81
|
}
|
package/package.json
CHANGED
package/src/lib/errorUtils.d.ts
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* ```typescript
|
|
19
19
|
* try {
|
|
20
20
|
* riskyOperation();
|
|
21
|
-
* } catch (err:
|
|
21
|
+
* } catch (err: unknown) {
|
|
22
22
|
* const error = toError(err);
|
|
23
23
|
* // Handle error...
|
|
24
24
|
* }
|
|
@@ -28,12 +28,12 @@
|
|
|
28
28
|
* ```typescript
|
|
29
29
|
* try {
|
|
30
30
|
* riskyOperation();
|
|
31
|
-
* } catch (err:
|
|
31
|
+
* } catch (err: unknown) {
|
|
32
32
|
* //const error = toError(err);
|
|
33
33
|
* }
|
|
34
34
|
* ```
|
|
35
35
|
*
|
|
36
|
-
* @param err - Unknown error from catch block (typed as
|
|
36
|
+
* @param err - Unknown error from catch block (typed as unknown)
|
|
37
37
|
* @returns Standardized Error instance
|
|
38
38
|
*
|
|
39
39
|
* @example
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
* // Standard usage
|
|
42
42
|
* try {
|
|
43
43
|
* await riskyOperation();
|
|
44
|
-
* } catch (err:
|
|
44
|
+
* } catch (err: unknown) {
|
|
45
45
|
* const error = toError(err);
|
|
46
46
|
* console.error('Operation failed:', error.message);
|
|
47
47
|
* throw error;
|
|
@@ -53,15 +53,15 @@
|
|
|
53
53
|
* // Nested catch blocks
|
|
54
54
|
* try {
|
|
55
55
|
* await operation1();
|
|
56
|
-
* } catch (err:
|
|
56
|
+
* } catch (err: unknown) {
|
|
57
57
|
* const error = toError(err);
|
|
58
58
|
* try {
|
|
59
59
|
* await rollback();
|
|
60
|
-
* } catch (err2:
|
|
60
|
+
* } catch (err2: unknown) {
|
|
61
61
|
* const error2 = toError(err2);
|
|
62
62
|
* console.error('Rollback failed:', error2);
|
|
63
63
|
* }
|
|
64
64
|
* }
|
|
65
65
|
* ```
|
|
66
66
|
*/
|
|
67
|
-
export declare function toError(err:
|
|
67
|
+
export declare function toError(err: unknown): Error;
|
package/src/lib/errorUtils.js
CHANGED
|
@@ -21,7 +21,7 @@ exports.toError = toError;
|
|
|
21
21
|
* ```typescript
|
|
22
22
|
* try {
|
|
23
23
|
* riskyOperation();
|
|
24
|
-
* } catch (err:
|
|
24
|
+
* } catch (err: unknown) {
|
|
25
25
|
* const error = toError(err);
|
|
26
26
|
* // Handle error...
|
|
27
27
|
* }
|
|
@@ -31,12 +31,12 @@ exports.toError = toError;
|
|
|
31
31
|
* ```typescript
|
|
32
32
|
* try {
|
|
33
33
|
* riskyOperation();
|
|
34
|
-
* } catch (err:
|
|
34
|
+
* } catch (err: unknown) {
|
|
35
35
|
* //const error = toError(err);
|
|
36
36
|
* }
|
|
37
37
|
* ```
|
|
38
38
|
*
|
|
39
|
-
* @param err - Unknown error from catch block (typed as
|
|
39
|
+
* @param err - Unknown error from catch block (typed as unknown)
|
|
40
40
|
* @returns Standardized Error instance
|
|
41
41
|
*
|
|
42
42
|
* @example
|
|
@@ -44,7 +44,7 @@ exports.toError = toError;
|
|
|
44
44
|
* // Standard usage
|
|
45
45
|
* try {
|
|
46
46
|
* await riskyOperation();
|
|
47
|
-
* } catch (err:
|
|
47
|
+
* } catch (err: unknown) {
|
|
48
48
|
* const error = toError(err);
|
|
49
49
|
* console.error('Operation failed:', error.message);
|
|
50
50
|
* throw error;
|
|
@@ -56,17 +56,18 @@ exports.toError = toError;
|
|
|
56
56
|
* // Nested catch blocks
|
|
57
57
|
* try {
|
|
58
58
|
* await operation1();
|
|
59
|
-
* } catch (err:
|
|
59
|
+
* } catch (err: unknown) {
|
|
60
60
|
* const error = toError(err);
|
|
61
61
|
* try {
|
|
62
62
|
* await rollback();
|
|
63
|
-
* } catch (err2:
|
|
63
|
+
* } catch (err2: unknown) {
|
|
64
64
|
* const error2 = toError(err2);
|
|
65
65
|
* console.error('Rollback failed:', error2);
|
|
66
66
|
* }
|
|
67
67
|
* }
|
|
68
68
|
* ```
|
|
69
69
|
*/
|
|
70
|
+
// webpieces-disable no-any-unknown -- toError intentionally accepts unknown to safely convert any thrown value to Error
|
|
70
71
|
function toError(err) {
|
|
71
72
|
// If already an Error instance, return it directly
|
|
72
73
|
if (err instanceof Error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorUtils.js","sourceRoot":"","sources":["../../../../../../packages/core/core-util/src/lib/errorUtils.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;
|
|
1
|
+
{"version":3,"file":"errorUtils.js","sourceRoot":"","sources":["../../../../../../packages/core/core-util/src/lib/errorUtils.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AA8DH,0BAyCC;AArGD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,wHAAwH;AACxH,SAAgB,OAAO,CAAC,GAAY;IAChC,mDAAmD;IACnD,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC;IACf,CAAC;IAED,kEAAkE;IAClE,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACjC,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YAE7C,oCAAoC;YACpC,IAAI,OAAO,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAClD,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;YAC5B,CAAC;YAED,mCAAmC;YACnC,IAAI,MAAM,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAChD,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YAC1B,CAAC;YAED,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,gDAAgD;QAChD,mIAAmI;QACnI,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACpC,OAAO,IAAI,KAAK,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,6BAA6B;YAC7B,+EAA+E;YAC/E,gFAAgF;YAChF,KAAK,GAAG,CAAC,CAAC,+BAA+B;YACzC,OAAO,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACtE,CAAC;IACL,CAAC;IAED,4DAA4D;IAC5D,MAAM,OAAO,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACvE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC","sourcesContent":["/**\n * Error handling utilities for standardized error processing\n * All catch blocks should use toError() to ensure consistent error handling\n *\n * This pattern is enforced by the @webpieces/eslint-plugin-webpieces rule:\n * `catch-error-pattern`\n */\n\n/**\n * Converts unknown error types to Error instances\n *\n * This function standardizes all caught errors into Error objects, ensuring:\n * - Type safety (always returns Error)\n * - Consistent error structure\n * - Proper stack traces\n * - Integration with monitoring/logging systems\n *\n * **WebPieces Pattern**: All catch blocks must follow this pattern:\n * ```typescript\n * try {\n * riskyOperation();\n * } catch (err: unknown) {\n * const error = toError(err);\n * // Handle error...\n * }\n * ```\n *\n * Alternative (explicitly ignored errors):\n * ```typescript\n * try {\n * riskyOperation();\n * } catch (err: unknown) {\n * //const error = toError(err);\n * }\n * ```\n *\n * @param err - Unknown error from catch block (typed as unknown)\n * @returns Standardized Error instance\n *\n * @example\n * ```typescript\n * // Standard usage\n * try {\n * await riskyOperation();\n * } catch (err: unknown) {\n * const error = toError(err);\n * console.error('Operation failed:', error.message);\n * throw error;\n * }\n * ```\n *\n * @example\n * ```typescript\n * // Nested catch blocks\n * try {\n * await operation1();\n * } catch (err: unknown) {\n * const error = toError(err);\n * try {\n * await rollback();\n * } catch (err2: unknown) {\n * const error2 = toError(err2);\n * console.error('Rollback failed:', error2);\n * }\n * }\n * ```\n */\n// webpieces-disable no-any-unknown -- toError intentionally accepts unknown to safely convert any thrown value to Error\nexport function toError(err: unknown): Error {\n // If already an Error instance, return it directly\n if (err instanceof Error) {\n return err;\n }\n\n // If it's an object with a message property, create Error from it\n if (err && typeof err === 'object') {\n if ('message' in err) {\n const error = new Error(String(err.message));\n\n // Preserve stack trace if available\n if ('stack' in err && typeof err.stack === 'string') {\n error.stack = err.stack;\n }\n\n // Preserve error name if available\n if ('name' in err && typeof err.name === 'string') {\n error.name = err.name;\n }\n\n return error;\n }\n\n // For objects without message, try to stringify\n // eslint-disable-next-line @webpieces/no-unmanaged-exceptions -- toError utility must handle circular references without recursion\n try {\n const message = JSON.stringify(err);\n return new Error(`Non-Error object thrown: ${message}`);\n } catch (err: unknown) {\n //const error = toError(err);\n // NOTE: Intentionally not calling toError() here to prevent infinite recursion\n // in error recovery path. This is the ONLY acceptable exception to the pattern.\n void err; // Mark as intentionally unused\n return new Error('Non-Error object thrown (unable to stringify)');\n }\n }\n\n // For primitives (string, number, boolean, null, undefined)\n const message = err == null ? 'Null or undefined thrown' : String(err);\n return new Error(message);\n}\n"]}
|