diff --git a/packages/core/types/src/modules-sdk/to-remote-query.ts b/packages/core/types/src/modules-sdk/to-remote-query.ts index dc78e0b7fc..d81dae04c4 100644 --- a/packages/core/types/src/modules-sdk/to-remote-query.ts +++ b/packages/core/types/src/modules-sdk/to-remote-query.ts @@ -45,6 +45,34 @@ type ExtractFiltersOperators< : never } +type OperatorsOnlyFilters< + TEntry extends string, + RemoteQueryEntryPointsLevel = RemoteQueryEntryPoints, + Exclusion extends string[] = [], + Lim extends number = Depth[3] +> = Lim extends number + ? { + $or?: RemoteQueryFilters< + TEntry, + RemoteQueryEntryPointsLevel, + Exclusion, + Depth[Lim] + >[] + $and?: RemoteQueryFilters< + TEntry, + RemoteQueryEntryPointsLevel, + Exclusion, + Depth[Lim] + >[] + $not?: RemoteQueryFilters< + TEntry, + RemoteQueryEntryPointsLevel, + Exclusion, + Depth[Lim] + > + } + : never + /** * Extract all available filters from a remote entry point deeply */ @@ -53,7 +81,7 @@ export type RemoteQueryFilters< RemoteQueryEntryPointsLevel = RemoteQueryEntryPoints, Exclusion extends string[] = [], Lim extends number = Depth[3] -> = Lim extends number +> = (Lim extends number ? TEntry extends keyof RemoteQueryEntryPointsLevel ? TypeOnly extends Array ? Prettify< @@ -69,4 +97,5 @@ export type RemoteQueryFilters< > > : Record - : never + : never) & + OperatorsOnlyFilters