@studiometa/js-toolkit
Version:
A set of useful little bits of JavaScript to boost your project! 🚀
20 lines (19 loc) • 538 B
JavaScript
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