react-redux-fetch
Version:
A declarative and customizable way to fetch data for React components and manage that data in the Redux state
83 lines (64 loc) • 2.19 kB
JavaScript
exports.__esModule = true;
var _Definition = require('./Definition');
var _Definition2 = _interopRequireDefault(_Definition);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var ContainerBuilder = function () {
function ContainerBuilder() {
_classCallCheck(this, ContainerBuilder);
this.definitions = {};
}
/**
* Registers a service definition.
*
* This methods allows for simple registration of service definition
* with a fluid interface.
*
* @param {String} id The service identifier
* @param {Object} obj The service configuration object
*
* @return {Definition} A Definition instance
*/
ContainerBuilder.prototype.register = function register(id, obj) {
return this.setDefinition(id, new _Definition2.default(obj));
};
/**
* Sets a service definition.
*
* @param {String} id The service identifier
* @param {Definition} definition A Definition instance
*
* @return {Definition} the service definition
*/
ContainerBuilder.prototype.setDefinition = function setDefinition(id, definition) {
var finalId = id.toLowerCase();
this.definitions[finalId] = definition;
return definition;
};
/**
* Gets a service definition.
*
* @param {String} id The service identifier
*
* @return {Definition} A Definition instance
*/
ContainerBuilder.prototype.getDefinition = function getDefinition(id) {
var finalId = id.toLowerCase();
if (!this.hasDefinition(finalId)) {
throw new Error('Service ' + finalId + ' not found');
}
return this.definitions[finalId];
};
/**
* @param {String} id The service identifier
*
* @return {boolean} True if container contains definition
*/
ContainerBuilder.prototype.hasDefinition = function hasDefinition(id) {
var finalId = id.toLowerCase();
return !!this.definitions[finalId];
};
return ContainerBuilder;
}();
exports.default = ContainerBuilder;
;