@talend/react-cmf
Version:
A framework built on top of best react libraries
66 lines (63 loc) • 2.38 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _invariant = _interopRequireDefault(require("invariant"));
var _actionCreator = _interopRequireDefault(require("./actionCreator"));
var _expression = _interopRequireDefault(require("./expression"));
var _sagas = _interopRequireDefault(require("./sagas"));
var _registry = _interopRequireDefault(require("./registry"));
var _constant = _interopRequireDefault(require("./constant"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/**
* All stuff related to the routing in CMF
* @module react-cmf/lib/component
* @see module:react-cmf/lib/component
*/
/**
* return a component from the registry
* @param {string} id the component id you want
* @param {object} context optional context to get the registry
* @return {function} the react component
*/
function get(id, context) {
const component = _registry.default.getFromRegistry(`${_constant.default.REGISTRY_COMPONENT_PREFIX}:${id}`, context);
if (!component) {
throw new Error(`component not found in the registry: ${id}`);
}
return component;
}
/**
* register a component to let CMF be able to Inject it.
* @param {string} id the component id you want to register
* @param {any} component the component you want to register
* @param {object} context optional context to get the registry
*/
function register(id, component, context) {
if (!component) {
(0, _invariant.default)(process.env.NODE_ENV === 'production', 'You cannot register undefined as a component for id "%s"', id);
return;
}
_registry.default.addToRegistry(`${_constant.default.REGISTRY_COMPONENT_PREFIX}:${id}`, component, context);
if (component.actions) {
_actionCreator.default.registerMany(component.actions, context);
}
if (component.expressions) {
_expression.default.registerMany(component.expressions, context);
}
if (component.sagas) {
_sagas.default.registerMany(component.sagas, context);
}
}
const registerMany = _registry.default.getRegisterMany(register);
function has(id, context) {
return _registry.default.getFromRegistry(`${_constant.default.REGISTRY_COMPONENT_PREFIX}:${id}`, context) !== undefined;
}
var _default = exports.default = {
get,
has,
register,
registerMany
};
//# sourceMappingURL=component.js.map
;