UNPKG

@nymphjs/client

Version:

Nymph.js - Client

79 lines (78 loc) 3.33 kB
export type HttpRequesterEventType = 'request' | 'response'; export type HttpRequesterRequestCallback = (requester: HttpRequester, url: string, options: RequestInit) => void; export type HttpRequesterResponseCallback = (requester: HttpRequester, response: Response, text: string) => void; export type HttpRequesterIteratorCallback = (requester: HttpRequester, url: string, headers: Record<string, string>) => void; export type HttpRequesterRequestOptions = { url: string; headers?: { [k: string]: any; }; data: { [k: string]: any; }; dataType: string; }; export interface AbortableAsyncIterator<T extends any = any> extends AsyncIterable<T> { abortController: AbortController; } export default class HttpRequester { private fetch; private requestCallbacks; private responseCallbacks; private iteratorCallbacks; static makeUrl(url: string, data: { [k: string]: any; }): string; constructor(ponyFetch?: WindowOrWorkerGlobalScope['fetch']); on<T extends HttpRequesterEventType>(event: T, callback: T extends 'request' ? HttpRequesterRequestCallback : T extends 'response' ? HttpRequesterResponseCallback : T extends 'iterator' ? HttpRequesterIteratorCallback : never): () => boolean; off<T extends HttpRequesterEventType>(event: T, callback: T extends 'request' ? HttpRequesterRequestCallback : T extends 'response' ? HttpRequesterResponseCallback : T extends 'iterator' ? HttpRequesterIteratorCallback : never): boolean; GET(opt: HttpRequesterRequestOptions): Promise<any>; POST(opt: HttpRequesterRequestOptions): Promise<any>; POST_ITERATOR(opt: HttpRequesterRequestOptions): Promise<AbortableAsyncIterator<any>>; PUT(opt: HttpRequesterRequestOptions): Promise<any>; PATCH(opt: HttpRequesterRequestOptions): Promise<any>; DELETE(opt: HttpRequesterRequestOptions): Promise<any>; _httpRequest(method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', opt: HttpRequesterRequestOptions): Promise<any>; _iteratorRequest(method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', opt: HttpRequesterRequestOptions): Promise<AbortableAsyncIterator>; } export declare class InvalidResponseError extends Error { constructor(message: string); } export declare class ConnectionClosedUnexpectedlyError extends Error { constructor(message: string); } export declare class ConnectionError extends Error { constructor(message: string); } export declare class HttpError extends Error { status: number; statusText: string; constructor(name: string, response: Response, errObj: { textStatus: string; }); } export declare class InformationalError extends HttpError { constructor(response: Response, errObj: { textStatus: string; }); } export declare class SuccessError extends HttpError { constructor(response: Response, errObj: { textStatus: string; }); } export declare class RedirectError extends HttpError { constructor(response: Response, errObj: { textStatus: string; }); } export declare class ClientError extends HttpError { constructor(response: Response, errObj: { textStatus: string; }); } export declare class ServerError extends HttpError { constructor(response: Response, errObj: { textStatus: string; }); }