@parthar/mem-store

1.1.0 • Public • Published

Memory Store

In-memory store with CRUD interfaces and TTL

Installation

$ npm install @parthar/mem-store --save

Overview

This is a simple in-memory store implementation. The store uses a unique identity for manipulating data. It supports standard CRUD (create, read, update, delete) interfaces via both sync and async callback mechanisms. In addition, the store implementation also supports TTL (time-to-live) which is optional. The store will purge the data if the TTL expires. If the TTL is omited, the data is un-touched.

The store uses data based on data-references provided by caller. Similarly, the data returned is the actual data-reference in the store. So, be thoughtful about modifying the references to data written-to or read-from store.

Usage

// memory-store setup
var MemoryStore = require("@parthar/mem-store");
var store = new MemoryStore([]); // use instanceof Array for storing data

// create - will return error if duplicate
store.create("id1", val1); // sync
store.create("id1", val1, function (err) { /* do something */ }); // async

// read - will return error if not found
val = store.read("id1"); // val === val1
store.read("id1", function (err, val) { /* !err && val === val1 */ });

// update - will return error if no existing record
store.update("id1", val2); // store.read("id1") === val
store.update("id1", val2, function (err) { /* store.read("id1") === val2 */ }); // async

// upsert - will update (if exists) or create/insert (if not exists)
store.upsert("id1", val2); // store.read("id1") === val
store.upsert("id1", val2, function (err) { /* store.read("id1") === val2 */ }); // async

// delete - will return error if no existing record
store.delete("id1"); // store.read("id1") instanceof Error
store.delete("id1", function (err) { /* err instanceof Error */ }); // async

// ttl
store.create("id1", val1, 50); // optional ttl in milli-sec
store.create("id1", val1, 50, function (err) { /* do something */ }); // optional ttl in milli-sec
setTimeout(function() { /* store.read("id1") instanceof Error */ }, 75);

Package Sidebar

Install

npm i @parthar/mem-store

Weekly Downloads

0

Version

1.1.0

License

ISC

Unpacked Size

7.7 kB

Total Files

4

Last publish

Collaborators

  • partharamanujam