quetch 0.12.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/tools/filterChildren.d.ts +2 -2
  2. package/dist/tools/filterChildren.js.map +1 -1
  3. package/dist/tools/filterItem.js +15 -15
  4. package/dist/tools/filterItem.js.map +1 -1
  5. package/dist/tools/get.d.ts +14 -0
  6. package/dist/tools/get.js +36 -0
  7. package/dist/tools/get.js.map +1 -0
  8. package/dist/tools.d.ts +1 -0
  9. package/dist/tools.js +1 -0
  10. package/dist/tools.js.map +1 -1
  11. package/dist/types/Field.d.ts +2 -0
  12. package/dist/types/Field.js +2 -0
  13. package/dist/types/Field.js.map +1 -0
  14. package/dist/types/FieldFiltered.d.ts +3 -0
  15. package/dist/types/FieldFiltered.js +2 -0
  16. package/dist/types/FieldFiltered.js.map +1 -0
  17. package/dist/types/FieldFunctionFormatDate.d.ts +2 -2
  18. package/dist/types/FilterArray.d.ts +2 -2
  19. package/dist/types/FilterBoolean.d.ts +2 -2
  20. package/dist/types/FilterChildren.d.ts +1 -1
  21. package/dist/types/FilterField.d.ts +2 -1
  22. package/dist/types/FilterNumber.d.ts +2 -2
  23. package/dist/types/FilterString.d.ts +2 -2
  24. package/dist/types/FilterStringIntersect.d.ts +2 -2
  25. package/dist/types/FilterStringMatch.d.ts +2 -2
  26. package/dist/types/Get.d.ts +2 -3
  27. package/dist/types/{FilterKeys.d.ts → KeyFiltered.d.ts} +1 -1
  28. package/dist/types/KeyFiltered.js +2 -0
  29. package/dist/types/KeyFiltered.js.map +1 -0
  30. package/dist/types/Path.d.ts +3 -0
  31. package/dist/types/Path.js +2 -0
  32. package/dist/types/Path.js.map +1 -0
  33. package/dist/types/PathFiltered.d.ts +3 -0
  34. package/dist/types/PathFiltered.js +2 -0
  35. package/dist/types/PathFiltered.js.map +1 -0
  36. package/dist/types/QuerySettings.d.ts +6 -2
  37. package/dist/types.d.ts +5 -1
  38. package/doc/README.md +396 -290
  39. package/doc/classes/RequestError.md +12 -8
  40. package/doc/interfaces/CustomFetch.md +5 -5
  41. package/lib/tools/filterChildren.ts +2 -2
  42. package/lib/tools/filterItem.ts +18 -18
  43. package/lib/tools/get.test.ts +23 -0
  44. package/lib/tools/get.ts +57 -0
  45. package/lib/tools.ts +1 -0
  46. package/lib/types/Field.ts +3 -0
  47. package/lib/types/FieldFiltered.ts +6 -0
  48. package/lib/types/FieldFunctionFormatDate.ts +2 -2
  49. package/lib/types/FilterArray.ts +2 -2
  50. package/lib/types/FilterBoolean.ts +2 -2
  51. package/lib/types/FilterChildren.ts +1 -1
  52. package/lib/types/FilterField.ts +3 -1
  53. package/lib/types/FilterNumber.ts +2 -2
  54. package/lib/types/FilterString.ts +2 -2
  55. package/lib/types/FilterStringIntersect.ts +2 -2
  56. package/lib/types/FilterStringMatch.ts +2 -2
  57. package/lib/types/Get.ts +9 -5
  58. package/lib/types/{FilterKeys.ts → KeyFiltered.ts} +1 -1
  59. package/lib/types/Path.ts +7 -0
  60. package/lib/types/PathFiltered.ts +9 -0
  61. package/lib/types/QuerySettings.ts +6 -2
  62. package/lib/types.ts +5 -1
  63. package/package.json +9 -7
  64. package/dist/types/FilterKeys.js +0 -2
  65. package/dist/types/FilterKeys.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import type { Filter, FilterKeys } from "../types.ts";
2
- export declare function filterChildren<T extends object>(parentPath: string, pathFieldKey: FilterKeys<T, string>, deep?: boolean, pathSeparator?: string): Filter<T>;
1
+ import type { FieldFiltered, Filter } from "../types.ts";
2
+ export declare function filterChildren<T extends object>(parentPath: string, pathFieldKey: FieldFiltered<T, string>, deep?: boolean, pathSeparator?: string): Filter<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"filterChildren.js","sourceRoot":"","sources":["../../lib/tools/filterChildren.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,cAAc,CAC5B,UAAkB,EAClB,YAAmC,EACnC,IAAI,GAAG,KAAK,EACZ,aAAa,GAAG,GAAG;IAEnB,OAAO;QACL,KAAK,EAAE,YAAY;QACnB,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,UAAkB,EAClB,IAAI,GAAG,KAAK,EACZ,aAAa,GAAG,GAAG;IAEnB,MAAM,gBAAgB,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IACpD,OAAO,IAAI,WAAW,CAAC,UAAU,CAAC,GAChC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAC3B,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,gBAAgB,QAAQ,EAAE,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"filterChildren.js","sourceRoot":"","sources":["../../lib/tools/filterChildren.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,cAAc,CAC5B,UAAkB,EAClB,YAAsC,EACtC,IAAI,GAAG,KAAK,EACZ,aAAa,GAAG,GAAG;IAEnB,OAAO;QACL,KAAK,EAAE,YAAY;QACnB,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,UAAkB,EAClB,IAAI,GAAG,KAAK,EACZ,aAAa,GAAG,GAAG;IAEnB,MAAM,gBAAgB,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IACpD,OAAO,IAAI,WAAW,CAAC,UAAU,CAAC,GAChC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAC3B,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,gBAAgB,QAAQ,EAAE,CAAC;AACjD,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { SymbolCache } from "../constants/SymbolCache.js";
2
2
  import { filterChildren } from "./filterChildren.js";
3
+ import { get } from "./get.js";
3
4
  const { isArray } = Array;
4
5
  /**
5
6
  * Checks wether the provided `value` matches the `filter` or not.
@@ -32,11 +33,10 @@ export function filterItem(filter, value, settings) {
32
33
  return filter.value.every((filter) => !filterItem(filter, value));
33
34
  }
34
35
  case "exist":
35
- // TODO: Handle path
36
- return filter.value in value;
36
+ return get(value, filter.value) !== undefined;
37
37
  case "equal": {
38
38
  if (isArray(filter.value)) {
39
- const item = value[filter.field];
39
+ const item = get(value, filter.field);
40
40
  if (!isArray(item)) {
41
41
  return false;
42
42
  }
@@ -45,7 +45,7 @@ export function filterItem(filter, value, settings) {
45
45
  }
46
46
  return filter.value.every((value) => item.includes(value));
47
47
  }
48
- const item = value[filter.field];
48
+ const item = get(value, filter.field);
49
49
  if (item === filter.value) {
50
50
  return true;
51
51
  }
@@ -57,13 +57,13 @@ export function filterItem(filter, value, settings) {
57
57
  return false;
58
58
  }
59
59
  case "notEqual": {
60
- const item = value[filter.field];
60
+ const item = get(value, filter.field);
61
61
  if (item === filter.value) {
62
62
  return false;
63
63
  }
64
64
  if (("options" in filter && filter.options) ||
65
65
  ("locale" in filter && filter.locale)) {
66
- return (filter.value.localeCompare(value[filter.field], filter.locale, filter.options) !== 0);
66
+ return (filter.value.localeCompare(get(value, filter.field), filter.locale, filter.options) !== 0);
67
67
  }
68
68
  return true;
69
69
  }
@@ -85,7 +85,7 @@ export function filterItem(filter, value, settings) {
85
85
  return filter.value(value);
86
86
  }
87
87
  case "startWith": {
88
- const item = value[filter.field];
88
+ const item = get(value, filter.field);
89
89
  if (item === undefined || item.length < filter.value.length) {
90
90
  return false;
91
91
  }
@@ -95,7 +95,7 @@ export function filterItem(filter, value, settings) {
95
95
  return item.startsWith(filter.value) ?? false;
96
96
  }
97
97
  case "endWith": {
98
- const item = value[filter.field];
98
+ const item = get(value, filter.field);
99
99
  if (item === undefined || item.length < filter.value.length) {
100
100
  return false;
101
101
  }
@@ -105,7 +105,7 @@ export function filterItem(filter, value, settings) {
105
105
  return item.endsWith(filter.value) ?? false;
106
106
  }
107
107
  case "include": {
108
- const item = value[filter.field];
108
+ const item = get(value, filter.field);
109
109
  if (item == null) {
110
110
  return false;
111
111
  }
@@ -133,7 +133,7 @@ export function filterItem(filter, value, settings) {
133
133
  return item.includes?.(filter.value) ?? false;
134
134
  }
135
135
  case "greaterThan": {
136
- const item = value[filter.field];
136
+ const item = get(value, filter.field);
137
137
  if (("options" in filter && filter.options) ||
138
138
  ("locale" in filter && filter.locale)) {
139
139
  return (filter.value.localeCompare(item, filter.locale, filter.options) < 0);
@@ -141,7 +141,7 @@ export function filterItem(filter, value, settings) {
141
141
  return item > filter.value;
142
142
  }
143
143
  case "greaterThanOrEqual": {
144
- const item = value[filter.field];
144
+ const item = get(value, filter.field);
145
145
  if (("options" in filter && filter.options) ||
146
146
  ("locale" in filter && filter.locale)) {
147
147
  return (filter.value.localeCompare(item, filter.locale, filter.options) <= 0);
@@ -149,7 +149,7 @@ export function filterItem(filter, value, settings) {
149
149
  return item >= filter.value;
150
150
  }
151
151
  case "lowerThan": {
152
- const item = value[filter.field];
152
+ const item = get(value, filter.field);
153
153
  if (("options" in filter && filter.options) ||
154
154
  ("locale" in filter && filter.locale)) {
155
155
  return (filter.value.localeCompare(item, filter.locale, filter.options) > 0);
@@ -157,7 +157,7 @@ export function filterItem(filter, value, settings) {
157
157
  return item < filter.value;
158
158
  }
159
159
  case "lowerThanOrEqual": {
160
- const item = value[filter.field];
160
+ const item = get(value, filter.field);
161
161
  if (("options" in filter && filter.options) ||
162
162
  ("locale" in filter && filter.locale)) {
163
163
  return (filter.value.localeCompare(item, filter.locale, filter.options) >= 0);
@@ -165,7 +165,7 @@ export function filterItem(filter, value, settings) {
165
165
  return item <= filter.value;
166
166
  }
167
167
  case "match": {
168
- const item = value[filter.field];
168
+ const item = get(value, filter.field);
169
169
  if (item === undefined) {
170
170
  return false;
171
171
  }
@@ -175,7 +175,7 @@ export function filterItem(filter, value, settings) {
175
175
  return filter[SymbolCache].test(item);
176
176
  }
177
177
  case "intersect": {
178
- const item = value[filter.field];
178
+ const item = get(value, filter.field);
179
179
  if (item == null) {
180
180
  return false;
181
181
  }
@@ -1 +1 @@
1
- {"version":3,"file":"filterItem.js","sourceRoot":"","sources":["../../lib/tools/filterItem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filterItem.js","sourceRoot":"","sources":["../../lib/tools/filterItem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { Path } from "../types";
2
+ type Get<T, P> = [P] extends [[infer K, ...infer R]] ? K extends keyof T ? R extends Path<T[K]> ? Get<T[K], R> : T[K] : never : [P] extends [keyof T] ? T[P] : T;
3
+ /**
4
+ * Gets the property value of the given `value` at the specified `path` (an array of object property names or array indexes).
5
+ * If the `path` is undefined, returns the `value` itself.
6
+ * If the `path` is a string, it is considered as a path with one item.
7
+ * If the `path` leads to an unknown property, returns `undefined`.
8
+ *
9
+ * @param value The value from which to get the property value.
10
+ * @param path The path leading to the property value or a property name or `undefined`.
11
+ * @returns The property value found at the given path, or `undefined` if it cannot be found.
12
+ */
13
+ export declare function get<T, P extends keyof T | Path<T>>(value: T, path?: P): Get<T, P>;
14
+ export {};
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Gets the property value of the given `value` at the specified `path` (an array of object property names or array indexes).
3
+ * If the `path` is undefined, returns the `value` itself.
4
+ * If the `path` is a string, it is considered as a path with one item.
5
+ * If the `path` leads to an unknown property, returns `undefined`.
6
+ *
7
+ * @param value The value from which to get the property value.
8
+ * @param path The path leading to the property value or a property name or `undefined`.
9
+ * @returns The property value found at the given path, or `undefined` if it cannot be found.
10
+ */
11
+ export function get(value, path) {
12
+ if (path === undefined) {
13
+ return value;
14
+ }
15
+ switch (typeof path) {
16
+ case "string":
17
+ case "number":
18
+ case "symbol":
19
+ return value?.[path];
20
+ default: {
21
+ switch (path.length) {
22
+ case 1:
23
+ return value?.[path[0]];
24
+ case 2:
25
+ return value?.[path[0]]?.[path[1]];
26
+ case 3:
27
+ return value?.[path[0]]?.[path[1]]?.[path[2]];
28
+ case 4:
29
+ return value?.[path[0]]?.[path[1]]?.[path[2]]?.[path[3]];
30
+ default:
31
+ return path.reduce((value, key) => value?.[key], value);
32
+ }
33
+ }
34
+ }
35
+ }
36
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../lib/tools/get.ts"],"names":[],"mappings":"AAYA;;;;;;;;;GASG;AACH,MAAM,UAAU,GAAG,CACjB,KAAQ,EACR,IAAQ;IAER,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,KAAY,CAAC;IACtB,CAAC;IACD,QAAQ,OAAO,IAAI,EAAE,CAAC;QACpB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACX,OAAQ,KAAa,EAAE,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,CAAC,CAAC,CAAC;YACR,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;gBACpB,KAAK,CAAC;oBACJ,OAAQ,KAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAQ,CAAC,CAAC;gBAC1C,KAAK,CAAC;oBACJ,OAAQ,KAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAQ,CAAC,CAAC;gBAC5D,KAAK,CAAC;oBACJ,OAAQ,KAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAQ,CAAC,EAAE,CACzD,IAAI,CAAC,CAAC,CAAQ,CACf,CAAC;gBACJ,KAAK,CAAC;oBACJ,OAAQ,KAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAQ,CAAC,EAAE,CACzD,IAAI,CAAC,CAAC,CAAQ,CACf,EAAE,CAAC,IAAI,CAAC,CAAC,CAAQ,CAAC,CAAC;gBACtB;oBACE,OAAO,IAAI,CAAC,MAAM,CAChB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAE,KAAa,EAAE,CAAC,GAAG,CAAC,EACrC,KAAK,CACC,CAAC;YACb,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
package/dist/tools.d.ts CHANGED
@@ -6,6 +6,7 @@ export { escapeRegex } from "./tools/escapeRegex.js";
6
6
  export { filterChildren } from "./tools/filterChildren.js";
7
7
  export { filterFromContext } from "./tools/filterFromContext.js";
8
8
  export { filterItem } from "./tools/filterItem.js";
9
+ export { get } from "./tools/get.js";
9
10
  export { isFilterGroup } from "./tools/isFilterGroup.js";
10
11
  export { normalizeOrder } from "./tools/normalizeOrder.js";
11
12
  export { queryItemList } from "./tools/queryItemList.js";
package/dist/tools.js CHANGED
@@ -7,6 +7,7 @@ export { escapeRegex } from "./tools/escapeRegex.js";
7
7
  export { filterChildren } from "./tools/filterChildren.js";
8
8
  export { filterFromContext } from "./tools/filterFromContext.js";
9
9
  export { filterItem } from "./tools/filterItem.js";
10
+ export { get } from "./tools/get.js";
10
11
  export { isFilterGroup } from "./tools/isFilterGroup.js";
11
12
  export { normalizeOrder } from "./tools/normalizeOrder.js";
12
13
  export { queryItemList } from "./tools/queryItemList.js";
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../lib/tools.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../lib/tools.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { Path } from "./Path";
2
+ export type Field<T extends object> = keyof T | Path<T>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Field.js","sourceRoot":"","sources":["../../lib/types/Field.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { KeyFiltered } from "./KeyFiltered";
2
+ import type { PathFiltered } from "./PathFiltered";
3
+ export type FieldFiltered<T extends object, P> = KeyFiltered<T, P> | PathFiltered<T, P>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FieldFiltered.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldFiltered.js","sourceRoot":"","sources":["../../lib/types/FieldFiltered.ts"],"names":[],"mappings":""}
@@ -1,9 +1,9 @@
1
- import type { FilterKeys } from "./FilterKeys";
1
+ import type { FieldFiltered } from "./FieldFiltered";
2
2
  /**
3
3
  * Formats the date found in a given field, which can be an ISO string date or a timestamp.
4
4
  */
5
5
  export type FieldFunctionFormatDate<T extends object> = {
6
6
  operator: "formatDate";
7
- field: FilterKeys<T, string | number>;
7
+ field: FieldFiltered<T, string | number>;
8
8
  format: string;
9
9
  };
@@ -1,10 +1,10 @@
1
1
  import type { Any } from "./Any";
2
- import type { FilterKeys } from "./FilterKeys";
2
+ import type { FieldFiltered } from "./FieldFiltered";
3
3
  /**
4
4
  * Checks if a given array field matches a given array value according to a given operator.
5
5
  */
6
6
  export type FilterArray<T extends object, P = Any> = {
7
7
  operator: "equal" | "include" | "intersect";
8
- field: FilterKeys<T, P[]>;
8
+ field: FieldFiltered<T, P[]>;
9
9
  value: P[];
10
10
  };
@@ -1,9 +1,9 @@
1
- import type { FilterKeys } from "./FilterKeys";
1
+ import type { FieldFiltered } from "./FieldFiltered";
2
2
  /**
3
3
  * Checks if a given boolean field is `true` or `false`.
4
4
  */
5
5
  export type FilterBoolean<T extends object> = {
6
6
  operator: "equal" | "notEqual";
7
- field: FilterKeys<T, boolean>;
7
+ field: FieldFiltered<T, boolean>;
8
8
  value: boolean;
9
9
  };
@@ -7,7 +7,7 @@ import type { Filter } from "./Filter";
7
7
  */
8
8
  export type FilterChildren<T extends object> = {
9
9
  operator: "children";
10
- value: Context<T> | string;
10
+ value?: Context<T> | string;
11
11
  deep?: boolean;
12
12
  [SymbolCache]?: Filter<T>;
13
13
  };
@@ -1,3 +1,4 @@
1
+ import type { Field } from "./Field";
1
2
  /**
2
3
  * Checks if a given field exists.
3
4
  */
@@ -6,5 +7,5 @@ export type FilterField<T extends object> = {
6
7
  /**
7
8
  * The field name for which to check its existence.
8
9
  */
9
- value: keyof T;
10
+ value: Field<T>;
10
11
  };
@@ -1,9 +1,9 @@
1
- import type { FilterKeys } from "./FilterKeys";
1
+ import type { FieldFiltered } from "./FieldFiltered";
2
2
  /**
3
3
  * Checks if a given number field matches a given number value according to a given operator.
4
4
  */
5
5
  export type FilterNumber<T extends object> = {
6
6
  operator: "equal" | "notEqual" | "greaterThan" | "greaterThanOrEqual" | "lowerThan" | "lowerThanOrEqual";
7
- field: FilterKeys<T, number>;
7
+ field: FieldFiltered<T, number>;
8
8
  value: number;
9
9
  };
@@ -1,11 +1,11 @@
1
- import type { FilterKeys } from "./FilterKeys";
1
+ import type { FieldFiltered } from "./FieldFiltered";
2
2
  import type { Locale } from "./Locale";
3
3
  /**
4
4
  * Checks if a given string field matches a given string value according to a given operator.
5
5
  */
6
6
  export type FilterString<T extends object> = {
7
7
  operator: "equal" | "notEqual" | "startWith" | "endWith" | "include" | "greaterThan" | "greaterThanOrEqual" | "lowerThan" | "lowerThanOrEqual";
8
- field: FilterKeys<T, string>;
8
+ field: FieldFiltered<T, string>;
9
9
  value: string;
10
10
  options?: Intl.CollatorOptions;
11
11
  locale?: Locale;
@@ -1,11 +1,11 @@
1
- import type { FilterKeys } from "./FilterKeys";
1
+ import type { FieldFiltered } from "./FieldFiltered";
2
2
  import type { Locale } from "./Locale";
3
3
  /**
4
4
  * Checks if a given string field has any of the provided values.
5
5
  */
6
6
  export type FilterStringIntersect<T extends object> = {
7
7
  operator: "intersect";
8
- field: FilterKeys<T, string>;
8
+ field: FieldFiltered<T, string>;
9
9
  value: string[];
10
10
  options?: Intl.CollatorOptions;
11
11
  locale?: Locale;
@@ -1,11 +1,11 @@
1
1
  import type { SymbolCache } from "../constants/SymbolCache";
2
- import type { FilterKeys } from "./FilterKeys";
2
+ import type { FieldFiltered } from "./FieldFiltered";
3
3
  /**
4
4
  * Checks if a given string field matches a given regular expression.
5
5
  */
6
6
  export type FilterStringMatch<T extends object> = {
7
7
  operator: "match";
8
- field: FilterKeys<T, string>;
8
+ field: FieldFiltered<T, string>;
9
9
  /**
10
10
  * Raw regular expression string.
11
11
  */
@@ -1,6 +1,5 @@
1
+ import type { Path } from "./Path";
1
2
  /**
2
3
  * Returns the type of the property at the specified `K` key.
3
4
  */
4
- export type Get<T extends object, K extends string, D> = T extends {
5
- [key in K]: any;
6
- } ? T[K] : D;
5
+ export type Get<T, P> = [P] extends [[infer K, ...infer R]] ? K extends keyof T ? R extends Path<T[K]> ? Get<T[K], R> : T[K] : never : never;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Returns object type with field extending the provided `P` type.
3
3
  */
4
- export type FilterKeys<T extends object, P> = keyof T & keyof {
4
+ export type KeyFiltered<T extends object, P> = keyof T & keyof {
5
5
  [K in keyof T as T[K] extends P ? K : never]-?: T[K];
6
6
  };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=KeyFiltered.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeyFiltered.js","sourceRoot":"","sources":["../../lib/types/KeyFiltered.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export type Path<T> = T extends Array<infer P> ? [number] | [number, ...Path<P>] : T extends object ? {
2
+ [K in keyof T]-?: [K] | [K, ...Path<T[K]>];
3
+ }[keyof T] : never;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Path.js","sourceRoot":"","sources":["../../lib/types/Path.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export type PathFiltered<T, P> = T extends Array<infer I> ? I extends P ? [number] : [number, ...PathFiltered<I, P>] : T extends object ? {
2
+ [K in keyof T]-?: T[K] extends P ? [K] : [K, ...PathFiltered<T[K], P>];
3
+ }[keyof T] : never;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=PathFiltered.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PathFiltered.js","sourceRoot":"","sources":["../../lib/types/PathFiltered.ts"],"names":[],"mappings":""}
@@ -1,6 +1,6 @@
1
+ import type { FieldFiltered } from "./FieldFiltered";
1
2
  import type { Filter } from "./Filter";
2
3
  import type { FilterChildren } from "./FilterChildren";
3
- import type { FilterKeys } from "./FilterKeys";
4
4
  /**
5
5
  * Settings to use when doing a query.
6
6
  */
@@ -12,7 +12,7 @@ export type QuerySettings<T extends object> = {
12
12
  /**
13
13
  * Field key to that contains the path value of an item.
14
14
  */
15
- pathFieldKey?: FilterKeys<T, string>;
15
+ pathFieldKey?: FieldFiltered<T, string>;
16
16
  /**
17
17
  * Returns a filter that captures the items expressed by the provided `FilterChildren`. The return filter cannot use filters of type `FilterChildren`.
18
18
  *
@@ -26,4 +26,8 @@ export type QuerySettings<T extends object> = {
26
26
  * Abort signal to abort the query.
27
27
  */
28
28
  signal?: AbortSignal;
29
+ /**
30
+ * Abort controller to abort the query.
31
+ */
32
+ abortController?: AbortController;
29
33
  };
package/dist/types.d.ts CHANGED
@@ -5,6 +5,8 @@ export type { Context } from "./types/Context";
5
5
  export type { CustomFetch } from "./types/CustomFetch";
6
6
  export type { CustomFieldAggregateMap } from "./types/CustomFieldAggregateMap";
7
7
  export type { CustomFieldMap } from "./types/CustomFieldMap";
8
+ export type { Field } from "./types/Field";
9
+ export type { FieldFiltered } from "./types/FieldFiltered";
8
10
  export type { FieldFunction } from "./types/FieldFunction";
9
11
  export type { FieldFunctionCustom } from "./types/FieldFunctionCustom";
10
12
  export type { FieldFunctionFormatDate } from "./types/FieldFunctionFormatDate";
@@ -16,7 +18,6 @@ export type { FilterChildren } from "./types/FilterChildren";
16
18
  export type { FilterCustom } from "./types/FilterCustom";
17
19
  export type { FilterField } from "./types/FilterField";
18
20
  export type { FilterGroup } from "./types/FilterGroup";
19
- export type { FilterKeys } from "./types/FilterKeys";
20
21
  export type { FilterNumber } from "./types/FilterNumber";
21
22
  export type { FilterOperator } from "./types/FilterOperator";
22
23
  export type { FilterString } from "./types/FilterString";
@@ -29,11 +30,14 @@ export type { Immutable } from "./types/Immutable";
29
30
  export type { InjectCustomFields } from "./types/InjectCustomFields";
30
31
  export type { Item } from "./types/Item";
31
32
  export type { Key } from "./types/Key";
33
+ export type { KeyFiltered } from "./types/KeyFiltered";
32
34
  export type { Locale } from "./types/Locale";
33
35
  export type { Mutable } from "./types/Mutable";
34
36
  export type { NextHandler } from "./types/NextHandler";
35
37
  export type { Order } from "./types/Order";
36
38
  export type { Parameters } from "./types/Parameters";
39
+ export type { Path } from "./types/Path";
40
+ export type { PathFiltered } from "./types/PathFiltered";
37
41
  export type { Query } from "./types/Query";
38
42
  export type { QueryAggregate } from "./types/QueryAggregate";
39
43
  export type { QueryCreate } from "./types/QueryCreate";