justore

5.0.1 • Public • Published

Justore

Build Status via Travis CI NPM version js-standard-style

We don't need flux , just the store!

Installation

npm install justore --save

Basic Usage

var justore = require("justore");
var initData = {};
var store = new justore(initData,'Store Name');
 
 
//Write or change data to store, return a Promise
store.write('todos',['drink','cook']);
 
//Subscribe to change
let subscription = store.sub('todos.0',function(newVal,prevVal){
  store.read('todos') === newVal //true, 'drink'
});
//Remember to clean up
subscription.unsubscribe();

Advanced usage

  • store.batchWrite([keyPaths], manipulateFunction); Batch write multiple data to the store, only emit if it's listed on the keyPaths
    store.batchWrite(['vtext', 'enable'], draft => {
      draft.vtext.i = 10
      draft.enable = true
      draft.pos = 12 // works, but no event emit
    });
  • store.write(keyPath, data [,options])

    Write data to the store, return store

    store.write('todos',['drink','cook'],{
      //Boolean. If true, change the store without trigger any events
      mute:false
    });
  • store.sub(keyPath[,onNext][,immediate])

    Subscribe to the store, if onNext is defined, return an Rx Subscription, else return an Rx stream

    store.sub('todos.1',function (newVal, oldVal) {
     //do tings
    });
  • store.read(keyPath)

    Get value for attribute by passing the key.

    store.read("todos.0") //--> 'drink'
  • store.delete(keyPath)

    Useful when you want to delete a root key and it's data

    store.delete("todos")
    store.report()  //--> {}
  • store.report()

    return the full store data. You cannot manipulate it

  • store.debugOn

    if a key in this array, will toggle JS breakpoints when writing that key

React Mixin helper

  • store.createReactMixin(key)

    Return a mixin. Will call onStoreChange method on a React component when store change.

Auto unsubscibe

If the subscribed data has been deleted (not set to undefined), the subscription will unsubscribe automatically

Browser support

IE11 or higher

Package Sidebar

Install

npm i justore

Weekly Downloads

28

Version

5.0.1

License

MIT

Unpacked Size

45.3 kB

Total Files

7

Last publish

Collaborators

  • dogeek