1.0.46 • Published 6 years ago

nexustate v1.0.46

Weekly downloads
3
License
MIT
Repository
github
Last release
6 years ago

Description

Nexustate is designed to manage state and send notifications to listeners when state changes.

install

npm install --save nexustate

API Reference

Nexustate({ saveCallback = null, loadCallback = null, storageKey = 'default', persist = false })

parameters:

  • persist: Save and load this state? Changes will be loaded using the load() function and saved after changes occur or with the save() function
  • saveCallback: This function will be called on a throttled interval when your state changes if persist is true
  • loadCallback: This function is called when the load() function is called, load() must be called manually unless using getNexustate()
  • storageKey: When calling the saveCallback and loadCallback, this key is the root key

response:

New instance of Nexustate

example:

import { Nexustate } from 'nexustate';

const saveState = {};
const state = new Nexustate({ saveCallback: (key, value) => { saveState[key] = value; }, loadCallback: (key) => saveState[key] });
const logChange = (data) => console.log;

state.listen({ key: ['some', 'key'], callback: logChange });

state.set({ some: { key: 'hello' } });

// logChange is called with the value 'hello'
// saveState['default'] is changed to { some: { key: 'hello' } };

Nexustate.set(object, options = { immediatePersist: false, noNotify: false })

parameters:

  • object: Apply this object into the current state
  • options.immediatePersist: Don't throttle the save function, call it immediately. Useful for tests
  • options.noNotify: Don't send notifications to listeners

response:

Current full state

example:

state.set({ some: { key: 'hello' } }, { immediatePersist: true });

Nexustate.setKey(key, object, options = { immediatePersist: false, noNotify: false })

parameters:

  • key: String or array representing the location we want to change, this value does not have to already exist for set to work
  • object: Apply this object into the current state
  • options.immediatePersist: Don't throttle the save function, call it immediately. Useful for tests
  • options.noNotify: Don't send notifications to listeners

response:

Current full state

example:

state.setKey(['a', 'b', 'c'], 'hi');

state.get(null) // returns { a: { b: { c: 'hi' } } };

Nexustate.listen({ key: null, callback: () => {}, alias: null, component: null, transform: null, noChildUpdates: false })

parameters:

  • key: String or array for the path we want to listen for changes in
  • callback: When something changes in that path, run this callback with the new data
  • alias: Send this alias along with the change to callback
  • component: Used as a reference to remove all callbacks for a given entity using unlistenComponent
  • transform: Function to transform the incoming data before executing callback
  • noChildUpdates: Don't listen for any updates to nested child records

response:

Success boolean

example:

state.listen({ key: 'a.b.c', data => console.log , alias: 'boop', transform: value => `+++${value}` });
1.0.46

6 years ago

1.0.45

6 years ago

1.0.44

6 years ago

1.0.43

6 years ago

1.0.42

6 years ago

1.0.41

6 years ago

1.0.40

6 years ago

1.0.39

6 years ago

1.0.38

6 years ago

1.0.37

6 years ago

1.0.36

6 years ago

1.0.35

6 years ago

1.0.34

6 years ago

1.0.33

6 years ago

1.0.32

6 years ago

1.0.31

6 years ago

1.0.30

6 years ago

1.0.29

6 years ago

1.0.28

6 years ago

1.0.27

6 years ago

1.0.25

6 years ago

1.0.24

6 years ago

1.0.23

6 years ago

1.0.22

6 years ago

1.0.21

6 years ago

1.0.20

6 years ago