Skip to content

node-modules/diskstore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

diskstore

a basic local cache implementation

NPM version Node.js CI Test coverage npm 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

const diskStore = new DiskStore({
  cacheDir: '/path/cache',
});

await diskStore.set('a/b/c', 'c');
let data = await diskStore.get('a/b/c');
assert.deepEqual(data, Buffer.from('c'));

await diskStore.delete('a/b/c');
data = await diskStore.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

License

Stars

8 stars

Watchers

11 watching

Forks

Packages

 
 
 

Contributors