UNPKG

fastflux

Version:

Message driven reactive state management

44 lines (35 loc) 1.08 kB
'use strict'; exports.__esModule = true; exports.createAction = createAction; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _observableBaseJs = require('./observable/base.js'); var _observableBaseJs2 = _interopRequireDefault(_observableBaseJs); var _utilsIndexJs = require('../utils/index.js'); /** * Creates an observable function that * invokes the nested inner function. * * The inner function may call `emit`. * * @example * let mul = createAction(emit => function (x, y) { * emit(x * y) * }); * mul.subscribe(result => console.log("Result:", result)); * * //> Result: 25 * mul(5, 5); * @param {function(emit: function): function} getRunner * @returns {function} */ function createAction(getRunner) { var runner = getRunner(function (payload) { return action.emit(payload); }); var action = function action() { runner.apply(undefined, arguments); }; action = _utilsIndexJs.assign(action, _observableBaseJs2['default'].prototype); action._listeners = []; return action; }