@dbs-portal/core-api
Version:
HTTP client and API utilities for DBS Portal
84 lines • 2.92 kB
TypeScript
/**
* Common interceptors for API requests and responses
*/
import type { RequestInterceptor, ResponseInterceptor } from '../types';
/**
* Authentication interceptor that adds bearer token to requests
*/
export declare function createAuthInterceptor(getToken: () => string | null): RequestInterceptor;
/**
* Base URL interceptor
*/
export declare function createBaseUrlInterceptor(baseURL: string): RequestInterceptor;
/**
* Request ID interceptor that adds unique request IDs
*/
export declare function createRequestIdInterceptor(): RequestInterceptor;
/**
* Content type interceptor
*/
export declare function createContentTypeInterceptor(contentType: string): RequestInterceptor;
/**
* User agent interceptor
*/
export declare function createUserAgentInterceptor(userAgent: string): RequestInterceptor;
/**
* API version interceptor
*/
export declare function createApiVersionInterceptor(version: string, headerName?: string): RequestInterceptor;
/**
* Logging interceptor for requests
*/
export declare function createRequestLoggingInterceptor(logger?: (message: string, data?: any) => void): RequestInterceptor;
/**
* Logging interceptor for responses
*/
export declare function createResponseLoggingInterceptor(logger?: (message: string, data?: any) => void): ResponseInterceptor;
/**
* Response transformation interceptor
*/
export declare function createResponseTransformInterceptor<T, U>(transformer: (data: T) => U): ResponseInterceptor;
/**
* Error handling interceptor
*/
export declare function createErrorHandlingInterceptor(errorHandler: (error: any) => any): ResponseInterceptor;
/**
* Timeout interceptor
*/
export declare function createTimeoutInterceptor(timeout: number): RequestInterceptor;
/**
* Cache control interceptor
*/
export declare function createCacheControlInterceptor(cacheControl: string): RequestInterceptor;
/**
* CSRF token interceptor
*/
export declare function createCsrfInterceptor(getToken: () => string | null, headerName?: string): RequestInterceptor;
/**
* Rate limit handling interceptor
*/
export declare function createRateLimitInterceptor(onRateLimit?: (retryAfter: number) => void): ResponseInterceptor;
/**
* Response validation interceptor
*/
export declare function createResponseValidationInterceptor(validator: (data: any) => boolean, errorMessage?: string): ResponseInterceptor;
/**
* Request deduplication interceptor
*/
export declare function createDeduplicationInterceptor(): {
requestInterceptor: RequestInterceptor;
responseInterceptor: ResponseInterceptor;
};
/**
* Performance monitoring interceptor
*/
export declare function createPerformanceInterceptor(onMetrics?: (metrics: {
url: string;
method: string;
duration: number;
status: number;
}) => void): {
requestInterceptor: RequestInterceptor;
responseInterceptor: ResponseInterceptor;
};
//# sourceMappingURL=common-interceptors.d.ts.map