@navios/react-query 1.0.0-alpha.1 → 1.0.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 (50) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/coverage/base.css +224 -0
  3. package/coverage/block-navigation.js +87 -0
  4. package/coverage/client/declare-client.mts.html +1264 -0
  5. package/coverage/client/index.html +116 -0
  6. package/coverage/clover.xml +160 -0
  7. package/coverage/coverage-final.json +8 -0
  8. package/coverage/favicon.png +0 -0
  9. package/coverage/index.html +146 -0
  10. package/coverage/mutation/index.html +131 -0
  11. package/coverage/mutation/key-creator.mts.html +277 -0
  12. package/coverage/mutation/make-hook.mts.html +952 -0
  13. package/coverage/prettify.css +1 -0
  14. package/coverage/prettify.js +2 -0
  15. package/coverage/query/index.html +161 -0
  16. package/coverage/query/key-creator.mts.html +415 -0
  17. package/coverage/query/make-infinite-options.mts.html +601 -0
  18. package/coverage/query/make-options.mts.html +838 -0
  19. package/coverage/query/prefetch.mts.html +1063 -0
  20. package/coverage/sort-arrow-sprite.png +0 -0
  21. package/coverage/sorter.js +210 -0
  22. package/dist/src/__tests__/prefetch.spec.d.mts +2 -0
  23. package/dist/src/__tests__/prefetch.spec.d.mts.map +1 -0
  24. package/dist/src/client/types/from-endpoint.d.mts.map +1 -1
  25. package/dist/src/common/types.d.mts +10 -0
  26. package/dist/src/common/types.d.mts.map +1 -1
  27. package/dist/src/mutation/optimistic.d.mts +7 -1
  28. package/dist/src/mutation/optimistic.d.mts.map +1 -1
  29. package/dist/src/mutation/types.d.mts +1 -12
  30. package/dist/src/mutation/types.d.mts.map +1 -1
  31. package/dist/src/query/types.d.mts +2 -13
  32. package/dist/src/query/types.d.mts.map +1 -1
  33. package/dist/tsconfig.tsbuildinfo +1 -1
  34. package/lib/index.cjs +6 -0
  35. package/lib/index.cjs.map +1 -1
  36. package/lib/index.d.cts +20 -24
  37. package/lib/index.d.cts.map +1 -1
  38. package/lib/index.d.mts +20 -24
  39. package/lib/index.d.mts.map +1 -1
  40. package/lib/index.mjs +6 -0
  41. package/lib/index.mjs.map +1 -1
  42. package/package.json +3 -3
  43. package/src/__tests__/declare-client.spec.mts +228 -0
  44. package/src/__tests__/prefetch.spec.mts +310 -0
  45. package/src/client/__type-tests__/infinite-query.spec-d.mts +1 -1
  46. package/src/client/types/from-endpoint.mts +0 -1
  47. package/src/common/types.mts +19 -0
  48. package/src/mutation/optimistic.mts +7 -1
  49. package/src/mutation/types.mts +4 -20
  50. package/src/query/types.mts +1 -22
@@ -0,0 +1,601 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for query/make-infinite-options.mts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../prettify.css" />
9
+ <link rel="stylesheet" href="../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../index.html">All files</a> / <a href="index.html">query</a> make-infinite-options.mts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">47.82% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>11/23</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">30% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>3/10</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">22.22% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>2/9</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">47.82% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>11/23</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line low'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
239
+ <span class="cline-any cline-neutral">&nbsp;</span>
240
+ <span class="cline-any cline-neutral">&nbsp;</span>
241
+ <span class="cline-any cline-neutral">&nbsp;</span>
242
+ <span class="cline-any cline-neutral">&nbsp;</span>
243
+ <span class="cline-any cline-neutral">&nbsp;</span>
244
+ <span class="cline-any cline-neutral">&nbsp;</span>
245
+ <span class="cline-any cline-neutral">&nbsp;</span>
246
+ <span class="cline-any cline-neutral">&nbsp;</span>
247
+ <span class="cline-any cline-neutral">&nbsp;</span>
248
+ <span class="cline-any cline-neutral">&nbsp;</span>
249
+ <span class="cline-any cline-neutral">&nbsp;</span>
250
+ <span class="cline-any cline-neutral">&nbsp;</span>
251
+ <span class="cline-any cline-neutral">&nbsp;</span>
252
+ <span class="cline-any cline-neutral">&nbsp;</span>
253
+ <span class="cline-any cline-neutral">&nbsp;</span>
254
+ <span class="cline-any cline-neutral">&nbsp;</span>
255
+ <span class="cline-any cline-neutral">&nbsp;</span>
256
+ <span class="cline-any cline-neutral">&nbsp;</span>
257
+ <span class="cline-any cline-neutral">&nbsp;</span>
258
+ <span class="cline-any cline-neutral">&nbsp;</span>
259
+ <span class="cline-any cline-neutral">&nbsp;</span>
260
+ <span class="cline-any cline-neutral">&nbsp;</span>
261
+ <span class="cline-any cline-neutral">&nbsp;</span>
262
+ <span class="cline-any cline-neutral">&nbsp;</span>
263
+ <span class="cline-any cline-neutral">&nbsp;</span>
264
+ <span class="cline-any cline-neutral">&nbsp;</span>
265
+ <span class="cline-any cline-neutral">&nbsp;</span>
266
+ <span class="cline-any cline-neutral">&nbsp;</span>
267
+ <span class="cline-any cline-neutral">&nbsp;</span>
268
+ <span class="cline-any cline-neutral">&nbsp;</span>
269
+ <span class="cline-any cline-neutral">&nbsp;</span>
270
+ <span class="cline-any cline-neutral">&nbsp;</span>
271
+ <span class="cline-any cline-neutral">&nbsp;</span>
272
+ <span class="cline-any cline-neutral">&nbsp;</span>
273
+ <span class="cline-any cline-neutral">&nbsp;</span>
274
+ <span class="cline-any cline-neutral">&nbsp;</span>
275
+ <span class="cline-any cline-neutral">&nbsp;</span>
276
+ <span class="cline-any cline-neutral">&nbsp;</span>
277
+ <span class="cline-any cline-neutral">&nbsp;</span>
278
+ <span class="cline-any cline-neutral">&nbsp;</span>
279
+ <span class="cline-any cline-neutral">&nbsp;</span>
280
+ <span class="cline-any cline-neutral">&nbsp;</span>
281
+ <span class="cline-any cline-neutral">&nbsp;</span>
282
+ <span class="cline-any cline-neutral">&nbsp;</span>
283
+ <span class="cline-any cline-neutral">&nbsp;</span>
284
+ <span class="cline-any cline-neutral">&nbsp;</span>
285
+ <span class="cline-any cline-neutral">&nbsp;</span>
286
+ <span class="cline-any cline-neutral">&nbsp;</span>
287
+ <span class="cline-any cline-neutral">&nbsp;</span>
288
+ <span class="cline-any cline-neutral">&nbsp;</span>
289
+ <span class="cline-any cline-yes">4x</span>
290
+ <span class="cline-any cline-yes">4x</span>
291
+ <span class="cline-any cline-neutral">&nbsp;</span>
292
+ <span class="cline-any cline-yes">4x</span>
293
+ <span class="cline-any cline-yes">4x</span>
294
+ <span class="cline-any cline-neutral">&nbsp;</span>
295
+ <span class="cline-any cline-neutral">&nbsp;</span>
296
+ <span class="cline-any cline-neutral">&nbsp;</span>
297
+ <span class="cline-any cline-neutral">&nbsp;</span>
298
+ <span class="cline-any cline-neutral">&nbsp;</span>
299
+ <span class="cline-any cline-neutral">&nbsp;</span>
300
+ <span class="cline-any cline-neutral">&nbsp;</span>
301
+ <span class="cline-any cline-neutral">&nbsp;</span>
302
+ <span class="cline-any cline-neutral">&nbsp;</span>
303
+ <span class="cline-any cline-neutral">&nbsp;</span>
304
+ <span class="cline-any cline-neutral">&nbsp;</span>
305
+ <span class="cline-any cline-yes">1x</span>
306
+ <span class="cline-any cline-neutral">&nbsp;</span>
307
+ <span class="cline-any cline-neutral">&nbsp;</span>
308
+ <span class="cline-any cline-neutral">&nbsp;</span>
309
+ <span class="cline-any cline-neutral">&nbsp;</span>
310
+ <span class="cline-any cline-neutral">&nbsp;</span>
311
+ <span class="cline-any cline-neutral">&nbsp;</span>
312
+ <span class="cline-any cline-neutral">&nbsp;</span>
313
+ <span class="cline-any cline-no">&nbsp;</span>
314
+ <span class="cline-any cline-no">&nbsp;</span>
315
+ <span class="cline-any cline-neutral">&nbsp;</span>
316
+ <span class="cline-any cline-neutral">&nbsp;</span>
317
+ <span class="cline-any cline-neutral">&nbsp;</span>
318
+ <span class="cline-any cline-neutral">&nbsp;</span>
319
+ <span class="cline-any cline-neutral">&nbsp;</span>
320
+ <span class="cline-any cline-neutral">&nbsp;</span>
321
+ <span class="cline-any cline-neutral">&nbsp;</span>
322
+ <span class="cline-any cline-neutral">&nbsp;</span>
323
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
+ <span class="cline-any cline-no">&nbsp;</span>
325
+ <span class="cline-any cline-no">&nbsp;</span>
326
+ <span class="cline-any cline-neutral">&nbsp;</span>
327
+ <span class="cline-any cline-no">&nbsp;</span>
328
+ <span class="cline-any cline-neutral">&nbsp;</span>
329
+ <span class="cline-any cline-neutral">&nbsp;</span>
330
+ <span class="cline-any cline-no">&nbsp;</span>
331
+ <span class="cline-any cline-neutral">&nbsp;</span>
332
+ <span class="cline-any cline-neutral">&nbsp;</span>
333
+ <span class="cline-any cline-neutral">&nbsp;</span>
334
+ <span class="cline-any cline-neutral">&nbsp;</span>
335
+ <span class="cline-any cline-neutral">&nbsp;</span>
336
+ <span class="cline-any cline-neutral">&nbsp;</span>
337
+ <span class="cline-any cline-neutral">&nbsp;</span>
338
+ <span class="cline-any cline-neutral">&nbsp;</span>
339
+ <span class="cline-any cline-neutral">&nbsp;</span>
340
+ <span class="cline-any cline-neutral">&nbsp;</span>
341
+ <span class="cline-any cline-neutral">&nbsp;</span>
342
+ <span class="cline-any cline-yes">4x</span>
343
+ <span class="cline-any cline-neutral">&nbsp;</span>
344
+ <span class="cline-any cline-neutral">&nbsp;</span>
345
+ <span class="cline-any cline-neutral">&nbsp;</span>
346
+ <span class="cline-any cline-neutral">&nbsp;</span>
347
+ <span class="cline-any cline-neutral">&nbsp;</span>
348
+ <span class="cline-any cline-neutral">&nbsp;</span>
349
+ <span class="cline-any cline-neutral">&nbsp;</span>
350
+ <span class="cline-any cline-neutral">&nbsp;</span>
351
+ <span class="cline-any cline-yes">4x</span>
352
+ <span class="cline-any cline-no">&nbsp;</span>
353
+ <span class="cline-any cline-neutral">&nbsp;</span>
354
+ <span class="cline-any cline-neutral">&nbsp;</span>
355
+ <span class="cline-any cline-neutral">&nbsp;</span>
356
+ <span class="cline-any cline-neutral">&nbsp;</span>
357
+ <span class="cline-any cline-neutral">&nbsp;</span>
358
+ <span class="cline-any cline-neutral">&nbsp;</span>
359
+ <span class="cline-any cline-neutral">&nbsp;</span>
360
+ <span class="cline-any cline-neutral">&nbsp;</span>
361
+ <span class="cline-any cline-neutral">&nbsp;</span>
362
+ <span class="cline-any cline-neutral">&nbsp;</span>
363
+ <span class="cline-any cline-yes">4x</span>
364
+ <span class="cline-any cline-neutral">&nbsp;</span>
365
+ <span class="cline-any cline-neutral">&nbsp;</span>
366
+ <span class="cline-any cline-no">&nbsp;</span>
367
+ <span class="cline-any cline-neutral">&nbsp;</span>
368
+ <span class="cline-any cline-neutral">&nbsp;</span>
369
+ <span class="cline-any cline-neutral">&nbsp;</span>
370
+ <span class="cline-any cline-neutral">&nbsp;</span>
371
+ <span class="cline-any cline-neutral">&nbsp;</span>
372
+ <span class="cline-any cline-neutral">&nbsp;</span>
373
+ <span class="cline-any cline-neutral">&nbsp;</span>
374
+ <span class="cline-any cline-neutral">&nbsp;</span>
375
+ <span class="cline-any cline-neutral">&nbsp;</span>
376
+ <span class="cline-any cline-neutral">&nbsp;</span>
377
+ <span class="cline-any cline-yes">4x</span>
378
+ <span class="cline-any cline-neutral">&nbsp;</span>
379
+ <span class="cline-any cline-neutral">&nbsp;</span>
380
+ <span class="cline-any cline-neutral">&nbsp;</span>
381
+ <span class="cline-any cline-no">&nbsp;</span>
382
+ <span class="cline-any cline-no">&nbsp;</span>
383
+ <span class="cline-any cline-neutral">&nbsp;</span>
384
+ <span class="cline-any cline-neutral">&nbsp;</span>
385
+ <span class="cline-any cline-neutral">&nbsp;</span>
386
+ <span class="cline-any cline-neutral">&nbsp;</span>
387
+ <span class="cline-any cline-neutral">&nbsp;</span>
388
+ <span class="cline-any cline-neutral">&nbsp;</span>
389
+ <span class="cline-any cline-neutral">&nbsp;</span>
390
+ <span class="cline-any cline-neutral">&nbsp;</span>
391
+ <span class="cline-any cline-neutral">&nbsp;</span>
392
+ <span class="cline-any cline-neutral">&nbsp;</span>
393
+ <span class="cline-any cline-neutral">&nbsp;</span>
394
+ <span class="cline-any cline-neutral">&nbsp;</span>
395
+ <span class="cline-any cline-neutral">&nbsp;</span>
396
+ <span class="cline-any cline-yes">4x</span>
397
+ <span class="cline-any cline-neutral">&nbsp;</span>
398
+ <span class="cline-any cline-neutral">&nbsp;</span>
399
+ <span class="cline-any cline-neutral">&nbsp;</span>
400
+ <span class="cline-any cline-no">&nbsp;</span>
401
+ <span class="cline-any cline-no">&nbsp;</span>
402
+ <span class="cline-any cline-neutral">&nbsp;</span>
403
+ <span class="cline-any cline-neutral">&nbsp;</span>
404
+ <span class="cline-any cline-neutral">&nbsp;</span>
405
+ <span class="cline-any cline-neutral">&nbsp;</span>
406
+ <span class="cline-any cline-neutral">&nbsp;</span>
407
+ <span class="cline-any cline-neutral">&nbsp;</span>
408
+ <span class="cline-any cline-yes">4x</span>
409
+ <span class="cline-any cline-neutral">&nbsp;</span>
410
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import type {
411
+ AbstractEndpoint,
412
+ AnyEndpointConfig,
413
+ UrlParams,
414
+ } from '@navios/builder'
415
+ import type {
416
+ InfiniteData,
417
+ QueryClient,
418
+ UseInfiniteQueryOptions,
419
+ UseSuspenseInfiniteQueryOptions,
420
+ } from '@tanstack/react-query'
421
+ import type { z } from 'zod/v4'
422
+ &nbsp;
423
+ import {
424
+ infiniteQueryOptions,
425
+ useInfiniteQuery,
426
+ useSuspenseInfiniteQuery,
427
+ } from '@tanstack/react-query'
428
+ &nbsp;
429
+ import type { InfiniteQueryOptions, QueryArgs } from './types.mjs'
430
+ &nbsp;
431
+ import { createQueryKey } from './key-creator.mjs'
432
+ &nbsp;
433
+ /**
434
+ * Creates infinite query options for a given endpoint.
435
+ *
436
+ * Returns a function that generates TanStack Query infinite options when called with params.
437
+ * The returned function also has helper methods attached (use, useSuspense, invalidate, etc.)
438
+ *
439
+ * @param endpoint - The navios endpoint to create infinite query options for
440
+ * @param options - Infinite query configuration including processResponse and pagination params
441
+ * @param baseQuery - Optional base query options to merge
442
+ * @returns A function that generates infinite query options with attached helpers
443
+ */
444
+ export function makeInfiniteQueryOptions&lt;
445
+ Config extends AnyEndpointConfig,
446
+ Options extends InfiniteQueryOptions&lt;Config&gt;,
447
+ BaseQuery extends Omit&lt;
448
+ UseInfiniteQueryOptions&lt;ReturnType&lt;Options['processResponse']&gt;, Error, any&gt;,
449
+ | 'queryKey'
450
+ | 'queryFn'
451
+ | 'getNextPageParam'
452
+ | 'initialPageParam'
453
+ | 'placeholderData'
454
+ | 'throwOnError'
455
+ &gt;,
456
+ &gt;(
457
+ endpoint: AbstractEndpoint&lt;Config&gt;,
458
+ options: Options,
459
+ baseQuery: BaseQuery = {} as BaseQuery,
460
+ ) {
461
+ const config = endpoint.config
462
+ const queryKey = createQueryKey(config, options, true)
463
+ &nbsp;
464
+ const processResponse = options.processResponse
465
+ const res = (
466
+ params: QueryArgs&lt;Config['url'], Config['querySchema']&gt;,
467
+ ): Options['processResponse'] extends (...args: any[]) =&gt; infer Result
468
+ ? UseSuspenseInfiniteQueryOptions&lt;
469
+ Result,
470
+ Error,
471
+ BaseQuery['select'] extends (...args: any[]) =&gt; infer T
472
+ ? T
473
+ : InfiniteData&lt;Result&gt;
474
+ &gt;
475
+ : never =&gt; {
476
+ // @ts-expect-error TS2322 We know that the processResponse is defined
477
+ return infiniteQueryOptions({
478
+ // @ts-expect-error TS2345 We bind the url params only if the url has params
479
+ queryKey: queryKey.dataTag(params),
480
+ queryFn: <span class="fstat-no" title="function not covered" >async ({</span>
481
+ signal,
482
+ pageParam,
483
+ }): Promise&lt;ReturnType&lt;Options['processResponse']&gt;&gt; =&gt; {
484
+ let result
485
+ <span class="cstat-no" title="statement not covered" > try {</span>
486
+ <span class="cstat-no" title="statement not covered" > result = await endpoint({</span>
487
+ signal,
488
+ // @ts-expect-error TS2345 We bind the url params only if the url has params
489
+ urlParams: params.urlParams as z.infer&lt;UrlParams&lt;Config['url']&gt;&gt;,
490
+ params: {
491
+ ...('params' in params ? params.params : {}),
492
+ ...(pageParam as z.infer&lt;Config['querySchema']&gt;),
493
+ },
494
+ })
495
+ } catch (err) {
496
+ <span class="cstat-no" title="statement not covered" > if (options.onFail) {</span>
497
+ <span class="cstat-no" title="statement not covered" > options.onFail(err)</span>
498
+ }
499
+ <span class="cstat-no" title="statement not covered" > throw err</span>
500
+ }
501
+ &nbsp;
502
+ <span class="cstat-no" title="statement not covered" > return processResponse(result) as ReturnType&lt;Options['processResponse']&gt;</span>
503
+ },
504
+ getNextPageParam: options.getNextPageParam,
505
+ getPreviousPageParam: options.getPreviousPageParam,
506
+ initialPageParam:
507
+ options.initialPageParam ??
508
+ config.querySchema?.parse('params' in params ? params.params : {}) ??
509
+ (<span class="branch-2 cbranch-no" title="branch not covered" >'params' in params ? params.params : {}),</span>
510
+ ...baseQuery,
511
+ })
512
+ }
513
+ /** The query key creator for this infinite query endpoint */
514
+ res.queryKey = queryKey
515
+ &nbsp;
516
+ /**
517
+ * React hook that executes the infinite query.
518
+ * Uses `useInfiniteQuery` from TanStack Query internally.
519
+ *
520
+ * @param params - URL parameters and initial query parameters
521
+ * @returns Infinite query result with pages, fetchNextPage, etc.
522
+ */
523
+ res.use = <span class="fstat-no" title="function not covered" >(p</span>arams: QueryArgs&lt;Config['url'], Config['querySchema']&gt;) =&gt; {
524
+ <span class="cstat-no" title="statement not covered" > return useInfiniteQuery(res(params))</span>
525
+ }
526
+ &nbsp;
527
+ /**
528
+ * React hook that executes the infinite query with Suspense support.
529
+ * Uses `useSuspenseInfiniteQuery` from TanStack Query internally.
530
+ * The component will suspend while loading and throw on error.
531
+ *
532
+ * @param params - URL parameters and initial query parameters
533
+ * @returns Infinite query result with pages guaranteed to be defined
534
+ */
535
+ res.useSuspense = <span class="fstat-no" title="function not covered" >(</span>
536
+ params: QueryArgs&lt;Config['url'], Config['querySchema']&gt;,
537
+ ) =&gt; {
538
+ <span class="cstat-no" title="statement not covered" > return useSuspenseInfiniteQuery(res(params))</span>
539
+ }
540
+ &nbsp;
541
+ /**
542
+ * Creates a function that invalidates this specific infinite query in the cache.
543
+ * Call the returned function to trigger the invalidation.
544
+ *
545
+ * @param queryClient - The TanStack Query client instance
546
+ * @param params - The exact parameters used for this query
547
+ * @returns A function that when called invalidates the query
548
+ */
549
+ res.invalidate = <span class="fstat-no" title="function not covered" >(</span>
550
+ queryClient: QueryClient,
551
+ params: QueryArgs&lt;Config['url'], Config['querySchema']&gt;,
552
+ ) =&gt; {
553
+ <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >() =&gt;</span></span>
554
+ <span class="cstat-no" title="statement not covered" > queryClient.invalidateQueries({</span>
555
+ // @ts-expect-error TS2345 We bind the url params only if the url has params
556
+ queryKey: res.queryKey.dataTag(params),
557
+ })
558
+ }
559
+ &nbsp;
560
+ /**
561
+ * Creates a function that invalidates all infinite queries matching the URL pattern.
562
+ * Useful for invalidating all queries for a resource regardless of query params.
563
+ *
564
+ * @param queryClient - The TanStack Query client instance
565
+ * @param params - URL parameters only (query params are ignored for matching)
566
+ * @returns A function that when called invalidates all matching queries
567
+ */
568
+ res.invalidateAll = <span class="fstat-no" title="function not covered" >(</span>
569
+ queryClient: QueryClient,
570
+ params: QueryArgs&lt;Config['url'], Config['querySchema']&gt;,
571
+ ) =&gt; {
572
+ <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >() =&gt;</span></span>
573
+ <span class="cstat-no" title="statement not covered" > queryClient.invalidateQueries({</span>
574
+ // @ts-expect-error TS2345 We bind the url params only if the url has params
575
+ queryKey: res.queryKey.filterKey(params),
576
+ exact: false,
577
+ })
578
+ }
579
+ &nbsp;
580
+ return res
581
+ }
582
+ &nbsp;</pre></td></tr></table></pre>
583
+
584
+ <div class='push'></div><!-- for sticky footer -->
585
+ </div><!-- /wrapper -->
586
+ <div class='footer quiet pad2 space-top1 center small'>
587
+ Code coverage generated by
588
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
589
+ at 2026-01-08T14:29:05.093Z
590
+ </div>
591
+ <script src="../prettify.js"></script>
592
+ <script>
593
+ window.onload = function () {
594
+ prettyPrint();
595
+ };
596
+ </script>
597
+ <script src="../sorter.js"></script>
598
+ <script src="../block-navigation.js"></script>
599
+ </body>
600
+ </html>
601
+