UNPKG

@opra/client

Version:
37 lines (36 loc) 1.98 kB
import { ApiDocument, type URLSearchParamsInit } from '@opra/common'; import type { StrictOmit } from 'ts-gems'; import { kBackend } from '../constants.js'; import { HttpBackend } from './http-backend.js'; import { HttpRequestObservable } from './http-request-observable.js'; /** * * @namespace OpraClientBase */ export declare namespace OpraClientBase { interface Options { document?: ApiDocument; } type RequestOptions = Partial<StrictOmit<HttpBackend.RequestInit, 'url'>> & { params?: URLSearchParamsInit; }; } /** * * @class OpraClientBase * @abstract */ export declare abstract class HttpClientBase<TRequestOptions = {}, TResponseExt = {}> { protected [kBackend]: HttpBackend; protected constructor(backend: HttpBackend); get serviceUrl(): string; fetchDocument(options?: { documentId?: string; }): Promise<ApiDocument>; request<TBody = any>(path: string, options?: OpraClientBase.RequestOptions): HttpRequestObservable<TBody, TBody, TRequestOptions, TResponseExt>; delete<TBody = any>(path: string, options?: StrictOmit<OpraClientBase.RequestOptions, 'method' | 'body'>): HttpRequestObservable<TBody, TBody, TRequestOptions, TResponseExt>; get<TBody = any>(path: string, options?: StrictOmit<OpraClientBase.RequestOptions, 'method' | 'body'>): HttpRequestObservable<TBody, TBody, TRequestOptions, TResponseExt>; patch<TBody = any>(path: string, requestBody: any, options?: StrictOmit<OpraClientBase.RequestOptions, 'method' | 'body'>): HttpRequestObservable<TBody, TBody, TRequestOptions, TResponseExt>; post<TBody = any>(path: string, requestBody: any, options?: StrictOmit<OpraClientBase.RequestOptions, 'method' | 'body'>): HttpRequestObservable<TBody, TBody, TRequestOptions, TResponseExt>; put<TBody = any>(path: string, requestBody: any, options?: StrictOmit<OpraClientBase.RequestOptions, 'method' | 'body'>): HttpRequestObservable<TBody, TBody, TRequestOptions, TResponseExt>; }