Skip to content

Repository files navigation

diskstore

a basic local cache implementation

NPM versionNode.js CITest coveragenpm download

Introduction

A basic file cache implementation. It just providers low-level APIs (get, set, delete) to allow you read & atomic write from file cache. You can also create your implementation by inheriting or wrapping it.

Install

npm install diskstore --save

APIs

  • new DiskStore(options)
    • {String} cacheDir - root cache dir
    • {Boolean} [fallback=true] - when the internal rename fails with EXDEV (the .tmp dir and the target file are on different filesystems), retry by writing a temp file in the target file's own directory and rename it there, which stays atomic. Set to false to let the EXDEV error throw.
    • {String} [fallbackTmpfileName] - the temp file name used by the fallback, placed in the target file's directory. Defaults to a random name. A fixed name is only safe when concurrent writes to the same directory cannot happen; otherwise keep the default so each write gets a unique temp file.
  • async get(relativePath) read data from relativePath if the file exists.
    • {String} relativePath - file path relative to root cache dir
  • async set(relativePath, data) write data to relativePath
    • {String} relativePath - file path relative to root cache dir
    • {Buffer|String} data - the data
  • async delete(relativePath) delete the file
    • {String} relativePath - file path relative to root cache dir

Usage

constdiskStore=newDiskStore({cacheDir: '/path/cache',});awaitdiskStore.set('a/b/c','c');letdata=awaitdiskStore.get('a/b/c');assert.deepEqual(data,Buffer.from('c'));awaitdiskStore.delete('a/b/c');data=awaitdiskStore.get('a/b/c');assert(data===null);

License

MIT

Contributors


leoner


gxcsoccer


fengmk2

This project follows the git-contributor spec, auto updated at Thu Jun 02 2022 15:25:27 GMT+0800.

About

a local cache implement

Resources

Stars

8 stars

Watchers

11 watching

Forks

Releases

Packages

Used by

Contributors

Languages