@opra/client
Version:
Opra Client package
43 lines (42 loc) • 1.69 kB
TypeScript
import { Observable } from 'rxjs';
import type { Combine, StrictOmit } from 'ts-gems';
import { HttpBackend } from './http-backend.js';
import { HttpResponse } from './http-response.js';
import { type HttpEvent } from './interfaces/http-event.js';
import type { HttpInterceptor } from './interfaces/http-interceptor.js';
/**
*
* @class FetchBackend
*/
export declare class FetchBackend extends HttpBackend {
interceptors: FetchBackend.Interceptor[];
defaults: FetchBackend.RequestDefaults;
constructor(serviceUrl: string, options?: FetchBackend.Options);
handle(init: FetchBackend.RequestInit): Observable<HttpEvent>;
protected send(request: Request): Promise<Response>;
protected prepareRequest(init: FetchBackend.RequestInit): Request;
protected createResponse(init: HttpResponse.Initiator): HttpResponse;
protected parseBody(fetchResponse: Response): Promise<any>;
}
type DomRequestInit = RequestInit;
/**
* @namespace FetchBackend
*/
export declare namespace FetchBackend {
type Interceptor = HttpInterceptor<RequestInit>;
interface Options extends HttpBackend.Options {
interceptors?: Interceptor[];
defaults?: RequestDefaults;
}
interface RequestInit extends Combine<StrictOmit<HttpBackend.RequestInit, 'body'>, DomRequestInit> {
duplex?: string;
reportProgress?: boolean;
}
interface RequestOptions extends Partial<Pick<RequestInit, 'cache' | 'credentials' | 'integrity' | 'keepalive' | 'mode' | 'redirect' | 'referrer' | 'referrerPolicy' | 'reportProgress'>> {
}
type RequestDefaults = RequestOptions & {
headers: Headers;
params: URLSearchParams;
};
}
export {};