NestedFieldPath type

Nested field path support with type constraints for relationships

type NestedFieldPath<T> = T extends object
  ? {
      [K in CleanEntityKeys<T>]: K extends string
        ? NonNullable<T[K]> extends U[]
          ? U extends object
            ? Object | K
            : K
          : NonNullable<T[K]> extends object
          ? Object | K
          : K
        : never
    }[CleanEntityKeys<T>]
  : never