Merge branch 'codex/backend-rewrite-spacetimedb' of http://82.157.175.59:3000/GenarrativeAI/Genarrative into codex/backend-rewrite-spacetimedb

This commit is contained in:
2026-04-25 14:29:58 +08:00
17 changed files with 489 additions and 23 deletions

View File

@@ -143,7 +143,20 @@ export function unwrapApiResponse<T>(value: ApiResponse<T> | T): T {
return value.data;
}
throw new Error(value.error.message || '请求失败');
throw new Error(getApiErrorDisplayMessage(value.error) || '请求失败');
}
function readTrimmedMessage(value: unknown) {
return typeof value === 'string' && value.trim() ? value.trim() : '';
}
export function getApiErrorDisplayMessage(error: ApiErrorPayload) {
// 后端通用 message 常用于错误分类details.message 才是给用户定位问题的业务原因。
const detailMessage = isRecord(error.details)
? readTrimmedMessage(error.details.message)
: '';
return detailMessage || readTrimmedMessage(error.message);
}
export function parseApiErrorMessage(rawText: string, fallbackMessage: string) {
@@ -158,11 +171,20 @@ export function parseApiErrorMessage(rawText: string, fallbackMessage: string) {
error?: {
message?: string;
code?: string;
details?: Record<string, unknown> | null;
};
message?: string;
code?: string;
};
const detailMessage = isRecord(parsed.error?.details)
? readTrimmedMessage(parsed.error.details.message)
: '';
if (detailMessage) {
return detailMessage;
}
if (
typeof parsed.error?.message === 'string' &&
parsed.error.message.trim()