sync disk cache
npm install sync-disk-cacheA sync disk cache. inspired by jgable/cache-swap
An async sibling version is also available: stefanpenner/async-disk-cache
By default, this will usge TMPDIR/ for storage, but this can be changed by setting the $TMPDIR environment variable.
All stored values become strings.
``jscache-key
var Cache = require('sync-disk-cache');
var cache = new Cache('my-cache');
// 'my-cache' also serves as the global key for the cache.
// if you have multiple programs with this same they will share the
// same backing store. This by design.
// checking
cache.has('foo') === wasFooFound;
// retrieving (cache hit)
cache.get('foo') === {
isCached: true,
path: 'foo',
content: 'content of foo'
}
// retrieving (cache miss)
cache.get('foo') === {
isCached: false,
path: 'foo',
content: undefined
}
// retrieving (cache miss)
cache.set('foo', 'content of foo'); // was set
// remove a key
cache.remove('foo');
// clearing the cache
cache.clear(); // cache was cleared
`
Enable compression:
note: node 0.10.x does not support the synchronous zlib method variants, so compression is only available > 0.10.x
`js`
var Cache = require('sync-disk-cache');
var cache = new Cache('my-cache', {
compression: 'gzip' | 'deflate' | 'deflateRaw' // basically just what nodes zlib's ships with
})
. For example, ubuntu typically uses tmpreaper and macOS uses various tasks in /etc/periodic/*.options
If your OS distribution does not provide such a cleanup mechanism:
a) We stronglly recommend utilizing one, as other sync-disk-cache is not alone in rely on this behavior
b) If that is not possible, we recommend changing your
$TMPDIR` to something project specific and manually purging it.Licensed under the MIT License, Copyright 2015 Stefan Penner