@push.rocks/webrequest
Version:
Modern, fetch-compatible web request library with intelligent HTTP caching, retry strategies, and fault tolerance.
44 lines (43 loc) • 1.35 kB
TypeScript
/**
* HTTP Cache Header parsing and utilities
* Implements RFC 7234 (HTTP Caching)
*/
import type { ICacheMetadata } from '../webrequest.types.js';
/**
* Parse Cache-Control header into metadata
*/
export declare function parseCacheControl(cacheControlHeader: string | null): Partial<ICacheMetadata>;
/**
* Parse Expires header into timestamp
*/
export declare function parseExpires(expiresHeader: string | null): number | undefined;
/**
* Extract cache metadata from response headers
*/
export declare function extractCacheMetadata(headers: Headers): ICacheMetadata;
/**
* Check if a cached response is still fresh
*/
export declare function isFresh(cacheEntry: {
timestamp: number;
maxAge?: number;
}, metadata: ICacheMetadata): boolean;
/**
* Check if revalidation is required
*/
export declare function requiresRevalidation(metadata: ICacheMetadata): boolean;
/**
* Create conditional request headers for revalidation
*/
export declare function createConditionalHeaders(cacheEntry: {
etag?: string;
lastModified?: string;
}): HeadersInit;
/**
* Convert Headers object to plain object for storage
*/
export declare function headersToObject(headers: Headers): Record<string, string>;
/**
* Convert plain object back to Headers
*/
export declare function objectToHeaders(obj: Record<string, string>): Headers;