UNPKG

clean-redux

Version:

Utilities for implementing clean architecture using Redux

24 lines (23 loc) 864 B
import "minimal-polyfills/Object.fromEntries"; import type { Param0 } from "tsafe"; declare type WrapSelectorsReturnValue<Selectors extends { [Name in string]: (state: any) => unknown; }> = { [Name in keyof Selectors]: (state: Param0<Selectors[Name]>) => Record<Name, ReturnType<Selectors[Name]>>; }; export declare function wrapSelectorsReturnValue<Selectors extends { [Name in string]: (state: any) => unknown; }>(selectors: Selectors): WrapSelectorsReturnValue<Selectors>; export declare function usecasesToSelectors<Usecase extends { name: string; selectors?: { [Name in string]: (state: any) => unknown; }; }>(usecases: readonly Usecase[]): { [Key in Extract<Usecase, { selectors: any; }>["name"]]: WrapSelectorsReturnValue<NonNullable<Extract<Usecase, { name: Key; }>["selectors"]>>; }; export {};