Cache Validation
Smart cache freshness checking via HTTP HEAD requests.
The CacheValidator checks whether cached content is still fresh by sending HTTP HEAD requests and comparing ETag/Last-Modified headers.
Usage
import { CacheValidator } from "feedstock";
const validator = new CacheValidator({ timeout: 10_000 });
const result = await validator.validate(
"https://example.com/page",
cachedEtag, // from previous response
cachedLastModified, // from previous response
);
if (result.fresh) {
// Cache is still valid, use cached content
} else {
// Content has changed, re-crawl
}How It Works
- Sends a
HEADrequest withIf-None-Match(ETag) andIf-Modified-Sinceheaders - If the server responds with
304 Not Modified, the cache is fresh - Otherwise, new ETag/Last-Modified values are returned for the next validation
Result
interface CacheValidationResult {
fresh: boolean; // true if cache is still valid
etag: string | null; // new or existing ETag
lastModified: string | null; // new or existing Last-Modified
}Network errors are treated as stale (returns fresh: false) to be safe.
Edit on GitHub
Last updated on