@nymphjs/client
Version:
Nymph.js - Client
79 lines (78 loc) • 3.33 kB
TypeScript
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;
});
}