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