@neo-one/node-storage-cache-esnext-esm
Version:
NEO•ONE node storage cache.
54 lines (52 loc) • 1.49 kB
JavaScript
export function createReadStorage({ cache, storage, serializeKeyString, }) {
const get = async (key) => {
const keyString = serializeKeyString(key);
const value = cache.get(keyString);
if (value !== undefined) {
return value;
}
return storage.get(key).then((val) => {
cache.set(keyString, val);
return val;
});
};
const tryGet = async (key) => {
const keyString = serializeKeyString(key);
const value = cache.get(keyString);
if (value !== undefined) {
return value;
}
return storage.tryGet(key).then((val) => {
if (val !== undefined) {
cache.set(keyString, val);
}
return val;
});
};
return { get, tryGet };
}
export function createReadAllStorage({ cache, storage, serializeKeyString, }) {
const readStorage = createReadStorage({
cache,
storage,
serializeKeyString,
});
return {
get: readStorage.get,
tryGet: readStorage.tryGet,
all$: storage.all$,
};
}
export function createReadGetAllStorage({ cache, storage, serializeKeyString, }) {
const readStorage = createReadStorage({
cache,
storage,
serializeKeyString,
});
return {
get: readStorage.get,
tryGet: readStorage.tryGet,
getAll$: storage.getAll$,
};
}
//# sourceMappingURL=read.js.map