Setup
setup: ({ Observable: Observable, plugins?: Array<Function>, HOStateStream: StateStream }) => void
setup is a function to setup Rxact. It receive an options object, including keys:
- Observable: configure the observable lib you choose.
- plugins: plugins for enhancing Rxact.
- HOStateStream: High order StateStream, you can specify this argument if you have a modified StateStream.
Example
// Note: setup may only execute once in app life except after teardown().
setup({ Observable: Rx.Observable }) // configure RxJS Observable
setup({ Observable, plugins: [rxactDebugger(), rxactReact()] }) // configure rxact-debugger and rxact-react plugins
class HOStateStream extends StateStream {
constructor(streamName, initialValue, stateStreams) {
const name = `HOS${streamName}`
return super(streamName, initialValue, stateStreams)
}
}
setup({ Observable, plugins: [], StateStream: HOStateStream }) // configure high order StateStream
plugin
plugin: StateStream => StateStream
plugin is a function. StateStream will pass instance as first argument to plugin, and then developer can modify the instance or create a proxy of instance, and return it in plugin function. StateStream will use this new instance in constructor.
Example
1.
// add a new property to instance
const plugin = (instance) => {
instance.test = 'test'
return instance
}
setup({ Observable, plugins: [plugin] })
const stream = new StateStream('example')
console.log(stream.test)
// test
2.
// create a proxy
const plugin = (instance) => {
return new Proxy(instance, {
get: (target, prop) => {
console.log(`${prop} called`)
return target[prop]
}
})
}
setup({ Observable, plugins: [plugin] })
const stream = new StateStream('example')
stream.state$
// state$ called