Browse Source

Refactor expire function to return expirey date rather than time in ms

pull/15/head
Luke Childs 8 years ago
parent
commit
155f078905
  1. 1
      package.json
  2. 22
      src/index.js

1
package.json

@ -27,6 +27,7 @@
"homepage": "https://github.com/lukechilds/onionoo-node-client", "homepage": "https://github.com/lukechilds/onionoo-node-client",
"dependencies": { "dependencies": {
"cache-manager": "^2.2.0", "cache-manager": "^2.2.0",
"date-fns": "^1.21.1",
"got": "^6.3.0" "got": "^6.3.0"
}, },
"devDependencies": { "devDependencies": {

22
src/index.js

@ -2,6 +2,7 @@ const got = require('got')
const cacheManager = require('cache-manager') const cacheManager = require('cache-manager')
const querystring = require('querystring') const querystring = require('querystring')
const pkg = require('../package.json') const pkg = require('../package.json')
const addSeconds = require('date-fns/add_seconds')
class Onionoo { class Onionoo {
@ -34,21 +35,16 @@ class Onionoo {
}, {}) }, {})
} }
// Returns cache max age from response headers // Returns expirey date from response headers
calculateResponseMaxAge (headers) { expires (headers) {
// Get max age ms const originDate = new Date(headers.date)
const cacheControl = headers['cache-control']
const maxAgeRegex = /max-age=(\d+)/
let maxAge = cacheControl && cacheControl.match(maxAgeRegex)
maxAge = maxAge ? maxAge[1] : 0
// Take current age into account // Get max age ms
if (headers.age) { let maxAge = headers['cache-control'] && headers['cache-control'].match(/max-age=(\d+)/)
maxAge -= headers.age maxAge = parseInt(maxAge ? maxAge[1] : 0)
}
// Don't return negative values // Calculate expirey date
return Math.max(0, maxAge) return addSeconds(new Date(originDate), maxAge)
} }
// Returns a function to make requests to a given endpoint // Returns a function to make requests to a given endpoint

Loading…
Cancel
Save