UNPKG

@cloud-copilot/iam-lens

Version:

Visibility in IAM in and across AWS accounts

37 lines 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SharedArrayBufferMainCache = void 0; const buffers_js_1 = require("./buffers.js"); //TODO: Add a Prefix to avoid collisions if there are multiple caches class SharedArrayBufferMainCache { cache = {}; constructor(workers) { for (const worker of workers) { worker.on('message', (message) => { if (message.type === 'getCache') { const cacheKey = message.cacheKey; const value = this.cache[cacheKey]; if (value) { worker.postMessage({ type: 'cacheHit', cacheKey, value }); } else { worker.postMessage({ type: 'cacheMiss', cacheKey }); } } else if (message.type === 'saveCache') { this.cache[message.cacheKey] = message.value; } }); } } async withCache(cacheKey, fetcher) { if (this.cache[cacheKey]) { return (0, buffers_js_1.convertArrayBufferToObject)(this.cache[cacheKey]); } const result = await fetcher(); this.cache[cacheKey] = (0, buffers_js_1.convertObjectToArrayBuffer)(result); return result; } } exports.SharedArrayBufferMainCache = SharedArrayBufferMainCache; //# sourceMappingURL=SharedArrayBufferMainCache.js.map