UNPKG

ketting

Version:

Opiniated HATEAOS / Rest client.

38 lines (37 loc) 1.31 kB
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;