quetch 0.2.1 → 0.4.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 (269) hide show
  1. package/dist/errors/RequestError.d.ts +3 -3
  2. package/dist/errors.d.ts +1 -1
  3. package/dist/errors.js +1 -1
  4. package/dist/errors.js.map +1 -1
  5. package/dist/middlewares/aggregate.d.ts +3 -3
  6. package/dist/middlewares/aggregate.js +1 -1
  7. package/dist/middlewares/aggregate.js.map +1 -1
  8. package/dist/middlewares/cache.d.ts +4 -4
  9. package/dist/middlewares/cache.js +3 -3
  10. package/dist/middlewares/cache.js.map +1 -1
  11. package/dist/middlewares.d.ts +9 -9
  12. package/dist/middlewares.js +9 -9
  13. package/dist/middlewares.js.map +1 -1
  14. package/dist/tools/cork.d.ts +5 -0
  15. package/dist/tools/cork.js +5 -0
  16. package/dist/tools/cork.js.map +1 -0
  17. package/dist/tools/defineCheckQuery.d.ts +12 -7
  18. package/dist/tools/defineCheckQuery.js +5 -0
  19. package/dist/tools/defineCheckQuery.js.map +1 -1
  20. package/dist/tools/defineCustomFetch.d.ts +26 -18
  21. package/dist/tools/defineCustomFetch.js +9 -3
  22. package/dist/tools/defineCustomFetch.js.map +1 -1
  23. package/dist/tools/defineGenericFetch.d.ts +14 -0
  24. package/dist/tools/defineGenericFetch.js +12 -0
  25. package/dist/tools/defineGenericFetch.js.map +1 -0
  26. package/dist/tools/queryItemList.js +3 -3
  27. package/dist/tools/queryItemList.js.map +1 -1
  28. package/dist/tools/sortItemList.js +3 -3
  29. package/dist/tools/sortItemList.js.map +1 -1
  30. package/dist/tools.d.ts +9 -8
  31. package/dist/tools.js +9 -8
  32. package/dist/tools.js.map +1 -1
  33. package/dist/types/AggregateFunction.d.ts +9 -0
  34. package/dist/types/AggregateFunction.js +2 -0
  35. package/dist/types/AggregateFunction.js.map +1 -0
  36. package/dist/types/AggregateFunctionOperator.d.ts +2 -0
  37. package/dist/types/AggregateFunctionOperator.js +2 -0
  38. package/dist/types/AggregateFunctionOperator.js.map +1 -0
  39. package/dist/types/Any.d.ts +1 -0
  40. package/dist/types/Any.js +2 -0
  41. package/dist/types/Any.js.map +1 -0
  42. package/dist/types/Context.d.ts +3 -0
  43. package/dist/types/Context.js +2 -0
  44. package/dist/types/Context.js.map +1 -0
  45. package/dist/types/CustomFieldAggregateMap.d.ts +2 -0
  46. package/dist/types/CustomFieldAggregateMap.js +2 -0
  47. package/dist/types/CustomFieldAggregateMap.js.map +1 -0
  48. package/dist/types/CustomFieldMap.d.ts +2 -0
  49. package/dist/types/CustomFieldMap.js +2 -0
  50. package/dist/types/CustomFieldMap.js.map +1 -0
  51. package/dist/types/CustomRequest.d.ts +16 -0
  52. package/dist/types/CustomRequest.js +2 -0
  53. package/dist/types/CustomRequest.js.map +1 -0
  54. package/dist/types/FieldFunction.d.ts +3 -0
  55. package/dist/types/FieldFunction.js +2 -0
  56. package/dist/types/FieldFunction.js.map +1 -0
  57. package/dist/types/FieldFunctionCustom.d.ts +7 -0
  58. package/dist/types/FieldFunctionCustom.js +2 -0
  59. package/dist/types/FieldFunctionCustom.js.map +1 -0
  60. package/dist/types/FieldFunctionFormatDate.d.ts +9 -0
  61. package/dist/types/FieldFunctionFormatDate.js +2 -0
  62. package/dist/types/FieldFunctionFormatDate.js.map +1 -0
  63. package/dist/types/FieldFunctionReturn.d.ts +6 -0
  64. package/dist/types/FieldFunctionReturn.js +2 -0
  65. package/dist/types/FieldFunctionReturn.js.map +1 -0
  66. package/dist/types/Filter.d.ts +12 -0
  67. package/dist/types/Filter.js +2 -0
  68. package/dist/types/Filter.js.map +1 -0
  69. package/dist/types/FilterArray.d.ts +10 -0
  70. package/dist/types/FilterArray.js +2 -0
  71. package/dist/types/FilterArray.js.map +1 -0
  72. package/dist/types/FilterBoolean.d.ts +9 -0
  73. package/dist/types/FilterBoolean.js +2 -0
  74. package/dist/types/FilterBoolean.js.map +1 -0
  75. package/dist/types/FilterField.d.ts +7 -0
  76. package/dist/types/FilterField.js +2 -0
  77. package/dist/types/FilterField.js.map +1 -0
  78. package/dist/types/FilterKeys.d.ts +6 -0
  79. package/dist/types/FilterKeys.js +2 -0
  80. package/dist/types/FilterKeys.js.map +1 -0
  81. package/dist/types/FilterNumber.d.ts +9 -0
  82. package/dist/types/FilterNumber.js +2 -0
  83. package/dist/types/FilterNumber.js.map +1 -0
  84. package/dist/types/FilterOperator.d.ts +2 -0
  85. package/dist/types/FilterOperator.js +2 -0
  86. package/dist/types/FilterOperator.js.map +1 -0
  87. package/dist/types/FilterSequence.d.ts +23 -0
  88. package/dist/types/FilterSequence.js +2 -0
  89. package/dist/types/FilterSequence.js.map +1 -0
  90. package/dist/types/FilterString.d.ts +9 -0
  91. package/dist/types/FilterString.js +2 -0
  92. package/dist/types/FilterString.js.map +1 -0
  93. package/dist/types/FilterStringIntersect.d.ts +9 -0
  94. package/dist/types/FilterStringIntersect.js +2 -0
  95. package/dist/types/FilterStringIntersect.js.map +1 -0
  96. package/dist/types/FilterStringMatch.d.ts +29 -0
  97. package/dist/types/FilterStringMatch.js +2 -0
  98. package/dist/types/FilterStringMatch.js.map +1 -0
  99. package/dist/types/GenericFetch.d.ts +11 -0
  100. package/dist/types/GenericFetch.js +2 -0
  101. package/dist/types/GenericFetch.js.map +1 -0
  102. package/dist/types/Get.d.ts +6 -0
  103. package/dist/types/Get.js +2 -0
  104. package/dist/types/Get.js.map +1 -0
  105. package/dist/types/Group.d.ts +8 -0
  106. package/dist/types/Group.js +2 -0
  107. package/dist/types/Group.js.map +1 -0
  108. package/dist/types/Handler.d.ts +5 -0
  109. package/dist/types/Handler.js +2 -0
  110. package/dist/types/Handler.js.map +1 -0
  111. package/dist/types/Immutable.d.ts +3 -0
  112. package/dist/types/Immutable.js +2 -0
  113. package/dist/types/Immutable.js.map +1 -0
  114. package/dist/types/InjectCustomFields.d.ts +9 -0
  115. package/dist/types/InjectCustomFields.js +2 -0
  116. package/dist/types/InjectCustomFields.js.map +1 -0
  117. package/dist/types/Item.d.ts +4 -0
  118. package/dist/types/Item.js +2 -0
  119. package/dist/types/Item.js.map +1 -0
  120. package/dist/types/Key.d.ts +1 -0
  121. package/dist/types/Key.js +2 -0
  122. package/dist/types/Key.js.map +1 -0
  123. package/dist/types/Mutable.d.ts +3 -0
  124. package/dist/types/Mutable.js +2 -0
  125. package/dist/types/Mutable.js.map +1 -0
  126. package/dist/types/NextHandler.d.ts +4 -0
  127. package/dist/types/NextHandler.js +2 -0
  128. package/dist/types/NextHandler.js.map +1 -0
  129. package/dist/types/Order.d.ts +7 -0
  130. package/dist/types/Order.js +2 -0
  131. package/dist/types/Order.js.map +1 -0
  132. package/dist/types/Query.d.ts +23 -0
  133. package/dist/types/Query.js +2 -0
  134. package/dist/types/Query.js.map +1 -0
  135. package/dist/types/QueryAggregate.d.ts +10 -0
  136. package/dist/types/QueryAggregate.js +2 -0
  137. package/dist/types/QueryAggregate.js.map +1 -0
  138. package/dist/types/QueryAny.d.ts +7 -0
  139. package/dist/types/QueryAny.js +2 -0
  140. package/dist/types/QueryAny.js.map +1 -0
  141. package/dist/types/QueryCreate.d.ts +7 -0
  142. package/dist/types/QueryCreate.js +2 -0
  143. package/dist/types/QueryCreate.js.map +1 -0
  144. package/dist/types/QueryCreateMultiple.d.ts +8 -0
  145. package/dist/types/QueryCreateMultiple.js +2 -0
  146. package/dist/types/QueryCreateMultiple.js.map +1 -0
  147. package/dist/types/QueryDelete.d.ts +10 -0
  148. package/dist/types/QueryDelete.js +2 -0
  149. package/dist/types/QueryDelete.js.map +1 -0
  150. package/dist/types/QueryDeleteMultiple.d.ts +11 -0
  151. package/dist/types/QueryDeleteMultiple.js +2 -0
  152. package/dist/types/QueryDeleteMultiple.js.map +1 -0
  153. package/dist/types/QueryMethod.d.ts +5 -0
  154. package/dist/types/QueryMethod.js +2 -0
  155. package/dist/types/QueryMethod.js.map +1 -0
  156. package/dist/types/QueryRead.d.ts +23 -0
  157. package/dist/types/QueryRead.js +2 -0
  158. package/dist/types/QueryRead.js.map +1 -0
  159. package/dist/types/QueryReadMultiple.d.ts +34 -0
  160. package/dist/types/QueryReadMultiple.js +2 -0
  161. package/dist/types/QueryReadMultiple.js.map +1 -0
  162. package/dist/types/QueryUpdate.d.ts +18 -0
  163. package/dist/types/QueryUpdate.js +2 -0
  164. package/dist/types/QueryUpdate.js.map +1 -0
  165. package/dist/types/QueryUpdateMultiple.d.ts +26 -0
  166. package/dist/types/QueryUpdateMultiple.js +2 -0
  167. package/dist/types/QueryUpdateMultiple.js.map +1 -0
  168. package/dist/types/Result.d.ts +25 -0
  169. package/dist/types/Result.js +2 -0
  170. package/dist/types/Result.js.map +1 -0
  171. package/dist/types/Store.d.ts +6 -0
  172. package/dist/types/Store.js +2 -0
  173. package/dist/types/Store.js.map +1 -0
  174. package/dist/types.d.ts +47 -396
  175. package/doc/README.md +537 -219
  176. package/doc/interfaces/GenericFetch.md +60 -0
  177. package/lib/errors/RequestError.ts +2 -2
  178. package/lib/errors.ts +1 -1
  179. package/lib/middlewares/aggregate.ts +5 -5
  180. package/lib/middlewares/cache.ts +7 -12
  181. package/lib/middlewares.ts +9 -9
  182. package/lib/tools/cork.ts +6 -0
  183. package/lib/tools/defineCheckQuery.ts +20 -15
  184. package/lib/tools/defineCustomFetch.ts +40 -62
  185. package/lib/tools/defineGenericFetch.ts +33 -0
  186. package/lib/tools/queryItemList.test.ts +6 -6
  187. package/lib/tools/queryItemList.ts +3 -3
  188. package/lib/tools/sortItemList.ts +3 -3
  189. package/lib/tools.ts +9 -8
  190. package/lib/types/AggregateFunction.ts +17 -0
  191. package/lib/types/AggregateFunctionOperator.ts +6 -0
  192. package/lib/types/Any.ts +10 -0
  193. package/lib/types/Context.ts +3 -0
  194. package/lib/types/CustomFieldAggregateMap.ts +6 -0
  195. package/lib/types/CustomFieldMap.ts +3 -0
  196. package/lib/types/CustomRequest.ts +21 -0
  197. package/lib/types/FieldFunction.ts +6 -0
  198. package/lib/types/FieldFunctionCustom.ts +7 -0
  199. package/lib/types/FieldFunctionFormatDate.ts +10 -0
  200. package/lib/types/FieldFunctionReturn.ts +6 -0
  201. package/lib/types/Filter.ts +20 -0
  202. package/lib/types/FilterArray.ts +11 -0
  203. package/lib/types/FilterBoolean.ts +10 -0
  204. package/lib/types/FilterField.ts +7 -0
  205. package/lib/types/FilterKeys.ts +6 -0
  206. package/lib/types/FilterNumber.ts +16 -0
  207. package/lib/types/FilterOperator.ts +3 -0
  208. package/lib/types/FilterSequence.ts +26 -0
  209. package/lib/types/FilterString.ts +19 -0
  210. package/lib/types/FilterStringIntersect.ts +10 -0
  211. package/lib/types/FilterStringMatch.ts +30 -0
  212. package/lib/types/GenericFetch.ts +12 -0
  213. package/lib/types/Get.ts +8 -0
  214. package/lib/types/Group.ts +11 -0
  215. package/lib/types/Handler.ts +9 -0
  216. package/lib/types/Immutable.ts +3 -0
  217. package/lib/types/InjectCustomFields.ts +23 -0
  218. package/lib/types/Item.ts +8 -0
  219. package/lib/types/Key.ts +1 -0
  220. package/lib/types/Mutable.ts +3 -0
  221. package/lib/types/NextHandler.ts +4 -0
  222. package/lib/types/Order.ts +9 -0
  223. package/lib/types/Query.ts +36 -0
  224. package/lib/types/QueryAggregate.ts +11 -0
  225. package/lib/types/QueryAny.ts +8 -0
  226. package/lib/types/QueryCreate.ts +7 -0
  227. package/lib/types/QueryCreateMultiple.ts +8 -0
  228. package/lib/types/QueryDelete.ts +11 -0
  229. package/lib/types/QueryDeleteMultiple.ts +12 -0
  230. package/lib/types/QueryMethod.ts +6 -0
  231. package/lib/types/QueryRead.ts +24 -0
  232. package/lib/types/QueryReadMultiple.ts +36 -0
  233. package/lib/types/QueryUpdate.ts +19 -0
  234. package/lib/types/QueryUpdateMultiple.ts +27 -0
  235. package/lib/types/Result.ts +38 -0
  236. package/lib/types/Store.ts +7 -0
  237. package/lib/types.ts +48 -562
  238. package/package.json +3 -3
  239. package/dist/errors/QueryError.d.ts +0 -5
  240. package/dist/errors/QueryError.js +0 -23
  241. package/dist/errors/QueryError.js.map +0 -1
  242. package/dist/middlewares/concurrent.d.ts +0 -2
  243. package/dist/middlewares/concurrent.js +0 -20
  244. package/dist/middlewares/concurrent.js.map +0 -1
  245. package/dist/middlewares/fetch.d.ts +0 -2
  246. package/dist/middlewares/fetch.js +0 -20
  247. package/dist/middlewares/fetch.js.map +0 -1
  248. package/dist/middlewares/logQuery.d.ts +0 -2
  249. package/dist/middlewares/logQuery.js +0 -25
  250. package/dist/middlewares/logQuery.js.map +0 -1
  251. package/dist/tools/add.d.ts +0 -8
  252. package/dist/tools/add.js +0 -11
  253. package/dist/tools/add.js.map +0 -1
  254. package/dist/tools/add.test.d.ts +0 -1
  255. package/dist/tools/add.test.js +0 -6
  256. package/dist/tools/add.test.js.map +0 -1
  257. package/dist/tools/filterItem.test.d.ts +0 -1
  258. package/dist/tools/filterItem.test.js +0 -86
  259. package/dist/tools/filterItem.test.js.map +0 -1
  260. package/dist/tools/impasse.d.ts +0 -2
  261. package/dist/tools/impasse.js +0 -2
  262. package/dist/tools/impasse.js.map +0 -1
  263. package/dist/tools/queryItemList.test.d.ts +0 -1
  264. package/dist/tools/queryItemList.test.js +0 -181
  265. package/dist/tools/queryItemList.test.js.map +0 -1
  266. package/dist/tools/sortItemList.test.d.ts +0 -1
  267. package/dist/tools/sortItemList.test.js +0 -47
  268. package/dist/tools/sortItemList.test.js.map +0 -1
  269. package/lib/tools/impasse.ts +0 -3
package/doc/README.md CHANGED
@@ -4,48 +4,57 @@ quetch
4
4
 
5
5
  ## Table of contents
6
6
 
7
+ ### Interfaces
8
+
9
+ - [GenericFetch](interfaces/GenericFetch.md)
10
+
7
11
  ### Type Aliases
8
12
 
9
13
  - [AggregateFunction](README.md#aggregatefunction)
10
14
  - [AggregateFunctionOperator](README.md#aggregatefunctionoperator)
11
15
  - [Any](README.md#any)
12
- - [AnyQuery](README.md#anyquery)
13
- - [AnyQueryExternal](README.md#anyqueryexternal)
14
- - [AnyQueryLocal](README.md#anyquerylocal)
15
16
  - [Context](README.md#context)
17
+ - [CustomFieldAggregateMap](README.md#customfieldaggregatemap)
16
18
  - [CustomFieldMap](README.md#customfieldmap)
17
- - [EntityItem](README.md#entityitem)
19
+ - [CustomRequest](README.md#customrequest)
18
20
  - [FieldFunction](README.md#fieldfunction)
19
21
  - [FieldFunctionCustom](README.md#fieldfunctioncustom)
20
22
  - [FieldFunctionFormatDate](README.md#fieldfunctionformatdate)
21
- - [FieldFunctionOperator](README.md#fieldfunctionoperator)
22
23
  - [FieldFunctionReturn](README.md#fieldfunctionreturn)
23
24
  - [Filter](README.md#filter)
24
25
  - [FilterArray](README.md#filterarray)
25
26
  - [FilterBoolean](README.md#filterboolean)
26
27
  - [FilterField](README.md#filterfield)
27
28
  - [FilterKeys](README.md#filterkeys)
28
- - [FilterList](README.md#filterlist)
29
29
  - [FilterNumber](README.md#filternumber)
30
30
  - [FilterOperator](README.md#filteroperator)
31
+ - [FilterSequence](README.md#filtersequence)
31
32
  - [FilterString](README.md#filterstring)
32
33
  - [FilterStringIntersect](README.md#filterstringintersect)
33
34
  - [FilterStringMatch](README.md#filterstringmatch)
35
+ - [Get](README.md#get)
36
+ - [Group](README.md#group)
34
37
  - [Handler](README.md#handler)
38
+ - [Immutable](README.md#immutable)
39
+ - [InjectCustomFields](README.md#injectcustomfields)
40
+ - [Item](README.md#item)
41
+ - [Key](README.md#key)
42
+ - [Mutable](README.md#mutable)
35
43
  - [NextHandler](README.md#nexthandler)
36
44
  - [Order](README.md#order)
37
45
  - [Query](README.md#query)
38
46
  - [QueryAggregate](README.md#queryaggregate)
39
- - [QueryBase](README.md#querybase)
47
+ - [QueryAny](README.md#queryany)
40
48
  - [QueryCreate](README.md#querycreate)
41
49
  - [QueryCreateMultiple](README.md#querycreatemultiple)
42
50
  - [QueryDelete](README.md#querydelete)
43
51
  - [QueryDeleteMultiple](README.md#querydeletemultiple)
44
- - [QueryGet](README.md#queryget)
45
- - [QueryGetMultiple](README.md#querygetmultiple)
46
52
  - [QueryMethod](README.md#querymethod)
53
+ - [QueryRead](README.md#queryread)
54
+ - [QueryReadMultiple](README.md#queryreadmultiple)
47
55
  - [QueryUpdate](README.md#queryupdate)
48
56
  - [QueryUpdateMultiple](README.md#queryupdatemultiple)
57
+ - [Result](README.md#result)
49
58
  - [Store](README.md#store)
50
59
 
51
60
  ### Functions
@@ -54,14 +63,15 @@ quetch
54
63
  - [branch](README.md#branch)
55
64
  - [cache](README.md#cache)
56
65
  - [combine](README.md#combine)
66
+ - [cork](README.md#cork)
57
67
  - [defineCheckQuery](README.md#definecheckquery)
58
68
  - [defineCustomFetch](README.md#definecustomfetch)
69
+ - [defineGenericFetch](README.md#definegenericfetch)
59
70
  - [fetchExternal](README.md#fetchexternal)
60
71
  - [fetchLocal](README.md#fetchlocal)
61
72
  - [filterFromContext](README.md#filterfromcontext)
62
73
  - [filterItem](README.md#filteritem)
63
74
  - [identity](README.md#identity)
64
- - [impasse](README.md#impasse)
65
75
  - [log](README.md#log)
66
76
  - [normalizeOrder](README.md#normalizeorder)
67
77
  - [queryItemList](README.md#queryitemlist)
@@ -84,7 +94,7 @@ Aggregation function.
84
94
 
85
95
  #### Defined in
86
96
 
87
- [lib/types.ts:387](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L387)
97
+ [lib/types/AggregateFunction.ts:4](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/AggregateFunction.ts#L4)
88
98
 
89
99
  ___
90
100
 
@@ -94,7 +104,7 @@ ___
94
104
 
95
105
  #### Defined in
96
106
 
97
- [lib/types.ts:402](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L402)
107
+ [lib/types/AggregateFunctionOperator.ts:3](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/AggregateFunctionOperator.ts#L3)
98
108
 
99
109
  ___
100
110
 
@@ -104,43 +114,29 @@ ___
104
114
 
105
115
  #### Defined in
106
116
 
107
- [lib/types.ts:1](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L1)
117
+ [lib/types/Any.ts:1](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/Any.ts#L1)
108
118
 
109
119
  ___
110
120
 
111
- ### AnyQuery
112
-
113
- Ƭ **AnyQuery**: [`Query`](README.md#query)<`any`, `any`\>
114
-
115
- #### Defined in
116
-
117
- [lib/types.ts:92](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L92)
118
-
119
- ___
120
-
121
- ### AnyQueryExternal
122
-
123
- Ƭ **AnyQueryExternal**: `Omit`<[`Query`](README.md#query)<`any`, `any`\>, ``"type"``\> & { `type`: `string` }
124
-
125
- #### Defined in
126
-
127
- [lib/types.ts:94](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L94)
121
+ ### Context
128
122
 
129
- ___
123
+ Ƭ **Context**<`T`\>: { [K in keyof T]?: T[K] }
130
124
 
131
- ### AnyQueryLocal
125
+ #### Type parameters
132
126
 
133
- Ƭ **AnyQueryLocal**: `Omit`<[`Query`](README.md#query)<`any`, `any`\>, ``"type"``\> & { `type`: `object`[] }
127
+ | Name | Type |
128
+ | :------ | :------ |
129
+ | `T` | extends `object` |
134
130
 
135
131
  #### Defined in
136
132
 
137
- [lib/types.ts:96](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L96)
133
+ [lib/types/Context.ts:1](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/Context.ts#L1)
138
134
 
139
135
  ___
140
136
 
141
- ### Context
137
+ ### CustomFieldAggregateMap
142
138
 
143
- Ƭ **Context**<`T`\>: { [K in keyof T]?: T[K] }
139
+ Ƭ **CustomFieldAggregateMap**<`T`\>: `Record`<`string`, [`AggregateFunction`](README.md#aggregatefunction)<`T`\>\>
144
140
 
145
141
  #### Type parameters
146
142
 
@@ -150,7 +146,7 @@ ___
150
146
 
151
147
  #### Defined in
152
148
 
153
- [lib/types.ts:98](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L98)
149
+ [lib/types/CustomFieldAggregateMap.ts:3](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/CustomFieldAggregateMap.ts#L3)
154
150
 
155
151
  ___
156
152
 
@@ -166,27 +162,33 @@ ___
166
162
 
167
163
  #### Defined in
168
164
 
169
- [lib/types.ts:382](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L382)
165
+ [lib/types/CustomFieldMap.ts:3](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/CustomFieldMap.ts#L3)
170
166
 
171
167
  ___
172
168
 
173
- ### EntityItem
169
+ ### CustomRequest
174
170
 
175
- Ƭ **EntityItem**<`E`, `C`, `Q`\>: `Q` extends { `customFields`: [`CustomFieldMap`](README.md#customfieldmap)<`E`\> } ? { readonly [K in ArrayItem<Get<Q, "fields", undefined\>, keyof E \| keyof Q["customFields"]\>]: K extends keyof E ? E[K] : K extends keyof Q["customFields"] ? Q["customFields"][K] extends FieldFunctionCustom<E\> ? ReturnType<Q["customFields"][K]["value"]\> : Q["customFields"][K]["operator"] extends keyof FieldFunctionReturn ? FieldFunctionReturn[Q["customFields"][K]["operator"]] : never : never } : { readonly [K in ArrayItem<Get<Q, "fields", undefined\>, keyof E\>]: K extends keyof E ? E[K] : never }
176
-
177
- Entity type for a given query.
171
+ Ƭ **CustomRequest**<`T`, `Q`, `C`\>: `Object`
178
172
 
179
173
  #### Type parameters
180
174
 
181
175
  | Name | Type |
182
176
  | :------ | :------ |
183
- | `E` | extends `object` |
184
- | `C` | extends [`CustomFieldMap`](README.md#customfieldmap)<`E`\> |
185
- | `Q` | extends [`Query`](README.md#query)<`E`, `C`\> |
177
+ | `T` | extends `object` |
178
+ | `Q` | extends [`Query`](README.md#query)<`T`, `C`\> |
179
+ | `C` | extends [`CustomFieldMap`](README.md#customfieldmap)<`T`\> |
180
+
181
+ #### Type declaration
182
+
183
+ | Name | Type | Description |
184
+ | :------ | :------ | :------ |
185
+ | `data` | `T` | Entity being queried. |
186
+ | `query` | `Q` | Query. |
187
+ | `signal?` | `AbortSignal` | Abort signal to abort the request. |
186
188
 
187
189
  #### Defined in
188
190
 
189
- [lib/types.ts:49](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L49)
191
+ [lib/types/CustomRequest.ts:4](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/CustomRequest.ts#L4)
190
192
 
191
193
  ___
192
194
 
@@ -202,7 +204,7 @@ ___
202
204
 
203
205
  #### Defined in
204
206
 
205
- [lib/types.ts:349](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L349)
207
+ [lib/types/FieldFunction.ts:4](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/FieldFunction.ts#L4)
206
208
 
207
209
  ___
208
210
 
@@ -227,7 +229,7 @@ Applies a custom field transform function.
227
229
 
228
230
  #### Defined in
229
231
 
230
- [lib/types.ts:356](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L356)
232
+ [lib/types/FieldFunctionCustom.ts:4](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/FieldFunctionCustom.ts#L4)
231
233
 
232
234
  ___
233
235
 
@@ -253,19 +255,7 @@ Formats the date found in a given field, which can be an ISO string date or a ti
253
255
 
254
256
  #### Defined in
255
257
 
256
- [lib/types.ts:364](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L364)
257
-
258
- ___
259
-
260
- ### FieldFunctionOperator
261
-
262
- Ƭ **FieldFunctionOperator**: [`FieldFunction`](README.md#fieldfunction)<`never`\>[``"operator"``]
263
-
264
- Possible field function operators.
265
-
266
- #### Defined in
267
-
268
- [lib/types.ts:373](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L373)
258
+ [lib/types/FieldFunctionFormatDate.ts:6](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/FieldFunctionFormatDate.ts#L6)
269
259
 
270
260
  ___
271
261
 
@@ -283,13 +273,13 @@ Return types of custom field functions.
283
273
 
284
274
  #### Defined in
285
275
 
286
- [lib/types.ts:378](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L378)
276
+ [lib/types/FieldFunctionReturn.ts:4](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/FieldFunctionReturn.ts#L4)
287
277
 
288
278
  ___
289
279
 
290
280
  ### Filter
291
281
 
292
- Ƭ **Filter**<`T`\>: [`FilterList`](README.md#filterlist)<`T`\> \| [`FilterField`](README.md#filterfield)<`T`\> \| [`FilterBoolean`](README.md#filterboolean)<`T`\> \| [`FilterString`](README.md#filterstring)<`T`\> \| [`FilterStringMatch`](README.md#filterstringmatch)<`T`\> \| [`FilterStringIntersect`](README.md#filterstringintersect)<`T`\> \| [`FilterNumber`](README.md#filternumber)<`T`\> \| [`FilterArray`](README.md#filterarray)<`T`\>
282
+ Ƭ **Filter**<`T`\>: [`FilterSequence`](README.md#filtersequence)<`T`\> \| [`FilterField`](README.md#filterfield)<`T`\> \| [`FilterBoolean`](README.md#filterboolean)<`T`\> \| [`FilterString`](README.md#filterstring)<`T`\> \| [`FilterStringMatch`](README.md#filterstringmatch)<`T`\> \| [`FilterStringIntersect`](README.md#filterstringintersect)<`T`\> \| [`FilterNumber`](README.md#filternumber)<`T`\> \| [`FilterArray`](README.md#filterarray)<`T`\>
293
283
 
294
284
  Describes a predicate for filtering items.
295
285
 
@@ -301,7 +291,7 @@ Describes a predicate for filtering items.
301
291
 
302
292
  #### Defined in
303
293
 
304
- [lib/types.ts:422](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L422)
294
+ [lib/types/Filter.ts:12](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/Filter.ts#L12)
305
295
 
306
296
  ___
307
297
 
@@ -328,7 +318,7 @@ Checks if a given array field matches a given array value according to a given o
328
318
 
329
319
  #### Defined in
330
320
 
331
- [lib/types.ts:550](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L550)
321
+ [lib/types/FilterArray.ts:7](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/FilterArray.ts#L7)
332
322
 
333
323
  ___
334
324
 
@@ -354,7 +344,7 @@ Checks if a given boolean field is `true` or `false`.
354
344
 
355
345
  #### Defined in
356
346
 
357
- [lib/types.ts:470](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L470)
347
+ [lib/types/FilterBoolean.ts:6](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/FilterBoolean.ts#L6)
358
348
 
359
349
  ___
360
350
 
@@ -379,7 +369,7 @@ Checks if a given field exists.
379
369
 
380
370
  #### Defined in
381
371
 
382
- [lib/types.ts:462](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L462)
372
+ [lib/types/FilterField.ts:4](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/FilterField.ts#L4)
383
373
 
384
374
  ___
385
375
 
@@ -387,34 +377,18 @@ ___
387
377
 
388
378
  Ƭ **FilterKeys**<`T`, `P`\>: { [K in keyof T]-?: T[K] extends P ? K : never }[keyof `T`]
389
379
 
390
- #### Type parameters
391
-
392
- | Name | Type |
393
- | :------ | :------ |
394
- | `T` | extends `object` |
395
- | `P` | `P` |
396
-
397
- #### Defined in
398
-
399
- [lib/types.ts:345](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L345)
400
-
401
- ___
402
-
403
- ### FilterList
404
-
405
- Ƭ **FilterList**<`T`\>: { `operator`: ``"all"`` ; `value`: [`Filter`](README.md#filter)<`T`\>[] } \| { `operator`: ``"any"`` \| ``"none"`` ; `value?`: [`Filter`](README.md#filter)<`T`\>[] }
406
-
407
- Joins a list of filters with a specific boolean operator.
380
+ Returns object type with field extending the provided `P` type.
408
381
 
409
382
  #### Type parameters
410
383
 
411
384
  | Name | Type |
412
385
  | :------ | :------ |
413
386
  | `T` | extends `object` |
387
+ | `P` | `P` |
414
388
 
415
389
  #### Defined in
416
390
 
417
- [lib/types.ts:437](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L437)
391
+ [lib/types/FilterKeys.ts:4](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/FilterKeys.ts#L4)
418
392
 
419
393
  ___
420
394
 
@@ -440,7 +414,7 @@ Checks if a given number field matches a given number value according to a given
440
414
 
441
415
  #### Defined in
442
416
 
443
- [lib/types.ts:535](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L535)
417
+ [lib/types/FilterNumber.ts:6](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/FilterNumber.ts#L6)
444
418
 
445
419
  ___
446
420
 
@@ -450,7 +424,25 @@ ___
450
424
 
451
425
  #### Defined in
452
426
 
453
- [lib/types.ts:432](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L432)
427
+ [lib/types/FilterOperator.ts:3](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/FilterOperator.ts#L3)
428
+
429
+ ___
430
+
431
+ ### FilterSequence
432
+
433
+ Ƭ **FilterSequence**<`T`\>: { `operator`: ``"all"`` ; `value`: [`Filter`](README.md#filter)<`T`\>[] } \| { `operator`: ``"any"`` \| ``"none"`` ; `value?`: [`Filter`](README.md#filter)<`T`\>[] }
434
+
435
+ Joins a list of filters with a specific boolean operator.
436
+
437
+ #### Type parameters
438
+
439
+ | Name | Type |
440
+ | :------ | :------ |
441
+ | `T` | extends `object` |
442
+
443
+ #### Defined in
444
+
445
+ [lib/types/FilterSequence.ts:6](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/FilterSequence.ts#L6)
454
446
 
455
447
  ___
456
448
 
@@ -476,7 +468,7 @@ Checks if a given string field matches a given string value according to a given
476
468
 
477
469
  #### Defined in
478
470
 
479
- [lib/types.ts:479](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L479)
471
+ [lib/types/FilterString.ts:6](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/FilterString.ts#L6)
480
472
 
481
473
  ___
482
474
 
@@ -502,7 +494,7 @@ Checks if a given string field has any of the provided values.
502
494
 
503
495
  #### Defined in
504
496
 
505
- [lib/types.ts:526](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L526)
497
+ [lib/types/FilterStringIntersect.ts:6](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/FilterStringIntersect.ts#L6)
506
498
 
507
499
  ___
508
500
 
@@ -532,7 +524,45 @@ Checks if a given string field matches a given regular expression.
532
524
 
533
525
  #### Defined in
534
526
 
535
- [lib/types.ts:497](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L497)
527
+ [lib/types/FilterStringMatch.ts:6](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/FilterStringMatch.ts#L6)
528
+
529
+ ___
530
+
531
+ ### Get
532
+
533
+ Ƭ **Get**<`T`, `K`, `D`\>: `T` extends { [key in K]: any } ? `T`[`K`] : `D`
534
+
535
+ Returns the type of the property at the specified `K` key.
536
+
537
+ #### Type parameters
538
+
539
+ | Name | Type |
540
+ | :------ | :------ |
541
+ | `T` | extends `object` |
542
+ | `K` | extends `string` |
543
+ | `D` | `D` |
544
+
545
+ #### Defined in
546
+
547
+ [lib/types/Get.ts:4](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/Get.ts#L4)
548
+
549
+ ___
550
+
551
+ ### Group
552
+
553
+ Ƭ **Group**<`T`\>: keyof `T` \| { `customFields?`: [`CustomFieldAggregateMap`](README.md#customfieldaggregatemap)<`T`\> ; `field`: keyof `T` }
554
+
555
+ Specifies how items should be grouped.
556
+
557
+ #### Type parameters
558
+
559
+ | Name | Type |
560
+ | :------ | :------ |
561
+ | `T` | extends `object` |
562
+
563
+ #### Defined in
564
+
565
+ [lib/types/Group.ts:6](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/Group.ts#L6)
536
566
 
537
567
  ___
538
568
 
@@ -568,7 +598,87 @@ Handles an `input` query and returns an `output` promise, eventually using the `
568
598
 
569
599
  #### Defined in
570
600
 
571
- [lib/types.ts:23](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L23)
601
+ [lib/types/Handler.ts:6](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/Handler.ts#L6)
602
+
603
+ ___
604
+
605
+ ### Immutable
606
+
607
+ Ƭ **Immutable**<`T`\>: { readonly [K in keyof T]: T[K] }
608
+
609
+ #### Type parameters
610
+
611
+ | Name | Type |
612
+ | :------ | :------ |
613
+ | `T` | extends `object` |
614
+
615
+ #### Defined in
616
+
617
+ [lib/types/Immutable.ts:1](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/Immutable.ts#L1)
618
+
619
+ ___
620
+
621
+ ### InjectCustomFields
622
+
623
+ Ƭ **InjectCustomFields**<`T`, `C`\>: `C` extends [`CustomFieldMap`](README.md#customfieldmap)<`T`\> ? { readonly [K in keyof T \| keyof C]: K extends keyof T ? T[K] : K extends keyof C ? C[K] extends FieldFunctionCustom<T\> ? ReturnType<C[K]["value"]\> : C[K]["operator"] extends keyof FieldFunctionReturn ? FieldFunctionReturn[C[K]["operator"]] : never : never } : `T`
624
+
625
+ Injects the custom fields into the entity type.
626
+
627
+ #### Type parameters
628
+
629
+ | Name | Type |
630
+ | :------ | :------ |
631
+ | `T` | extends `object` |
632
+ | `C` | extends [`CustomFieldMap`](README.md#customfieldmap)<`T`\> \| `undefined` |
633
+
634
+ #### Defined in
635
+
636
+ [lib/types/InjectCustomFields.ts:8](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/InjectCustomFields.ts#L8)
637
+
638
+ ___
639
+
640
+ ### Item
641
+
642
+ Ƭ **Item**<`T`, `S`\>: `T` extends infer I[] ? `I` : `T` extends `ReadonlyArray`<infer I\> ? `I` : `S`
643
+
644
+ Returns the inferred item type of an array, or an alternative type if it is something else (e.g., `undefined`).
645
+
646
+ #### Type parameters
647
+
648
+ | Name | Type |
649
+ | :------ | :------ |
650
+ | `T` | `T` |
651
+ | `S` | `undefined` |
652
+
653
+ #### Defined in
654
+
655
+ [lib/types/Item.ts:4](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/Item.ts#L4)
656
+
657
+ ___
658
+
659
+ ### Key
660
+
661
+ Ƭ **Key**: `string` \| `number` \| `symbol`
662
+
663
+ #### Defined in
664
+
665
+ [lib/types/Key.ts:1](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/Key.ts#L1)
666
+
667
+ ___
668
+
669
+ ### Mutable
670
+
671
+ Ƭ **Mutable**<`T`\>: { -readonly [K in keyof T]: T[K] }
672
+
673
+ #### Type parameters
674
+
675
+ | Name | Type |
676
+ | :------ | :------ |
677
+ | `T` | extends `object` |
678
+
679
+ #### Defined in
680
+
681
+ [lib/types/Mutable.ts:1](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/Mutable.ts#L1)
572
682
 
573
683
  ___
574
684
 
@@ -601,7 +711,7 @@ Handles an `input` query and returns an `output` promise.
601
711
 
602
712
  #### Defined in
603
713
 
604
- [lib/types.ts:31](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L31)
714
+ [lib/types/NextHandler.ts:4](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/NextHandler.ts#L4)
605
715
 
606
716
  ___
607
717
 
@@ -619,13 +729,13 @@ Order item.
619
729
 
620
730
  #### Defined in
621
731
 
622
- [lib/types.ts:338](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L338)
732
+ [lib/types/Order.ts:4](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/Order.ts#L4)
623
733
 
624
734
  ___
625
735
 
626
736
  ### Query
627
737
 
628
- Ƭ **Query**<`T`, `C`\>: [`QueryGet`](README.md#queryget)<`T`, `C`\> \| [`QueryGetMultiple`](README.md#querygetmultiple)<`T`, `C`\> \| [`QueryCreate`](README.md#querycreate)<`T`\> \| [`QueryCreateMultiple`](README.md#querycreatemultiple)<`T`\> \| [`QueryUpdate`](README.md#queryupdate)<`T`, `C`\> \| [`QueryUpdateMultiple`](README.md#queryupdatemultiple)<`T`, `C`\> \| [`QueryDelete`](README.md#querydelete)<`T`\> \| [`QueryDeleteMultiple`](README.md#querydeletemultiple)<`T`\> \| [`QueryAggregate`](README.md#queryaggregate)<`T`\>
738
+ Ƭ **Query**<`T`, `C`\>: `QueryBase`<[`InjectCustomFields`](README.md#injectcustomfields)<`T`, `C`\>\> & { `context?`: [`Context`](README.md#context)<`T`\> }
629
739
 
630
740
  Query that fetches or mutates an entity.
631
741
 
@@ -634,17 +744,17 @@ Query that fetches or mutates an entity.
634
744
  | Name | Type |
635
745
  | :------ | :------ |
636
746
  | `T` | extends `object` |
637
- | `C` | extends [`CustomFieldMap`](README.md#customfieldmap)<`T`\> |
747
+ | `C` | extends [`CustomFieldMap`](README.md#customfieldmap)<`T`\> \| `undefined` |
638
748
 
639
749
  #### Defined in
640
750
 
641
- [lib/types.ts:80](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L80)
751
+ [lib/types/Query.ts:28](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/Query.ts#L28)
642
752
 
643
753
  ___
644
754
 
645
755
  ### QueryAggregate
646
756
 
647
- Ƭ **QueryAggregate**<`T`\>: [`QueryBase`](README.md#querybase)<`T`\> & { `aggregator`: [`AggregateFunction`](README.md#aggregatefunction)<`T`\> ; `filter?`: [`Filter`](README.md#filter)<`T`\> ; `method`: ``"aggregate"`` }
757
+ Ƭ **QueryAggregate**<`T`\>: `Object`
648
758
 
649
759
  Query for computing an aggregated value.
650
760
 
@@ -654,39 +764,33 @@ Query for computing an aggregated value.
654
764
  | :------ | :------ |
655
765
  | `T` | extends `object` |
656
766
 
657
- #### Defined in
658
-
659
- [lib/types.ts:329](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L329)
660
-
661
- ___
767
+ #### Type declaration
662
768
 
663
- ### QueryBase
769
+ | Name | Type |
770
+ | :------ | :------ |
771
+ | `aggregator` | [`AggregateFunction`](README.md#aggregatefunction)<`T`\> |
772
+ | `filter?` | [`Filter`](README.md#filter)<`T`\> |
773
+ | `method` | ``"aggregate"`` |
664
774
 
665
- Ƭ **QueryBase**<`T`\>: `Object`
775
+ #### Defined in
666
776
 
667
- #### Type parameters
777
+ [lib/types/QueryAggregate.ts:7](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/QueryAggregate.ts#L7)
668
778
 
669
- | Name | Type |
670
- | :------ | :------ |
671
- | `T` | extends `object` |
779
+ ___
672
780
 
673
- #### Type declaration
781
+ ### QueryAny
674
782
 
675
- | Name | Type | Description |
676
- | :------ | :------ | :------ |
677
- | `context?` | [`Context`](README.md#context)<`T`\> | Common item properties to use for identifying the item. **`Example`** ```typescript { context: { id: "000001" } } { context: { organisation: "World Company" } } ``` |
678
- | `signal?` | `AbortSignal` | Abort signal to abort the request. |
679
- | `type` | `string` \| `T`[] | - |
783
+ Ƭ **QueryAny**: [`Query`](README.md#query)<`any`, `any`\> & { `customFields?`: [`CustomFieldMap`](README.md#customfieldmap)<`any`\> ; `type`: [`Key`](README.md#key) \| `any`[] }
680
784
 
681
785
  #### Defined in
682
786
 
683
- [lib/types.ts:102](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L102)
787
+ [lib/types/QueryAny.ts:5](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/QueryAny.ts#L5)
684
788
 
685
789
  ___
686
790
 
687
791
  ### QueryCreate
688
792
 
689
- Ƭ **QueryCreate**<`T`\>: [`QueryBase`](README.md#querybase)<`T`\> & { `method`: ``"create"`` ; `value`: `Partial`<`T`\> }
793
+ Ƭ **QueryCreate**<`T`\>: `Object`
690
794
 
691
795
  Query for creating an item.
692
796
 
@@ -696,15 +800,22 @@ Query for creating an item.
696
800
  | :------ | :------ |
697
801
  | `T` | extends `object` |
698
802
 
803
+ #### Type declaration
804
+
805
+ | Name | Type |
806
+ | :------ | :------ |
807
+ | `method` | ``"create"`` |
808
+ | `value` | `Partial`<`T`\> |
809
+
699
810
  #### Defined in
700
811
 
701
- [lib/types.ts:244](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L244)
812
+ [lib/types/QueryCreate.ts:4](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/QueryCreate.ts#L4)
702
813
 
703
814
  ___
704
815
 
705
816
  ### QueryCreateMultiple
706
817
 
707
- Ƭ **QueryCreateMultiple**<`T`\>: [`QueryBase`](README.md#querybase)<`T`\> & { `method`: ``"create"`` ; `multiple`: ``true`` ; `value`: `Partial`<`T`\>[] }
818
+ Ƭ **QueryCreateMultiple**<`T`\>: `Object`
708
819
 
709
820
  Query for creating multiple items.
710
821
 
@@ -714,15 +825,23 @@ Query for creating multiple items.
714
825
  | :------ | :------ |
715
826
  | `T` | extends `object` |
716
827
 
828
+ #### Type declaration
829
+
830
+ | Name | Type |
831
+ | :------ | :------ |
832
+ | `method` | ``"create"`` |
833
+ | `multiple` | ``true`` |
834
+ | `value` | `Partial`<`T`\>[] |
835
+
717
836
  #### Defined in
718
837
 
719
- [lib/types.ts:252](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L252)
838
+ [lib/types/QueryCreateMultiple.ts:4](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/QueryCreateMultiple.ts#L4)
720
839
 
721
840
  ___
722
841
 
723
842
  ### QueryDelete
724
843
 
725
- Ƭ **QueryDelete**<`T`\>: [`QueryBase`](README.md#querybase)<`T`\> & { `filter?`: [`Filter`](README.md#filter)<`T`\> ; `method`: ``"delete"`` }
844
+ Ƭ **QueryDelete**<`T`\>: `Object`
726
845
 
727
846
  Query for deleting an item.
728
847
 
@@ -732,15 +851,23 @@ Query for deleting an item.
732
851
  | :------ | :------ |
733
852
  | `T` | extends `object` |
734
853
 
854
+ #### Type declaration
855
+
856
+ | Name | Type |
857
+ | :------ | :------ |
858
+ | `customFields?` | [`CustomFieldMap`](README.md#customfieldmap)<`T`\> |
859
+ | `filter?` | [`Filter`](README.md#filter)<`T`\> |
860
+ | `method` | ``"delete"`` |
861
+
735
862
  #### Defined in
736
863
 
737
- [lib/types.ts:312](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L312)
864
+ [lib/types/QueryDelete.ts:7](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/QueryDelete.ts#L7)
738
865
 
739
866
  ___
740
867
 
741
868
  ### QueryDeleteMultiple
742
869
 
743
- Ƭ **QueryDeleteMultiple**<`T`\>: [`QueryBase`](README.md#querybase)<`T`\> & { `filter?`: [`Filter`](README.md#filter)<`T`\> ; `method`: ``"delete"`` ; `multiple`: ``true`` }
870
+ Ƭ **QueryDeleteMultiple**<`T`\>: `Object`
744
871
 
745
872
  Query for deleting multiple items.
746
873
 
@@ -750,34 +877,66 @@ Query for deleting multiple items.
750
877
  | :------ | :------ |
751
878
  | `T` | extends `object` |
752
879
 
880
+ #### Type declaration
881
+
882
+ | Name | Type |
883
+ | :------ | :------ |
884
+ | `customFields?` | [`CustomFieldMap`](README.md#customfieldmap)<`T`\> |
885
+ | `filter?` | [`Filter`](README.md#filter)<`T`\> |
886
+ | `method` | ``"delete"`` |
887
+ | `multiple` | ``true`` |
888
+
889
+ #### Defined in
890
+
891
+ [lib/types/QueryDeleteMultiple.ts:7](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/QueryDeleteMultiple.ts#L7)
892
+
893
+ ___
894
+
895
+ ### QueryMethod
896
+
897
+ Ƭ **QueryMethod**: `Exclude`<[`Query`](README.md#query)<`never`, `never`\>[``"method"``], `undefined`\>
898
+
899
+ Available query methods.
900
+
753
901
  #### Defined in
754
902
 
755
- [lib/types.ts:320](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L320)
903
+ [lib/types/QueryMethod.ts:6](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/QueryMethod.ts#L6)
756
904
 
757
905
  ___
758
906
 
759
- ### QueryGet
907
+ ### QueryRead
760
908
 
761
- Ƭ **QueryGet**<`T`, `C`\>: [`QueryBase`](README.md#querybase)<`T`\> & { `groupBy?`: `never` ; `method?`: ``"get"`` ; `multiple?`: ``false`` ; `offset?`: `never` ; `orderBy?`: `never` } & { `customFields`: `C` ; `fields?`: readonly keyof `InjectCustomField`<`T`, `C`\>[] ; `filter?`: [`Filter`](README.md#filter)<`InjectCustomField`<`T`, `C`\>\> } \| { `customFields?`: `never` ; `fields?`: readonly keyof `T`[] ; `filter?`: [`Filter`](README.md#filter)<`T`\> }
909
+ Ƭ **QueryRead**<`T`\>: `Object`
762
910
 
763
- Query for getting a single item.
911
+ Query for reading a single item.
764
912
 
765
913
  #### Type parameters
766
914
 
767
915
  | Name | Type |
768
916
  | :------ | :------ |
769
917
  | `T` | extends `object` |
770
- | `C` | extends [`CustomFieldMap`](README.md#customfieldmap)<`T`\> |
918
+
919
+ #### Type declaration
920
+
921
+ | Name | Type | Description |
922
+ | :------ | :------ | :------ |
923
+ | `fields?` | readonly keyof `T`[] | Item fields to pick. If omitted, all fields are picked. |
924
+ | `filter?` | [`Filter`](README.md#filter)<`T`\> | Filter for finding the item, if it cannot be found based on the `context`. |
925
+ | `group?` | `never` | - |
926
+ | `method?` | ``"read"`` | - |
927
+ | `multiple?` | ``false`` | - |
928
+ | `offset?` | `never` | - |
929
+ | `order?` | [`Order`](README.md#order)<`T`\>[] | Order by which the items should be sorted. |
771
930
 
772
931
  #### Defined in
773
932
 
774
- [lib/types.ts:143](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L143)
933
+ [lib/types/QueryRead.ts:7](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/QueryRead.ts#L7)
775
934
 
776
935
  ___
777
936
 
778
- ### QueryGetMultiple
937
+ ### QueryReadMultiple
779
938
 
780
- Ƭ **QueryGetMultiple**<`T`, `C`\>: [`QueryBase`](README.md#querybase)<`T`\> & { `limit?`: `number` ; `method?`: ``"get"`` ; `multiple`: ``true`` ; `offset?`: `number` } & { `customFields`: `C` ; `fields?`: readonly keyof `InjectCustomField`<`T`, `C`\>[] ; `filter?`: [`Filter`](README.md#filter)<`InjectCustomField`<`T`, `C`\>\> ; `groupBy?`: `Group`<`InjectCustomField`<`T`, `C`\>\>[] ; `orderBy?`: [`Order`](README.md#order)<`InjectCustomField`<`T`, `C`\>\>[] } \| { `customFields?`: `never` ; `fields?`: readonly keyof `T`[] ; `filter?`: [`Filter`](README.md#filter)<`T`\> ; `groupBy?`: `Group`<`T`\>[] ; `orderBy?`: [`Order`](README.md#order)<`T`\>[] }
939
+ Ƭ **QueryReadMultiple**<`T`\>: `Object`
781
940
 
782
941
  Query for getting a list of items.
783
942
 
@@ -786,61 +945,101 @@ Query for getting a list of items.
786
945
  | Name | Type |
787
946
  | :------ | :------ |
788
947
  | `T` | extends `object` |
789
- | `C` | extends [`CustomFieldMap`](README.md#customfieldmap)<`T`\> |
948
+
949
+ #### Type declaration
950
+
951
+ | Name | Type | Description |
952
+ | :------ | :------ | :------ |
953
+ | `fields?` | readonly keyof `T`[] | Item fields to pick. If omitted, all fields are picked. |
954
+ | `filter?` | [`Filter`](README.md#filter)<`T`\> | Filter that picks the items. |
955
+ | `group?` | [`Group`](README.md#group)<`T`\>[] | Groups items by specified fields. |
956
+ | `limit?` | `number` | Upper bound of the number of items to return. |
957
+ | `method?` | ``"read"`` | - |
958
+ | `multiple` | ``true`` | - |
959
+ | `offset?` | `number` | Offset of the first matching item. |
960
+ | `order?` | [`Order`](README.md#order)<`T`\>[] | Order by which the items should be sorted. |
790
961
 
791
962
  #### Defined in
792
963
 
793
- [lib/types.ts:183](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L183)
964
+ [lib/types/QueryReadMultiple.ts:8](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/QueryReadMultiple.ts#L8)
794
965
 
795
966
  ___
796
967
 
797
- ### QueryMethod
968
+ ### QueryUpdate
798
969
 
799
- Ƭ **QueryMethod**: `Exclude`<[`Query`](README.md#query)<`never`, `never`\>[``"method"``], `undefined`\>
970
+ Ƭ **QueryUpdate**<`T`\>: `Object`
800
971
 
801
- Available query methods.
972
+ Query for updating an item.
973
+
974
+ #### Type parameters
975
+
976
+ | Name | Type |
977
+ | :------ | :------ |
978
+ | `T` | extends `object` |
979
+
980
+ #### Type declaration
981
+
982
+ | Name | Type | Description |
983
+ | :------ | :------ | :------ |
984
+ | `filter?` | [`Filter`](README.md#filter)<`T`\> | Filter for finding the item, if it cannot be found based on the `context`. |
985
+ | `group?` | `never` | - |
986
+ | `method` | ``"update"`` | - |
987
+ | `offset?` | `never` | - |
988
+ | `order` | `never` | - |
989
+ | `value` | `Partial`<`T`\> | Partial property values to update. |
802
990
 
803
991
  #### Defined in
804
992
 
805
- [lib/types.ts:123](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L123)
993
+ [lib/types/QueryUpdate.ts:6](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/QueryUpdate.ts#L6)
806
994
 
807
995
  ___
808
996
 
809
- ### QueryUpdate
997
+ ### QueryUpdateMultiple
810
998
 
811
- Ƭ **QueryUpdate**<`T`, `C`\>: [`QueryBase`](README.md#querybase)<`T`\> & { `customFields?`: `C` ; `filter?`: [`Filter`](README.md#filter)<`InjectCustomField`<`T`, `C`\>\> ; `groupBy?`: `never` ; `method`: ``"update"`` ; `offset?`: `never` ; `orderBy`: `never` ; `value`: `Partial`<`T`\> }
999
+ Ƭ **QueryUpdateMultiple**<`T`\>: `Object`
812
1000
 
813
- Query for updating an item.
1001
+ Query for updating multiple items.
814
1002
 
815
1003
  #### Type parameters
816
1004
 
817
1005
  | Name | Type |
818
1006
  | :------ | :------ |
819
1007
  | `T` | extends `object` |
820
- | `C` | extends [`CustomFieldMap`](README.md#customfieldmap)<`T`\> |
1008
+
1009
+ #### Type declaration
1010
+
1011
+ | Name | Type | Description |
1012
+ | :------ | :------ | :------ |
1013
+ | `filter?` | [`Filter`](README.md#filter)<`T`\> | - |
1014
+ | `limit?` | `number` | Sets the upper bound of the number of items to update. |
1015
+ | `method` | ``"update"`` | - |
1016
+ | `multiple` | ``true`` | - |
1017
+ | `offset?` | `number` | Offset of the first matching item to update. |
1018
+ | `order?` | [`Order`](README.md#order)<`T`\>[] | Order by which the items should be sorted. |
1019
+ | `value` | `Partial`<`T`\>[] | Partial property values to update. |
821
1020
 
822
1021
  #### Defined in
823
1022
 
824
- [lib/types.ts:261](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L261)
1023
+ [lib/types/QueryUpdateMultiple.ts:7](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/QueryUpdateMultiple.ts#L7)
825
1024
 
826
1025
  ___
827
1026
 
828
- ### QueryUpdateMultiple
829
-
830
- Ƭ **QueryUpdateMultiple**<`T`, `C`\>: [`QueryBase`](README.md#querybase)<`T`\> & { `customFields?`: `C` ; `filter?`: [`Filter`](README.md#filter)<`T`\> ; `limit?`: `number` ; `method`: ``"update"`` ; `multiple`: ``true`` ; `offset?`: `number` ; `orderBy?`: [`Order`](README.md#order)<`InjectCustomField`<`T`, `C`\>\>[] ; `value`: `Partial`<`T`\>[] }
1027
+ ### Result
831
1028
 
832
- Query for updating multiple items.
1029
+ Ƭ **Result**<`T`, `Q`, `C`, `U`\>: [`Q`] extends [{ `method`: ``"read"`` }] ? [`Q`] extends [{ `multiple`: ``true`` }] ? `ResultRead`<`T`, `Q`, `C`, `U`\>[] : `ResultRead`<`T`, `Q`, `C`, `U`\> : [`Q`] extends [{ `method`: ``"aggregate"`` }] ? `number` : [`Q`] extends [{ `multiple`: ``true`` }] ? `ResultRead`<`T`, `Q`, `C`, `U`\>[] : `ResultRead`<`T`, `Q`, `C`, `U`\>
833
1030
 
834
1031
  #### Type parameters
835
1032
 
836
1033
  | Name | Type |
837
1034
  | :------ | :------ |
838
1035
  | `T` | extends `object` |
1036
+ | `Q` | extends [`Query`](README.md#query)<`T`, `C`\> |
839
1037
  | `C` | extends [`CustomFieldMap`](README.md#customfieldmap)<`T`\> |
1038
+ | `U` | extends [`InjectCustomFields`](README.md#injectcustomfields)<`T`, `C`\> = [`InjectCustomFields`](README.md#injectcustomfields)<`T`, `C`\> |
840
1039
 
841
1040
  #### Defined in
842
1041
 
843
- [lib/types.ts:283](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L283)
1042
+ [lib/types/Result.ts:25](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/Result.ts#L25)
844
1043
 
845
1044
  ___
846
1045
 
@@ -865,7 +1064,7 @@ ___
865
1064
 
866
1065
  #### Defined in
867
1066
 
868
- [lib/types.ts:13](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L13)
1067
+ [lib/types/Store.ts:2](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/Store.ts#L2)
869
1068
 
870
1069
  ## Functions
871
1070
 
@@ -883,9 +1082,9 @@ If a query occurs twice, `mergeQuery(query, currentQuery)` is called and the out
883
1082
 
884
1083
  | Name | Type |
885
1084
  | :------ | :------ |
886
- | `I` | extends [`AnyQuery`](README.md#anyquery) |
1085
+ | `I` | extends [`QueryAny`](README.md#queryany) |
887
1086
  | `O` | `O` |
888
- | `In` | extends [`AnyQuery`](README.md#anyquery) |
1087
+ | `In` | extends [`QueryAny`](README.md#queryany) |
889
1088
  | `On` | `On` |
890
1089
 
891
1090
  #### Parameters
@@ -895,7 +1094,7 @@ If a query occurs twice, `mergeQuery(query, currentQuery)` is called and the out
895
1094
  | `options` | `Object` |
896
1095
  | `options.delay?` | `number` |
897
1096
  | `options.mergeQuery?` | (`query`: `I`, `currentQuery`: `I`) => `I` |
898
- | `options.queryForGroup` | (`queryList`: `I`[], `group`: `string`) => [`AnyQuery`](README.md#anyquery) |
1097
+ | `options.queryForGroup` | (`queryList`: `I`[], `group`: `string`) => [`QueryAny`](README.md#queryany) |
899
1098
  | `options.queryGroupId?` | (`query`: `I`) => `undefined` \| `string` |
900
1099
  | `options.queryId?` | (`query`: `I`) => `undefined` \| `string` |
901
1100
  | `options.resultForQuery` | (`resultList`: `O`[], `query`: `I`) => `O` |
@@ -906,7 +1105,7 @@ If a query occurs twice, `mergeQuery(query, currentQuery)` is called and the out
906
1105
 
907
1106
  #### Defined in
908
1107
 
909
- [lib/middlewares/aggregate.ts:16](https://github.com/nevoland/quetch/blob/3a78cd1/lib/middlewares/aggregate.ts#L16)
1108
+ [lib/middlewares/aggregate.ts:16](https://github.com/nevoland/quetch/blob/9d131a5/lib/middlewares/aggregate.ts#L16)
910
1109
 
911
1110
  ___
912
1111
 
@@ -948,7 +1147,7 @@ const customFetch = combine(
948
1147
 
949
1148
  #### Defined in
950
1149
 
951
- [lib/middlewares/branch.ts:21](https://github.com/nevoland/quetch/blob/3a78cd1/lib/middlewares/branch.ts#L21)
1150
+ [lib/middlewares/branch.ts:21](https://github.com/nevoland/quetch/blob/9d131a5/lib/middlewares/branch.ts#L21)
952
1151
 
953
1152
  ___
954
1153
 
@@ -960,9 +1159,9 @@ ___
960
1159
 
961
1160
  | Name | Type |
962
1161
  | :------ | :------ |
963
- | `I` | extends [`AnyQueryExternal`](README.md#anyqueryexternal) |
1162
+ | `I` | extends [`QueryAny`](README.md#queryany) |
964
1163
  | `O` | `O` |
965
- | `In` | extends [`AnyQueryExternal`](README.md#anyqueryexternal) |
1164
+ | `In` | extends [`QueryAny`](README.md#queryany) |
966
1165
  | `On` | `On` |
967
1166
 
968
1167
  #### Parameters
@@ -977,7 +1176,7 @@ ___
977
1176
 
978
1177
  #### Defined in
979
1178
 
980
- [lib/middlewares/cache.ts:39](https://github.com/nevoland/quetch/blob/3a78cd1/lib/middlewares/cache.ts#L39)
1179
+ [lib/middlewares/cache.ts:39](https://github.com/nevoland/quetch/blob/9d131a5/lib/middlewares/cache.ts#L39)
981
1180
 
982
1181
  ___
983
1182
 
@@ -1050,60 +1249,86 @@ Handler that combines all provided handlers.
1050
1249
 
1051
1250
  #### Defined in
1052
1251
 
1053
- [lib/middlewares/combine.ts:801](https://github.com/nevoland/quetch/blob/3a78cd1/lib/middlewares/combine.ts#L801)
1252
+ [lib/middlewares/combine.ts:801](https://github.com/nevoland/quetch/blob/9d131a5/lib/middlewares/combine.ts#L801)
1253
+
1254
+ ___
1255
+
1256
+ ### cork
1257
+
1258
+ ▸ **cork**(`input`): `Promise`<`never`\>
1259
+
1260
+ Uncallable handler used to terminate a sequence of handlers combined with `combine`.
1261
+
1262
+ #### Parameters
1263
+
1264
+ | Name | Type |
1265
+ | :------ | :------ |
1266
+ | `input` | `never` |
1267
+
1268
+ #### Returns
1269
+
1270
+ `Promise`<`never`\>
1271
+
1272
+ #### Defined in
1273
+
1274
+ [lib/types/NextHandler.ts:4](https://github.com/nevoland/quetch/blob/9d131a5/lib/types/NextHandler.ts#L4)
1054
1275
 
1055
1276
  ___
1056
1277
 
1057
1278
  ### defineCheckQuery
1058
1279
 
1059
- ▸ **defineCheckQuery**<`Entities`\>(): <E, C, Q\>(`query`: `Q` & { `customFields?`: `C` ; `type`: `E`[] }) => typeof `query`<T, E, C, Q\>(`query`: `Q` & { `customFields?`: `C` ; `type`: `T` }) => typeof `query`
1280
+ ▸ **defineCheckQuery**<`M`\>(): <T, C, Q\>(`query`: `Q` & { `customFields?`: `C` ; `type`: `T`[] }) => typeof `query`<K, T, C, Q\>(`query`: `Q` & { `customFields?`: `C` ; `type`: `K` }) => typeof `query`
1281
+
1282
+ Returns a function that checks queries. This is useful to prevent the query to have its type being narrowed if declared outside of a custom fetcher function argument.
1060
1283
 
1061
1284
  #### Type parameters
1062
1285
 
1063
1286
  | Name | Type |
1064
1287
  | :------ | :------ |
1065
- | `Entities` | extends `Record`<`string`, `object`\> |
1288
+ | `M` | extends `Record`<`string`, `object`\> |
1066
1289
 
1067
1290
  #### Returns
1068
1291
 
1069
1292
  `fn`
1070
1293
 
1071
- <`E`, `C`, `Q`\>(`query`): typeof `query`
1294
+ Function that checks queries.
1295
+
1296
+ ▸ <`T`, `C`, `Q`\>(`query`): typeof `query`
1072
1297
 
1073
1298
  ##### Type parameters
1074
1299
 
1075
1300
  | Name | Type |
1076
1301
  | :------ | :------ |
1077
- | `E` | extends `object` |
1078
- | `C` | extends [`CustomFieldMap`](README.md#customfieldmap)<`E`\> |
1079
- | `Q` | extends [`Query`](README.md#query)<`E`, `C`\> |
1302
+ | `T` | extends `object` |
1303
+ | `C` | extends [`CustomFieldMap`](README.md#customfieldmap)<`T`\> |
1304
+ | `Q` | extends [`Query`](README.md#query)<`T`, `C`\> |
1080
1305
 
1081
1306
  ##### Parameters
1082
1307
 
1083
1308
  | Name | Type |
1084
1309
  | :------ | :------ |
1085
- | `query` | `Q` & { `customFields?`: `C` ; `type`: `E`[] } |
1310
+ | `query` | `Q` & { `customFields?`: `C` ; `type`: `T`[] } |
1086
1311
 
1087
1312
  ##### Returns
1088
1313
 
1089
1314
  typeof `query`
1090
1315
 
1091
- ▸ <`T`, `E`, `C`, `Q`\>(`query`): typeof `query`
1316
+ ▸ <`K`, `T`, `C`, `Q`\>(`query`): typeof `query`
1092
1317
 
1093
1318
  ##### Type parameters
1094
1319
 
1095
1320
  | Name | Type |
1096
1321
  | :------ | :------ |
1097
- | `T` | extends `string` \| `number` \| `symbol` |
1098
- | `E` | extends `object` |
1099
- | `C` | extends [`CustomFieldMap`](README.md#customfieldmap)<`E`\> |
1100
- | `Q` | extends [`Query`](README.md#query)<`E`, `C`\> |
1322
+ | `K` | extends `string` \| `number` \| `symbol` |
1323
+ | `T` | extends `object` |
1324
+ | `C` | extends [`CustomFieldMap`](README.md#customfieldmap)<`T`\> |
1325
+ | `Q` | extends [`Query`](README.md#query)<`T`, `C`\> |
1101
1326
 
1102
1327
  ##### Parameters
1103
1328
 
1104
1329
  | Name | Type |
1105
1330
  | :------ | :------ |
1106
- | `query` | `Q` & { `customFields?`: `C` ; `type`: `T` } |
1331
+ | `query` | `Q` & { `customFields?`: `C` ; `type`: `K` } |
1107
1332
 
1108
1333
  ##### Returns
1109
1334
 
@@ -1111,13 +1336,13 @@ typeof `query`
1111
1336
 
1112
1337
  #### Defined in
1113
1338
 
1114
- [lib/tools/defineCheckQuery.ts:3](https://github.com/nevoland/quetch/blob/3a78cd1/lib/tools/defineCheckQuery.ts#L3)
1339
+ [lib/tools/defineCheckQuery.ts:8](https://github.com/nevoland/quetch/blob/9d131a5/lib/tools/defineCheckQuery.ts#L8)
1115
1340
 
1116
1341
  ___
1117
1342
 
1118
1343
  ### defineCustomFetch
1119
1344
 
1120
- ▸ **defineCustomFetch**<`M`\>(`handler`): <E, C, Q\>(`input`: `Q` & { `customFields?`: `C` ; `type`: `E`[] }) => `Promise`<`Q`[``"method"``] extends ``"get"`` ? `Q` extends { `multiple`: ``true`` } ? [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\>[] : [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\> : `Q`[``"method"``] extends ``"aggregate"`` ? `number` : `Q` extends { `multiple`: ``true`` } ? [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\>[] : [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\>\><T, E, C, Q\>(`input`: `Q` & { `customFields?`: `C` ; `type`: `T` }) => `Promise`<`Q`[``"method"``] extends ``"get"`` ? `Q` extends { `multiple`: ``true`` } ? [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\>[] : [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\> : `Q`[``"method"``] extends ``"aggregate"`` ? `number` : `Q` extends { `multiple`: ``true`` } ? [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\>[] : [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\>\>
1345
+ ▸ **defineCustomFetch**<`M`\>(`handler`): <K, T, Q\>(`query`: `Q` & { `customFields?`: `undefined` ; `type`: `K` }) => `Promise`<[`Result`](README.md#result)<`T`, `Q`, {}\>\><K, T, Q, C\>(`query`: `Q` & { `customFields`: `C` ; `type`: `K` }) => `Promise`<[`Result`](README.md#result)<`T`, `Q`, `C`\>\><T, Q\>(`type`: `T`[], `query`: `Q` & { `customFields?`: `undefined` }) => `Promise`<[`Result`](README.md#result)<`T`, `Q`, {}\>\><T, Q, C\>(`query`: `Q` & { `customFields`: `C` ; `type`: `T`[] }) => `Promise`<[`Result`](README.md#result)<`T`, `Q`, `C`\>\>
1121
1346
 
1122
1347
  #### Type parameters
1123
1348
 
@@ -1129,56 +1354,171 @@ ___
1129
1354
 
1130
1355
  | Name | Type |
1131
1356
  | :------ | :------ |
1132
- | `handler` | [`Handler`](README.md#handler)<[`AnyQuery`](README.md#anyquery), `any`, `never`, `never`\> |
1357
+ | `handler` | [`Handler`](README.md#handler)<`Object`, `any`, `never`, `never`\> |
1133
1358
 
1134
1359
  #### Returns
1135
1360
 
1136
1361
  `fn`
1137
1362
 
1138
- ▸ <`E`, `C`, `Q`\>(`input`): `Promise`<`Q`[``"method"``] extends ``"get"`` ? `Q` extends { `multiple`: ``true`` } ? [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\>[] : [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\> : `Q`[``"method"``] extends ``"aggregate"`` ? `number` : `Q` extends { `multiple`: ``true`` } ? [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\>[] : [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\>\>
1363
+ ▸ <`K`, `T`, `Q`\>(`query`): `Promise`<[`Result`](README.md#result)<`T`, `Q`, {}\>\>
1364
+
1365
+ ##### Type parameters
1366
+
1367
+ | Name | Type |
1368
+ | :------ | :------ |
1369
+ | `K` | extends `string` \| `number` \| `symbol` |
1370
+ | `T` | extends `object` |
1371
+ | `Q` | extends [`Query`](README.md#query)<`T`, {}\> |
1372
+
1373
+ ##### Parameters
1374
+
1375
+ | Name | Type |
1376
+ | :------ | :------ |
1377
+ | `query` | `Q` & { `customFields?`: `undefined` ; `type`: `K` } |
1378
+
1379
+ ##### Returns
1380
+
1381
+ `Promise`<[`Result`](README.md#result)<`T`, `Q`, {}\>\>
1382
+
1383
+ ▸ <`K`, `T`, `Q`, `C`\>(`query`): `Promise`<[`Result`](README.md#result)<`T`, `Q`, `C`\>\>
1139
1384
 
1140
1385
  ##### Type parameters
1141
1386
 
1142
1387
  | Name | Type |
1143
1388
  | :------ | :------ |
1144
- | `E` | extends `object` |
1145
- | `C` | extends [`CustomFieldMap`](README.md#customfieldmap)<`E`\> |
1146
- | `Q` | extends [`Query`](README.md#query)<`E`, `C`\> |
1389
+ | `K` | extends `string` \| `number` \| `symbol` |
1390
+ | `T` | extends `object` |
1391
+ | `Q` | extends [`Query`](README.md#query)<`T`, `C`\> |
1392
+ | `C` | extends [`CustomFieldMap`](README.md#customfieldmap)<`T`\> |
1147
1393
 
1148
1394
  ##### Parameters
1149
1395
 
1150
1396
  | Name | Type |
1151
1397
  | :------ | :------ |
1152
- | `input` | `Q` & { `customFields?`: `C` ; `type`: `E`[] } |
1398
+ | `query` | `Q` & { `customFields`: `C` ; `type`: `K` } |
1153
1399
 
1154
1400
  ##### Returns
1155
1401
 
1156
- `Promise`<`Q`[``"method"``] extends ``"get"`` ? `Q` extends { `multiple`: ``true`` } ? [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\>[] : [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\> : `Q`[``"method"``] extends ``"aggregate"`` ? `number` : `Q` extends { `multiple`: ``true`` } ? [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\>[] : [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\>\>
1402
+ `Promise`<[`Result`](README.md#result)<`T`, `Q`, `C`\>\>
1157
1403
 
1158
- ▸ <`T`, `E`, `C`, `Q`\>(`input`): `Promise`<`Q`[``"method"``] extends ``"get"`` ? `Q` extends { `multiple`: ``true`` } ? [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\>[] : [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\> : `Q`[``"method"``] extends ``"aggregate"`` ? `number` : `Q` extends { `multiple`: ``true`` } ? [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\>[] : [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\>\>
1404
+ ▸ <`T`, `Q`\>(`type`, `query`): `Promise`<[`Result`](README.md#result)<`T`, `Q`, {}\>\>
1159
1405
 
1160
1406
  ##### Type parameters
1161
1407
 
1162
1408
  | Name | Type |
1163
1409
  | :------ | :------ |
1164
- | `T` | extends `string` \| `number` \| `symbol` |
1165
- | `E` | extends `object` |
1166
- | `C` | extends [`CustomFieldMap`](README.md#customfieldmap)<`E`\> |
1167
- | `Q` | extends [`Query`](README.md#query)<`E`, `C`\> |
1410
+ | `T` | extends `object` |
1411
+ | `Q` | extends [`Query`](README.md#query)<`T`, {}\> |
1168
1412
 
1169
1413
  ##### Parameters
1170
1414
 
1171
1415
  | Name | Type |
1172
1416
  | :------ | :------ |
1173
- | `input` | `Q` & { `customFields?`: `C` ; `type`: `T` } |
1417
+ | `type` | `T`[] |
1418
+ | `query` | `Q` & { `customFields?`: `undefined` } |
1174
1419
 
1175
1420
  ##### Returns
1176
1421
 
1177
- `Promise`<`Q`[``"method"``] extends ``"get"`` ? `Q` extends { `multiple`: ``true`` } ? [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\>[] : [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\> : `Q`[``"method"``] extends ``"aggregate"`` ? `number` : `Q` extends { `multiple`: ``true`` } ? [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\>[] : [`EntityItem`](README.md#entityitem)<`E`, `C`, `Q`\>\>
1422
+ `Promise`<[`Result`](README.md#result)<`T`, `Q`, {}\>\>
1423
+
1424
+ ▸ <`T`, `Q`, `C`\>(`query`): `Promise`<[`Result`](README.md#result)<`T`, `Q`, `C`\>\>
1425
+
1426
+ ##### Type parameters
1427
+
1428
+ | Name | Type |
1429
+ | :------ | :------ |
1430
+ | `T` | extends `object` |
1431
+ | `Q` | extends [`Query`](README.md#query)<`T`, `C`\> |
1432
+ | `C` | extends [`CustomFieldMap`](README.md#customfieldmap)<`T`\> |
1433
+
1434
+ ##### Parameters
1435
+
1436
+ | Name | Type |
1437
+ | :------ | :------ |
1438
+ | `query` | `Q` & { `customFields`: `C` ; `type`: `T`[] } |
1439
+
1440
+ ##### Returns
1441
+
1442
+ `Promise`<[`Result`](README.md#result)<`T`, `Q`, `C`\>\>
1443
+
1444
+ #### Defined in
1445
+
1446
+ [lib/tools/defineCustomFetch.ts:11](https://github.com/nevoland/quetch/blob/9d131a5/lib/tools/defineCustomFetch.ts#L11)
1447
+
1448
+ ___
1449
+
1450
+ ### defineGenericFetch
1451
+
1452
+ ▸ **defineGenericFetch**<`K`\>(`handler`): <T\>() => <Q\>(`query`: `Q` & { `customFields?`: `undefined` ; `type`: `K` \| `T`[] }) => `Promise`<[`Result`](README.md#result)<`T`, `Q`, {}\>\><Q, C\>(`query`: `Q` & { `customFields`: `C` ; `type`: `K` \| `T`[] }) => `Promise`<[`Result`](README.md#result)<`T`, `Q`, `C`\>\>
1453
+
1454
+ #### Type parameters
1455
+
1456
+ | Name | Type |
1457
+ | :------ | :------ |
1458
+ | `K` | extends `string` |
1459
+
1460
+ #### Parameters
1461
+
1462
+ | Name | Type |
1463
+ | :------ | :------ |
1464
+ | `handler` | [`Handler`](README.md#handler)<`Object`, `any`, `never`, `never`\> |
1465
+
1466
+ #### Returns
1467
+
1468
+ `fn`
1469
+
1470
+ ▸ <`T`\>(): <Q\>(`query`: `Q` & { `customFields?`: `undefined` ; `type`: `K` \| `T`[] }) => `Promise`<[`Result`](README.md#result)<`T`, `Q`, {}\>\><Q, C\>(`query`: `Q` & { `customFields`: `C` ; `type`: `K` \| `T`[] }) => `Promise`<[`Result`](README.md#result)<`T`, `Q`, `C`\>\>
1471
+
1472
+ ##### Type parameters
1473
+
1474
+ | Name | Type |
1475
+ | :------ | :------ |
1476
+ | `T` | extends `object` |
1477
+
1478
+ ##### Returns
1479
+
1480
+ `fn`
1481
+
1482
+ ▸ <`Q`\>(`query`): `Promise`<[`Result`](README.md#result)<`T`, `Q`, {}\>\>
1483
+
1484
+ ##### Type parameters
1485
+
1486
+ | Name | Type |
1487
+ | :------ | :------ |
1488
+ | `Q` | extends [`Query`](README.md#query)<`T`, {}\> |
1489
+
1490
+ ##### Parameters
1491
+
1492
+ | Name | Type |
1493
+ | :------ | :------ |
1494
+ | `query` | `Q` & { `customFields?`: `undefined` ; `type`: `K` \| `T`[] } |
1495
+
1496
+ ##### Returns
1497
+
1498
+ `Promise`<[`Result`](README.md#result)<`T`, `Q`, {}\>\>
1499
+
1500
+ ▸ <`Q`, `C`\>(`query`): `Promise`<[`Result`](README.md#result)<`T`, `Q`, `C`\>\>
1501
+
1502
+ ##### Type parameters
1503
+
1504
+ | Name | Type |
1505
+ | :------ | :------ |
1506
+ | `Q` | extends [`Query`](README.md#query)<`T`, `C`\> |
1507
+ | `C` | extends [`CustomFieldMap`](README.md#customfieldmap)<`T`\> |
1508
+
1509
+ ##### Parameters
1510
+
1511
+ | Name | Type |
1512
+ | :------ | :------ |
1513
+ | `query` | `Q` & { `customFields`: `C` ; `type`: `K` \| `T`[] } |
1514
+
1515
+ ##### Returns
1516
+
1517
+ `Promise`<[`Result`](README.md#result)<`T`, `Q`, `C`\>\>
1178
1518
 
1179
1519
  #### Defined in
1180
1520
 
1181
- [lib/tools/defineCustomFetch.ts:11](https://github.com/nevoland/quetch/blob/3a78cd1/lib/tools/defineCustomFetch.ts#L11)
1521
+ [lib/tools/defineGenericFetch.ts:5](https://github.com/nevoland/quetch/blob/9d131a5/lib/tools/defineGenericFetch.ts#L5)
1182
1522
 
1183
1523
  ___
1184
1524
 
@@ -1202,7 +1542,7 @@ Handler that returns a promise that resolves to the response.
1202
1542
 
1203
1543
  #### Defined in
1204
1544
 
1205
- [lib/middlewares/fetchExternal.ts:12](https://github.com/nevoland/quetch/blob/3a78cd1/lib/middlewares/fetchExternal.ts#L12)
1545
+ [lib/middlewares/fetchExternal.ts:12](https://github.com/nevoland/quetch/blob/9d131a5/lib/middlewares/fetchExternal.ts#L12)
1206
1546
 
1207
1547
  ___
1208
1548
 
@@ -1227,7 +1567,7 @@ Promise that resolves to the response.
1227
1567
 
1228
1568
  #### Defined in
1229
1569
 
1230
- [lib/middlewares/fetchLocal.ts:9](https://github.com/nevoland/quetch/blob/3a78cd1/lib/middlewares/fetchLocal.ts#L9)
1570
+ [lib/middlewares/fetchLocal.ts:9](https://github.com/nevoland/quetch/blob/9d131a5/lib/middlewares/fetchLocal.ts#L9)
1231
1571
 
1232
1572
  ___
1233
1573
 
@@ -1253,7 +1593,7 @@ ___
1253
1593
 
1254
1594
  #### Defined in
1255
1595
 
1256
- [lib/tools/filterFromContext.ts:5](https://github.com/nevoland/quetch/blob/3a78cd1/lib/tools/filterFromContext.ts#L5)
1596
+ [lib/tools/filterFromContext.ts:5](https://github.com/nevoland/quetch/blob/9d131a5/lib/tools/filterFromContext.ts#L5)
1257
1597
 
1258
1598
  ___
1259
1599
 
@@ -1284,7 +1624,7 @@ Checks wether the provided `value` matches the `filter` or not.
1284
1624
 
1285
1625
  #### Defined in
1286
1626
 
1287
- [lib/tools/filterItem.ts:12](https://github.com/nevoland/quetch/blob/3a78cd1/lib/tools/filterItem.ts#L12)
1627
+ [lib/tools/filterItem.ts:12](https://github.com/nevoland/quetch/blob/9d131a5/lib/tools/filterItem.ts#L12)
1288
1628
 
1289
1629
  ___
1290
1630
 
@@ -1314,29 +1654,7 @@ ___
1314
1654
 
1315
1655
  #### Defined in
1316
1656
 
1317
- [lib/middlewares/identity.ts:3](https://github.com/nevoland/quetch/blob/3a78cd1/lib/middlewares/identity.ts#L3)
1318
-
1319
- ___
1320
-
1321
- ### impasse
1322
-
1323
- ▸ **impasse**(`input`): `Promise`<`never`\>
1324
-
1325
- Handles an `input` query and returns an `output` promise.
1326
-
1327
- #### Parameters
1328
-
1329
- | Name | Type |
1330
- | :------ | :------ |
1331
- | `input` | `never` |
1332
-
1333
- #### Returns
1334
-
1335
- `Promise`<`never`\>
1336
-
1337
- #### Defined in
1338
-
1339
- [lib/types.ts:31](https://github.com/nevoland/quetch/blob/3a78cd1/lib/types.ts#L31)
1657
+ [lib/middlewares/identity.ts:3](https://github.com/nevoland/quetch/blob/9d131a5/lib/middlewares/identity.ts#L3)
1340
1658
 
1341
1659
  ___
1342
1660
 
@@ -1369,7 +1687,7 @@ Query handler
1369
1687
 
1370
1688
  #### Defined in
1371
1689
 
1372
- [lib/middlewares/log.ts:11](https://github.com/nevoland/quetch/blob/3a78cd1/lib/middlewares/log.ts#L11)
1690
+ [lib/middlewares/log.ts:11](https://github.com/nevoland/quetch/blob/9d131a5/lib/middlewares/log.ts#L11)
1373
1691
 
1374
1692
  ___
1375
1693
 
@@ -1400,7 +1718,7 @@ ___
1400
1718
 
1401
1719
  #### Defined in
1402
1720
 
1403
- [lib/tools/normalizeOrder.ts:3](https://github.com/nevoland/quetch/blob/3a78cd1/lib/tools/normalizeOrder.ts#L3)
1721
+ [lib/tools/normalizeOrder.ts:3](https://github.com/nevoland/quetch/blob/9d131a5/lib/tools/normalizeOrder.ts#L3)
1404
1722
 
1405
1723
  ___
1406
1724
 
@@ -1427,7 +1745,7 @@ ___
1427
1745
 
1428
1746
  #### Defined in
1429
1747
 
1430
- [lib/tools/queryItemList.ts:41](https://github.com/nevoland/quetch/blob/3a78cd1/lib/tools/queryItemList.ts#L41)
1748
+ [lib/tools/queryItemList.ts:41](https://github.com/nevoland/quetch/blob/9d131a5/lib/tools/queryItemList.ts#L41)
1431
1749
 
1432
1750
  ___
1433
1751
 
@@ -1456,7 +1774,7 @@ Handler
1456
1774
 
1457
1775
  #### Defined in
1458
1776
 
1459
- [lib/middlewares/retry.ts:15](https://github.com/nevoland/quetch/blob/3a78cd1/lib/middlewares/retry.ts#L15)
1777
+ [lib/middlewares/retry.ts:15](https://github.com/nevoland/quetch/blob/9d131a5/lib/middlewares/retry.ts#L15)
1460
1778
 
1461
1779
  ___
1462
1780
 
@@ -1487,4 +1805,4 @@ The same array sorted in place.
1487
1805
 
1488
1806
  #### Defined in
1489
1807
 
1490
- [lib/tools/sortItemList.ts:12](https://github.com/nevoland/quetch/blob/3a78cd1/lib/tools/sortItemList.ts#L12)
1808
+ [lib/tools/sortItemList.ts:12](https://github.com/nevoland/quetch/blob/9d131a5/lib/tools/sortItemList.ts#L12)