react-application-core
Version:
A react-based application core for the business applications.
42 lines • 2.02 kB
JavaScript
;
var __spreadArrays = (this && this.__spreadArrays) || function () {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j];
return r;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.connector = exports.basicConnector = void 0;
var ts_smart_logger_1 = require("ts-smart-logger");
var util_1 = require("../../util");
var di_1 = require("../../di");
var connector_factory_1 = require("./connector.factory");
var logger = ts_smart_logger_1.LoggerFactory.makeLogger('universal-connector.decorator');
/**
* @stable - 23.04.2018
* @param {IBasicConnectorEntity<TStoreEntity>} config
* @returns {(target: IContainerClassEntity) => void}
*/
exports.basicConnector = function (config) {
return function (target) {
var finalTarget = target;
var section = util_1.ConditionUtils.ifNotNilThanValue(target.defaultProps, function (defaultProps) { return defaultProps.sectionName; });
if (section) {
di_1.DiServices.dynamicSections().set(section, config);
finalTarget = di_1.getConnectorContainerFactory().fromTarget(target, section);
}
else {
logger.warn("[$basicConnector] The sectionName is not defined for " + (target.name ||
target) + ". The init and destroy actions are disabled.");
}
di_1.getDynamicRoutes().set(connector_factory_1.connectorFactory.apply(void 0, __spreadArrays([finalTarget], config.mappers)), config);
};
};
/**
* @stable - 23.04.2018
* @param {IConnectorEntity<TStoreEntity extends IUniversalStoreEntity, TAccessConfig>} config
* @returns {(target: IContainerClassEntity) => void}
*/
exports.connector = function (config) { return exports.basicConnector(config); };
//# sourceMappingURL=connector.decorator.js.map