@sap-cloud-sdk/connectivity
Version:
SAP Cloud SDK for JavaScript connectivity
47 lines • 1.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.clientCredentialsTokenCache = void 0;
exports.getCacheKey = getCacheKey;
const util_1 = require("@sap-cloud-sdk/util");
const cache_1 = require("./cache");
const logger = (0, util_1.createLogger)({
package: 'connectivity',
messageContext: 'client-credentials-token-cache'
});
const ClientCredentialsTokenCache = (cache) => ({
getToken: (tenantId, clientId) => cache.get(getCacheKey(tenantId, clientId)),
cacheToken: (tenantId, clientId, token) => {
cache.set(getCacheKey(tenantId, clientId), {
entry: token,
expires: token.expires_in
? Date.now() + token.expires_in * 1000
: undefined
});
},
clear: () => {
cache.clear();
},
getCacheInstance: () => cache
});
/** *
* @internal
* @param tenantId - The ID of the tenant to cache the token for.
* @param clientId - ClientId to fetch the token
* @returns the token
*/
function getCacheKey(tenantId, clientId) {
if (!tenantId) {
logger.warn('Cannot create cache key for client credentials token cache. The given tenant ID is undefined.');
return;
}
if (!clientId) {
logger.warn('Cannot create cache key for client credentials token cache. The given client ID is undefined.');
return;
}
return [tenantId, clientId].join(':');
}
/**
* @internal
*/
exports.clientCredentialsTokenCache = ClientCredentialsTokenCache(new cache_1.Cache(5 * 60 * 1000 /* 5 minutes in ms */));
//# sourceMappingURL=client-credentials-token-cache.js.map