ketting
Version:
Opiniated HATEAOS / Rest client.
38 lines (37 loc) • 1.31 kB
TypeScript
import './fetch-polyfill';
export declare type FetchMiddleware = (request: Request, next: (request: Request) => Promise<Response>) => Promise<Response>;
/**
* The fetcher object is responsible for calling fetch()
*
* This is wrapped in an object because we want to support
* 'fetch middlewares'. These middlewares are similar to server-side
* middlewares and can intercept requests and alter requests/responses.
*/
export declare class Fetcher {
middlewares: [RegExp, FetchMiddleware][];
advertiseKetting: boolean;
/**
* A wrapper for MDN fetch()
*
* This wrapper supports 'fetch middlewares'. It will call them
* in sequence.
*/
fetch(resource: string | Request, init?: RequestInit): Promise<Response>;
/**
* Returns the list of middlewares that are applicable to
* a specific origin
*/
getMiddlewaresByOrigin(origin: string): FetchMiddleware[];
/**
* Add a middleware
*/
use(mw: FetchMiddleware, origin?: string): void;
/**
* Does a HTTP request and throws an exception if the server emitted
* a HTTP error.
*
* @see https://developer.mozilla.org/en-US/docs/Web/API/Request/Request
*/
fetchOrThrow(resource: string | Request, init?: RequestInit): Promise<Response>;
}
export default Fetcher;