Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jtblin/sync-cache
NodeJS cache for synchronous modules e.g. using Fibers based on Isaac's AsyncCache
https://github.com/jtblin/sync-cache
Last synced: 19 days ago
JSON representation
NodeJS cache for synchronous modules e.g. using Fibers based on Isaac's AsyncCache
- Host: GitHub
- URL: https://github.com/jtblin/sync-cache
- Owner: jtblin
- License: other
- Created: 2014-03-26T08:05:15.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2014-03-26T08:11:58.000Z (almost 11 years ago)
- Last Synced: 2024-11-28T09:08:08.350Z (about 1 month ago)
- Language: JavaScript
- Size: 113 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# sync-cache
Cache for synchronous modules e.g. using Fibers based on [Isaac's AsyncCache](https://github.com/isaacs/async-cache).
By default use [lru-cache](https://github.com/isaacs/node-lru-cache) but can be passed any store that follows a simple api.## Usage
npm install sync-cache --save
```js
var SyncCache = require('sync-cache');
var client = require('./my-sync-module');
var cache = new SyncCache({ max: 1000, maxAge: 1000*60*60, load: client.find });// ...
var value = cache.get(params);
// Do something with value
```## Options
- `load` function to execute when no item is found in the cache
- `max` number of items to cache (passed to `lru-cache` or configured cache store), defaults **Infinity**
- `maxAge` maximum number of milliseconds to keep items, defaults **null**
- `stale` boolean to indicate if cache should return stale items (`lru-cache`),default **false**
- `store` cache store object, default **lru-cache**## API
### get (key)
Returns an item from the cache. If the item is not found, call the load handler to retrieve the item and
save the item in the cache.### set (key, value)
Save the value in the cache for key.
### del (key)
Delete an item from the cache.
### reset ()
Remove all items from the cache.
**Note** support varies with underlying cache stores, e.g. not possible with `sync-memcached-store`.### has (key)
Check if a key exists without returning the value.
**Note** support varies with underlying cache stores, e.g. it is the same as a `get` with `sync-memcached-store`.### peek (key)
Calls underlying cache store `peek` method.
**Note** support varies with underlying cache stores, e.g. not possible with `sync-memcached-store`.## Cache stores
To create a new cache store for SyncCache, it must support the same API i.e. get, has, set, del, reset, has, peek.