@ambassify/ambassify-client
Advanced tools
Comparing version 3.3.0 to 3.3.1
@@ -36,1 +36,25 @@ # Changelog | ||
@@ -37,2 +37,3 @@ 'use strict'; | ||
var jwt = require('jsonwebtoken'); | ||
var safeJson = require('@ambassify/json-parse-safe'); | ||
@@ -192,3 +193,6 @@ var AmbassifyError = require('@ambassify/error'); | ||
var doCachedRefreshToken = throttle(doRefreshToken, 5 * 60 * 1000, { | ||
var MAX_TTL = 59 * 60 * 1000; // 59 minutes (tokens are usually valid for an hour) | ||
var doCachedRefreshToken = throttle(doRefreshToken, MAX_TTL, { | ||
rejectFailedPromise: true, | ||
resolver: function resolver(f, _ref3) { | ||
@@ -202,3 +206,18 @@ var token = _ref3.token, | ||
}, | ||
rejectFailedPromise: true | ||
onCached: function onCached(item) { | ||
return item.value.then(function (_ref4) { | ||
var token = _ref4.token; | ||
var _ref5 = jwt.decode(token) || {}, | ||
exp = _ref5.exp; | ||
if (!exp) return; | ||
var ttl = (exp - 60) * 1000 - Date.now(); | ||
ttl = Math.max(0, Math.min(MAX_TTL, ttl)); | ||
item.ttl(ttl); | ||
}).catch(function () {}); | ||
} | ||
}); | ||
@@ -205,0 +224,0 @@ |
{ | ||
"name": "@ambassify/ambassify-client", | ||
"version": "3.3.0", | ||
"version": "3.3.1", | ||
"description": "Base API client library for all Ambassify clients", | ||
@@ -57,3 +57,3 @@ "engines": { | ||
"homepage": "https://github.com/ambassify/api-clients#readme", | ||
"gitHead": "5088e950b34f66bea6deafaf7c58189de618d086" | ||
"gitHead": "ea8683d2ac301be3f63543ce99574f6b3c8e6554" | ||
} |
@@ -0,1 +1,2 @@ | ||
const jwt = require('jsonwebtoken'); | ||
const safeJson = require('@ambassify/json-parse-safe'); | ||
@@ -142,3 +143,7 @@ const AmbassifyError = require('@ambassify/error'); | ||
const doCachedRefreshToken = throttle(doRefreshToken, 5 * 60 * 1000, { | ||
const MAX_TTL = 59 * 60 * 1000; // 59 minutes (tokens are usually valid for an hour) | ||
const doCachedRefreshToken = throttle(doRefreshToken, MAX_TTL, { | ||
rejectFailedPromise: true, | ||
resolver: (f, { | ||
@@ -151,3 +156,14 @@ token, | ||
}) => clientId + strHash(token + refreshToken + tokenEndpoint + tokenAuthorization), | ||
rejectFailedPromise: true | ||
onCached: item => item.value.then(({ token }) => { | ||
const { exp } = jwt.decode(token) || {}; | ||
if (!exp) | ||
return; | ||
let ttl = ((exp - 60) * 1000) - Date.now(); | ||
ttl = Math.max(0, Math.min(MAX_TTL, ttl)); | ||
item.ttl(ttl); | ||
}).catch(() => { }) | ||
}); | ||
@@ -154,0 +170,0 @@ |
46486
1090