@chevre/domain 28.0.0-alpha.46 → 28.0.0-alpha.47
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.
|
@@ -1,11 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.unknown2actionError = unknown2actionError;
|
|
4
|
+
function serializeCause(err) {
|
|
5
|
+
try {
|
|
6
|
+
if (err instanceof Error) {
|
|
7
|
+
return {
|
|
8
|
+
name: err.name,
|
|
9
|
+
message: err.message,
|
|
10
|
+
...(('code' in err && err.code !== undefined) && { code: err.code })
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
if (typeof err === 'object' && err !== null) {
|
|
14
|
+
// プレーンオブジェクトの場合(そのまま展開するか必要なプロパティを抽出)
|
|
15
|
+
return { ...err };
|
|
16
|
+
}
|
|
17
|
+
// 文字列・数値などのプリミティブ値の場合はそのまま残す
|
|
18
|
+
return err;
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
// 失敗するかもしれないので念のため
|
|
22
|
+
console.error('serializeCause failed!', error);
|
|
23
|
+
return { serializationError: String(error) };
|
|
24
|
+
}
|
|
25
|
+
}
|
|
4
26
|
// 内部で正規化関数を定義(または外部ヘルパーを呼び出す)
|
|
5
27
|
function unknown2actionError(e) {
|
|
6
28
|
if (e instanceof Error) {
|
|
7
29
|
// Errorオブジェクトの場合は、既存のロジック通り展開
|
|
8
|
-
return {
|
|
30
|
+
return {
|
|
31
|
+
...e,
|
|
32
|
+
name: e.name,
|
|
33
|
+
message: e.message,
|
|
34
|
+
// fetch failed の根本原因が入る cause を展開
|
|
35
|
+
...((e.cause !== undefined && e.cause !== null) && { cause: serializeCause(e.cause) })
|
|
36
|
+
};
|
|
9
37
|
}
|
|
10
38
|
else {
|
|
11
39
|
// Error以外(文字列など)が投げられた場合のハンドリング
|
package/package.json
CHANGED