|
|
import type { JsonObject } from "./vendor/type-fest/basic.js"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export abstract class InferenceClientError extends Error { |
|
|
constructor(message: string) { |
|
|
super(message); |
|
|
this.name = "InferenceClientError"; |
|
|
} |
|
|
} |
|
|
|
|
|
export class InferenceClientInputError extends InferenceClientError { |
|
|
constructor(message: string) { |
|
|
super(message); |
|
|
this.name = "InputError"; |
|
|
} |
|
|
} |
|
|
|
|
|
interface HttpRequest { |
|
|
url: string; |
|
|
method: string; |
|
|
headers?: Record<string, string>; |
|
|
body?: JsonObject; |
|
|
} |
|
|
|
|
|
interface HttpResponse { |
|
|
requestId: string; |
|
|
status: number; |
|
|
body: JsonObject | string; |
|
|
} |
|
|
|
|
|
abstract class InferenceClientHttpRequestError extends InferenceClientError { |
|
|
httpRequest: HttpRequest; |
|
|
httpResponse: HttpResponse; |
|
|
constructor(message: string, httpRequest: HttpRequest, httpResponse: HttpResponse) { |
|
|
super(message); |
|
|
this.httpRequest = { |
|
|
...httpRequest, |
|
|
...(httpRequest.headers |
|
|
? { |
|
|
headers: { |
|
|
...httpRequest.headers, |
|
|
...("Authorization" in httpRequest.headers ? { Authorization: `Bearer [redacted]` } : undefined), |
|
|
|
|
|
}, |
|
|
} |
|
|
: undefined), |
|
|
}; |
|
|
this.httpResponse = httpResponse; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export class InferenceClientProviderApiError extends InferenceClientHttpRequestError { |
|
|
constructor(message: string, httpRequest: HttpRequest, httpResponse: HttpResponse) { |
|
|
super(message, httpRequest, httpResponse); |
|
|
this.name = "ProviderApiError"; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export class InferenceClientHubApiError extends InferenceClientHttpRequestError { |
|
|
constructor(message: string, httpRequest: HttpRequest, httpResponse: HttpResponse) { |
|
|
super(message, httpRequest, httpResponse); |
|
|
this.name = "HubApiError"; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export class InferenceClientProviderOutputError extends InferenceClientError { |
|
|
constructor(message: string) { |
|
|
super(message); |
|
|
this.name = "ProviderOutputError"; |
|
|
} |
|
|
} |
|
|
|