react-redux
Version:
Official React bindings for Redux
15 lines (13 loc) • 616 B
text/typescript
import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps'
import { createInvalidArgFactory } from './invalidArgFactory'
import type { MapStateToPropsParam } from './selectorFactory'
export function mapStateToPropsFactory<TStateProps, TOwnProps, State>(
mapStateToProps: MapStateToPropsParam<TStateProps, TOwnProps, State>,
) {
return !mapStateToProps
? wrapMapToPropsConstant(() => ({}))
: typeof mapStateToProps === 'function'
? // @ts-ignore
wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps')
: createInvalidArgFactory(mapStateToProps, 'mapStateToProps')
}