nuclear-instance-container
Version:
A nuclear-js module to save arbitrary objects as instances. To be used as a singleton registry for a nuclear-js app.
56 lines (41 loc) • 1.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Model = undefined;
var _immutable = require('immutable');
var _createModel = require('../createModel');
var _createModel2 = _interopRequireDefault(_createModel);
var _InstanceInterface = require('../interfaces/InstanceInterface');
var _InstanceInterface2 = _interopRequireDefault(_InstanceInterface);
var _actionTypes = require('../actionTypes');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Model class of one Instance.
*
* @class
*/
var Model = exports.Model = (0, _createModel2.default)(_InstanceInterface2.default);
exports.default = {
getInitialState: function getInitialState() {
return (0, _immutable.Map)({});
},
handlers: [{
type: _actionTypes.SET_INSTANCE,
handler: setInstance
}, {
type: _actionTypes.UNSET_INSTANCE,
handler: unsetInstance
}]
};
function setInstance(instances, _ref) {
var key = _ref.key;
var instance = _ref.instance;
var instanceModel = new Model({ key: key, instance: instance });
return instances.set(key, instanceModel);
}
function unsetInstance(instances, _ref2) {
var key = _ref2.key;
var instance = _ref2.instance;
return instances.remove(key);
}