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

results matching ""

    No results matching ""