hook-fetch
Version:
A lightweight and modern HTTP request library developed based on the native Fetch API of the browser, providing a user-friendly interface similar to Axios and powerful extensibility.
39 lines (38 loc) • 2.33 kB
TypeScript
import { default as QueryString } from 'qs';
import { AnyObject } from 'typescript-api-pro';
import { ResponseErrorOptions } from './error';
import { BaseRequestOptions, RequestConfig, RequestMethod, StreamContext } from './types';
export declare const delay: (ms: number) => Promise<unknown>;
export declare const timeoutCallback: (controller: AbortController) => void;
export declare class ResponseError<E = unknown> extends Error {
#private;
constructor({ message, status, statusText, response, config, name }: ResponseErrorOptions<E>);
get message(): string;
get status(): number | undefined;
get statusText(): string | undefined;
get response(): Response | undefined;
get config(): RequestConfig<unknown, unknown, E> | undefined;
get name(): string;
}
export declare const buildUrl: (url: string, params?: AnyObject, qsArrayFormat?: QueryString.IStringifyOptions["arrayFormat"]) => string;
export declare const mergeHeaders: (_baseHeaders?: HeadersInit | Headers, _newHeaders?: HeadersInit | Headers) => Headers;
export declare const getBody: (body: AnyObject, method: RequestMethod, headers?: HeadersInit, qsArrayFormat?: QueryString.IStringifyOptions["arrayFormat"]) => BodyInit | null;
export declare class HookFetchRequest<T, E> implements PromiseLike<T> {
#private;
constructor(options: BaseRequestOptions<unknown, unknown, E>);
json(): Promise<any>;
then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null | undefined): Promise<TResult1 | TResult2>;
catch<TResult = never>(onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null | undefined): Promise<T | TResult>;
finally(onfinally?: (() => void) | null | undefined): void;
abort(): void;
blob(): Promise<any>;
text(): Promise<any>;
arrayBuffer(): Promise<any>;
formData(): Promise<any>;
bytes(): Promise<any>;
stream<T>(): AsyncGenerator<StreamContext<T> | StreamContext<null>, ResponseError<unknown> | undefined, unknown>;
retry(): HookFetchRequest<unknown, E>;
get response(): Promise<Response>;
}
export declare const isGenerator: (v: any) => boolean;
export declare const isAsyncGenerator: (v: any) => boolean;