You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

15 lines
623 B

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')
}