node package manager
Stop writing boring code. Discover, share, and reuse within your team. Create a free org »



Flexible Flux implementation


Flex.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.


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

var Actions = Flex.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, that is resolved with a function, that will synchronously propagate changes to subscribed Store. May be used together with Promise.all() in isomorphic apps.


Creates a new Store. Returns a Flex.Store object.

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


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.


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


Simplifies Component subscription/unsubscription to Store.

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


Returns current store state as a JSON string.

Flex.restoreState(store, savedState)

Applies savedState to store and propagates changes to Components. May be used in isomorphic apps.

Flex.replay(actions, stores) & Flex.replayActions(actions, stores)

Runs a sequence of Actions and returns a promise that will be resolved, when they all finish running. Stores will be reseted before resolving the promise. Can be used for serverside rendering.


Promise constructor


Observable constructor