@opra/client
Version:
Opra Client package
35 lines (34 loc) • 1.88 kB
TypeScript
import { type URLSearchParamsInit } from '@opra/common';
import { Observable } from 'rxjs';
import { kBackend, kContext } from '../constants.js';
import { HttpObserveType } from './enums/http-observable-type.enum.js';
import { HttpBackend } from './http-backend.js';
import { HttpResponse } from './http-response.js';
import { type HttpEvent } from './interfaces/http-event.js';
/**
*
* @class HttpRequestObservable
*/
export declare class HttpRequestObservable<T, TBody = T, TRequestOptions = {}, TResponseExt = {}> extends Observable<T> {
[kBackend]: HttpBackend;
[kContext]: {
observe: HttpObserveType;
method: string;
url: URL;
headers: Headers;
[key: string]: any;
};
constructor(backend: HttpBackend, init?: HttpBackend.RequestInit);
clone(): HttpRequestObservable<T, TBody, TRequestOptions, TResponseExt>;
options(options: TRequestOptions): HttpRequestObservable<T, TBody, TRequestOptions, TResponseExt>;
header(headers: HeadersInit): this;
header(name: string, value?: string | number | boolean | null): this;
param(params: URLSearchParamsInit | Record<string, string | number | boolean | Date>): this;
param(name: string, value: any): this;
observe(observe: HttpObserveType.Body): HttpRequestObservable<TBody, TBody, TRequestOptions, TResponseExt>;
observe(observe: HttpObserveType.ResponseHeader): HttpRequestObservable<HttpResponse<void> & TResponseExt, TBody, TRequestOptions, TResponseExt>;
observe(observe: HttpObserveType.Response): HttpRequestObservable<HttpResponse<TBody> & TResponseExt, TBody, TRequestOptions, TResponseExt>;
observe(observe: HttpObserveType.Events): HttpRequestObservable<HttpEvent<TBody, TResponseExt>, TBody, TRequestOptions, TResponseExt>;
getBody(): Promise<TBody>;
getResponse(): Promise<HttpResponse<TBody> & TResponseExt>;
}