@cosva-lab/form-builder
Version:
React form builder.
10 lines (9 loc) • 385 B
text/typescript
import { NameField } from "../types.cjs";
//#region src/utils/types.d.ts
type Callback<Item> = Item extends {
name: infer Name;
value: infer Value;
} ? Name extends NameField ? Record<Name, Value> : never : never;
type Reducer<T, Acc = {}> = T extends [] ? Acc : T extends [infer Head, ...infer Tail] ? Reducer<Tail, Acc & Callback<Head>> : never;
//#endregion
export { Reducer };