UNPKG

@sap-cloud-sdk/connectivity

Version:

SAP Cloud SDK for JavaScript connectivity

47 lines 1.63 kB
"use strict"; 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