react-query
Version:
Hooks for managing, caching and syncing asynchronous and remote data in React
32 lines (26 loc) • 794 B
JavaScript
;
exports.__esModule = true;
exports.createAsyncStoragePersister = void 0;
var _asyncThrottle = require("./asyncThrottle");
const createAsyncStoragePersister = ({
storage,
key = "REACT_QUERY_OFFLINE_CACHE",
throttleTime = 1000,
serialize = JSON.stringify,
deserialize = JSON.parse
}) => {
return {
persistClient: (0, _asyncThrottle.asyncThrottle)(persistedClient => storage.setItem(key, serialize(persistedClient)), {
interval: throttleTime
}),
restoreClient: async () => {
const cacheString = await storage.getItem(key);
if (!cacheString) {
return;
}
return deserialize(cacheString);
},
removeClient: () => storage.removeItem(key)
};
};
exports.createAsyncStoragePersister = createAsyncStoragePersister;