clean-redux
Version:
Utilities for implementing clean architecture using Redux
18 lines (17 loc) • 562 B
TypeScript
import "minimal-polyfills/Object.fromEntries";
import type { Reducer } from "@reduxjs/toolkit";
export declare function usecasesToReducer<Usecase extends {
name: string;
reducer: Reducer | null;
}>(usecases: readonly Usecase[]): RemoveNullProperties<{
[Key in Usecase["name"]]: Extract<Usecase, {
name: Key;
}>["reducer"];
}>;
declare type NonNullPropertyNames<O> = {
[Key in keyof O]: O[Key] extends null ? never : Key;
}[keyof O];
declare type RemoveNullProperties<O> = {
[Key in NonNullPropertyNames<O>]: O[Key];
};
export {};