expired
Calculate when HTTP responses expire from the cache headers
expired
accepts HTTP headers as an argument and will return information on when the resource will expire. Cache-Control
and Expires
headers are supported, if both exist Cache-Control
takes priority (Why?).
Install
npm install --save expired
Usage
const expired = ; const headers = `Age: 0Cache-Control: public, max-age=300Content-Encoding: gzipContent-Type: application/json;charset=utf-8Date: Fri, 23 Dec 2016 05:50:31 GMTLast-Modified: Fri, 23 Dec 2016 05:23:23 GMT`; ;// false expired;// 500000 expired;// Date('2016-12-23T05:55:31.000Z') ;
Many HTTP modules will parse response headers into an object for you. expired
will also accept headers in this format:
const expired = ; const headers = 'age': '0' 'cache-control': 'public, max-age=300' 'content-encoding': 'gzip' 'content-type': 'application/json;charset=utf-8' 'date': 'Fri, 23 Dec 2016 05:50:31 GMT' 'last-modified': 'Fri, 23 Dec 2016 05:23:23 GMT'; ;// false
Pure Usage
You can make the functions pure by passing in a JavaScript Date
object to compare to instead of depending on new Date()
. This isn't necessary for expired.on
as it doesn't compare dates and is already pure.
The following are all pure functions:
const headers = `...`;const date = ; ;expired;expired;
API
expired(headers, [date])
Returns a boolean relating to whether the resource has expired or not. true
means it's expired, false
means it's fresh.
expired.in(headers, [date])
Returns the amount of milliseconds from the current date until the resource will expire. If the resource has already expired it will return a negative integer.
expired.on(headers)
Returns a JavaScript Date
object for the date the resource will expire.
License
MIT © Luke Childs