49 lines
2.3 KiB
TypeScript
49 lines
2.3 KiB
TypeScript
import { type OpenAI } from "../client.mjs";
|
|
import { type PromiseOrValue } from "../internal/types.mjs";
|
|
import { type APIResponseProps, type WithRequestID } from "../internal/parse.mjs";
|
|
/**
|
|
* A subclass of `Promise` providing additional helper methods
|
|
* for interacting with the SDK.
|
|
*/
|
|
export declare class APIPromise<T> extends Promise<WithRequestID<T>> {
|
|
#private;
|
|
private responsePromise;
|
|
private parseResponse;
|
|
private parsedPromise;
|
|
constructor(client: OpenAI, responsePromise: Promise<APIResponseProps>, parseResponse?: (client: OpenAI, props: APIResponseProps) => PromiseOrValue<WithRequestID<T>>);
|
|
_thenUnwrap<U>(transform: (data: T, props: APIResponseProps) => U): APIPromise<U>;
|
|
/**
|
|
* Gets the raw `Response` instance instead of parsing the response
|
|
* data.
|
|
*
|
|
* If you want to parse the response body but still get the `Response`
|
|
* instance, you can use {@link withResponse()}.
|
|
*
|
|
* 👋 Getting the wrong TypeScript type for `Response`?
|
|
* Try setting `"moduleResolution": "NodeNext"` or add `"lib": ["DOM"]`
|
|
* to your `tsconfig.json`.
|
|
*/
|
|
asResponse(): Promise<Response>;
|
|
/**
|
|
* Gets the parsed response data, the raw `Response` instance and the ID of the request,
|
|
* returned via the X-Request-ID header which is useful for debugging requests and reporting
|
|
* issues to OpenAI.
|
|
*
|
|
* If you just want to get the raw `Response` instance without parsing it,
|
|
* you can use {@link asResponse()}.
|
|
*
|
|
* 👋 Getting the wrong TypeScript type for `Response`?
|
|
* Try setting `"moduleResolution": "NodeNext"` or add `"lib": ["DOM"]`
|
|
* to your `tsconfig.json`.
|
|
*/
|
|
withResponse(): Promise<{
|
|
data: T;
|
|
response: Response;
|
|
request_id: string | null;
|
|
}>;
|
|
private parse;
|
|
then<TResult1 = WithRequestID<T>, TResult2 = never>(onfulfilled?: ((value: WithRequestID<T>) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
|
|
catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<WithRequestID<T> | TResult>;
|
|
finally(onfinally?: (() => void) | undefined | null): Promise<WithRequestID<T>>;
|
|
}
|
|
//# sourceMappingURL=api-promise.d.mts.map
|