UNPKG

phonic

Version:

[![fern shield](https://img.shields.io/badge/%F0%9F%8C%BF-Built%20with%20Fern-brightgreen)](https://buildwithfern.com?utm_source=github&utm_medium=github&utm_campaign=readme&utm_source=https%3A%2F%2Fgithub.com%2FPhonic-Co%2Fphonic-node) [![npm shield](htt

59 lines (58 loc) 2.89 kB
import { WithRawResponse } from "./RawResponse.js"; /** * A promise that returns the parsed response and lets you retrieve the raw response too. */ export declare class HttpResponsePromise<T> extends Promise<T> { private innerPromise; private unwrappedPromise; private constructor(); /** * Creates an `HttpResponsePromise` from a function that returns a promise. * * @param fn - A function that returns a promise resolving to a `WithRawResponse` object. * @param args - Arguments to pass to the function. * @returns An `HttpResponsePromise` instance. */ static fromFunction<F extends (...args: never[]) => Promise<WithRawResponse<T>>, T>(fn: F, ...args: Parameters<F>): HttpResponsePromise<T>; /** * Creates a function that returns an `HttpResponsePromise` from a function that returns a promise. * * @param fn - A function that returns a promise resolving to a `WithRawResponse` object. * @returns A function that returns an `HttpResponsePromise` instance. */ static interceptFunction<F extends (...args: never[]) => Promise<WithRawResponse<T>>, T = Awaited<ReturnType<F>>["data"]>(fn: F): (...args: Parameters<F>) => HttpResponsePromise<T>; /** * Creates an `HttpResponsePromise` from an existing promise. * * @param promise - A promise resolving to a `WithRawResponse` object. * @returns An `HttpResponsePromise` instance. */ static fromPromise<T>(promise: Promise<WithRawResponse<T>>): HttpResponsePromise<T>; /** * Creates an `HttpResponsePromise` from an executor function. * * @param executor - A function that takes resolve and reject callbacks to create a promise. * @returns An `HttpResponsePromise` instance. */ static fromExecutor<T>(executor: (resolve: (value: WithRawResponse<T>) => void, reject: (reason?: unknown) => void) => void): HttpResponsePromise<T>; /** * Creates an `HttpResponsePromise` from a resolved result. * * @param result - A `WithRawResponse` object to resolve immediately. * @returns An `HttpResponsePromise` instance. */ static fromResult<T>(result: WithRawResponse<T>): HttpResponsePromise<T>; private unwrap; /** @inheritdoc */ then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): Promise<TResult1 | TResult2>; /** @inheritdoc */ catch<TResult = never>(onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null): Promise<T | TResult>; /** @inheritdoc */ finally(onfinally?: (() => void) | null): Promise<T>; /** * Retrieves the data and raw response. * * @returns A promise resolving to a `WithRawResponse` object. */ withRawResponse(): Promise<WithRawResponse<T>>; }