4.0.0 • Published 6 years ago
picostate v4.0.0

npm i picostate --saveEvent-based immutable state management.
- 400 bytes
- familiar event based interface
- only fires listeners for changed values
- emits state updates only when requested
- integrates seamlessly with React
Usage
Create a store:
import createStore from "picostate";
const store = createStore({
a: 0,
b: false
});Safely access state:
store.state; // { a: 0, b: false }Register a listener for any state changes:
store.listen(state => console.log(state));Register a listener only for changes to an array of props, in this case b:
store.listen(["b"], state => console.log(state.b));Update state:
const emit = store.hydrate({ a: 1 });Fire registered listeners:
emit(); // { a: 1, b: false }Update state and fire listeners:
store.hydrate({ b: true })(); // { a: 1, b: true }, trueUpdate state using the previous state:
store.hydrate(state => ({ a: state.a + 1 }))(); // { a: 2, b: true }const removeListener = store.listen(state => console.log(state));
store.hydrate({ a: 1 })(); // { a: 1, b: true }
removeListener();
store.hydrate({ a: 2 })(); // no listener fired
store.state; // { a: 2, b: true }Reset to initial state:
store.hydrate();
store.state; // { a: 0, b: false }License
MIT License © Eric Bailey
4.0.0
6 years ago
3.1.0
6 years ago
3.0.0
6 years ago
2.0.0
6 years ago
1.4.0
7 years ago
1.3.1
7 years ago
1.3.0
8 years ago
1.2.0
8 years ago
1.1.2
8 years ago
1.1.1-beta
8 years ago
1.0.3
8 years ago
1.1.0-beta
8 years ago
1.0.2
8 years ago
1.0.2-beta
8 years ago
1.0.1
8 years ago
1.0.0
8 years ago
0.0.6
8 years ago
0.0.5
8 years ago
0.0.4
8 years ago
0.0.3
8 years ago
0.0.2
8 years ago
0.0.1
8 years ago