项目作者: badbatch

项目描述 :
A utility class to parse, store and print http cache headers.
高级语言: TypeScript
项目地址: git://github.com/badbatch/cacheability.git
创建时间: 2017-09-04T20:47:56Z
项目社区:https://github.com/badbatch/cacheability

开源协议:MIT License

下载


cacheability

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

Build and publish
License: MIT
npm version

Installation

  1. 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.

  1. import { Cacheability } from "cacheability";
  2. const headers = new Headers({
  3. "cache-control": "public, max-age=60",
  4. "content-type": "application/json",
  5. "etag": "33a64df551425fcc55e4d42a148795d9f25f89d4",
  6. });
  7. const cacheability = new Cacheability({ headers });
  8. const { cacheControl, etag, ttl } = cacheability.metadata;
  9. // cacheControl is { maxAge: 60, public: true }
  10. // etag is 33a64df551425fcc55e4d42a148795d9f25f89d4
  11. // 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.

  1. const cacheability = new Cacheability({ cacheControl: "public, max-age=3" });
  2. // One second elapses...
  3. const isValid = cacheability.checkTTL();
  4. // isValid is true
  5. // Three seconds elapse...
  6. const isStillValid = cacheability.checkTTL();
  7. // 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.

  1. const cacheability = new Cacheability({ cacheControl: "public, max-age=60, s-maxage=60" });
  2. // Five seconds elapse...
  3. const cacheControl = cacheability.printCacheControl();
  4. // 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.