@hasan-akbari/advanced-http-client
Version:
Advanced Angular HttpClient with cache, inflight dedup, rate limit, debounce, queueing, batching, retry/backoff, timeout, logging.
29 lines (28 loc) • 1.69 kB
TypeScript
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { SendOptions, HttpMethod } from './types';
import * as i0 from "@angular/core";
export declare class AdvancedHttpClientService {
private http;
private cache;
private inflight;
private lastSent;
private queue;
private batcher;
private cleanupHandle;
constructor(http: HttpClient);
send<T = any>(endpoint: string, payload?: any, options?: SendOptions<T>): Observable<T>;
get<T>(endpoint: string, params?: Record<string, any>, options?: Omit<SendOptions<T>, 'method' | 'params'>): Observable<T>;
post<T>(endpoint: string, body?: any, options?: Omit<SendOptions<T>, 'method' | 'body'>): Observable<T>;
put<T>(endpoint: string, body?: any, options?: Omit<SendOptions<T>, 'method' | 'body'>): Observable<T>;
patch<T>(endpoint: string, body?: any, options?: Omit<SendOptions<T>, 'method' | 'body'>): Observable<T>;
delete<T>(endpoint: string, body?: any, options?: Omit<SendOptions<T>, 'method' | 'body'>): Observable<T>;
head<T>(endpoint: string, params?: Record<string, any>, options?: Omit<SendOptions<T>, 'method' | 'params' | 'body'>): Observable<T>;
options<T>(endpoint: string, params?: Record<string, any>, options?: Omit<SendOptions<T>, 'method' | 'params' | 'body'>): Observable<T>;
clearCacheByKey(method: HttpMethod, endpoint: string, paramsOrBody?: any): void;
clearCacheByEndpoint(endpoint: string): void;
clearAllCache(): void;
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<AdvancedHttpClientService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<AdvancedHttpClientService>;
}