UNPKG

@sanity/document-store

Version:

Sanity / gradient document store

34 lines (26 loc) 585 B
"use strict"; var hasOwn = Object.prototype.hasOwnProperty.call.bind(Object.prototype.hasOwnProperty); module.exports = function createObservableCache() { var cache = Object.create(null); return { get(key) { return cache[key]; }, fetch(key, producerFn) { if (this.has(key)) { return this.get(key); } return put(key, producerFn()); }, remove(key) { delete cache[key]; }, has(key) { return hasOwn(cache, key); } }; function put(key, value) { cache[key] = value; return cache[key]; } };