sync-disk-cache

    2.1.0 • Public • Published

    sync-disk-cache Build status Build Status

    A 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/<username>/ for storage, but this can be changed by setting the $TMPDIR environment variable.

    All stored values become strings.

    Example

    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 `cache-key` 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

    var Cache = require('sync-disk-cache');
    var cache = new Cache('my-cache', {
      compression: 'gzip' | 'deflate' | 'deflateRaw' // basically just what nodes zlib's ships with
    })

    HELP!...my TMP dir is growing unbounded!

    description

    In general most OS distributions come with cron like tasks, which purge unused files in $TMPDIR. 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.

    License

    Licensed under the MIT License, Copyright 2015 Stefan Penner

    Install

    npm i sync-disk-cache

    DownloadsWeekly Downloads

    298,021

    Version

    2.1.0

    License

    none

    Unpacked Size

    10.6 kB

    Total Files

    5

    Last publish

    Collaborators

    • rwjblue
    • stefanpenner
    • trentmwillis