@longzai-intelligence/pagination 0.0.1 → 0.0.2
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.
- package/.turbo/turbo-build.log +3 -3
- package/.turbo/turbo-test$colon$coverage.log +6 -6
- package/.turbo/turbo-test.log +7 -7
- package/CHANGELOG.md +7 -0
- package/README.md +5 -1
- package/coverage/coverage-final.json +6 -2
- package/coverage/index.html +19 -4
- package/coverage/src/adapters/index.html +1 -16
- package/coverage/src/adapters/typeorm.adapter.ts.html +1 -1
- package/coverage/src/index.html +16 -1
- package/coverage/src/index.ts.html +38 -11
- package/coverage/src/schemas/index.html +161 -0
- package/coverage/src/{adapters → schemas}/index.ts.html +61 -10
- package/coverage/src/schemas/pagination.schemas.ts.html +343 -0
- package/coverage/src/schemas/result.schemas.ts.html +724 -0
- package/coverage/src/schemas/sort.schemas.ts.html +544 -0
- package/coverage/src/typeorm.ts.html +154 -0
- package/coverage/src/types/index.html +1 -1
- package/coverage/src/types/index.ts.html +69 -3
- package/coverage/src/types/pagination.types.ts.html +15 -138
- package/coverage/src/types/result.types.ts.html +11 -299
- package/coverage/src/types/sort.types.ts.html +16 -139
- package/coverage/src/types/typeorm.d.ts.html +1 -1
- package/coverage/src/utils/index.html +1 -1
- package/coverage/src/utils/index.ts.html +1 -1
- package/coverage/src/utils/pagination.util.ts.html +1 -1
- package/coverage/src/utils/validation.util.ts.html +1 -1
- package/dist/index-C8FaNzej.d.mts +145 -0
- package/dist/index-CMiyhlfm.d.cts +145 -0
- package/dist/index.cjs +33 -1
- package/dist/index.d.cts +2 -81
- package/dist/index.d.mts +2 -81
- package/dist/index.mjs +1 -1
- package/dist/typeorm.cjs +129 -0
- package/dist/typeorm.d.cts +26 -0
- package/dist/typeorm.d.mts +26 -0
- package/dist/typeorm.mjs +1 -0
- package/dist/utils-CV6Ovku6.mjs +1 -0
- package/dist/utils-D_qD2YAX.cjs +1 -0
- package/docs/specs/spec-20260413-typeorm-subpath-export/checklist.md +33 -0
- package/docs/specs/spec-20260413-typeorm-subpath-export/spec.md +104 -0
- package/docs/specs/spec-20260413-typeorm-subpath-export/tasks.md +48 -0
- package/package.json +15 -3
- package/src/__tests__/index.test.ts +9 -3
- package/src/__tests__/pagination.util.test.ts +0 -2
- package/src/__tests__/result.schemas.test.ts +142 -0
- package/src/__tests__/sort.schemas.test.ts +157 -0
- package/src/__tests__/typeorm.adapter.test.ts +1 -3
- package/src/__tests__/validation.util.test.ts +0 -2
- package/src/adapters/{typeorm.adapter.ts → typeorm/adapter.ts} +10 -92
- package/src/adapters/typeorm/index.ts +23 -0
- package/src/adapters/typeorm/types.ts +95 -0
- package/src/index.ts +18 -9
- package/src/schemas/index.ts +28 -0
- package/src/schemas/pagination.schemas.ts +86 -0
- package/src/schemas/result.schemas.ts +213 -0
- package/src/schemas/sort.schemas.ts +153 -0
- package/src/typeorm.ts +23 -0
- package/src/types/index.ts +23 -1
- package/src/types/pagination.types.ts +13 -54
- package/src/types/result.types.ts +9 -105
- package/src/types/sort.types.ts +14 -55
- package/tsconfig/.cache/app.tsbuildinfo +1 -1
- package/tsconfig/.cache/node.tsbuildinfo +1 -1
- package/tsconfig/.cache/test.tsbuildinfo +1 -1
- package/tsconfig/app.json +4 -1
- package/tsdown.config.ts +10 -3
- package/src/adapters/index.ts +0 -11
- package/tsconfig/.cache/build.tsbuildinfo +0 -1
- /package/src/{types → adapters/typeorm}/typeorm.d.ts +0 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for src/typeorm.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</a> typeorm.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">0% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>0/0</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">0% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>0/0</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">0% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>0/0</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">0% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>0/0</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
90
|
+
<span class="cline-any cline-neutral"> </span>
|
|
91
|
+
<span class="cline-any cline-neutral"> </span>
|
|
92
|
+
<span class="cline-any cline-neutral"> </span>
|
|
93
|
+
<span class="cline-any cline-neutral"> </span>
|
|
94
|
+
<span class="cline-any cline-neutral"> </span>
|
|
95
|
+
<span class="cline-any cline-neutral"> </span>
|
|
96
|
+
<span class="cline-any cline-neutral"> </span>
|
|
97
|
+
<span class="cline-any cline-neutral"> </span>
|
|
98
|
+
<span class="cline-any cline-neutral"> </span>
|
|
99
|
+
<span class="cline-any cline-neutral"> </span>
|
|
100
|
+
<span class="cline-any cline-neutral"> </span>
|
|
101
|
+
<span class="cline-any cline-neutral"> </span>
|
|
102
|
+
<span class="cline-any cline-neutral"> </span>
|
|
103
|
+
<span class="cline-any cline-neutral"> </span>
|
|
104
|
+
<span class="cline-any cline-neutral"> </span>
|
|
105
|
+
<span class="cline-any cline-neutral"> </span>
|
|
106
|
+
<span class="cline-any cline-neutral"> </span>
|
|
107
|
+
<span class="cline-any cline-neutral"> </span>
|
|
108
|
+
<span class="cline-any cline-neutral"> </span>
|
|
109
|
+
<span class="cline-any cline-neutral"> </span>
|
|
110
|
+
<span class="cline-any cline-neutral"> </span>
|
|
111
|
+
<span class="cline-any cline-neutral"> </span>
|
|
112
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/**
|
|
113
|
+
* TypeORM 适配器入口
|
|
114
|
+
*
|
|
115
|
+
* 提供TypeORM分页查询功能,需要安装typeorm作为peerDependency。
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```typescript
|
|
119
|
+
* import { paginateWithRepository } from '@longzai-intelligence/pagination/typeorm';
|
|
120
|
+
*
|
|
121
|
+
* const result = await paginateWithRepository(userRepository, {
|
|
122
|
+
* page: 1,
|
|
123
|
+
* pageSize: 20,
|
|
124
|
+
* });
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
|
|
128
|
+
export type { EntityMapper, TypeOrmPaginateOptions } from './adapters/typeorm.adapter';
|
|
129
|
+
|
|
130
|
+
export {
|
|
131
|
+
paginateWithRepository,
|
|
132
|
+
paginateWithQueryBuilder,
|
|
133
|
+
createPaginationQueryBuilder,
|
|
134
|
+
} from './adapters/typeorm.adapter';
|
|
135
|
+
</pre></td></tr></table></pre>
|
|
136
|
+
|
|
137
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
138
|
+
</div><!-- /wrapper -->
|
|
139
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
140
|
+
Code coverage generated by
|
|
141
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
142
|
+
at 2026-04-12T21:41:37.775Z
|
|
143
|
+
</div>
|
|
144
|
+
<script src="../prettify.js"></script>
|
|
145
|
+
<script>
|
|
146
|
+
window.onload = function () {
|
|
147
|
+
prettyPrint();
|
|
148
|
+
};
|
|
149
|
+
</script>
|
|
150
|
+
<script src="../sorter.js"></script>
|
|
151
|
+
<script src="../block-navigation.js"></script>
|
|
152
|
+
</body>
|
|
153
|
+
</html>
|
|
154
|
+
|
|
@@ -161,7 +161,7 @@
|
|
|
161
161
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
162
162
|
Code coverage generated by
|
|
163
163
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
164
|
-
at 2026-04-
|
|
164
|
+
at 2026-04-12T21:41:37.775Z
|
|
165
165
|
</div>
|
|
166
166
|
<script src="../../prettify.js"></script>
|
|
167
167
|
<script>
|
|
@@ -79,7 +79,51 @@
|
|
|
79
79
|
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
80
|
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
81
|
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
-
<a name='L17'></a><a href='#L17'>17</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
105
|
+
<span class="cline-any cline-neutral"> </span>
|
|
106
|
+
<span class="cline-any cline-neutral"> </span>
|
|
107
|
+
<span class="cline-any cline-neutral"> </span>
|
|
108
|
+
<span class="cline-any cline-neutral"> </span>
|
|
109
|
+
<span class="cline-any cline-neutral"> </span>
|
|
110
|
+
<span class="cline-any cline-neutral"> </span>
|
|
111
|
+
<span class="cline-any cline-neutral"> </span>
|
|
112
|
+
<span class="cline-any cline-neutral"> </span>
|
|
113
|
+
<span class="cline-any cline-neutral"> </span>
|
|
114
|
+
<span class="cline-any cline-neutral"> </span>
|
|
115
|
+
<span class="cline-any cline-neutral"> </span>
|
|
116
|
+
<span class="cline-any cline-neutral"> </span>
|
|
117
|
+
<span class="cline-any cline-neutral"> </span>
|
|
118
|
+
<span class="cline-any cline-neutral"> </span>
|
|
119
|
+
<span class="cline-any cline-neutral"> </span>
|
|
120
|
+
<span class="cline-any cline-neutral"> </span>
|
|
121
|
+
<span class="cline-any cline-neutral"> </span>
|
|
122
|
+
<span class="cline-any cline-neutral"> </span>
|
|
123
|
+
<span class="cline-any cline-neutral"> </span>
|
|
124
|
+
<span class="cline-any cline-neutral"> </span>
|
|
125
|
+
<span class="cline-any cline-neutral"> </span>
|
|
126
|
+
<span class="cline-any cline-neutral"> </span>
|
|
83
127
|
<span class="cline-any cline-neutral"> </span>
|
|
84
128
|
<span class="cline-any cline-neutral"> </span>
|
|
85
129
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -106,11 +150,33 @@ export type {
|
|
|
106
150
|
PaginationDefaults,
|
|
107
151
|
} from './pagination.types';
|
|
108
152
|
|
|
109
|
-
export {
|
|
153
|
+
export {
|
|
154
|
+
PAGINATION_DEFAULTS,
|
|
155
|
+
PaginationDefaultsSchema,
|
|
156
|
+
PaginationParamsSchema,
|
|
157
|
+
OffsetPaginationParamsSchema,
|
|
158
|
+
CursorPaginationParamsSchema,
|
|
159
|
+
} from './pagination.types';
|
|
110
160
|
|
|
111
161
|
export type { PaginatedResult, OffsetPaginatedResult, CursorPaginatedResult } from './result.types';
|
|
112
162
|
|
|
163
|
+
export {
|
|
164
|
+
createPaginatedResultSchema,
|
|
165
|
+
createOffsetPaginatedResultSchema,
|
|
166
|
+
createCursorPaginatedResultSchema,
|
|
167
|
+
} from './result.types';
|
|
168
|
+
|
|
113
169
|
export type { SortOrder, SortParams, SortItem, MultiSortParams } from './sort.types';
|
|
170
|
+
|
|
171
|
+
export {
|
|
172
|
+
SortOrderSchema,
|
|
173
|
+
SortParamsSchema,
|
|
174
|
+
SortItemSchema,
|
|
175
|
+
MultiSortParamsSchema,
|
|
176
|
+
createSortParamsSchema,
|
|
177
|
+
createSortItemSchema,
|
|
178
|
+
createMultiSortParamsSchema,
|
|
179
|
+
} from './sort.types';
|
|
114
180
|
</pre></td></tr></table></pre>
|
|
115
181
|
|
|
116
182
|
<div class='push'></div><!-- for sticky footer -->
|
|
@@ -118,7 +184,7 @@ export type { SortOrder, SortParams, SortItem, MultiSortParams } from './sort.ty
|
|
|
118
184
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
119
185
|
Code coverage generated by
|
|
120
186
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
121
|
-
at 2026-04-
|
|
187
|
+
at 2026-04-12T21:41:37.775Z
|
|
122
188
|
</div>
|
|
123
189
|
<script src="../../prettify.js"></script>
|
|
124
190
|
<script>
|
|
@@ -91,84 +91,7 @@
|
|
|
91
91
|
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
92
|
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
136
|
-
<span class="cline-any cline-neutral"> </span>
|
|
137
|
-
<span class="cline-any cline-neutral"> </span>
|
|
138
|
-
<span class="cline-any cline-neutral"> </span>
|
|
139
|
-
<span class="cline-any cline-neutral"> </span>
|
|
140
|
-
<span class="cline-any cline-neutral"> </span>
|
|
141
|
-
<span class="cline-any cline-neutral"> </span>
|
|
142
|
-
<span class="cline-any cline-neutral"> </span>
|
|
143
|
-
<span class="cline-any cline-neutral"> </span>
|
|
144
|
-
<span class="cline-any cline-neutral"> </span>
|
|
145
|
-
<span class="cline-any cline-neutral"> </span>
|
|
146
|
-
<span class="cline-any cline-neutral"> </span>
|
|
147
|
-
<span class="cline-any cline-neutral"> </span>
|
|
148
|
-
<span class="cline-any cline-neutral"> </span>
|
|
149
|
-
<span class="cline-any cline-neutral"> </span>
|
|
150
|
-
<span class="cline-any cline-neutral"> </span>
|
|
151
|
-
<span class="cline-any cline-neutral"> </span>
|
|
152
|
-
<span class="cline-any cline-neutral"> </span>
|
|
153
|
-
<span class="cline-any cline-neutral"> </span>
|
|
154
|
-
<span class="cline-any cline-neutral"> </span>
|
|
155
|
-
<span class="cline-any cline-neutral"> </span>
|
|
156
|
-
<span class="cline-any cline-neutral"> </span>
|
|
157
|
-
<span class="cline-any cline-neutral"> </span>
|
|
158
|
-
<span class="cline-any cline-neutral"> </span>
|
|
159
|
-
<span class="cline-any cline-neutral"> </span>
|
|
160
|
-
<span class="cline-any cline-neutral"> </span>
|
|
161
|
-
<span class="cline-any cline-neutral"> </span>
|
|
162
|
-
<span class="cline-any cline-neutral"> </span>
|
|
163
|
-
<span class="cline-any cline-neutral"> </span>
|
|
164
|
-
<span class="cline-any cline-neutral"> </span>
|
|
165
|
-
<span class="cline-any cline-neutral"> </span>
|
|
166
|
-
<span class="cline-any cline-neutral"> </span>
|
|
167
|
-
<span class="cline-any cline-neutral"> </span>
|
|
168
|
-
<span class="cline-any cline-neutral"> </span>
|
|
169
|
-
<span class="cline-any cline-neutral"> </span>
|
|
170
|
-
<span class="cline-any cline-neutral"> </span>
|
|
171
|
-
<span class="cline-any cline-neutral"> </span>
|
|
94
|
+
<a name='L29'></a><a href='#L29'>29</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
172
95
|
<span class="cline-any cline-neutral"> </span>
|
|
173
96
|
<span class="cline-any cline-neutral"> </span>
|
|
174
97
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -196,68 +119,27 @@
|
|
|
196
119
|
<span class="cline-any cline-neutral"> </span>
|
|
197
120
|
<span class="cline-any cline-neutral"> </span>
|
|
198
121
|
<span class="cline-any cline-neutral"> </span>
|
|
199
|
-
<span class="cline-any cline-neutral"> </span>
|
|
200
|
-
<span class="cline-any cline-neutral"> </span>
|
|
201
|
-
<span class="cline-any cline-neutral"> </span>
|
|
202
|
-
<span class="cline-any cline-neutral"> </span>
|
|
203
|
-
<span class="cline-any cline-neutral"> </span>
|
|
204
122
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/**
|
|
205
123
|
* 分页参数类型定义
|
|
206
|
-
*/
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* 分页参数(page 风格,推荐使用)
|
|
210
|
-
*
|
|
211
|
-
* 适用于用户界面分页场景
|
|
212
|
-
*/
|
|
213
|
-
export type PaginationParams = {
|
|
214
|
-
/**
|
|
215
|
-
* 页码(从 1 开始)
|
|
216
|
-
*/
|
|
217
|
-
page?: number;
|
|
218
|
-
|
|
219
|
-
/**
|
|
220
|
-
* 每页数量
|
|
221
|
-
*/
|
|
222
|
-
pageSize?: number;
|
|
223
|
-
};
|
|
224
|
-
|
|
225
|
-
/**
|
|
226
|
-
* 分页参数(offset 风格)
|
|
227
124
|
*
|
|
228
|
-
*
|
|
125
|
+
* 类型从 zod schemas 推导导出
|
|
229
126
|
*/
|
|
230
|
-
export type OffsetPaginationParams = {
|
|
231
|
-
/**
|
|
232
|
-
* 限制数量
|
|
233
|
-
*/
|
|
234
|
-
limit?: number;
|
|
235
127
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
128
|
+
export {
|
|
129
|
+
PaginationDefaultsSchema,
|
|
130
|
+
PaginationParamsSchema,
|
|
131
|
+
OffsetPaginationParamsSchema,
|
|
132
|
+
CursorPaginationParamsSchema,
|
|
133
|
+
type PaginationDefaults,
|
|
134
|
+
type PaginationParams,
|
|
135
|
+
type OffsetPaginationParams,
|
|
136
|
+
type CursorPaginationParams,
|
|
137
|
+
} from '../schemas/pagination.schemas';
|
|
241
138
|
|
|
242
139
|
/**
|
|
243
|
-
*
|
|
140
|
+
* 默认分页配置值
|
|
244
141
|
*
|
|
245
|
-
*
|
|
246
|
-
*/
|
|
247
|
-
export type CursorPaginationParams = {
|
|
248
|
-
/**
|
|
249
|
-
* 游标
|
|
250
|
-
*/
|
|
251
|
-
cursor?: string;
|
|
252
|
-
|
|
253
|
-
/**
|
|
254
|
-
* 限制数量
|
|
255
|
-
*/
|
|
256
|
-
limit?: number;
|
|
257
|
-
};
|
|
258
|
-
|
|
259
|
-
/**
|
|
260
|
-
* 默认分页配置
|
|
142
|
+
* 用于运行时验证和默认值设置
|
|
261
143
|
*/
|
|
262
144
|
export const PAGINATION_DEFAULTS = {
|
|
263
145
|
page: 1,
|
|
@@ -265,11 +147,6 @@ export const PAGINATION_DEFAULTS = {
|
|
|
265
147
|
maxPageSize: 100,
|
|
266
148
|
minPageSize: 1,
|
|
267
149
|
} as const;
|
|
268
|
-
|
|
269
|
-
/**
|
|
270
|
-
* 默认分页参数类型
|
|
271
|
-
*/
|
|
272
|
-
export type PaginationDefaults = typeof PAGINATION_DEFAULTS;
|
|
273
150
|
</pre></td></tr></table></pre>
|
|
274
151
|
|
|
275
152
|
<div class='push'></div><!-- for sticky footer -->
|
|
@@ -277,7 +154,7 @@ export type PaginationDefaults = typeof PAGINATION_DEFAULTS;
|
|
|
277
154
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
278
155
|
Code coverage generated by
|
|
279
156
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
280
|
-
at 2026-04-
|
|
157
|
+
at 2026-04-12T21:41:37.775Z
|
|
281
158
|
</div>
|
|
282
159
|
<script src="../../prettify.js"></script>
|
|
283
160
|
<script>
|