Skip to content

A utility class to parse, store and print http cache headers.

License

badbatch/cacheability

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cacheability

A utility class to parse, store and print http cache headers.

Build and publish License: MIT npm version

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; // cacheControl is { maxAge: 60, public: true } // etag is 33a64df551425fcc55e4d42a148795d9f25f89d4 // ttl is 1516060712991 if Date.now is 1516060501948

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" }); // One second elapses... const isValid = cacheability.checkTTL(); // isValid is true // Three seconds elapse... const isStillValid = cacheability.checkTTL(); // isStillValid is false

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" }); // Five seconds elapse... const cacheControl = cacheability.printCacheControl(); // cacheControl is "public, max-age=55, s-maxage=55"

Changelog

Check out the features, fixes and more that go into each major, minor and patch version.

License

Cacheability is MIT Licensed.

About

A utility class to parse, store and print http cache headers.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •