UNPKG

cache-kit

Version:

A simple caching layer for fetch requests — supports memory, browser (localStorage), and Node.js (filesystem) adapters with smart strategies.

50 lines (48 loc) 1.78 kB
import { __async } from "./chunk-VM2JCVBB.mjs"; // src/cacheManager.ts var cachedFetch = (url, options, cacheOptions) => __async(null, null, function* () { var _a; const methodName = (_a = options == null ? void 0 : options.method) == null ? void 0 : _a.toLowerCase(); let response; const normalizedUrl = new URL(url).href; try { if ((!methodName || methodName === "get") && !(options == null ? void 0 : options.body)) { switch (cacheOptions.adapter) { case "memory": { const { default: memoryCachedFetch } = yield import("./memory-5PKSXVDH.mjs"); response = yield memoryCachedFetch(normalizedUrl, options, cacheOptions); break; } case "browser": { if (typeof window === "undefined") { throw new Error("Browser adapter cannot be used in a Node.js environment."); } const { default: browserCachedFetch } = yield import("./browser-GGUSVVA3.mjs"); response = yield browserCachedFetch(normalizedUrl, options, cacheOptions); break; } case "node": { if (typeof window !== "undefined") { throw new Error("Node adapter cannot be used in the browser."); } const { default: nodeCachedFetch } = yield import("./node-7YOGWEVI.mjs"); response = yield nodeCachedFetch(normalizedUrl, options, cacheOptions); break; } default: throw new Error(`Unknown adapter: ${cacheOptions.adapter}`); } } else { response = yield fetch(url, options); } } catch (error) { console.warn("\u26A0\uFE0F cachedFetch fallback due to error:", error); response = yield fetch(url, options); } return response; }); export { cachedFetch };