@dbs-portal/core-api
Version:
HTTP client and API utilities for DBS Portal
63 lines • 1.89 kB
TypeScript
/**
* Request utility functions
*/
import type { RequestConfig, MultipartFormData } from '../types';
/**
* Serializes data for request body
*/
export declare function serializeRequestData(data: any, contentType?: string): BodyInit | null;
/**
* Creates FormData from object
*/
export declare function createFormData(data: MultipartFormData): FormData;
/**
* Merges request configurations
*/
export declare function mergeConfigs(defaultConfig: Partial<RequestConfig>, requestConfig: RequestConfig): RequestConfig;
/**
* Validates request configuration
*/
export declare function validateRequestConfig(config: RequestConfig): void;
/**
* Creates abort controller with timeout
*/
export declare function createAbortController(timeout?: number): {
controller: AbortController;
timeoutId?: NodeJS.Timeout;
};
/**
* Determines content type from data
*/
export declare function getContentType(data: any): string;
/**
* Checks if request should have body
*/
export declare function shouldHaveBody(method: string): boolean;
/**
* Sanitizes headers by removing undefined values
*/
export declare function sanitizeHeaders(headers: Record<string, any>): Record<string, string>;
/**
* Creates request signature for caching/deduplication
*/
export declare function createRequestSignature(config: RequestConfig): string;
/**
* Checks if request is cacheable
*/
export declare function isCacheableRequest(config: RequestConfig): boolean;
/**
* Estimates request size for monitoring
*/
export declare function estimateRequestSize(config: RequestConfig): number;
/**
* Creates request metadata for logging/monitoring
*/
export declare function createRequestMetadata(config: RequestConfig): {
method: string;
url: string;
hasAuth: boolean;
hasBody: boolean;
estimatedSize: number;
timestamp: number;
};
//# sourceMappingURL=request-utils.d.ts.map