Files
HealthLog/src/lib/api/localized-error.ts
T
Marc-André Bombeck 62eb431d66 release: v1.32.0 — hardening and scalability (#580)
* release: prepare v1.32.0

* test: stabilize water capture re-entry
2026-07-22 04:14:15 +02:00

26 lines
711 B
TypeScript

import { ApiError } from "./api-fetch";
type Translate = (key: string) => string;
/**
* Resolve an API envelope's stable error code through the locale catalog.
* Missing/unknown codes, network failures, and non-API errors deliberately
* collapse to the caller's safe domain fallback; server prose is never shown.
*/
export function localizedApiError(
error: unknown,
t: Translate,
fallbackKey: string,
): string {
if (error instanceof ApiError) {
const errorCode = error.meta?.errorCode;
if (typeof errorCode === "string") {
const key = `apiErrors.${errorCode}`;
const translated = t(key);
if (translated !== key) return translated;
}
}
return t(fallbackKey);
}