From 2fa2a75b60f8524e6a7534e3377b0de9d7c13eb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Varela?= Date: Wed, 1 Dec 2021 19:04:55 +0000 Subject: [PATCH] SDK: Fix type arrays on filter (#10133) * support arrays as types for _in, _nin, etc. * improve type definition on filters --- packages/sdk/src/items.ts | 47 +++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/packages/sdk/src/items.ts b/packages/sdk/src/items.ts index e3c65dbfec..1db72271c2 100644 --- a/packages/sdk/src/items.ts +++ b/packages/sdk/src/items.ts @@ -49,36 +49,35 @@ export type DeepQueryMany = { export type Sort = (`${Extract}` | `-${Extract}`)[]; -export type FilterOperators = - | '_eq' - | '_neq' - | '_contains' - | '_ncontains' - | '_in' - | '_nin' - | '_gt' - | '_gte' - | '_lt' - | '_lte' - | '_null' - | '_nnull' - | '_empty' - | '_nempty' - | '_intersects' - | '_nintersects' - | '_intersects_bbox' - | '_nintersects_bbox'; +export type FilterOperators = { + _eq?: T; + _neq?: T; + _gt?: T; + _gte?: T; + _lt?: T; + _lte?: T; + _in?: T[]; + _nin?: T[]; + _between?: [T, T]; + _nbetween?: [T, T]; + _contains?: T; + _ncontains?: T; + _empty?: boolean; + _nempty?: boolean; + _nnull?: boolean; + _null?: boolean; + _intersects?: T; + _nintersects?: T; + _intersects_bbox?: T; + _nintersects_bbox?: T; +}; export type LogicalFilterAnd = { _and: Filter[] }; export type LogicalFilterOr = { _or: Filter[] }; export type LogicalFilter = LogicalFilterAnd | LogicalFilterOr; -export type FieldFilterOperator = { - [O in FilterOperators]?: T[K]; -}; - export type FieldFilter = { - [K in keyof T]?: FieldFilterOperator | FieldFilter; + [K in keyof T]?: FilterOperators | FieldFilter; }; export type Filter = LogicalFilter | FieldFilter ? T[number] : T>;