UNPKG

clean-redux

Version:

Utilities for implementing clean architecture using Redux

23 lines (21 loc) 624 B
import "minimal-polyfills/Object.fromEntries"; import { exclude } from "tsafe/exclude"; export function usecasesToPureFunctions< Usecase extends { name: string; pure?: unknown; }, >( usecases: readonly Usecase[], ): { [Key in Extract<Usecase, { pure: any }>["name"]]: NonNullable< Extract<Usecase, { name: Key }>["pure"] >; } { return Object.fromEntries( usecases .map(({ name, pure }) => (pure === undefined ? undefined : ([name, pure] as const))) .filter(exclude(undefined)) .map(([name, pure]) => [name, pure]), ) as any; }