@dbs-portal/core-api
Version:
HTTP client and API utilities for DBS Portal
108 lines • 3.23 kB
TypeScript
/**
* Response utility functions
*/
import type { ApiResponse, ApiError } from '../types';
/**
* Checks if response is successful
*/
export declare function isSuccessResponse(response: ApiResponse): boolean;
/**
* Checks if response is a client error
*/
export declare function isClientError(response: ApiResponse): boolean;
/**
* Checks if response is a server error
*/
export declare function isServerError(response: ApiResponse): boolean;
/**
* Checks if response is a redirect
*/
export declare function isRedirect(response: ApiResponse): boolean;
/**
* Extracts error message from response
*/
export declare function extractErrorMessage(response: ApiResponse): string;
/**
* Creates standardized error from response
*/
export declare function createErrorFromResponse(response: ApiResponse): ApiError;
/**
* Parses response headers into object
*/
export declare function parseResponseHeaders(headers: Headers): Record<string, string>;
/**
* Gets content type from response
*/
export declare function getResponseContentType(response: ApiResponse): string;
/**
* Checks if response is JSON
*/
export declare function isJsonResponse(response: ApiResponse): boolean;
/**
* Checks if response is HTML
*/
export declare function isHtmlResponse(response: ApiResponse): boolean;
/**
* Checks if response is XML
*/
export declare function isXmlResponse(response: ApiResponse): boolean;
/**
* Gets response size from headers
*/
export declare function getResponseSize(response: ApiResponse): number;
/**
* Checks if response is compressed
*/
export declare function isCompressedResponse(response: ApiResponse): boolean;
/**
* Gets cache control directives from response
*/
export declare function getCacheControl(response: ApiResponse): Record<string, string | boolean>;
/**
* Checks if response can be cached
*/
export declare function isCacheableResponse(response: ApiResponse): boolean;
/**
* Gets response TTL from cache headers
*/
export declare function getResponseTTL(response: ApiResponse): number;
/**
* Validates response data against schema
*/
export declare function validateResponseData<T>(response: ApiResponse<T>, validator: (data: any) => boolean): boolean;
/**
* Transforms response data
*/
export declare function transformResponseData<T, U>(response: ApiResponse<T>, transformer: (data: T) => U): ApiResponse<U>;
/**
* Creates response metadata for logging/monitoring
*/
export declare function createResponseMetadata(response: ApiResponse): {
status: number;
statusText: string;
contentType: string;
size: number;
compressed: boolean;
cacheable: boolean;
timestamp: number;
};
/**
* Extracts pagination info from response headers
*/
export declare function extractPaginationInfo(response: ApiResponse): {
page?: number;
limit?: number;
total?: number;
totalPages?: number;
hasNext?: boolean;
hasPrevious?: boolean;
} | null;
/**
* Checks if response indicates rate limiting
*/
export declare function isRateLimited(response: ApiResponse): boolean;
/**
* Gets retry-after value from response
*/
export declare function getRetryAfter(response: ApiResponse): number | null;
//# sourceMappingURL=response-utils.d.ts.map