axios-cache-interceptor-keyv
Version:
Universal storage adapter using Keyv for axios-cache-interceptor - supports Redis, SQLite, MongoDB, PostgreSQL and more backends
31 lines • 1.02 kB
JavaScript
import { buildStorage } from 'axios-cache-interceptor';
export function createKeyvStorage(keyv, options) {
const debug = options?.debug ?? false;
const log = (action, key, extra) => {
if (debug) {
console.log(`[axios-cache-interceptor-keyv] ${action}:`, { key, ...extra });
}
};
const storage = {
async find(key) {
const result = await keyv.get(key);
log('FIND', key, { found: result !== undefined });
return result;
},
async set(key, value) {
const ttl = value.state === 'cached' ? value.ttl : undefined;
await keyv.set(key, value, ttl);
log('SET', key, { state: value.state, ttl });
},
async remove(key) {
await keyv.delete(key);
log('REMOVE', key);
},
async clear() {
await keyv.clear();
log('CLEAR', '*');
},
};
return buildStorage(storage);
}
//# sourceMappingURL=keyv-storage.js.map