Skip to content

lvivski/fusor

Repository files navigation

Fusor

Flexible Flux implementation

API

Fusor.createAction(name[, fn])

Creates a new Action. Returns an Observable/Function.

  • .listen(onSuccess, onFail) Subscribe to an Action. Returns a function, that will unsubscribe you, once called. onSuccess or onFail callback will be called depending on the Action result.

Fusor.createActions(spec)

Creates multiple actions based on the provided spec. Supports sub-actions:

var Actions = Fusor.createActions({
    Parent: {
        $: function () {}, // optional Parent implementation 
        Child: 'Child',
        Child2: function () {} // optional Child implementation
    },
    Parent2: ['Child3', 'Child4'] // alternative syntax
})

Actions can later be used as: Actions.Parent(), Actions.Parent2.Child3() etc.

Note: Action call returns a Promise. They can be chained as regular promises for sequential action chains.

Fusor.createStore(spec)

Creates a new Store. Returns a Fusor.Store object.

  • initialize method, it will be used as a constructor.
  • initialState property will be used a Store's initial state.

Fusor.Store

Store constructor, extend it to create a new Store using ES6 syntax

  • .getInitialState() Returns Store initial state

  • .getState() & .get() Returns current state

  • .setState(stateDiff) & .set(stateDiff) Applies stateDiff to the current state and propagates it to Observers.

  • .resetState() & .reset() Resets state to its original form.

  • .listen(onData) Subscribes an Observer to Store state changes using onData callback.

  • .listenTo(action[, onSuccess, onFail]) Subscribes Store to action calls. Optional onSuccess and onFail methods may be used.

  • .on<ActionName>() & .on<ActionName>Fail() If no callbacks provided to .listenTo() method, appropriate Store methods will be used as callbacks. ActionName is formed as (ParentName + ChildName): Parent, ParentChild, Parent2Child3 etc.

Fusor.Actions

Actions constructor, extend it to create a new Actions using ES6 syntax

Fusor.ListenerMixin

Simplifies Component subscription/unsubscription to Store.

  • .listenTo(store, onData) Subscribes Component to Store changes. Unsubscribes on componentWillUnmount.

Fusor.saveState(store)

Returns current store state as a JSON string.

Fusor.restoreState(store, savedState)

Applies savedState to store and propagates changes to Components. Can be used for server-side rendering.

Fusor.replay(actions) & Fusor.replayActions(actions)

Runs a sequence of Actions and returns a promise that will be resolved, when they all finish running.

Fusor.Promise

Promise constructor

Fusor.Observable

Observable constructor