redux-modules
Version:
A library for defining clear, boilerplate free Redux reducers.
27 lines (25 loc) • 954 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = createMapStateToProps;
function getDependsOnOwnProps(mapToProps) {
return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;
}
function createMapStateToProps(mapToProps) {
var proxy = function mapToPropsProxy(state, ownProps) {
return proxy.dependsOnOwnProps ? proxy.mapToProps(state, ownProps) : proxy.mapToProps(state);
};
proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);
proxy.mapToProps = function detectFactoryAndVerify(state, ownProps) {
proxy.mapToProps = mapToProps;
var props = proxy(state, ownProps);
if (typeof props !== 'function') {
return props;
}
proxy.mapToProps = props;
proxy.dependsOnOwnProps = getDependsOnOwnProps(props);
return proxy(state, ownProps);
};
return proxy;
}