New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

concurrent-file-store

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

concurrent-file-store

Multi-process safe simple data store, using the filesystem for storage

  • 0.5.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1
Maintainers
1
Weekly downloads
 
Created
Source

concurrent-file-store Build Status npm version Dependency Status

Multi-process safe simple data store, using the filesystem for storage

Usage

import cfs from 'concurrent-file-store';

const store = cfs('path/to/store/folder');

// Create a new object
store.create({
        count: 0;
    })
    .then(console.info)  // Object with id field
    .catch(console.error);


// Read an object
store.read('fg45f-342f')
    .then(console.info) // object
    .catch(console.error);


// Update an object
store.update('fg45f-342f')
    .then(obj => {
        return obj.count++;
    })
    .then(store.save)
    .catch(error => {
        console.error(error);
        store.free('fg45f-342f');
    });


// Delete an object
store.delete('fg45f-342f')
    .catch(console.error);


// List object ids
store.list()
    .then(console.info)  // Array of ids
    .catch(console.error);


// Filter the store
store.filter(obj => obj.name === 'Bob' && obj.count > 3)
    .then(console.info)  // Array of Objects
    .catch(console.error);

Install

npm install concurrent-file-store --save

API

  • const store = new cfs(storePath[, options]) - Creates a store instance

    • storePath Path to a filesystem directory to contain the store's files

    Options

    • idField: id Property to use for the Identity property of each stored object
    • idFunction: shortid.generate Function used to generate a unique id for each object added to the store. function(object)
    • lockTimeout: 30000 How long (in miliseconds) an operation with wait to acquire a lock on an object. Locks are assumed to have expired after 10 * lockTimeout

    Returns a store instance (see below)

  • store.create(object) - Creates an object in the store, giving it a unique Identity property

    • object A JSON serialisable object to save in the store

    Returns a Promise with the stored object with the added Identity property

  • store.read(id) - Reads an object from the store

    • id The Identity property value for the object to retrive

    Returns a Promise with the stored object

  • store.update(id) - Update an object in the store

    • id The Identity property value for the object to update

    Returns a Promise with the stored object, to be used with save or free

  • store.save(object) - Used with update to save an updated object

    • object A JSON serialisable object to save in the store

    Returns a Promise with the stored object

  • store.free(id) - Used with update to release a lock on an object

    • id The Identity property value for the object to free

    Returns a Promise

  • store.delete(id) - Delete an object from the store

    • id The Identity property value for the object to delete

    Returns a Promise

  • store.list() - List the Identity values of all the objects in the store

    Returns a Promise with an array of object Indentities

  • store.filter(func) - Filter the store and return an array of matching objects

    • func - Function to filter the objects by

    Returns a Promsie with an array of matching objects

Test

npm install
npm test

FAQs

Package last updated on 23 Aug 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc