拒绝没有 type 的伪结构化失败
export/state/xhsMinitoolApi.ts:guardStructuredFailure 在装 wrapper 前校验对象至少带字符串 type,否则原样抛出交给错误池。
This commit is contained in:
@@ -146,6 +146,9 @@ async function guardStructuredFailure<T, Payload>(
|
||||
// 非对象同理(命令没注册、参数序列化失败时 Tauri 会拒绝一个裸字符串):装进 wrapper 只会
|
||||
// 得到一份没有 `type` 的假变体,调用方按变体分流时会走到不该到的分支。
|
||||
if (typeof error !== 'object' || error === null) throw error;
|
||||
// 非对象之外,还要确认它长得像生成的判别联合:缺字符串 `type` 的普通对象装进 wrapper 只会变成
|
||||
// 「没有任何变体」的失败,分流落到 default,真正的拒绝原因反而被当成业务现场糊过去。
|
||||
if (typeof (error as { type?: unknown }).type !== 'string') throw error;
|
||||
throw new FailureClass(error as Payload);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user