JSPM

  • Created
  • Published
  • Downloads 3687509
  • Score
    100M100P100Q200055F
  • License MIT

A super-fast, promise-based cache that reads and writes to the file-system.

Package Exports

  • file-system-cache

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (file-system-cache) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

file-system-cache

Build Status

A super-fast, promise-based cache that reads and writes to the file-system.

Installation

npm install --save file-system-cache

Usage (API)

Create an instance of the cache optionally giving it a folder location to store files within.

import Cache from "file-system-cache";

const cache = Cache({
  basePath: "./.cache", // Optional. Path where cache files are stored (default).
  ns: "my-namespace" // Optional. A grouping namespace for items.
});

The optional ns ("namespace") allows for multiple groupings of files to reside within the one cache folder. When you have multiple caches with different namespaces you can re-use the same keys and they will not collide.

get(key)

Retrieves the contents of a cached file.

cache.get("foo")
.then(result => /* Success */)
.catch(err => /* Fail */);

Use getSync for a synchronous version.

set(key, value)

Write a value to the cache.

cache.set("foo", "...value...")
.then(result => /* Success */)

Value types are stored and respected on subsequent calls to get. For examples, passing in Object will return that in it's parsed object state.

Use setSync for a synchronous version.

remove(key)

Deletes the specified cache item from the file-system.

cache.remove("foo")
.then(() => /* Removed */)

clear()

Clears all cached items from the file-system.

cache.clear()
.then(() => /* All items deleted */)

save()

Saves (sets) several items to the cache in one operation.

cache.save([{ key:"one", value:"hello" }, { key:"two", value:222 }])
.then(result => /* All items saved. */)

load()

Loads all files within the cache's namespace.

cache.load()
.then(result => /* The complete of cached files (for the ns). */)

Test

# Run tests.
npm test

# Watch and re-run tests.
npm run tdd