@fal-ai/client
Version:
The fal.ai client for JavaScript and TypeScript
39 lines (38 loc) • 1.51 kB
TypeScript
import { RequiredConfig } from "./config";
import { Result, ValidationErrorInfo } from "./types/common";
export type ResponseHandler<Output> = (response: Response) => Promise<Output>;
export type ResponseHandlerCreator<Output> = (config: RequiredConfig) => ResponseHandler<Output>;
type ApiErrorArgs = {
message: string;
status: number;
body?: any;
requestId?: string;
/**
* The type of timeout that occurred. If "user", this was a user-specified
* timeout via startTimeout and should NOT be retried.
*/
timeoutType?: string;
};
export declare class ApiError<Body> extends Error {
readonly status: number;
readonly body: Body;
readonly requestId: string;
readonly timeoutType?: string;
constructor({ message, status, body, requestId, timeoutType }: ApiErrorArgs);
/**
* Returns true if this error was caused by a user-specified timeout
* (via startTimeout parameter). These errors should NOT be retried.
*/
get isUserTimeout(): boolean;
}
type ValidationErrorBody = {
detail: ValidationErrorInfo[];
};
export declare class ValidationError extends ApiError<ValidationErrorBody> {
constructor(args: ApiErrorArgs);
get fieldErrors(): ValidationErrorInfo[];
getFieldErrors(field: string): ValidationErrorInfo[];
}
export declare function defaultResponseHandler<Output>(response: Response): Promise<Output>;
export declare function resultResponseHandler<Output>(response: Response): Promise<Result<Output>>;
export {};