react-application-core
Version:
A react-based application core for the business applications.
46 lines • 1.77 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.connectorFactory = void 0;
var react_redux_1 = require("react-redux");
var ts_smart_logger_1 = require("ts-smart-logger");
var util_1 = require("../../util");
var logger = ts_smart_logger_1.LoggerFactory.makeLogger('universal-connector.factory');
/**
* @stable [16.11.2019]
* @param {IUniversalContainerCtor} containerCtor
* @param {ConnectorMapperT<TStoreEntity extends IUniversalStoreEntity>} mappers
* @returns {IUniversalContainerCtor}
*/
exports.connectorFactory = function (containerCtor) {
var mappers = [];
for (var _i = 1; _i < arguments.length; _i++) {
mappers[_i - 1] = arguments[_i];
}
var mapping = function (state) { return mappers.length
? mappers
.reduce(function (previousValue, currentMapper) {
try {
return __assign(__assign({}, util_1.isFn(previousValue)
? previousValue(state)
: previousValue), currentMapper(state));
}
catch (e) {
logger.error('[$universalConnectorFactory] The error:', e);
return previousValue;
}
})
: {}; };
return react_redux_1.connect(mapping)(containerCtor);
};
//# sourceMappingURL=connector.factory.js.map