UNPKG

@saberhq/sail

Version:

Account caching and batched loading for React-based Solana applications.

39 lines 1.05 kB
"use strict"; 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