@longzai-intelligence/pagination 0.0.1 → 0.0.3

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 (74) hide show
  1. package/README.md +36 -203
  2. package/dist/hono.cjs +1 -0
  3. package/dist/hono.d.cts +15 -0
  4. package/dist/hono.d.mts +15 -0
  5. package/dist/hono.mjs +1 -0
  6. package/dist/index-C4IwIpFc.d.mts +199 -0
  7. package/dist/index-DpbbjAwO.d.cts +199 -0
  8. package/dist/index.cjs +1 -1
  9. package/dist/index.d.cts +79 -80
  10. package/dist/index.d.mts +79 -80
  11. package/dist/index.mjs +1 -1
  12. package/dist/typeorm.cjs +1 -0
  13. package/dist/typeorm.d.cts +26 -0
  14. package/dist/typeorm.d.mts +26 -0
  15. package/dist/typeorm.mjs +1 -0
  16. package/dist/utils-B200OLT-.cjs +1 -0
  17. package/dist/utils-DsM7-PZL.mjs +1 -0
  18. package/package.json +29 -5
  19. package/.turbo/turbo-build.log +0 -22
  20. package/.turbo/turbo-lint.log +0 -1
  21. package/.turbo/turbo-test$colon$coverage.log +0 -36
  22. package/.turbo/turbo-test.log +0 -14
  23. package/.turbo/turbo-typecheck.log +0 -4
  24. package/CHANGELOG.md +0 -11
  25. package/coverage/base.css +0 -224
  26. package/coverage/block-navigation.js +0 -87
  27. package/coverage/coverage-final.json +0 -12
  28. package/coverage/favicon.png +0 -0
  29. package/coverage/index.html +0 -161
  30. package/coverage/prettify.css +0 -1
  31. package/coverage/prettify.js +0 -2
  32. package/coverage/sort-arrow-sprite.png +0 -0
  33. package/coverage/sorter.js +0 -210
  34. package/coverage/src/adapters/index.html +0 -131
  35. package/coverage/src/adapters/index.ts.html +0 -118
  36. package/coverage/src/adapters/typeorm.adapter.ts.html +0 -940
  37. package/coverage/src/index.html +0 -116
  38. package/coverage/src/index.ts.html +0 -253
  39. package/coverage/src/types/index.html +0 -176
  40. package/coverage/src/types/index.ts.html +0 -133
  41. package/coverage/src/types/pagination.types.ts.html +0 -292
  42. package/coverage/src/types/result.types.ts.html +0 -415
  43. package/coverage/src/types/sort.types.ts.html +0 -265
  44. package/coverage/src/types/typeorm.d.ts.html +0 -196
  45. package/coverage/src/utils/index.html +0 -146
  46. package/coverage/src/utils/index.ts.html +0 -178
  47. package/coverage/src/utils/pagination.util.ts.html +0 -703
  48. package/coverage/src/utils/validation.util.ts.html +0 -535
  49. package/eslint.config.ts +0 -3
  50. package/src/__tests__/index.test.ts +0 -66
  51. package/src/__tests__/pagination.util.test.ts +0 -253
  52. package/src/__tests__/typeorm.adapter.test.ts +0 -214
  53. package/src/__tests__/validation.util.test.ts +0 -122
  54. package/src/adapters/index.ts +0 -11
  55. package/src/adapters/typeorm.adapter.ts +0 -285
  56. package/src/index.ts +0 -56
  57. package/src/types/index.ts +0 -16
  58. package/src/types/pagination.types.ts +0 -69
  59. package/src/types/result.types.ts +0 -110
  60. package/src/types/sort.types.ts +0 -60
  61. package/src/types/typeorm.d.ts +0 -37
  62. package/src/utils/index.ts +0 -31
  63. package/src/utils/pagination.util.ts +0 -206
  64. package/src/utils/validation.util.ts +0 -150
  65. package/tsconfig/.cache/app.tsbuildinfo +0 -1
  66. package/tsconfig/.cache/build.tsbuildinfo +0 -1
  67. package/tsconfig/.cache/node.tsbuildinfo +0 -1
  68. package/tsconfig/.cache/test.tsbuildinfo +0 -1
  69. package/tsconfig/app.json +0 -12
  70. package/tsconfig/node.json +0 -11
  71. package/tsconfig/test.json +0 -14
  72. package/tsconfig.json +0 -9
  73. package/tsdown.config.ts +0 -6
  74. package/vitest.config.ts +0 -3
@@ -1,535 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/utils/validation.util.ts</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">src/utils</a> validation.util.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>15/15</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>28/28</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>7/7</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>15/15</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 high'></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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
217
- <span class="cline-any cline-neutral">&nbsp;</span>
218
- <span class="cline-any cline-neutral">&nbsp;</span>
219
- <span class="cline-any cline-neutral">&nbsp;</span>
220
- <span class="cline-any cline-neutral">&nbsp;</span>
221
- <span class="cline-any cline-neutral">&nbsp;</span>
222
- <span class="cline-any cline-neutral">&nbsp;</span>
223
- <span class="cline-any cline-neutral">&nbsp;</span>
224
- <span class="cline-any cline-neutral">&nbsp;</span>
225
- <span class="cline-any cline-neutral">&nbsp;</span>
226
- <span class="cline-any cline-neutral">&nbsp;</span>
227
- <span class="cline-any cline-neutral">&nbsp;</span>
228
- <span class="cline-any cline-neutral">&nbsp;</span>
229
- <span class="cline-any cline-yes">20x</span>
230
- <span class="cline-any cline-neutral">&nbsp;</span>
231
- <span class="cline-any cline-neutral">&nbsp;</span>
232
- <span class="cline-any cline-neutral">&nbsp;</span>
233
- <span class="cline-any cline-neutral">&nbsp;</span>
234
- <span class="cline-any cline-neutral">&nbsp;</span>
235
- <span class="cline-any cline-neutral">&nbsp;</span>
236
- <span class="cline-any cline-neutral">&nbsp;</span>
237
- <span class="cline-any cline-neutral">&nbsp;</span>
238
- <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-yes">14x</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-yes">13x</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-neutral">&nbsp;</span>
290
- <span class="cline-any cline-neutral">&nbsp;</span>
291
- <span class="cline-any cline-neutral">&nbsp;</span>
292
- <span class="cline-any cline-neutral">&nbsp;</span>
293
- <span class="cline-any cline-neutral">&nbsp;</span>
294
- <span class="cline-any cline-yes">11x</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-yes">14x</span>
305
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span>
314
- <span class="cline-any cline-neutral">&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-yes">10x</span>
320
- <span class="cline-any cline-yes">3x</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-neutral">&nbsp;</span>
325
- <span class="cline-any cline-neutral">&nbsp;</span>
326
- <span class="cline-any cline-yes">7x</span>
327
- <span class="cline-any cline-neutral">&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-neutral">&nbsp;</span>
331
- <span class="cline-any cline-yes">7x</span>
332
- <span class="cline-any cline-neutral">&nbsp;</span>
333
- <span class="cline-any cline-yes">7x</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-neutral">&nbsp;</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-yes">10x</span>
349
- <span class="cline-any cline-yes">3x</span>
350
- <span class="cline-any cline-neutral">&nbsp;</span>
351
- <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-neutral">&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-yes">7x</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-yes">7x</span>
361
- <span class="cline-any cline-neutral">&nbsp;</span>
362
- <span class="cline-any cline-yes">7x</span>
363
- <span class="cline-any cline-neutral">&nbsp;</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-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/**
367
- * 分页参数验证工具函数
368
- */
369
- &nbsp;
370
- import { PAGINATION_DEFAULTS } from '../types';
371
- &nbsp;
372
- /**
373
- * 检查值是否为对象类型
374
- *
375
- * @param value - 待检查的值
376
- * @returns 是否为对象类型
377
- */
378
- function isObject(value: unknown): value is Record&lt;string, unknown&gt; {
379
- return typeof value === 'object' &amp;&amp; value !== null;
380
- }
381
- &nbsp;
382
- /**
383
- * Page 风格分页参数
384
- */
385
- export type PaginationValidationResult = {
386
- /**
387
- * 页码
388
- */
389
- page: number;
390
- &nbsp;
391
- /**
392
- * 每页数量
393
- */
394
- pageSize: number;
395
- };
396
- &nbsp;
397
- /**
398
- * Offset 风格分页参数
399
- */
400
- export type OffsetPaginationValidationResult = {
401
- /**
402
- * 限制数量
403
- */
404
- limit: number;
405
- &nbsp;
406
- /**
407
- * 偏移量
408
- */
409
- offset: number;
410
- };
411
- &nbsp;
412
- /**
413
- * 验证页码是否有效
414
- *
415
- * @param page - 页码
416
- * @returns 是否有效
417
- */
418
- export function isValidPage(page: unknown): page is number {
419
- return typeof page === 'number' &amp;&amp; Number.isInteger(page) &amp;&amp; page &gt;= 1;
420
- }
421
- &nbsp;
422
- /**
423
- * 验证每页数量是否有效
424
- *
425
- * @param pageSize - 每页数量
426
- * @returns 是否有效
427
- */
428
- export function isValidPageSize(pageSize: unknown): pageSize is number {
429
- return (
430
- typeof pageSize === 'number' &amp;&amp;
431
- Number.isInteger(pageSize) &amp;&amp;
432
- pageSize &gt;= PAGINATION_DEFAULTS.minPageSize &amp;&amp;
433
- pageSize &lt;= PAGINATION_DEFAULTS.maxPageSize
434
- );
435
- }
436
- &nbsp;
437
- /**
438
- * 验证偏移量是否有效
439
- *
440
- * @param offset - 偏移量
441
- * @returns 是否有效
442
- */
443
- export function isValidOffset(offset: unknown): offset is number {
444
- return typeof offset === 'number' &amp;&amp; Number.isInteger(offset) &amp;&amp; offset &gt;= 0;
445
- }
446
- &nbsp;
447
- /**
448
- * 验证 limit 是否有效
449
- *
450
- * @param limit - 限制数量
451
- * @returns 是否有效
452
- */
453
- export function isValidLimit(limit: unknown): limit is number {
454
- return (
455
- typeof limit === 'number' &amp;&amp;
456
- Number.isInteger(limit) &amp;&amp;
457
- limit &gt;= PAGINATION_DEFAULTS.minPageSize &amp;&amp;
458
- limit &lt;= PAGINATION_DEFAULTS.maxPageSize
459
- );
460
- }
461
- &nbsp;
462
- /**
463
- * 验证分页参数是否有效
464
- *
465
- * @param params - 分页参数
466
- * @returns 是否有效
467
- */
468
- export function isValidPagination(params: unknown): params is PaginationValidationResult {
469
- if (!isObject(params)) {
470
- return false;
471
- }
472
- &nbsp;
473
- /**
474
- * 提取的页码
475
- */
476
- const page = params.page;
477
- &nbsp;
478
- /**
479
- * 提取的每页数量
480
- */
481
- const pageSize = params.pageSize;
482
- &nbsp;
483
- return (
484
- (page === undefined || isValidPage(page)) &amp;&amp;
485
- (pageSize === undefined || isValidPageSize(pageSize))
486
- );
487
- }
488
- &nbsp;
489
- /**
490
- * 验证 offset 分页参数是否有效
491
- *
492
- * @param params - offset 分页参数
493
- * @returns 是否有效
494
- */
495
- export function isValidOffsetPagination(
496
- params: unknown,
497
- ): params is OffsetPaginationValidationResult {
498
- if (!isObject(params)) {
499
- return false;
500
- }
501
- &nbsp;
502
- /**
503
- * 提取的限制数量
504
- */
505
- const limit = params.limit;
506
- &nbsp;
507
- /**
508
- * 提取的偏移量
509
- */
510
- const offset = params.offset;
511
- &nbsp;
512
- return (
513
- (limit === undefined || isValidLimit(limit)) &amp;&amp; (offset === undefined || isValidOffset(offset))
514
- );
515
- }
516
- &nbsp;</pre></td></tr></table></pre>
517
-
518
- <div class='push'></div><!-- for sticky footer -->
519
- </div><!-- /wrapper -->
520
- <div class='footer quiet pad2 space-top1 center small'>
521
- Code coverage generated by
522
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
523
- at 2026-04-09T17:27:15.194Z
524
- </div>
525
- <script src="../../prettify.js"></script>
526
- <script>
527
- window.onload = function () {
528
- prettyPrint();
529
- };
530
- </script>
531
- <script src="../../sorter.js"></script>
532
- <script src="../../block-navigation.js"></script>
533
- </body>
534
- </html>
535
-
package/eslint.config.ts DELETED
@@ -1,3 +0,0 @@
1
- import { defineConfig } from '@longzai-intelligence/eslint-preset-library';
2
-
3
- export default defineConfig();
@@ -1,66 +0,0 @@
1
- /**
2
- * @file index.test.ts
3
- * 主入口导出测试
4
- * @author Longzai Intelligence
5
- */
6
-
7
- import { describe, it, expect } from 'vitest';
8
-
9
- describe('pagination 包导出', () => {
10
- it('应正确导出所有类型', async () => {
11
- const module = await import('@/index');
12
-
13
- expect(module.PAGINATION_DEFAULTS).toBeDefined();
14
- expect(module.PAGINATION_DEFAULTS.page).toBe(1);
15
- expect(module.PAGINATION_DEFAULTS.pageSize).toBe(20);
16
- expect(module.PAGINATION_DEFAULTS.maxPageSize).toBe(100);
17
- expect(module.PAGINATION_DEFAULTS.minPageSize).toBe(1);
18
- });
19
-
20
- it('应正确导出所有工具函数', async () => {
21
- const module = await import('@/index');
22
-
23
- expect(module.normalizePagination).toBeDefined();
24
- expect(module.normalizeOffsetPagination).toBeDefined();
25
- expect(module.calculateOffset).toBeDefined();
26
- expect(module.calculateTotalPages).toBeDefined();
27
- expect(module.hasNextPage).toBeDefined();
28
- expect(module.hasPreviousPage).toBeDefined();
29
- expect(module.offsetToPage).toBeDefined();
30
- expect(module.pageToOffset).toBeDefined();
31
- expect(module.createPaginatedResult).toBeDefined();
32
- });
33
-
34
- it('应正确导出所有验证函数', async () => {
35
- const module = await import('@/index');
36
-
37
- expect(module.isValidPage).toBeDefined();
38
- expect(module.isValidPageSize).toBeDefined();
39
- expect(module.isValidOffset).toBeDefined();
40
- expect(module.isValidLimit).toBeDefined();
41
- expect(module.isValidPagination).toBeDefined();
42
- expect(module.isValidOffsetPagination).toBeDefined();
43
- });
44
-
45
- it('应正确导出所有适配器', async () => {
46
- const module = await import('@/index');
47
-
48
- expect(module.paginateWithRepository).toBeDefined();
49
- expect(module.paginateWithQueryBuilder).toBeDefined();
50
- expect(module.createPaginationQueryBuilder).toBeDefined();
51
- });
52
-
53
- it('normalizePagination 应正常工作', async () => {
54
- const { normalizePagination } = await import('@/index');
55
-
56
- const result = normalizePagination({ page: 2, pageSize: 50 });
57
- expect(result).toEqual({ page: 2, pageSize: 50 });
58
- });
59
-
60
- it('calculateOffset 应正常工作', async () => {
61
- const { calculateOffset } = await import('@/index');
62
-
63
- expect(calculateOffset(1, 20)).toBe(0);
64
- expect(calculateOffset(2, 20)).toBe(20);
65
- });
66
- });