UNPKG

@studiometa/js-toolkit

Version:

A set of useful little bits of JavaScript to boost your project! 🚀

20 lines (19 loc) • 538 B
import { isArray } from "./is.js"; function cache(keys, callback) { const normalizedKeys = isArray(keys) ? keys : [keys]; let value = globalThis.__JS_TOOLKIT_CACHE__ ??= /* @__PURE__ */ new Map(); let index = 1; for (const key of normalizedKeys) { if (!value.has(key)) { const newValue = index === normalizedKeys.length ? callback() : /* @__PURE__ */ new Map(); value.set(key, newValue); } value = value.get(key); index += 1; } return value; } export { cache }; //# sourceMappingURL=cache.js.map