UNPKG

nuclear-binding-container

Version:

A binding registry to be used within a nuclear app to register resolver functions for specific keys.

57 lines (43 loc) 1.38 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.Model = undefined; var _immutable = require('immutable'); var _createModel = require('../createModel'); var _createModel2 = _interopRequireDefault(_createModel); var _BindingInterface = require('../interfaces/BindingInterface'); var _BindingInterface2 = _interopRequireDefault(_BindingInterface); var _actionTypes = require('../actionTypes'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Model class of one Binding. */ var Model = exports.Model = (0, _createModel2.default)(_BindingInterface2.default); exports.default = { getInitialState: function getInitialState() { return (0, _immutable.Map)({}); }, handlers: [{ type: _actionTypes.ADD, handler: addBinding }] }; /** * Convert given payload to a new model and add it to the store. * * @public * @param {Immutable.Map} bindings * @param {object} payload * @param {string} payload.key * @param {boolean} payload.shared * @param {function} payload.resolver * @returns {Immutable.Map} new bindings */ function addBinding(bindings, _ref) { var key = _ref.key; var shared = _ref.shared; var resolver = _ref.resolver; var binding = new Model({ key: key, shared: shared, resolver: resolver }); return bindings.set(key, binding); }