orph
Design actions by restricting authority.
Installation
yarn add orph
Usage
const store = count: 0 store const listeners = store { superprops store } { store } { return <main> <h1>thisstatecount</h1> <button onClick=listeners'RENDER:UP'>+</button> <button onClick=listeners'RENDER:DOWN'>-</button> </main> }
API
new Orph(initialState)
initialState
is set to react when attached and will be never changed.
orph.register(actions, options)
options
use
required to restrict authority of use.
prefix
string added to name head.
console // undefined use: dispatch: true
orph.order(void | Array): { [name]: listener }
return object contain listener format function.
store const listeners = store// listeners['FOO']: (e) => store.dispatch('FOO', e)
orph.attach(react, options)
used in constructor
.
options
inherit
: boolean setpreState
toreact.state
.
orph.detach()
used in componentWillUnmount
. Extract instance state as preState
.
orph.dispatch(name[, data]): Promise<Action$Result>
same as below.
orph.list(): { [name]: useKeys }
util for debug.
orph.getLatestState(key[, reference]): StateValue
Use
props(key[, reference]): Promise
state(key[, reference]): Promise
cloned by default.
if reference
is true
, not be cloned that is passed directly.
render(): Promise
pass arg to setState
.
update(): Promise
pass arg to forceUpdate
dispatch(name[, data]): Promise<Action$Result>
the result is passed by then
.
count * 1000 prefix: 'UTIL:' use: dispatch: true props: true
All functions registerd can be connected by dispatch
.
.catch(err)
Use
process will be canceled if run after orph.detach
.
// { isDetached: true }
License
MIT (http://opensource.org/licenses/MIT)