pure-cache
Cache with confidence 🎉
Ultra fast & tiny(around 1.28kb gzipped) in-memory JavaScript cache with near realtime cache expiry feature ⚡
Works in any JavaScript runtime(node or browser) ✨
Table of Contents
Install
NPM
npm install pure-cache
Yarn
yarn add pure-cache
UMD build
<script src="https://unpkg.com/pure-cache/dist/pure-cache.umd.js"></script>
Basic usage
-
Import library
import PureCache from 'pure-cache';
-
Create cacheStore instance
const cacheStore = new PureCache({ expiryCheckInterval: 500 });
-
Setup expiry handler
const onExpiry = ({ key, data: { value, expiryAt } }) => {
console.log(`Key:${key} with value:${value} expired at ${expiryAt}.`);
};
cacheStore.on('expiry', onExpiry);
-
Put/Get data from cacheStore
cacheStore.put('foo', 'bar', 30000);
cacheStore.get('foo');
-
Wait for expiry
const wait = t => new Promise(r => setTimeout(r, t));
await wait(31000);
cacheStore.get('foo');
-
Cleanup listeners
cacheStore.off('expiry', onExpiry);
cacheStore.dispose();
Checkout API for advanced usage.
Events
Events are triggered when operations like add, get, remove, clear are performed on cacheStore or when the cache expires.
-
expiry
cacheStore.on('expiry', ({ key, data: { value, addedAt, expiryAt } }) => {
});
-
add
cacheStore.on('add', ({ key, data: { value, addedAt, expiryAt } }) => {
});
-
get
cacheStore.on('get', ({ key, data: { value, addedAt, expiryAt } }) => {
});
-
remove
cacheStore.on('remove', ({ key, data: { value, addedAt, expiryAt } }) => {
});
-
clear
cacheStore.on('clear', () => {
});
API
Contribute
Thanks for taking time to contribute, please read docs and checkout src to understand how things work.
Reporting Issues
Found a problem? Want a new feature? First of all see if your issue or idea has already been reported.
If don't, just open a new clear and descriptive issue.
Submitting pull requests
Pull requests are the greatest contributions, so be sure they are focused in scope, and do avoid unrelated commits.
- Fork it!
- Clone your fork:
git clone https://github.com/<your-username>/pure-cache
- Navigate to the newly cloned directory:
cd pure-cache
- Create a new branch for the new feature:
git checkout -b my-new-feature
- Install the tools necessary for development:
yarn
- Make your changes.
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request with full remarks documenting your changes
Credits
License
MIT License © Ganapati V S