cacheability
    TypeScript icon, indicating that this package has built-in type declarations

    3.0.1 • Public • Published

    cacheability

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

    Build Status codecov License: MIT npm version

    Installation

    yarn 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"

    Additional documentation can be found on the Cacheability github pages.

    Changelog

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

    License

    Cacheability is MIT Licensed.

    Install

    npm i cacheability

    DownloadsWeekly Downloads

    98

    Version

    3.0.1

    License

    MIT

    Unpacked Size

    77.4 kB

    Total Files

    49

    Last publish

    Collaborators

    • dylanaubrey