Type Alias ObjFromFields<Fields>

ObjFromFields: UnionToIntersection<
    TupleToUnion<
        {
            [K in keyof Fields]: Fields[K] extends {
                builder: infer Builder;
                name: infer Name;
            }
                ? Name extends string
                    ? Builder extends ReadonlyValueBuilder<infer T>
                        ? RecursiveReadonly<{ [P in Name]: T }>
                        : Builder extends WritableValueBuilder<infer T>
                            ? { [P in Name]: Readonly<T> }
                            : Builder extends ProxyValueBuilder<infer T>
                                ? { [P in Name]: T }
                                : never
                    : never
                : never
        },
    >,
>

Type Parameters