UNPKG

@softchef/cdk-iot-device-management

Version:

IoT device management is composed of things, thing types, thing groups, jobs, files API services. The constructs can be used independently, that are based on full-managed service to create an API Gateway & Lambda function.

49 lines (48 loc) 1.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.memoize = void 0; const memoize = (provider, isExpired, requiresRefresh) => { let resolved; let pending; let hasResult; const coalesceProvider = async () => { if (!pending) { pending = provider(); } try { resolved = await pending; hasResult = true; } finally { pending = undefined; } return resolved; }; if (isExpired === undefined) { return async () => { if (!hasResult) { resolved = await coalesceProvider(); } return resolved; }; } let isConstant = false; return async () => { if (!hasResult) { resolved = await coalesceProvider(); } if (isConstant) { return resolved; } if (requiresRefresh && !requiresRefresh(resolved)) { isConstant = true; return resolved; } if (isExpired(resolved)) { await coalesceProvider(); return resolved; } return resolved; }; }; exports.memoize = memoize;