balena-sdk
Version:
The Balena JavaScript SDK
21 lines (20 loc) • 741 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAuthDependentMemoize = void 0;
const tslib_1 = require("tslib");
const memoizee_1 = tslib_1.__importDefault(require("memoizee"));
const DEFAULT_CACHING_INTERVAL = 10 * 60 * 1000; // 10 minutes
const getAuthDependentMemoize = (pubsub, cacheInterval = DEFAULT_CACHING_INTERVAL) => {
return (fn) => {
const memoizedFn = (0, memoizee_1.default)(fn, {
maxAge: cacheInterval,
primitive: true,
promise: true,
});
pubsub.subscribe('auth.keyChange', () => {
memoizedFn.clear();
});
return memoizedFn;
};
};
exports.getAuthDependentMemoize = getAuthDependentMemoize;