Skip to content

Commit

Permalink
fix FilterFields type
Browse files Browse the repository at this point in the history
  • Loading branch information
udamir authored Sep 19, 2024
1 parent 2965e4b commit b72eeb1
Showing 1 changed file with 4 additions and 8 deletions.
12 changes: 4 additions & 8 deletions src/types/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -153,11 +153,7 @@ type FilterNested<F extends FieldsSchema> = MergeType<{

// Handle flat fields (string) and check if K exists in T
type FilterStringFields<T, F extends Record<string, string>> = {
[K in keyof F]: K extends keyof T
? T[K]
: T extends { [Q in K]: infer U }
? U
: never
[K in keyof F]: K extends keyof T ? T[K] : T extends { [Q in K]: infer U } ? U : never
}

// Handle nested fields (object)
Expand All @@ -168,9 +164,9 @@ type FilterObjectFields<T, F extends Record<string, FieldsSchema>> = {
? NonNullable<T[K]> extends Array<infer U>
? MergeType<FilterFields<U, F[K]> | { $type: ExtractTypeField<U> }>[]
: MergeType<FilterFields<NonNullable<T[K]>, F[K]> | { $type: ExtractTypeField<T[K]> }>
: "c"
: "b"
: "a"
: never
: never
: never
}

export type FilterFields<T, F extends FieldsSchema> =
Expand Down

0 comments on commit b72eeb1

Please sign in to comment.