fetch-api-client
Version:
A TypeScript API client using fetch with axios-like interface
52 lines (51 loc) • 1.49 kB
TypeScript
import { InterceptorManager, RequestInterceptor, ResponseInterceptor } from './types';
/**
* Generic interceptor manager implementation
*/
declare class InterceptorManagerImpl<T> implements InterceptorManager<T> {
private interceptors;
private nextId;
/**
* Add an interceptor and return its ID
*/
use(interceptor: T): number;
/**
* Remove an interceptor by ID
*/
eject(id: number): void;
/**
* Clear all interceptors
*/
clear(): void;
/**
* Get all interceptors as an array
*/
getInterceptors(): T[];
}
/**
* Request interceptor manager
*/
export declare class RequestInterceptorManager extends InterceptorManagerImpl<RequestInterceptor> {
/**
* Execute all request interceptors in sequence
*/
execute(config: import('./types').RequestConfig): Promise<import('./types').RequestConfig>;
}
/**
* Response interceptor manager
*/
export declare class ResponseInterceptorManager extends InterceptorManagerImpl<ResponseInterceptor> {
/**
* Execute fulfilled interceptors
*/
executeFulfilled<T>(response: import('./types').ApiResponse<T>): Promise<import('./types').ApiResponse<T>>;
/**
* Execute rejected interceptors - Fixed to handle proper return types
*/
executeRejected(error: import('./types').ApiError): Promise<import('./types').ApiError>;
/**
* Type guard to check if result is ApiError
*/
private isApiError;
}
export {};