@studiometa/js-toolkit
Version:
A set of useful little bits of JavaScript to boost your project! 🚀
21 lines (20 loc) • 509 B
JavaScript
import { isArray } from "./is.js";
const map = /* @__PURE__ */ new Map();
function cache(keys, callback) {
const normalizedKeys = isArray(keys) ? keys : [keys];
let value = map;
let index = 1;
for (const key of normalizedKeys) {
if (!value.has(key)) {
const newValue = index === keys.length ? callback() : /* @__PURE__ */ new Map();
value.set(key, newValue);
}
value = value.get(key);
index += 1;
}
return value;
}
export {
cache
};
//# sourceMappingURL=cache.js.map