@saberhq/sail
Version:
Account caching and batched loading for React-based Solana applications.
39 lines • 1.05 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.fetchNullableWithSessionCache = exports.fetchNullable = void 0;
/**
* Performs a GET request, returning `null` if 404.
*
* @param url
* @param signal
* @returns
*/
const fetchNullable = async (url, signal) => {
const resp = await fetch(url, { signal });
if (resp.status === 404) {
return null;
}
const info = (await resp.json());
return info;
};
exports.fetchNullable = fetchNullable;
const sessionCache = {};
/**
* Performs a GET request with a cache, returning `null` if 404.
*
* The cache expires on browser reload.
*
* @param url
* @param signal
* @returns
*/
const fetchNullableWithSessionCache = async (url, signal) => {
if (sessionCache[url]) {
return sessionCache[url];
}
const result = await (0, exports.fetchNullable)(url, signal);
sessionCache[url] = result;
return result;
};
exports.fetchNullableWithSessionCache = fetchNullableWithSessionCache;
//# sourceMappingURL=fetchNullable.js.map
;