UNPKG

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
'use strict'; 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;