cacheability
A utility class to parse, store and print http cache headers.
Installation
npm add cacheability
Documentation
Initialization
The constructor takes either a Headers instance, object literal of header key/values, cache-control header field value
or Cacheability metadata object, parses it, if required, and then stores the result on the Cacheability instance's
metadata property.
import { Cacheability } from "cacheability";
const headers = new Headers({
"cache-control": "public, max-age=60",
"content-type": "application/json",
"etag": "33a64df551425fcc55e4d42a148795d9f25f89d4",
});
const cacheability = new Cacheability({ headers });
const { cacheControl, etag, ttl } = cacheability.metadata;
Properties
metadata
The property holds the Cacheability instance's parsed cache headers data, including cache control directives, etag,
and a derived TTL timestamp.
Methods
checkTTL
The method checks whether the TTL timestamp stored in the Cacheability instance is still valid, by comparing it to the
current timestamp.
const cacheability = new Cacheability({ cacheControl: "public, max-age=3" });
const isValid = cacheability.checkTTL();
const isStillValid = cacheability.checkTTL();
printCacheControl
The method prints a cache-control header field value based on the Cacheability instance's metadata. The max-age and/or
s-maxage are derived from the TTL stored in the metadata.
const cacheability = new Cacheability({ cacheControl: "public, max-age=60, s-maxage=60" });
const cacheControl = cacheability.printCacheControl();
Changelog
Check out the features, fixes and more that go into each major, minor and patch version.
License
Cacheability is MIT Licensed.