File size: 729 Bytes
76916b3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | /**
* Client-side error helpers (minimal subset, self-contained).
* `message` is always safe to display to the user.
*/
export class AppError extends Error {
constructor(status, code, message, { details = null, internal = null } = {}) {
super(message);
this.name = 'AppError';
this.status = status;
this.code = code;
this.details = details;
this.internal = internal;
}
}
const make = (status, code, fallback) => (message = fallback, opts) =>
new AppError(status, code, message, opts);
export const providerError = make(502, 'PROVIDER_ERROR', 'The upstream AI provider returned an error.');
export const unavailable = make(503, 'SERVICE_UNAVAILABLE', 'The service is temporarily unavailable.');
|