Create a pocket of actions as defined by initial optional actions and optional subscribers. Used to create new immutable action dispatchers.
var actions = require('immstruct-actions');
var myActions = actions.register(function double (i) { return i * 2; });
var double2 = myActions.invoke('double', 2); //> 4
var double = myActions.fn.double;
property | type | description |
---|---|---|
actions |
Object.<String, Function> | attached to the dispatcher |
subscribers |
Array. | attached to the dispatcher |
Returns Object
,
Create a pocket of actions as defined by initial optional actions and optional subscribers. Used to create new immutable action dispatchers.
var double2 = actions.invoke('double', 2); //> 4
param | type | description |
---|---|---|
actionName |
Array.,String | Invoke a named function |
rest |
Object | Optional arguments passed to action |
Returns Any
,
Add subscriber. Is triggered when any action is invoked. This returns a new actions dispatcher, as action dispatchers are immutable.
var newActionsWithSubscriber = actions.subscribe(function subscriber () {
// ...
});
param | type | description |
---|---|---|
fn |
Function | Subscriber function |
Returns actions
,
Remove subscriber. This returns a new actions dispatcher, as action dispatchers are immutable.
function subscriber () {
// ...
}
var newActionsWithoutSubscriber = actions.unsubscribe(subscriber);
param | type | description |
---|---|---|
fn |
Function | Subscriber function |
Returns actions
,
Register new action. This returns a new actions dispatcher, as action dispatchers are immutable.
If not actionName
is defined, it uses name of function passed in.
var actions = require('immstruct-actions');
var myActions = actions.register(function double (i) { return i * 2; });
var double2 = myActions.invoke('double', 2); //> 4
var double = myActions.fn.double;
param | type | description |
---|---|---|
[actionName] |
String | optional: Name of action function |
fn |
Function | Subscriber function |
Returns actions
,
Remove existing action. This returns a new actions dispatcher, as action dispatchers are immutable.
var actions = require('immstruct-actions');
var myActions = actions.register(function double (i) { return i * 2; });
myActions = myActions.remove('double');
param | type | description |
---|---|---|
fn |
Function | Subscriber function |
Returns actions
,
Create a composed invoker of two or more actions.
var actions = require('immstruct-actions');
var myActions = actions.register(function double (i) { return i * 2; });
myActions = actions.register(function plus2 (i) { return i + 2; });
var doublePlus2 = myActions.createComposedInvoker('double', 'plus2');
param | type | description |
---|---|---|
functions |
Array. | Functions names of actions to compose |
Returns Function
,
fns
Combine one or more action dispatchers. Returns a new action dispatcher which has all the actions and subscribers of the action dispatchers passed as input.
var actions = require('immstruct-actions');
var myAction1 = actions.register(function double (i) { return i * 2; });
var myAction2 = actions.register(function plus2 (i) { return i + 2; });
var myActions = myAction1.combine(myAction2);
doublePlus2 = myActions.createComposedInvoker('double', 'plus2');
param | type | description |
---|---|---|
functions |
Array. | Functions names of actions to compose |
Returns Actions
,
Property getting all functions added as actions. Will trigger subscribers but can be used as standalone functions.
var actions = require('immstruct-actions');
var myAction1 = actions.register(function double (i) { return i * 2; });
var double = myActions.fn.double;
// or with destructuring
var {double} = myActions.fn;