@opra/client
Version:
Opra Client package
37 lines (36 loc) • 1.98 kB
TypeScript
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>;
}