quetch 0.1.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 (125) hide show
  1. package/README.md +29 -0
  2. package/dist/errors/QueryError.d.ts +5 -0
  3. package/dist/errors/QueryError.js +23 -0
  4. package/dist/errors/QueryError.js.map +1 -0
  5. package/dist/errors/RequestError.d.ts +11 -0
  6. package/dist/errors/RequestError.js +33 -0
  7. package/dist/errors/RequestError.js.map +1 -0
  8. package/dist/errors.d.ts +1 -0
  9. package/dist/errors.js +3 -0
  10. package/dist/errors.js.map +1 -0
  11. package/dist/main.d.ts +3 -0
  12. package/dist/main.js +3 -0
  13. package/dist/main.js.map +1 -0
  14. package/dist/middlewares/aggregate.d.ts +19 -0
  15. package/dist/middlewares/aggregate.js +86 -0
  16. package/dist/middlewares/aggregate.js.map +1 -0
  17. package/dist/middlewares/branch.d.ts +18 -0
  18. package/dist/middlewares/branch.js +21 -0
  19. package/dist/middlewares/branch.js.map +1 -0
  20. package/dist/middlewares/cache.d.ts +37 -0
  21. package/dist/middlewares/cache.js +40 -0
  22. package/dist/middlewares/cache.js.map +1 -0
  23. package/dist/middlewares/combine.d.ts +318 -0
  24. package/dist/middlewares/combine.js +20 -0
  25. package/dist/middlewares/combine.js.map +1 -0
  26. package/dist/middlewares/concurrent.d.ts +2 -0
  27. package/dist/middlewares/concurrent.js +20 -0
  28. package/dist/middlewares/concurrent.js.map +1 -0
  29. package/dist/middlewares/fetch.d.ts +2 -0
  30. package/dist/middlewares/fetch.js +20 -0
  31. package/dist/middlewares/fetch.js.map +1 -0
  32. package/dist/middlewares/fetchExternal.d.ts +8 -0
  33. package/dist/middlewares/fetchExternal.js +29 -0
  34. package/dist/middlewares/fetchExternal.js.map +1 -0
  35. package/dist/middlewares/fetchLocal.d.ts +9 -0
  36. package/dist/middlewares/fetchLocal.js +10 -0
  37. package/dist/middlewares/fetchLocal.js.map +1 -0
  38. package/dist/middlewares/identity.d.ts +4 -0
  39. package/dist/middlewares/identity.js +8 -0
  40. package/dist/middlewares/identity.js.map +1 -0
  41. package/dist/middlewares/log.d.ts +8 -0
  42. package/dist/middlewares/log.js +30 -0
  43. package/dist/middlewares/log.js.map +1 -0
  44. package/dist/middlewares/logQuery.d.ts +2 -0
  45. package/dist/middlewares/logQuery.js +25 -0
  46. package/dist/middlewares/logQuery.js.map +1 -0
  47. package/dist/middlewares/retry.d.ts +14 -0
  48. package/dist/middlewares/retry.js +38 -0
  49. package/dist/middlewares/retry.js.map +1 -0
  50. package/dist/middlewares.d.ts +9 -0
  51. package/dist/middlewares.js +11 -0
  52. package/dist/middlewares.js.map +1 -0
  53. package/dist/tools/add.d.ts +8 -0
  54. package/dist/tools/add.js +11 -0
  55. package/dist/tools/add.js.map +1 -0
  56. package/dist/tools/add.test.d.ts +1 -0
  57. package/dist/tools/add.test.js +6 -0
  58. package/dist/tools/add.test.js.map +1 -0
  59. package/dist/tools/defineCheckQuery.d.ts +17 -0
  60. package/dist/tools/defineCheckQuery.js +7 -0
  61. package/dist/tools/defineCheckQuery.js.map +1 -0
  62. package/dist/tools/defineCustomFetch.d.ts +19 -0
  63. package/dist/tools/defineCustomFetch.js +8 -0
  64. package/dist/tools/defineCustomFetch.js.map +1 -0
  65. package/dist/tools/filterFromContext.d.ts +2 -0
  66. package/dist/tools/filterFromContext.js +12 -0
  67. package/dist/tools/filterFromContext.js.map +1 -0
  68. package/dist/tools/filterItem.d.ts +9 -0
  69. package/dist/tools/filterItem.js +101 -0
  70. package/dist/tools/filterItem.js.map +1 -0
  71. package/dist/tools/filterItem.test.d.ts +1 -0
  72. package/dist/tools/filterItem.test.js +86 -0
  73. package/dist/tools/filterItem.test.js.map +1 -0
  74. package/dist/tools/impasse.d.ts +2 -0
  75. package/dist/tools/impasse.js +2 -0
  76. package/dist/tools/impasse.js.map +1 -0
  77. package/dist/tools/normalizeOrder.d.ts +5 -0
  78. package/dist/tools/normalizeOrder.js +10 -0
  79. package/dist/tools/normalizeOrder.js.map +1 -0
  80. package/dist/tools/queryItemList.d.ts +4 -0
  81. package/dist/tools/queryItemList.js +77 -0
  82. package/dist/tools/queryItemList.js.map +1 -0
  83. package/dist/tools/queryItemList.test.d.ts +1 -0
  84. package/dist/tools/queryItemList.test.js +141 -0
  85. package/dist/tools/queryItemList.test.js.map +1 -0
  86. package/dist/tools/sortItemList.d.ts +9 -0
  87. package/dist/tools/sortItemList.js +28 -0
  88. package/dist/tools/sortItemList.js.map +1 -0
  89. package/dist/tools/sortItemList.test.d.ts +1 -0
  90. package/dist/tools/sortItemList.test.js +47 -0
  91. package/dist/tools/sortItemList.test.js.map +1 -0
  92. package/dist/tools.d.ts +8 -0
  93. package/dist/tools.js +10 -0
  94. package/dist/tools.js.map +1 -0
  95. package/dist/types.d.ts +396 -0
  96. package/dist/types.js +2 -0
  97. package/dist/types.js.map +1 -0
  98. package/doc/README.md +1472 -0
  99. package/lib/errors/RequestError.ts +16 -0
  100. package/lib/errors.ts +2 -0
  101. package/lib/main.ts +4 -0
  102. package/lib/middlewares/aggregate.ts +113 -0
  103. package/lib/middlewares/branch.ts +27 -0
  104. package/lib/middlewares/cache.ts +89 -0
  105. package/lib/middlewares/combine.ts +959 -0
  106. package/lib/middlewares/fetchExternal.ts +38 -0
  107. package/lib/middlewares/fetchLocal.ts +14 -0
  108. package/lib/middlewares/identity.ts +20 -0
  109. package/lib/middlewares/log.ts +31 -0
  110. package/lib/middlewares/retry.ts +45 -0
  111. package/lib/middlewares.ts +10 -0
  112. package/lib/tools/defineCheckQuery.ts +24 -0
  113. package/lib/tools/defineCustomFetch.ts +70 -0
  114. package/lib/tools/filterFromContext.ts +16 -0
  115. package/lib/tools/filterItem.test.ts +203 -0
  116. package/lib/tools/filterItem.ts +113 -0
  117. package/lib/tools/impasse.ts +3 -0
  118. package/lib/tools/normalizeOrder.ts +13 -0
  119. package/lib/tools/queryItemList.test.ts +169 -0
  120. package/lib/tools/queryItemList.ts +108 -0
  121. package/lib/tools/sortItemList.test.ts +63 -0
  122. package/lib/tools/sortItemList.ts +33 -0
  123. package/lib/tools.ts +9 -0
  124. package/lib/types.ts +554 -0
  125. package/package.json +72 -0
@@ -0,0 +1,318 @@
1
+ import type { Handler } from "../types";
2
+ /** @hidden */
3
+ declare function combine<I0, O0, I1, O1, I2, O2>(...handlerList: readonly [Handler<I0, O0, I1, O1>, Handler<I1, O1, I2, O2>]): Handler<I0, O0, I2, O2>;
4
+ /** @hidden */
5
+ declare function combine<I0, O0, I1, O1, I2, O2, I3, O3>(...handlerList: readonly [
6
+ Handler<I0, O0, I1, O1>,
7
+ Handler<I1, O1, I2, O2>,
8
+ Handler<I2, O2, I3, O3>
9
+ ]): Handler<I0, O0, I3, O3>;
10
+ /** @hidden */
11
+ declare function combine<I0, O0, I1, O1, I2, O2, I3, O3, I4, O4>(...handlerList: readonly [
12
+ Handler<I0, O0, I1, O1>,
13
+ Handler<I1, O1, I2, O2>,
14
+ Handler<I2, O2, I3, O3>,
15
+ Handler<I3, O3, I4, O4>
16
+ ]): Handler<I0, O0, I4, O4>;
17
+ /** @hidden */
18
+ declare function combine<I0, O0, I1, O1, I2, O2, I3, O3, I4, O4, I5, O5>(...handlerList: readonly [
19
+ Handler<I0, O0, I1, O1>,
20
+ Handler<I1, O1, I2, O2>,
21
+ Handler<I2, O2, I3, O3>,
22
+ Handler<I3, O3, I4, O4>,
23
+ Handler<I4, O4, I5, O5>
24
+ ]): Handler<I0, O0, I5, O5>;
25
+ /** @hidden */
26
+ declare function combine<I0, O0, I1, O1, I2, O2, I3, O3, I4, O4, I5, O5, I6, O6>(...handlerList: readonly [
27
+ Handler<I0, O0, I1, O1>,
28
+ Handler<I1, O1, I2, O2>,
29
+ Handler<I2, O2, I3, O3>,
30
+ Handler<I3, O3, I4, O4>,
31
+ Handler<I4, O4, I5, O5>,
32
+ Handler<I5, O5, I6, O6>
33
+ ]): Handler<I0, O0, I6, O6>;
34
+ /** @hidden */
35
+ declare function combine<I0, O0, I1, O1, I2, O2, I3, O3, I4, O4, I5, O5, I6, O6, I7, O7>(...handlerList: readonly [
36
+ Handler<I0, O0, I1, O1>,
37
+ Handler<I1, O1, I2, O2>,
38
+ Handler<I2, O2, I3, O3>,
39
+ Handler<I3, O3, I4, O4>,
40
+ Handler<I4, O4, I5, O5>,
41
+ Handler<I5, O5, I6, O6>,
42
+ Handler<I6, O6, I7, O7>
43
+ ]): Handler<I0, O0, I7, O7>;
44
+ /** @hidden */
45
+ declare function combine<I0, O0, I1, O1, I2, O2, I3, O3, I4, O4, I5, O5, I6, O6, I7, O7, I8, O8>(...handlerList: readonly [
46
+ Handler<I0, O0, I1, O1>,
47
+ Handler<I1, O1, I2, O2>,
48
+ Handler<I2, O2, I3, O3>,
49
+ Handler<I3, O3, I4, O4>,
50
+ Handler<I4, O4, I5, O5>,
51
+ Handler<I5, O5, I6, O6>,
52
+ Handler<I6, O6, I7, O7>,
53
+ Handler<I7, O7, I8, O8>
54
+ ]): Handler<I0, O0, I8, O8>;
55
+ /** @hidden */
56
+ declare function combine<I0, O0, I1, O1, I2, O2, I3, O3, I4, O4, I5, O5, I6, O6, I7, O7, I8, O8, I9, O9>(...handlerList: readonly [
57
+ Handler<I0, O0, I1, O1>,
58
+ Handler<I1, O1, I2, O2>,
59
+ Handler<I2, O2, I3, O3>,
60
+ Handler<I3, O3, I4, O4>,
61
+ Handler<I4, O4, I5, O5>,
62
+ Handler<I5, O5, I6, O6>,
63
+ Handler<I6, O6, I7, O7>,
64
+ Handler<I7, O7, I8, O8>,
65
+ Handler<I8, O8, I9, O9>
66
+ ]): Handler<I0, O0, I9, O9>;
67
+ /** @hidden */
68
+ declare function combine<I0, O0, I1, O1, I2, O2, I3, O3, I4, O4, I5, O5, I6, O6, I7, O7, I8, O8, I9, O9, I10, O10>(...handlerList: readonly [
69
+ Handler<I0, O0, I1, O1>,
70
+ Handler<I1, O1, I2, O2>,
71
+ Handler<I2, O2, I3, O3>,
72
+ Handler<I3, O3, I4, O4>,
73
+ Handler<I4, O4, I5, O5>,
74
+ Handler<I5, O5, I6, O6>,
75
+ Handler<I6, O6, I7, O7>,
76
+ Handler<I7, O7, I8, O8>,
77
+ Handler<I8, O8, I9, O9>,
78
+ Handler<I9, O9, I10, O10>
79
+ ]): Handler<I0, O0, I10, O10>;
80
+ /** @hidden */
81
+ declare function combine<I0, O0, I1, O1, I2, O2, I3, O3, I4, O4, I5, O5, I6, O6, I7, O7, I8, O8, I9, O9, I10, O10, I11, O11>(...handlerList: readonly [
82
+ Handler<I0, O0, I1, O1>,
83
+ Handler<I1, O1, I2, O2>,
84
+ Handler<I2, O2, I3, O3>,
85
+ Handler<I3, O3, I4, O4>,
86
+ Handler<I4, O4, I5, O5>,
87
+ Handler<I5, O5, I6, O6>,
88
+ Handler<I6, O6, I7, O7>,
89
+ Handler<I7, O7, I8, O8>,
90
+ Handler<I8, O8, I9, O9>,
91
+ Handler<I9, O9, I10, O10>,
92
+ Handler<I10, O10, I11, O11>
93
+ ]): Handler<I0, O0, I11, O11>;
94
+ /** @hidden */
95
+ declare function combine<I0, O0, I1, O1, I2, O2, I3, O3, I4, O4, I5, O5, I6, O6, I7, O7, I8, O8, I9, O9, I10, O10, I11, O11, I12, O12>(...handlerList: readonly [
96
+ Handler<I0, O0, I1, O1>,
97
+ Handler<I1, O1, I2, O2>,
98
+ Handler<I2, O2, I3, O3>,
99
+ Handler<I3, O3, I4, O4>,
100
+ Handler<I4, O4, I5, O5>,
101
+ Handler<I5, O5, I6, O6>,
102
+ Handler<I6, O6, I7, O7>,
103
+ Handler<I7, O7, I8, O8>,
104
+ Handler<I8, O8, I9, O9>,
105
+ Handler<I9, O9, I10, O10>,
106
+ Handler<I10, O10, I11, O11>,
107
+ Handler<I11, O11, I12, O12>
108
+ ]): Handler<I0, O0, I12, O12>;
109
+ /** @hidden */
110
+ declare function combine<I0, O0, I1, O1, I2, O2, I3, O3, I4, O4, I5, O5, I6, O6, I7, O7, I8, O8, I9, O9, I10, O10, I11, O11, I12, O12, I13, O13>(...handlerList: readonly [
111
+ Handler<I0, O0, I1, O1>,
112
+ Handler<I1, O1, I2, O2>,
113
+ Handler<I2, O2, I3, O3>,
114
+ Handler<I3, O3, I4, O4>,
115
+ Handler<I4, O4, I5, O5>,
116
+ Handler<I5, O5, I6, O6>,
117
+ Handler<I6, O6, I7, O7>,
118
+ Handler<I7, O7, I8, O8>,
119
+ Handler<I8, O8, I9, O9>,
120
+ Handler<I9, O9, I10, O10>,
121
+ Handler<I10, O10, I11, O11>,
122
+ Handler<I11, O11, I12, O12>,
123
+ Handler<I12, O12, I13, O13>
124
+ ]): Handler<I0, O0, I13, O13>;
125
+ /** @hidden */
126
+ declare function combine<I0, O0, I1, O1, I2, O2, I3, O3, I4, O4, I5, O5, I6, O6, I7, O7, I8, O8, I9, O9, I10, O10, I11, O11, I12, O12, I13, O13, I14, O14>(...handlerList: readonly [
127
+ Handler<I0, O0, I1, O1>,
128
+ Handler<I1, O1, I2, O2>,
129
+ Handler<I2, O2, I3, O3>,
130
+ Handler<I3, O3, I4, O4>,
131
+ Handler<I4, O4, I5, O5>,
132
+ Handler<I5, O5, I6, O6>,
133
+ Handler<I6, O6, I7, O7>,
134
+ Handler<I7, O7, I8, O8>,
135
+ Handler<I8, O8, I9, O9>,
136
+ Handler<I9, O9, I10, O10>,
137
+ Handler<I10, O10, I11, O11>,
138
+ Handler<I11, O11, I12, O12>,
139
+ Handler<I12, O12, I13, O13>,
140
+ Handler<I13, O13, I14, O14>
141
+ ]): Handler<I0, O0, I14, O14>;
142
+ /** @hidden */
143
+ declare function combine<I0, O0, I1, O1, I2, O2, I3, O3, I4, O4, I5, O5, I6, O6, I7, O7, I8, O8, I9, O9, I10, O10, I11, O11, I12, O12, I13, O13, I14, O14, I15, O15>(...handlerList: readonly [
144
+ Handler<I0, O0, I1, O1>,
145
+ Handler<I1, O1, I2, O2>,
146
+ Handler<I2, O2, I3, O3>,
147
+ Handler<I3, O3, I4, O4>,
148
+ Handler<I4, O4, I5, O5>,
149
+ Handler<I5, O5, I6, O6>,
150
+ Handler<I6, O6, I7, O7>,
151
+ Handler<I7, O7, I8, O8>,
152
+ Handler<I8, O8, I9, O9>,
153
+ Handler<I9, O9, I10, O10>,
154
+ Handler<I10, O10, I11, O11>,
155
+ Handler<I11, O11, I12, O12>,
156
+ Handler<I12, O12, I13, O13>,
157
+ Handler<I13, O13, I14, O14>,
158
+ Handler<I14, O14, I15, O15>
159
+ ]): Handler<I0, O0, I15, O15>;
160
+ /** @hidden */
161
+ declare function combine<I0, O0, I1, O1, I2, O2, I3, O3, I4, O4, I5, O5, I6, O6, I7, O7, I8, O8, I9, O9, I10, O10, I11, O11, I12, O12, I13, O13, I14, O14, I15, O15, I16, O16>(...handlerList: readonly [
162
+ Handler<I0, O0, I1, O1>,
163
+ Handler<I1, O1, I2, O2>,
164
+ Handler<I2, O2, I3, O3>,
165
+ Handler<I3, O3, I4, O4>,
166
+ Handler<I4, O4, I5, O5>,
167
+ Handler<I5, O5, I6, O6>,
168
+ Handler<I6, O6, I7, O7>,
169
+ Handler<I7, O7, I8, O8>,
170
+ Handler<I8, O8, I9, O9>,
171
+ Handler<I9, O9, I10, O10>,
172
+ Handler<I10, O10, I11, O11>,
173
+ Handler<I11, O11, I12, O12>,
174
+ Handler<I12, O12, I13, O13>,
175
+ Handler<I13, O13, I14, O14>,
176
+ Handler<I14, O14, I15, O15>,
177
+ Handler<I15, O15, I16, O16>
178
+ ]): Handler<I0, O0, I16, O16>;
179
+ /** @hidden */
180
+ declare function combine<I0, O0, I1, O1, I2, O2, I3, O3, I4, O4, I5, O5, I6, O6, I7, O7, I8, O8, I9, O9, I10, O10, I11, O11, I12, O12, I13, O13, I14, O14, I15, O15, I16, O16, I17, O17>(...handlerList: readonly [
181
+ Handler<I0, O0, I1, O1>,
182
+ Handler<I1, O1, I2, O2>,
183
+ Handler<I2, O2, I3, O3>,
184
+ Handler<I3, O3, I4, O4>,
185
+ Handler<I4, O4, I5, O5>,
186
+ Handler<I5, O5, I6, O6>,
187
+ Handler<I6, O6, I7, O7>,
188
+ Handler<I7, O7, I8, O8>,
189
+ Handler<I8, O8, I9, O9>,
190
+ Handler<I9, O9, I10, O10>,
191
+ Handler<I10, O10, I11, O11>,
192
+ Handler<I11, O11, I12, O12>,
193
+ Handler<I12, O12, I13, O13>,
194
+ Handler<I13, O13, I14, O14>,
195
+ Handler<I14, O14, I15, O15>,
196
+ Handler<I15, O15, I16, O16>,
197
+ Handler<I16, O16, I17, O17>
198
+ ]): Handler<I0, O0, I17, O17>;
199
+ /** @hidden */
200
+ declare function combine<I0, O0, I1, O1, I2, O2, I3, O3, I4, O4, I5, O5, I6, O6, I7, O7, I8, O8, I9, O9, I10, O10, I11, O11, I12, O12, I13, O13, I14, O14, I15, O15, I16, O16, I17, O17, I18, O18>(...handlerList: readonly [
201
+ Handler<I0, O0, I1, O1>,
202
+ Handler<I1, O1, I2, O2>,
203
+ Handler<I2, O2, I3, O3>,
204
+ Handler<I3, O3, I4, O4>,
205
+ Handler<I4, O4, I5, O5>,
206
+ Handler<I5, O5, I6, O6>,
207
+ Handler<I6, O6, I7, O7>,
208
+ Handler<I7, O7, I8, O8>,
209
+ Handler<I8, O8, I9, O9>,
210
+ Handler<I9, O9, I10, O10>,
211
+ Handler<I10, O10, I11, O11>,
212
+ Handler<I11, O11, I12, O12>,
213
+ Handler<I12, O12, I13, O13>,
214
+ Handler<I13, O13, I14, O14>,
215
+ Handler<I14, O14, I15, O15>,
216
+ Handler<I15, O15, I16, O16>,
217
+ Handler<I16, O16, I17, O17>,
218
+ Handler<I17, O17, I18, O18>
219
+ ]): Handler<I0, O0, I18, O18>;
220
+ /** @hidden */
221
+ declare function combine<I0, O0, I1, O1, I2, O2, I3, O3, I4, O4, I5, O5, I6, O6, I7, O7, I8, O8, I9, O9, I10, O10, I11, O11, I12, O12, I13, O13, I14, O14, I15, O15, I16, O16, I17, O17, I18, O18, I19, O19>(...handlerList: readonly [
222
+ Handler<I0, O0, I1, O1>,
223
+ Handler<I1, O1, I2, O2>,
224
+ Handler<I2, O2, I3, O3>,
225
+ Handler<I3, O3, I4, O4>,
226
+ Handler<I4, O4, I5, O5>,
227
+ Handler<I5, O5, I6, O6>,
228
+ Handler<I6, O6, I7, O7>,
229
+ Handler<I7, O7, I8, O8>,
230
+ Handler<I8, O8, I9, O9>,
231
+ Handler<I9, O9, I10, O10>,
232
+ Handler<I10, O10, I11, O11>,
233
+ Handler<I11, O11, I12, O12>,
234
+ Handler<I12, O12, I13, O13>,
235
+ Handler<I13, O13, I14, O14>,
236
+ Handler<I14, O14, I15, O15>,
237
+ Handler<I15, O15, I16, O16>,
238
+ Handler<I16, O16, I17, O17>,
239
+ Handler<I17, O17, I18, O18>,
240
+ Handler<I18, O18, I19, O19>
241
+ ]): Handler<I0, O0, I19, O19>;
242
+ /** @hidden */
243
+ declare function combine<I0, O0, I1, O1, I2, O2, I3, O3, I4, O4, I5, O5, I6, O6, I7, O7, I8, O8, I9, O9, I10, O10, I11, O11, I12, O12, I13, O13, I14, O14, I15, O15, I16, O16, I17, O17, I18, O18, I19, O19, I20, O20>(...handlerList: readonly [
244
+ Handler<I0, O0, I1, O1>,
245
+ Handler<I1, O1, I2, O2>,
246
+ Handler<I2, O2, I3, O3>,
247
+ Handler<I3, O3, I4, O4>,
248
+ Handler<I4, O4, I5, O5>,
249
+ Handler<I5, O5, I6, O6>,
250
+ Handler<I6, O6, I7, O7>,
251
+ Handler<I7, O7, I8, O8>,
252
+ Handler<I8, O8, I9, O9>,
253
+ Handler<I9, O9, I10, O10>,
254
+ Handler<I10, O10, I11, O11>,
255
+ Handler<I11, O11, I12, O12>,
256
+ Handler<I12, O12, I13, O13>,
257
+ Handler<I13, O13, I14, O14>,
258
+ Handler<I14, O14, I15, O15>,
259
+ Handler<I15, O15, I16, O16>,
260
+ Handler<I16, O16, I17, O17>,
261
+ Handler<I17, O17, I18, O18>,
262
+ Handler<I18, O18, I19, O19>,
263
+ Handler<I19, O19, I20, O20>
264
+ ]): Handler<I0, O0, I20, O20>;
265
+ /** @hidden */
266
+ declare function combine<I0, O0, I1, O1, I2, O2, I3, O3, I4, O4, I5, O5, I6, O6, I7, O7, I8, O8, I9, O9, I10, O10, I11, O11, I12, O12, I13, O13, I14, O14, I15, O15, I16, O16, I17, O17, I18, O18, I19, O19, I20, O20, I21, O21>(...handlerList: readonly [
267
+ Handler<I0, O0, I1, O1>,
268
+ Handler<I1, O1, I2, O2>,
269
+ Handler<I2, O2, I3, O3>,
270
+ Handler<I3, O3, I4, O4>,
271
+ Handler<I4, O4, I5, O5>,
272
+ Handler<I5, O5, I6, O6>,
273
+ Handler<I6, O6, I7, O7>,
274
+ Handler<I7, O7, I8, O8>,
275
+ Handler<I8, O8, I9, O9>,
276
+ Handler<I9, O9, I10, O10>,
277
+ Handler<I10, O10, I11, O11>,
278
+ Handler<I11, O11, I12, O12>,
279
+ Handler<I12, O12, I13, O13>,
280
+ Handler<I13, O13, I14, O14>,
281
+ Handler<I14, O14, I15, O15>,
282
+ Handler<I15, O15, I16, O16>,
283
+ Handler<I16, O16, I17, O17>,
284
+ Handler<I17, O17, I18, O18>,
285
+ Handler<I18, O18, I19, O19>,
286
+ Handler<I19, O19, I20, O20>,
287
+ Handler<I20, O20, I21, O21>
288
+ ]): Handler<I0, O0, I21, O21>;
289
+ /**
290
+ * Combines the provided handler into a single handler.
291
+ *
292
+ * @param handlerList List of handlers to combine.
293
+ * @returns Handler that combines all provided handlers.
294
+ */
295
+ declare function combine<I0, O0, I1, O1, I2, O2, I3, O3, I4, O4, I5, O5, I6, O6, I7, O7, I8, O8, I9, O9, I10, O10, I11, O11, I12, O12, I13, O13, I14, O14, I15, O15, I16, O16, I17, O17, I18, O18, I19, O19, I20, O20, I21, O21>(...handlerList: readonly [
296
+ Handler<I0, O0, I1, O1>,
297
+ Handler<I1, O1, I2, O2>,
298
+ Handler<I2, O2, I3, O3>?,
299
+ Handler<I3, O3, I4, O4>?,
300
+ Handler<I4, O4, I5, O5>?,
301
+ Handler<I5, O5, I6, O6>?,
302
+ Handler<I6, O6, I7, O7>?,
303
+ Handler<I7, O7, I8, O8>?,
304
+ Handler<I8, O8, I9, O9>?,
305
+ Handler<I9, O9, I10, O10>?,
306
+ Handler<I10, O10, I11, O11>?,
307
+ Handler<I11, O11, I12, O12>?,
308
+ Handler<I12, O12, I13, O13>?,
309
+ Handler<I13, O13, I14, O14>?,
310
+ Handler<I14, O14, I15, O15>?,
311
+ Handler<I15, O15, I16, O16>?,
312
+ Handler<I16, O16, I17, O17>?,
313
+ Handler<I17, O17, I18, O18>?,
314
+ Handler<I18, O18, I19, O19>?,
315
+ Handler<I19, O19, I20, O20>?,
316
+ Handler<I20, O20, I21, O21>?
317
+ ]): Handler<I0, O0, I21, O21>;
318
+ export { combine };
@@ -0,0 +1,20 @@
1
+ function combine(...handlerList) {
2
+ return function (input, next) {
3
+ function dispatch(input, index) {
4
+ const handler = handlerList[index];
5
+ if (!handler) {
6
+ return next(input);
7
+ }
8
+ const result = handler(input, function (input) {
9
+ return dispatch(input, index + 1);
10
+ });
11
+ if (result === undefined) {
12
+ throw new Error(`Handler at index ${index} did not return a response`);
13
+ }
14
+ return result;
15
+ }
16
+ return dispatch(input, 0);
17
+ };
18
+ }
19
+ export { combine };
20
+ //# sourceMappingURL=combine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combine.js","sourceRoot":"","sources":["../../lib/middlewares/combine.ts"],"names":[],"mappings":"AAs2BA,SAAS,OAAO,CA8Cd,GAAG,WAsBF;IAED,OAAO,UAAU,KAAK,EAAE,IAAI;QAC1B,SAAS,QAAQ,CAAC,KAAU,EAAE,KAAa;YACzC,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,OAAO,EAAE;gBACZ,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;aACpB;YACD,MAAM,MAAM,GAAQ,OAAO,CAAC,KAAK,EAAE,UAAU,KAAK;gBAChD,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YACH,IAAI,MAAM,KAAK,SAAS,EAAE;gBACxB,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,4BAA4B,CAAC,CAAC;aACxE;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { requester, Query, ConcurrentQuery } from '../../src';
2
+ export declare function concurrent(next: requester): requester<Query | ConcurrentQuery>;
@@ -0,0 +1,20 @@
1
+ import { isArray, map, mapKeys, keys } from 'lodash';
2
+ export function concurrent(next) {
3
+ /*
4
+ Runs concurrent queries if `query.queries` contains a list or a map of queries, resulting in a list or map of resolved queries.
5
+ Otherwise, passes the query to the next handler.
6
+ */
7
+ const request = (query) => {
8
+ if (!('queries' in query)) {
9
+ return next(query);
10
+ }
11
+ const { queries } = query;
12
+ if (isArray(queries)) {
13
+ return Promise.all(map(queries, (query) => request(query)));
14
+ }
15
+ const names = keys(queries);
16
+ return Promise.all(map(names, (name) => request(queries[name]))).then((results) => mapKeys(results, (result, index) => names[index]));
17
+ };
18
+ return request;
19
+ }
20
+ //# sourceMappingURL=concurrent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concurrent.js","sourceRoot":"","sources":["../../lib/middlewares/concurrent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAIpD,MAAM,UAAU,UAAU,CACxB,IAAe;IAEf;;;MAGE;IACF,MAAM,OAAO,GAAuC,CAAC,KAAK,EAAE,EAAE;QAC5D,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,EAAE;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;SACnB;QACD,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;QACzB,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YACpB,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;SAC5D;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3B,OAAO,OAAO,CAAC,GAAG,CAChB,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7C,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACxE,CAAC,CAAA;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { middleware } from '../../src';
2
+ export declare function fetch(fetch?: any): middleware;
@@ -0,0 +1,20 @@
1
+ export function fetch(fetch = getGlobal().fetch) {
2
+ /*
3
+ Calls the provided `fetch` function, which defaults to the DON `fetch` function, with the incoming `query`.
4
+ To be used in conjunction with `toFetchQuery()`.
5
+ */
6
+ if (process.env.NODE_ENV !== 'production' && !fetch) {
7
+ console.error('Could not find a global `fetch` function');
8
+ }
9
+ return () => (query) => {
10
+ return fetch(query.url, query).then((response) => {
11
+ if (!response.ok) {
12
+ throw new QueryError(response.statusText, response.status, response);
13
+ }
14
+ return response;
15
+ }, (error) => {
16
+ throw new QueryError(error.message, error.status || 500);
17
+ });
18
+ };
19
+ }
20
+ //# sourceMappingURL=fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../lib/middlewares/fetch.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,KAAK,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC,KAAK;IAC7C;;;MAGE;IACF,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,CAAC,KAAK,EAAE;QACnD,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;KAC1D;IACD,OAAO,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,CACjC,CAAC,QAAQ,EAAE,EAAE;YACX,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBAChB,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;aACrE;YACD,OAAO,QAAQ,CAAA;QACjB,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,CAAA;QAC1D,CAAC,CACF,CAAA;IACH,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Handler } from "../types";
2
+ /**
3
+ * Calls the provided `fetch` function, which defaults to the DOM `fetch` function, with the incoming `query`.
4
+ *
5
+ * @param fetch A standard `fetch` function.
6
+ * @returns Handler that returns a promise that resolves to the response.
7
+ */
8
+ export declare function fetchExternal(fetch?: typeof globalThis.fetch): Handler<Request, Response, never, never>;
@@ -0,0 +1,29 @@
1
+ import { getGlobal } from "@davidbonnet/get-global";
2
+ import { RequestError } from "../errors/RequestError";
3
+ /**
4
+ * Calls the provided `fetch` function, which defaults to the DOM `fetch` function, with the incoming `query`.
5
+ *
6
+ * @param fetch A standard `fetch` function.
7
+ * @returns Handler that returns a promise that resolves to the response.
8
+ */
9
+ export function fetchExternal(fetch = getGlobal().fetch) {
10
+ if (process.env.NODE_ENV !== "production" && !fetch) {
11
+ console.error("Could not find a global `fetch` function");
12
+ }
13
+ return async (request, _) => {
14
+ try {
15
+ const response = await fetch(request);
16
+ if (!response.ok) {
17
+ throw new RequestError(response.statusText, response.status, undefined, request, response);
18
+ }
19
+ return response;
20
+ }
21
+ catch (error) {
22
+ if (error instanceof Error) {
23
+ throw new RequestError(error.message, 500, undefined, request);
24
+ }
25
+ throw new RequestError(String(error), 500, undefined, request);
26
+ }
27
+ };
28
+ }
29
+ //# sourceMappingURL=fetchExternal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchExternal.js","sourceRoot":"","sources":["../../lib/middlewares/fetchExternal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAK,GAAG,SAAS,EAAE,CAAC,KAAK;IAEzB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,CAAC,KAAK,EAAE;QACnD,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;KAC3D;IACD,OAAO,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;QAC1B,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBAChB,MAAM,IAAI,YAAY,CACpB,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,MAAM,EACf,SAAS,EACT,OAAO,EACP,QAAQ,CACT,CAAC;aACH;YACD,OAAO,QAAQ,CAAC;SACjB;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,YAAY,KAAK,EAAE;gBAC1B,MAAM,IAAI,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;aAChE;YACD,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;SAChE;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { CustomFieldMap, Handler, Query } from "../types";
2
+ /**
3
+ * Performs the fetch query on local data.
4
+ *
5
+ * @returns Promise that resolves to the response.
6
+ */
7
+ export declare function fetchLocal<T extends object, C extends CustomFieldMap<T>>(): Handler<Query<T, C> & {
8
+ type: T[];
9
+ }, any, never, never>;
@@ -0,0 +1,10 @@
1
+ import { queryItemList } from "../tools/queryItemList";
2
+ /**
3
+ * Performs the fetch query on local data.
4
+ *
5
+ * @returns Promise that resolves to the response.
6
+ */
7
+ export function fetchLocal() {
8
+ return async (query, _) => queryItemList(query);
9
+ }
10
+ //# sourceMappingURL=fetchLocal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchLocal.js","sourceRoot":"","sources":["../../lib/middlewares/fetchLocal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD;;;;GAIG;AACH,MAAM,UAAU,UAAU;IAIxB,OAAO,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAO,KAAK,CAAC,CAAC;AACxD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { NextHandler } from "../types";
2
+ export declare function identity<I, O, In, On>(input: I, next: NextHandler<In, On>): Promise<O>;
3
+ export declare const identity3: <I, O, In, On>(input: I, next: NextHandler<In, On>) => Promise<O>;
4
+ export declare function identity2<I, O, In extends I, On extends O>(input: In, next: NextHandler<In, On>): Promise<On>;
@@ -0,0 +1,8 @@
1
+ export async function identity(input, next) {
2
+ return (await next(input));
3
+ }
4
+ export const identity3 = async (input, next) => (await next(input));
5
+ export async function identity2(input, next) {
6
+ return await next(input);
7
+ }
8
+ //# sourceMappingURL=identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../lib/middlewares/identity.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,KAAQ,EACR,IAAyB;IAEzB,OAAO,CAAC,MAAM,IAAI,CAAC,KAAsB,CAAC,CAAiB,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,KAAQ,EACR,IAAyB,EACb,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,KAAsB,CAAC,CAAiB,CAAC;AAEtE,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,KAAS,EACT,IAAyB;IAEzB,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Handler } from "../types";
2
+ /**
3
+ * Logs the outgoing query and the incoming result or the error.
4
+ *
5
+ * @param title
6
+ * @returns Query handler
7
+ */
8
+ export declare function log<I, O, In, On>(title?: string): Handler<I, O, In, On>;
@@ -0,0 +1,30 @@
1
+ import { identity } from "./identity";
2
+ /**
3
+ * Logs the outgoing query and the incoming result or the error.
4
+ *
5
+ * @param title
6
+ * @returns Query handler
7
+ */
8
+ export function log(title = "Query") {
9
+ if (process.env.NODE_ENV === "production") {
10
+ return identity;
11
+ }
12
+ return async (input, next) => {
13
+ /* eslint-disable no-console */
14
+ console.group(title);
15
+ console.info("query", input);
16
+ try {
17
+ const result = await next(input);
18
+ console.log("result", result);
19
+ console.groupEnd();
20
+ return result;
21
+ }
22
+ catch (error) {
23
+ console.log("error", error);
24
+ console.groupEnd();
25
+ throw error;
26
+ }
27
+ /* eslint-enable no-console */
28
+ };
29
+ }
30
+ //# sourceMappingURL=log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../lib/middlewares/log.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,UAAU,GAAG,CAAe,KAAK,GAAG,OAAO;IAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;QACzC,OAAO,QAAQ,CAAC;KACjB;IACD,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3B,+BAA+B;QAC/B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7B,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAsB,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC9B,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,MAAsB,CAAC;SAC/B;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5B,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,KAAK,CAAC;SACb;QACD,8BAA8B;IAChC,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { middleware } from '../../src';
2
+ export declare function logQuery(title?: string): middleware;
@@ -0,0 +1,25 @@
1
+ import { identity } from 'lodash';
2
+ export function logQuery(title = 'Query') {
3
+ /*
4
+ Logs the outgoing query and the incoming result or the error.
5
+ */
6
+ if (process.env.NODE_ENV === 'production') {
7
+ return identity;
8
+ }
9
+ return (next) => (query) => {
10
+ /* eslint-disable no-console */
11
+ console.group(title);
12
+ console.info('query', query);
13
+ return next(query).then((result) => {
14
+ console.log('result', result);
15
+ console.groupEnd();
16
+ return result;
17
+ }, (error) => {
18
+ console.log('error', error);
19
+ console.groupEnd();
20
+ throw error;
21
+ });
22
+ /* eslint-enable no-console */
23
+ };
24
+ }
25
+ //# sourceMappingURL=logQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logQuery.js","sourceRoot":"","sources":["../../lib/middlewares/logQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAIjC,MAAM,UAAU,QAAQ,CAAC,KAAK,GAAG,OAAO;IACtC;;MAEE;IACF,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;QACzC,OAAO,QAAQ,CAAA;KAChB;IACD,OAAO,CAAC,IAAe,EAAE,EAAE,CAAC,CAAC,KAAY,EAAmB,EAAE;QAC5D,+BAA+B;QAC/B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACpB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CACrB,CAAC,MAAM,EAAE,EAAE;YACT,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAC7B,OAAO,CAAC,QAAQ,EAAE,CAAA;YAClB,OAAO,MAAM,CAAA;QACf,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAC3B,OAAO,CAAC,QAAQ,EAAE,CAAA;YAClB,MAAM,KAAK,CAAA;QACb,CAAC,CACF,CAAA;QACD,8BAA8B;IAChC,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { Handler } from "../types";
2
+ /**
3
+ * Retries a failed query call up to `amount` times, with a given `delay` in milliseconds at ±`delayDelta` milliseconds.
4
+ * Note that an `amount` set to `Infinity` results in indefinitely trying to resolve a query call.
5
+ * Only instances of `RequestError` that do not result in a `500` status error will result in new tries. Other errors will propagate immediately.
6
+ *
7
+ * @param options
8
+ * @returns Handler
9
+ */
10
+ export declare function retry({ amount, delay, delayDelta, }?: {
11
+ amount?: number | undefined;
12
+ delay?: number | undefined;
13
+ delayDelta?: number | undefined;
14
+ }): Handler<Request, Response, Request, Response>;
@@ -0,0 +1,38 @@
1
+ import { getGlobal } from "@davidbonnet/get-global";
2
+ import { sleep, untilOnline } from "futurise";
3
+ import { RequestError } from "../errors/RequestError";
4
+ /**
5
+ * Retries a failed query call up to `amount` times, with a given `delay` in milliseconds at ±`delayDelta` milliseconds.
6
+ * Note that an `amount` set to `Infinity` results in indefinitely trying to resolve a query call.
7
+ * Only instances of `RequestError` that do not result in a `500` status error will result in new tries. Other errors will propagate immediately.
8
+ *
9
+ * @param options
10
+ * @returns Handler
11
+ */
12
+ export function retry({ amount = 5, delay = 1000, delayDelta = 500, } = {}) {
13
+ const { navigator } = getGlobal();
14
+ return (input, next) => {
15
+ let errorsLeft = amount;
16
+ const fetch = async () => {
17
+ try {
18
+ return await next(input);
19
+ }
20
+ catch (error) {
21
+ if (navigator !== undefined && !navigator.onLine) {
22
+ errorsLeft = amount;
23
+ await untilOnline();
24
+ }
25
+ else if (!(error instanceof RequestError) || error.status < 500) {
26
+ throw error;
27
+ }
28
+ if (--errorsLeft > 0) {
29
+ await sleep(delay + delayDelta + ((Math.random() * delayDelta * 2) | 0), input.signal);
30
+ return fetch();
31
+ }
32
+ throw error;
33
+ }
34
+ };
35
+ return fetch();
36
+ };
37
+ }
38
+ //# sourceMappingURL=retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../lib/middlewares/retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD;;;;;;;GAOG;AACH,MAAM,UAAU,KAAK,CAAC,EACpB,MAAM,GAAG,CAAC,EACV,KAAK,GAAG,IAAI,EACZ,UAAU,GAAG,GAAG,GACjB,GAAG,EAAE;IACJ,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC;IAClC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,UAAU,GAAG,MAAM,CAAC;QACxB,MAAM,KAAK,GAAG,KAAK,IAAuB,EAAE;YAC1C,IAAI;gBACF,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1B;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;oBAChD,UAAU,GAAG,MAAM,CAAC;oBACpB,MAAM,WAAW,EAAE,CAAC;iBACrB;qBAAM,IAAI,CAAC,CAAC,KAAK,YAAY,YAAY,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE;oBACjE,MAAM,KAAK,CAAC;iBACb;gBACD,IAAI,EAAE,UAAU,GAAG,CAAC,EAAE;oBACpB,MAAM,KAAK,CACT,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAC3D,KAAK,CAAC,MAAM,CACb,CAAC;oBACF,OAAO,KAAK,EAAE,CAAC;iBAChB;gBACD,MAAM,KAAK,CAAC;aACb;QACH,CAAC,CAAC;QACF,OAAO,KAAK,EAAE,CAAC;IACjB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { aggregate } from "./middlewares/aggregate";
2
+ export { branch } from "./middlewares/branch";
3
+ export { cache } from "./middlewares/cache";
4
+ export { combine } from "./middlewares/combine";
5
+ export { fetchExternal } from "./middlewares/fetchExternal";
6
+ export { fetchLocal } from "./middlewares/fetchLocal";
7
+ export { identity } from "./middlewares/identity";
8
+ export { log } from "./middlewares/log";
9
+ export { retry } from "./middlewares/retry";
@@ -0,0 +1,11 @@
1
+ // File automatically generated by `vite-plugin-module-list`
2
+ export { aggregate } from "./middlewares/aggregate";
3
+ export { branch } from "./middlewares/branch";
4
+ export { cache } from "./middlewares/cache";
5
+ export { combine } from "./middlewares/combine";
6
+ export { fetchExternal } from "./middlewares/fetchExternal";
7
+ export { fetchLocal } from "./middlewares/fetchLocal";
8
+ export { identity } from "./middlewares/identity";
9
+ export { log } from "./middlewares/log";
10
+ export { retry } from "./middlewares/retry";
11
+ //# sourceMappingURL=middlewares.js.map