@longzai-intelligence/pagination 0.0.2 → 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.
- package/README.md +36 -207
- package/dist/hono.cjs +1 -0
- package/dist/hono.d.cts +15 -0
- package/dist/hono.d.mts +15 -0
- package/dist/hono.mjs +1 -0
- package/dist/{index-C8FaNzej.d.mts → index-C4IwIpFc.d.mts} +55 -1
- package/dist/{index-CMiyhlfm.d.cts → index-DpbbjAwO.d.cts} +55 -1
- package/dist/index.cjs +1 -33
- package/dist/index.d.cts +80 -2
- package/dist/index.d.mts +80 -2
- package/dist/index.mjs +1 -1
- package/dist/typeorm.cjs +1 -129
- package/dist/typeorm.d.cts +1 -1
- package/dist/typeorm.d.mts +1 -1
- package/dist/typeorm.mjs +1 -1
- package/dist/utils-B200OLT-.cjs +1 -0
- package/dist/utils-DsM7-PZL.mjs +1 -0
- package/package.json +19 -7
- package/.turbo/turbo-build.log +0 -22
- package/.turbo/turbo-lint.log +0 -1
- package/.turbo/turbo-test$colon$coverage.log +0 -36
- package/.turbo/turbo-test.log +0 -14
- package/.turbo/turbo-typecheck.log +0 -4
- package/CHANGELOG.md +0 -18
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/coverage-final.json +0 -16
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -176
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -210
- package/coverage/src/adapters/index.html +0 -116
- package/coverage/src/adapters/typeorm.adapter.ts.html +0 -940
- package/coverage/src/index.html +0 -131
- package/coverage/src/index.ts.html +0 -280
- package/coverage/src/schemas/index.html +0 -161
- package/coverage/src/schemas/index.ts.html +0 -169
- package/coverage/src/schemas/pagination.schemas.ts.html +0 -343
- package/coverage/src/schemas/result.schemas.ts.html +0 -724
- package/coverage/src/schemas/sort.schemas.ts.html +0 -544
- package/coverage/src/typeorm.ts.html +0 -154
- package/coverage/src/types/index.html +0 -176
- package/coverage/src/types/index.ts.html +0 -199
- package/coverage/src/types/pagination.types.ts.html +0 -169
- package/coverage/src/types/result.types.ts.html +0 -127
- package/coverage/src/types/sort.types.ts.html +0 -142
- package/coverage/src/types/typeorm.d.ts.html +0 -196
- package/coverage/src/utils/index.html +0 -146
- package/coverage/src/utils/index.ts.html +0 -178
- package/coverage/src/utils/pagination.util.ts.html +0 -703
- package/coverage/src/utils/validation.util.ts.html +0 -535
- package/dist/utils-CV6Ovku6.mjs +0 -1
- package/dist/utils-D_qD2YAX.cjs +0 -1
- package/docs/specs/spec-20260413-typeorm-subpath-export/checklist.md +0 -33
- package/docs/specs/spec-20260413-typeorm-subpath-export/spec.md +0 -104
- package/docs/specs/spec-20260413-typeorm-subpath-export/tasks.md +0 -48
- package/eslint.config.ts +0 -3
- package/src/__tests__/index.test.ts +0 -72
- package/src/__tests__/pagination.util.test.ts +0 -251
- package/src/__tests__/result.schemas.test.ts +0 -142
- package/src/__tests__/sort.schemas.test.ts +0 -157
- package/src/__tests__/typeorm.adapter.test.ts +0 -212
- package/src/__tests__/validation.util.test.ts +0 -120
- package/src/adapters/typeorm/adapter.ts +0 -203
- package/src/adapters/typeorm/index.ts +0 -23
- package/src/adapters/typeorm/typeorm.d.ts +0 -37
- package/src/adapters/typeorm/types.ts +0 -95
- package/src/index.ts +0 -65
- package/src/schemas/index.ts +0 -28
- package/src/schemas/pagination.schemas.ts +0 -86
- package/src/schemas/result.schemas.ts +0 -213
- package/src/schemas/sort.schemas.ts +0 -153
- package/src/typeorm.ts +0 -23
- package/src/types/index.ts +0 -38
- package/src/types/pagination.types.ts +0 -28
- package/src/types/result.types.ts +0 -14
- package/src/types/sort.types.ts +0 -19
- package/src/utils/index.ts +0 -31
- package/src/utils/pagination.util.ts +0 -206
- package/src/utils/validation.util.ts +0 -150
- package/tsconfig/.cache/app.tsbuildinfo +0 -1
- package/tsconfig/.cache/node.tsbuildinfo +0 -1
- package/tsconfig/.cache/test.tsbuildinfo +0 -1
- package/tsconfig/app.json +0 -15
- package/tsconfig/node.json +0 -11
- package/tsconfig/test.json +0 -14
- package/tsconfig.json +0 -9
- package/tsdown.config.ts +0 -13
- package/vitest.config.ts +0 -3
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { C as
|
|
1
|
+
import { A as createPaginationSchema, C as CursorPaginationParamsSchema, D as PaginationDefaultsSchema, E as PaginationDefaults, O as PaginationParams, S as CursorPaginationParams, T as OffsetPaginationParamsSchema, _ as createCursorPaginatedResultSchema, a as SortOrder, b as createResultSchema, c as SortParamsSchema, d as createSortParamsSchema, f as CompactPaginatedResult, g as createCompactPaginatedResultSchema, h as PaginatedResult, i as SortItemSchema, k as PaginationParamsSchema, l as createMultiSortParamsSchema, m as OffsetPaginatedResult, n as MultiSortParamsSchema, o as SortOrderSchema, p as CursorPaginatedResult, r as SortItem, s as SortParams, t as MultiSortParams, u as createSortItemSchema, v as createOffsetPaginatedResultSchema, w as OffsetPaginationParams, x as PAGINATION_DEFAULTS, y as createPaginatedResultSchema } from "./index-C4IwIpFc.mjs";
|
|
2
|
+
import * as _$zod from "zod";
|
|
3
|
+
import { z } from "zod";
|
|
2
4
|
|
|
3
5
|
//#region src/utils/pagination.util.d.ts
|
|
4
6
|
type OffsetPaginationResult = {
|
|
@@ -18,6 +20,20 @@ declare function hasPreviousPage(page: number): boolean;
|
|
|
18
20
|
declare function offsetToPage(offset: number, limit: number): OffsetPaginationResult;
|
|
19
21
|
declare function pageToOffset(page: number, pageSize: number): PagePaginationResult;
|
|
20
22
|
declare function createPaginatedResult<T>(items: T[], total: number, page: number, pageSize: number): PaginatedResult<T>;
|
|
23
|
+
type PaginationDefaultsOverrides = {
|
|
24
|
+
page?: number;
|
|
25
|
+
pageSize?: number;
|
|
26
|
+
maxPageSize?: number;
|
|
27
|
+
minPageSize?: number;
|
|
28
|
+
};
|
|
29
|
+
declare function createPaginationDefaults(overrides?: PaginationDefaultsOverrides): {
|
|
30
|
+
normalize(params?: PaginationParams): Required<PaginationParams>;
|
|
31
|
+
normalizeOffset(params?: OffsetPaginationParams): Required<OffsetPaginationParams>;
|
|
32
|
+
page: number;
|
|
33
|
+
pageSize: number;
|
|
34
|
+
maxPageSize: number;
|
|
35
|
+
minPageSize: number;
|
|
36
|
+
};
|
|
21
37
|
//#endregion
|
|
22
38
|
//#region src/utils/validation.util.d.ts
|
|
23
39
|
type PaginationValidationResult = {
|
|
@@ -35,4 +51,66 @@ declare function isValidLimit(limit: unknown): limit is number;
|
|
|
35
51
|
declare function isValidPagination(params: unknown): params is PaginationValidationResult;
|
|
36
52
|
declare function isValidOffsetPagination(params: unknown): params is OffsetPaginationValidationResult;
|
|
37
53
|
//#endregion
|
|
38
|
-
|
|
54
|
+
//#region src/presets/types.d.ts
|
|
55
|
+
type PaginationPreset<Q, R> = {
|
|
56
|
+
querySchema: _$zod.ZodTypeAny;
|
|
57
|
+
resultSchema: _$zod.ZodTypeAny;
|
|
58
|
+
parseQuery(query: Record<string, string | undefined>): Q;
|
|
59
|
+
buildResult(...args: unknown[]): R;
|
|
60
|
+
};
|
|
61
|
+
type TablePresetConfig = {
|
|
62
|
+
pageSizeField?: 'pageSize' | 'limit';
|
|
63
|
+
defaultPageSize?: number;
|
|
64
|
+
maxPageSize?: number;
|
|
65
|
+
sortFields?: readonly [string, ...string[]];
|
|
66
|
+
businessFields?: Record<string, _$zod.ZodTypeAny>;
|
|
67
|
+
};
|
|
68
|
+
type TablePreset<Q = Record<string, unknown>> = PaginationPreset<Q, PaginatedResult<unknown>> & {
|
|
69
|
+
defaults: ReturnType<typeof createPaginationDefaults>;
|
|
70
|
+
normalize(params?: Record<string, unknown>): {
|
|
71
|
+
page: number;
|
|
72
|
+
pageSize: number;
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
type InfiniteScrollPresetConfig = {
|
|
76
|
+
cursorField?: string;
|
|
77
|
+
defaultPageSize?: number;
|
|
78
|
+
businessFields?: Record<string, _$zod.ZodTypeAny>;
|
|
79
|
+
};
|
|
80
|
+
type InfiniteScrollPreset<Q = Record<string, unknown>> = PaginationPreset<Q, CursorPaginatedResult<unknown>>;
|
|
81
|
+
type TimelinePresetConfig = {
|
|
82
|
+
defaultLimit?: number;
|
|
83
|
+
maxLimit?: number;
|
|
84
|
+
businessFields?: Record<string, _$zod.ZodTypeAny>;
|
|
85
|
+
};
|
|
86
|
+
type TimelinePreset<Q = Record<string, unknown>> = PaginationPreset<Q, CompactPaginatedResult<unknown>>;
|
|
87
|
+
type CompactListPresetConfig = {
|
|
88
|
+
mode?: 'page' | 'offset';
|
|
89
|
+
pageSizeField?: string;
|
|
90
|
+
defaultPageSize?: number;
|
|
91
|
+
businessFields?: Record<string, _$zod.ZodTypeAny>;
|
|
92
|
+
};
|
|
93
|
+
type CompactListPreset<Q = Record<string, unknown>> = PaginationPreset<Q, CompactPaginatedResult<unknown>>;
|
|
94
|
+
//#endregion
|
|
95
|
+
//#region src/presets/table.preset.d.ts
|
|
96
|
+
declare function createTablePreset<TSort extends readonly [string, ...string[]], TBusiness extends Record<string, z.ZodTypeAny>>(config?: TablePresetConfig & {
|
|
97
|
+
sortFields?: TSort;
|
|
98
|
+
businessFields?: TBusiness;
|
|
99
|
+
}): TablePreset;
|
|
100
|
+
//#endregion
|
|
101
|
+
//#region src/presets/infinite-scroll.preset.d.ts
|
|
102
|
+
declare function createInfiniteScrollPreset<TBusiness extends Record<string, z.ZodTypeAny>>(config?: InfiniteScrollPresetConfig & {
|
|
103
|
+
businessFields?: TBusiness;
|
|
104
|
+
}): InfiniteScrollPreset;
|
|
105
|
+
//#endregion
|
|
106
|
+
//#region src/presets/timeline.preset.d.ts
|
|
107
|
+
declare function createTimelinePreset<TBusiness extends Record<string, z.ZodTypeAny>>(config?: TimelinePresetConfig & {
|
|
108
|
+
businessFields?: TBusiness;
|
|
109
|
+
}): TimelinePreset;
|
|
110
|
+
//#endregion
|
|
111
|
+
//#region src/presets/compact-list.preset.d.ts
|
|
112
|
+
declare function createCompactListPreset<TBusiness extends Record<string, z.ZodTypeAny>>(config?: CompactListPresetConfig & {
|
|
113
|
+
businessFields?: TBusiness;
|
|
114
|
+
}): CompactListPreset;
|
|
115
|
+
//#endregion
|
|
116
|
+
export { type CompactListPreset, type CompactListPresetConfig, type CompactPaginatedResult, type CursorPaginatedResult, type CursorPaginationParams, CursorPaginationParamsSchema, type InfiniteScrollPreset, type InfiniteScrollPresetConfig, type MultiSortParams, MultiSortParamsSchema, type OffsetPaginatedResult, type OffsetPaginationParams, OffsetPaginationParamsSchema, type OffsetPaginationResult, type OffsetPaginationValidationResult, PAGINATION_DEFAULTS, type PagePaginationResult, type PaginatedResult, type PaginationDefaults, PaginationDefaultsSchema, type PaginationParams, PaginationParamsSchema, type PaginationPreset, type PaginationValidationResult, type SortItem, SortItemSchema, type SortOrder, SortOrderSchema, type SortParams, SortParamsSchema, type TablePreset, type TablePresetConfig, type TimelinePreset, type TimelinePresetConfig, calculateOffset, calculateTotalPages, createCompactListPreset, createCompactPaginatedResultSchema, createCursorPaginatedResultSchema, createInfiniteScrollPreset, createMultiSortParamsSchema, createOffsetPaginatedResultSchema, createPaginatedResult, createPaginatedResultSchema, createPaginationDefaults, createPaginationSchema, createResultSchema, createSortItemSchema, createSortParamsSchema, createTablePreset, createTimelinePreset, hasNextPage, hasPreviousPage, isValidLimit, isValidOffset, isValidOffsetPagination, isValidPage, isValidPageSize, isValidPagination, normalizeOffsetPagination, normalizePagination, offsetToPage, pageToOffset };
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as e,C as t,D as n,E as r,
|
|
1
|
+
import{A as e,C as t,D as n,E as r,M as i,N as a,O as o,P as s,S as c,T as l,_ as u,a as d,b as f,c as p,d as m,f as h,g,h as _,i as v,j as y,k as b,l as x,m as S,n as C,o as w,p as T,r as E,s as D,t as O,u as k,v as A,w as j,x as M,y as N}from"./utils-DsM7-PZL.mjs";import{z as P}from"zod";function F(e){if(e===void 0)return;let t=Number(e);return Number.isNaN(t)?void 0:t}function I(e){let n=e?.pageSizeField??`pageSize`,r=k({pageSize:e?.defaultPageSize,maxPageSize:e?.maxPageSize}),i=s({mode:`page`,pageSizeField:n}),a=e?.sortFields?t([...e.sortFields]):P.object({}),c=i.merge(a).extend(e?.businessFields??{});return{querySchema:c,resultSchema:o(P.unknown(),{mode:`page`,pageSizeField:n}),defaults:r,normalize(e){return r.normalize({page:e?.page,pageSize:e?.[n]})},parseQuery(t){let r={};if(t.page!==void 0&&(r.page=F(t.page)),t[n]!==void 0&&(r[n]=F(t[n])),t.sortBy!==void 0&&(r.sortBy=t.sortBy),t.sortOrder!==void 0&&(r.sortOrder=t.sortOrder),e?.businessFields)for(let n of Object.keys(e.businessFields))t[n]!==void 0&&(r[n]=t[n]);return c.parse(r)},buildResult(e,t,n,r){return x(e,t,n,r)}}}function L(e){if(e===void 0)return;let t=Number(e);return Number.isNaN(t)?void 0:t}function R(e){let t=e?.cursorField??`cursor`,n=s({mode:`cursor`,cursorField:t}).extend(e?.businessFields??{});return{querySchema:n,resultSchema:o(P.unknown(),{mode:`cursor`}),parseQuery(r){let i={};if(r[t]!==void 0&&(i[t]=r[t]),r.limit!==void 0&&(i.limit=L(r.limit)),e?.businessFields)for(let t of Object.keys(e.businessFields))r[t]!==void 0&&(i[t]=r[t]);return n.parse(i)},buildResult(e,t,n){return{items:e,nextCursor:t,previousCursor:null,hasMore:n}}}}function z(e){if(e===void 0)return;let t=Number(e);return Number.isNaN(t)?void 0:t}function B(e){let t=s({mode:`offset`,fields:{limit:!0,offset:!1}}).extend(e?.businessFields??{});return{querySchema:t,resultSchema:o(P.unknown(),{mode:`compact`}),parseQuery(n){let r={};if(n.limit!==void 0&&(r.limit=z(n.limit)),e?.businessFields)for(let t of Object.keys(e.businessFields))n[t]!==void 0&&(r[t]=n[t]);return t.parse(r)},buildResult(e,t,n){return{items:e,total:t,hasMore:n}}}}function V(e){if(e===void 0)return;let t=Number(e);return Number.isNaN(t)?void 0:t}function H(e){let t=e?.mode??`page`,n=e?.pageSizeField??`pageSize`,r=s({mode:t,pageSizeField:n}).extend(e?.businessFields??{});return{querySchema:r,resultSchema:o(P.unknown(),{mode:`compact`}),parseQuery(i){let a={};if(t===`page`?(i.page!==void 0&&(a.page=V(i.page)),i[n]!==void 0&&(a[n]=V(i[n]))):(i.limit!==void 0&&(a.limit=V(i.limit)),i.offset!==void 0&&(a.offset=V(i.offset))),e?.businessFields)for(let t of Object.keys(e.businessFields))i[t]!==void 0&&(a[t]=i[t]);return r.parse(a)},buildResult(e,t,n){return{items:e,total:t,hasMore:n}}}}export{e as CursorPaginationParamsSchema,u as MultiSortParamsSchema,y as OffsetPaginationParamsSchema,b as PAGINATION_DEFAULTS,i as PaginationDefaultsSchema,a as PaginationParamsSchema,A as SortItemSchema,N as SortOrderSchema,f as SortParamsSchema,D as calculateOffset,p as calculateTotalPages,H as createCompactListPreset,j as createCompactPaginatedResultSchema,l as createCursorPaginatedResultSchema,R as createInfiniteScrollPreset,M as createMultiSortParamsSchema,r as createOffsetPaginatedResultSchema,x as createPaginatedResult,n as createPaginatedResultSchema,k as createPaginationDefaults,s as createPaginationSchema,o as createResultSchema,c as createSortItemSchema,t as createSortParamsSchema,I as createTablePreset,B as createTimelinePreset,m as hasNextPage,h as hasPreviousPage,O as isValidLimit,C as isValidOffset,E as isValidOffsetPagination,v as isValidPage,d as isValidPageSize,w as isValidPagination,T as normalizeOffsetPagination,S as normalizePagination,_ as offsetToPage,g as pageToOffset};
|
package/dist/typeorm.cjs
CHANGED
|
@@ -1,129 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,
|
|
2
|
-
const require_utils = require('./utils-DazsDMMu.cjs');
|
|
3
|
-
|
|
4
|
-
//#region src/adapters/typeorm/adapter.ts
|
|
5
|
-
/**
|
|
6
|
-
* 类型守卫:检查选项是否包含映射器
|
|
7
|
-
*
|
|
8
|
-
* @typeParam TEntity - 实体类型
|
|
9
|
-
* @typeParam TDto - DTO 类型
|
|
10
|
-
* @param options - 查询选项
|
|
11
|
-
* @returns 是否包含映射器
|
|
12
|
-
*/
|
|
13
|
-
function hasMapper(options) {
|
|
14
|
-
return options !== void 0 && "mapper" in options;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* 构建分页结果
|
|
18
|
-
*
|
|
19
|
-
* 内部辅助函数,构建分页结果对象
|
|
20
|
-
*
|
|
21
|
-
* @typeParam TDto - DTO 类型
|
|
22
|
-
* @param items - 数据项数组
|
|
23
|
-
* @param total - 总数
|
|
24
|
-
* @param page - 当前页
|
|
25
|
-
* @param pageSize - 每页大小
|
|
26
|
-
* @returns 分页结果
|
|
27
|
-
*/
|
|
28
|
-
function buildPaginatedResult(items, total, page, pageSize) {
|
|
29
|
-
/**
|
|
30
|
-
* 计算得到的总页数
|
|
31
|
-
*/
|
|
32
|
-
const totalPages = require_utils.calculateTotalPages(total, pageSize);
|
|
33
|
-
return {
|
|
34
|
-
items,
|
|
35
|
-
total,
|
|
36
|
-
page,
|
|
37
|
-
pageSize,
|
|
38
|
-
totalPages,
|
|
39
|
-
hasNextPage: require_utils.hasNextPage(page, totalPages),
|
|
40
|
-
hasPreviousPage: require_utils.hasPreviousPage(page)
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* 使用 Repository 进行分页查询
|
|
45
|
-
*
|
|
46
|
-
* 通过 TypeORM Repository 进行分页查询,支持实体到 DTO 的映射
|
|
47
|
-
*
|
|
48
|
-
* 当提供 mapper 时返回映射后的 DTO,否则返回原始实体
|
|
49
|
-
*
|
|
50
|
-
* @typeParam TEntity - 实体类型
|
|
51
|
-
* @typeParam TDto - DTO 类型
|
|
52
|
-
* @param repository - TypeORM 仓库
|
|
53
|
-
* @param params - 分页参数
|
|
54
|
-
* @param options - 查询选项
|
|
55
|
-
* @returns 分页结果
|
|
56
|
-
*/
|
|
57
|
-
async function paginateWithRepository(repository, params, options) {
|
|
58
|
-
/**
|
|
59
|
-
* 规范化后的分页参数
|
|
60
|
-
*/
|
|
61
|
-
const { page, pageSize } = require_utils.normalizePagination(params);
|
|
62
|
-
/**
|
|
63
|
-
* TypeORM 查询选项配置
|
|
64
|
-
*/
|
|
65
|
-
const findOptions = {
|
|
66
|
-
skip: require_utils.calculateOffset(page, pageSize),
|
|
67
|
-
take: pageSize,
|
|
68
|
-
where: options?.where,
|
|
69
|
-
relations: options?.relations,
|
|
70
|
-
select: options?.select,
|
|
71
|
-
order: options?.order ?? { createdAt: "DESC" }
|
|
72
|
-
};
|
|
73
|
-
/**
|
|
74
|
-
* 查询结果:实体数组和总数
|
|
75
|
-
*/
|
|
76
|
-
const [entities, total] = await repository.findAndCount(findOptions);
|
|
77
|
-
if (hasMapper(options)) return buildPaginatedResult(await Promise.all(entities.map(options.mapper)), total, page, pageSize);
|
|
78
|
-
return buildPaginatedResult(entities, total, page, pageSize);
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* 使用 QueryBuilder 进行分页查询
|
|
82
|
-
*
|
|
83
|
-
* 通过 TypeORM QueryBuilder 进行分页查询,支持实体到 DTO 的映射
|
|
84
|
-
*
|
|
85
|
-
* 当提供 mapper 时返回映射后的 DTO,否则返回原始实体
|
|
86
|
-
*
|
|
87
|
-
* @typeParam TEntity - 实体类型
|
|
88
|
-
* @typeParam TDto - DTO 类型
|
|
89
|
-
* @param queryBuilder - TypeORM QueryBuilder
|
|
90
|
-
* @param params - 分页参数
|
|
91
|
-
* @param mapper - 实体到 DTO 的映射函数(可选)
|
|
92
|
-
* @returns 分页结果
|
|
93
|
-
*/
|
|
94
|
-
async function paginateWithQueryBuilder(queryBuilder, params, mapper) {
|
|
95
|
-
/**
|
|
96
|
-
* 规范化后的分页参数
|
|
97
|
-
*/
|
|
98
|
-
const { page, pageSize } = require_utils.normalizePagination(params);
|
|
99
|
-
/**
|
|
100
|
-
* 计算得到的偏移量
|
|
101
|
-
*/
|
|
102
|
-
const offset = require_utils.calculateOffset(page, pageSize);
|
|
103
|
-
queryBuilder.skip(offset).take(pageSize);
|
|
104
|
-
/**
|
|
105
|
-
* 查询结果:实体数组和总数
|
|
106
|
-
*/
|
|
107
|
-
const [entities, total] = await queryBuilder.getManyAndCount();
|
|
108
|
-
if (mapper) return buildPaginatedResult(await Promise.all(entities.map(mapper)), total, page, pageSize);
|
|
109
|
-
return buildPaginatedResult(entities, total, page, pageSize);
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* 创建分页查询构建器
|
|
113
|
-
*
|
|
114
|
-
* 创建一个用于分页查询的 TypeORM QueryBuilder
|
|
115
|
-
*
|
|
116
|
-
* @typeParam TEntity - 实体类型
|
|
117
|
-
* @param repository - TypeORM 仓库
|
|
118
|
-
* @param alias - 查询别名
|
|
119
|
-
* @returns QueryBuilder
|
|
120
|
-
*/
|
|
121
|
-
function createPaginationQueryBuilder(repository, alias) {
|
|
122
|
-
return repository.createQueryBuilder(alias ?? repository.metadata.name.toLowerCase());
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
//#endregion
|
|
126
|
-
exports.createPaginationQueryBuilder = createPaginationQueryBuilder;
|
|
127
|
-
exports.paginateWithQueryBuilder = paginateWithQueryBuilder;
|
|
128
|
-
exports.paginateWithRepository = paginateWithRepository;
|
|
129
|
-
//# sourceMappingURL=typeorm.cjs.map
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./utils-B200OLT-.cjs`);function t(e){return e!==void 0&&`mapper`in e}function n(t,n,r,i){let a=e.c(n,i);return{items:t,total:n,page:r,pageSize:i,totalPages:a,hasNextPage:e.d(r,a),hasPreviousPage:e.f(r)}}async function r(r,i,a){let{page:o,pageSize:s}=e.m(i),c={skip:e.s(o,s),take:s,where:a?.where,relations:a?.relations,select:a?.select,order:a?.order??{createdAt:`DESC`}},[l,u]=await r.findAndCount(c);return t(a)?n(await Promise.all(l.map(a.mapper)),u,o,s):n(l,u,o,s)}async function i(t,r,i){let{page:a,pageSize:o}=e.m(r),s=e.s(a,o);t.skip(s).take(o);let[c,l]=await t.getManyAndCount();return n(i?await Promise.all(c.map(i)):c,l,a,o)}function a(e,t){return e.createQueryBuilder(t??e.metadata.name.toLowerCase())}exports.createPaginationQueryBuilder=a,exports.paginateWithQueryBuilder=i,exports.paginateWithRepository=r;
|
package/dist/typeorm.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { O as PaginationParams, h as PaginatedResult } from "./index-DpbbjAwO.cjs";
|
|
2
2
|
import { FindManyOptions, FindOptionsOrder, ObjectLiteral, Repository, SelectQueryBuilder } from "typeorm";
|
|
3
3
|
|
|
4
4
|
//#region src/adapters/typeorm/types.d.ts
|
package/dist/typeorm.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { O as PaginationParams, h as PaginatedResult } from "./index-C4IwIpFc.mjs";
|
|
2
2
|
import { FindManyOptions, FindOptionsOrder, ObjectLiteral, Repository, SelectQueryBuilder } from "typeorm";
|
|
3
3
|
|
|
4
4
|
//#region src/adapters/typeorm/types.d.ts
|
package/dist/typeorm.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e,d as t,
|
|
1
|
+
import{c as e,d as t,f as n,m as r,s as i}from"./utils-DsM7-PZL.mjs";function a(e){return e!==void 0&&`mapper`in e}function o(r,i,a,o){let s=e(i,o);return{items:r,total:i,page:a,pageSize:o,totalPages:s,hasNextPage:t(a,s),hasPreviousPage:n(a)}}async function s(e,t,n){let{page:s,pageSize:c}=r(t),l={skip:i(s,c),take:c,where:n?.where,relations:n?.relations,select:n?.select,order:n?.order??{createdAt:`DESC`}},[u,d]=await e.findAndCount(l);return a(n)?o(await Promise.all(u.map(n.mapper)),d,s,c):o(u,d,s,c)}async function c(e,t,n){let{page:a,pageSize:s}=r(t),c=i(a,s);e.skip(c).take(s);let[l,u]=await e.getManyAndCount();return o(n?await Promise.all(l.map(n)):l,u,a,s)}function l(e,t){return e.createQueryBuilder(t??e.metadata.name.toLowerCase())}export{l as createPaginationQueryBuilder,c as paginateWithQueryBuilder,s as paginateWithRepository};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let e=require(`zod`);const t=e.z.object({page:e.z.literal(1),pageSize:e.z.literal(20),maxPageSize:e.z.literal(100),minPageSize:e.z.literal(1)}),n=e.z.object({page:e.z.number().int().positive().optional(),pageSize:e.z.number().int().positive().optional()}),r=e.z.object({limit:e.z.number().int().positive().optional(),offset:e.z.number().int().nonnegative().optional()}),i=e.z.object({cursor:e.z.string().optional(),limit:e.z.number().int().positive().optional()});function a(t){let{mode:n,pageSizeField:r=`pageSize`,cursorField:i=`cursor`,fields:a}=t;if(n===`page`){let t=a?.page===!1?{}:{page:e.z.number().int().positive().optional()},n=a?.pageSize===!1?{}:{[r]:e.z.number().int().positive().optional()};return e.z.object({...t,...n})}if(n===`offset`){let t=a?.limit===!1?{}:{limit:e.z.number().int().positive().optional()},n=a?.offset===!1?{}:{offset:e.z.number().int().nonnegative().optional()};return e.z.object({...t,...n})}if(n===`cursor`){let t=a?.cursor===!1?{}:{[i]:e.z.string().optional()},n=a?.limit===!1?{}:{limit:e.z.number().int().positive().optional()};return e.z.object({...t,...n})}throw Error(`不支持的分页模式: ${n}`)}const o={page:1,pageSize:20,maxPageSize:100,minPageSize:1};function s(t){return e.z.object({items:e.z.array(t),total:e.z.number().int().nonnegative(),page:e.z.number().int().positive(),pageSize:e.z.number().int().positive(),totalPages:e.z.number().int().nonnegative(),hasNextPage:e.z.boolean(),hasPreviousPage:e.z.boolean()})}function c(t){return e.z.object({items:e.z.array(t),total:e.z.number().int().nonnegative(),limit:e.z.number().int().nonnegative(),offset:e.z.number().int().nonnegative(),hasMore:e.z.boolean()})}function l(t){return e.z.object({items:e.z.array(t),nextCursor:e.z.string().nullable(),previousCursor:e.z.string().nullable(),hasMore:e.z.boolean()})}function u(t){return e.z.object({items:e.z.array(t),total:e.z.number().int().nonnegative(),hasMore:e.z.boolean()})}function d(t,n){let{mode:r,pageSizeField:i=`pageSize`}=n;if(r===`page`)return e.z.object({items:e.z.array(t),total:e.z.number().int().nonnegative(),page:e.z.number().int().positive(),[i]:e.z.number().int().positive(),totalPages:e.z.number().int().nonnegative(),hasNextPage:e.z.boolean(),hasPreviousPage:e.z.boolean()});if(r===`offset`)return e.z.object({items:e.z.array(t),total:e.z.number().int().nonnegative(),limit:e.z.number().int().nonnegative(),offset:e.z.number().int().nonnegative(),hasMore:e.z.boolean()});if(r===`cursor`)return e.z.object({items:e.z.array(t),nextCursor:e.z.string().nullable(),previousCursor:e.z.string().nullable(),hasMore:e.z.boolean()});if(r===`compact`)return e.z.object({items:e.z.array(t),total:e.z.number().int().nonnegative(),hasMore:e.z.boolean()});throw Error(`不支持的结果模式: ${r}`)}const f=e.z.enum([`asc`,`desc`]);function p(t){return e.z.object({sortBy:e.z.enum(t).optional(),sortOrder:f.optional()})}const m=e.z.object({sortBy:e.z.string().optional(),sortOrder:f.optional()});function h(t){return e.z.object({field:e.z.enum(t),order:f})}const g=e.z.object({field:e.z.string(),order:f});function _(t){return e.z.object({sort:e.z.array(h(t)).optional()})}const v=e.z.object({sort:e.z.array(g).optional()});function y(e){return{page:Math.max(1,Math.floor(e?.page??o.page)),pageSize:Math.min(o.maxPageSize,Math.max(o.minPageSize,Math.floor(e?.pageSize??o.pageSize)))}}function b(e){return{limit:Math.min(o.maxPageSize,Math.max(o.minPageSize,Math.floor(e?.limit??o.pageSize))),offset:Math.max(0,Math.floor(e?.offset??0))}}function x(e,t){return(e-1)*t}function S(e,t){return t<=0?0:Math.ceil(e/t)}function C(e,t){return e<t}function w(e){return e>1}function T(e,t){let n=Math.max(1,t);return{page:Math.floor(e/n)+1,pageSize:n}}function E(e,t){let n=Math.max(1,e),r=Math.max(1,t);return{offset:(n-1)*r,limit:r}}function D(e,t,n,r){let i=S(t,r);return{items:e,total:t,page:n,pageSize:r,totalPages:i,hasNextPage:C(n,i),hasPreviousPage:w(n)}}function O(e){let t={page:e?.page??o.page,pageSize:e?.pageSize??o.pageSize,maxPageSize:e?.maxPageSize??o.maxPageSize,minPageSize:e?.minPageSize??o.minPageSize};return{...t,normalize(e){return{page:Math.max(1,Math.floor(e?.page??t.page)),pageSize:Math.min(t.maxPageSize,Math.max(t.minPageSize,Math.floor(e?.pageSize??t.pageSize)))}},normalizeOffset(e){return{limit:Math.min(t.maxPageSize,Math.max(t.minPageSize,Math.floor(e?.limit??t.pageSize))),offset:Math.max(0,Math.floor(e?.offset??0))}}}}function k(e){return typeof e==`object`&&!!e}function A(e){return typeof e==`number`&&Number.isInteger(e)&&e>=1}function j(e){return typeof e==`number`&&Number.isInteger(e)&&e>=o.minPageSize&&e<=o.maxPageSize}function M(e){return typeof e==`number`&&Number.isInteger(e)&&e>=0}function N(e){return typeof e==`number`&&Number.isInteger(e)&&e>=o.minPageSize&&e<=o.maxPageSize}function P(e){if(!k(e))return!1;let t=e.page,n=e.pageSize;return(t===void 0||A(t))&&(n===void 0||j(n))}function F(e){if(!k(e))return!1;let t=e.limit,n=e.offset;return(t===void 0||N(t))&&(n===void 0||M(n))}Object.defineProperty(exports,`A`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`M`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`N`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`P`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`j`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return f}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{z as e}from"zod";const t=e.object({page:e.literal(1),pageSize:e.literal(20),maxPageSize:e.literal(100),minPageSize:e.literal(1)}),n=e.object({page:e.number().int().positive().optional(),pageSize:e.number().int().positive().optional()}),r=e.object({limit:e.number().int().positive().optional(),offset:e.number().int().nonnegative().optional()}),i=e.object({cursor:e.string().optional(),limit:e.number().int().positive().optional()});function a(t){let{mode:n,pageSizeField:r=`pageSize`,cursorField:i=`cursor`,fields:a}=t;if(n===`page`){let t=a?.page===!1?{}:{page:e.number().int().positive().optional()},n=a?.pageSize===!1?{}:{[r]:e.number().int().positive().optional()};return e.object({...t,...n})}if(n===`offset`){let t=a?.limit===!1?{}:{limit:e.number().int().positive().optional()},n=a?.offset===!1?{}:{offset:e.number().int().nonnegative().optional()};return e.object({...t,...n})}if(n===`cursor`){let t=a?.cursor===!1?{}:{[i]:e.string().optional()},n=a?.limit===!1?{}:{limit:e.number().int().positive().optional()};return e.object({...t,...n})}throw Error(`不支持的分页模式: ${n}`)}const o={page:1,pageSize:20,maxPageSize:100,minPageSize:1};function s(t){return e.object({items:e.array(t),total:e.number().int().nonnegative(),page:e.number().int().positive(),pageSize:e.number().int().positive(),totalPages:e.number().int().nonnegative(),hasNextPage:e.boolean(),hasPreviousPage:e.boolean()})}function c(t){return e.object({items:e.array(t),total:e.number().int().nonnegative(),limit:e.number().int().nonnegative(),offset:e.number().int().nonnegative(),hasMore:e.boolean()})}function l(t){return e.object({items:e.array(t),nextCursor:e.string().nullable(),previousCursor:e.string().nullable(),hasMore:e.boolean()})}function u(t){return e.object({items:e.array(t),total:e.number().int().nonnegative(),hasMore:e.boolean()})}function d(t,n){let{mode:r,pageSizeField:i=`pageSize`}=n;if(r===`page`)return e.object({items:e.array(t),total:e.number().int().nonnegative(),page:e.number().int().positive(),[i]:e.number().int().positive(),totalPages:e.number().int().nonnegative(),hasNextPage:e.boolean(),hasPreviousPage:e.boolean()});if(r===`offset`)return e.object({items:e.array(t),total:e.number().int().nonnegative(),limit:e.number().int().nonnegative(),offset:e.number().int().nonnegative(),hasMore:e.boolean()});if(r===`cursor`)return e.object({items:e.array(t),nextCursor:e.string().nullable(),previousCursor:e.string().nullable(),hasMore:e.boolean()});if(r===`compact`)return e.object({items:e.array(t),total:e.number().int().nonnegative(),hasMore:e.boolean()});throw Error(`不支持的结果模式: ${r}`)}const f=e.enum([`asc`,`desc`]);function p(t){return e.object({sortBy:e.enum(t).optional(),sortOrder:f.optional()})}const m=e.object({sortBy:e.string().optional(),sortOrder:f.optional()});function h(t){return e.object({field:e.enum(t),order:f})}const g=e.object({field:e.string(),order:f});function _(t){return e.object({sort:e.array(h(t)).optional()})}const v=e.object({sort:e.array(g).optional()});function y(e){return{page:Math.max(1,Math.floor(e?.page??o.page)),pageSize:Math.min(o.maxPageSize,Math.max(o.minPageSize,Math.floor(e?.pageSize??o.pageSize)))}}function b(e){return{limit:Math.min(o.maxPageSize,Math.max(o.minPageSize,Math.floor(e?.limit??o.pageSize))),offset:Math.max(0,Math.floor(e?.offset??0))}}function x(e,t){return(e-1)*t}function S(e,t){return t<=0?0:Math.ceil(e/t)}function C(e,t){return e<t}function w(e){return e>1}function T(e,t){let n=Math.max(1,t);return{page:Math.floor(e/n)+1,pageSize:n}}function E(e,t){let n=Math.max(1,e),r=Math.max(1,t);return{offset:(n-1)*r,limit:r}}function D(e,t,n,r){let i=S(t,r);return{items:e,total:t,page:n,pageSize:r,totalPages:i,hasNextPage:C(n,i),hasPreviousPage:w(n)}}function O(e){let t={page:e?.page??o.page,pageSize:e?.pageSize??o.pageSize,maxPageSize:e?.maxPageSize??o.maxPageSize,minPageSize:e?.minPageSize??o.minPageSize};return{...t,normalize(e){return{page:Math.max(1,Math.floor(e?.page??t.page)),pageSize:Math.min(t.maxPageSize,Math.max(t.minPageSize,Math.floor(e?.pageSize??t.pageSize)))}},normalizeOffset(e){return{limit:Math.min(t.maxPageSize,Math.max(t.minPageSize,Math.floor(e?.limit??t.pageSize))),offset:Math.max(0,Math.floor(e?.offset??0))}}}}function k(e){return typeof e==`object`&&!!e}function A(e){return typeof e==`number`&&Number.isInteger(e)&&e>=1}function j(e){return typeof e==`number`&&Number.isInteger(e)&&e>=o.minPageSize&&e<=o.maxPageSize}function M(e){return typeof e==`number`&&Number.isInteger(e)&&e>=0}function N(e){return typeof e==`number`&&Number.isInteger(e)&&e>=o.minPageSize&&e<=o.maxPageSize}function P(e){if(!k(e))return!1;let t=e.page,n=e.pageSize;return(t===void 0||A(t))&&(n===void 0||j(n))}function F(e){if(!k(e))return!1;let t=e.limit,n=e.offset;return(t===void 0||N(t))&&(n===void 0||M(n))}export{i as A,p as C,s as D,c as E,t as M,n as N,d as O,a as P,h as S,l as T,v as _,j as a,m as b,S as c,C as d,w as f,E as g,T as h,A as i,r as j,o as k,D as l,y as m,M as n,P as o,b as p,F as r,x as s,N as t,O as u,g as v,u as w,_ as x,f as y};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@longzai-intelligence/pagination",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"types": "./dist/index.d.mts",
|
|
@@ -14,14 +14,22 @@
|
|
|
14
14
|
"require": "./dist/index.cjs"
|
|
15
15
|
},
|
|
16
16
|
"./typeorm": {
|
|
17
|
-
"types":
|
|
18
|
-
"import": "./dist/typeorm.d.mts",
|
|
19
|
-
"require": "./dist/typeorm.d.cts"
|
|
20
|
-
},
|
|
17
|
+
"types": "./dist/typeorm.d.mts",
|
|
21
18
|
"import": "./dist/typeorm.mjs",
|
|
22
19
|
"require": "./dist/typeorm.cjs"
|
|
20
|
+
},
|
|
21
|
+
"./hono": {
|
|
22
|
+
"types": {
|
|
23
|
+
"import": "./dist/hono.d.mts",
|
|
24
|
+
"require": "./dist/hono.d.cts"
|
|
25
|
+
},
|
|
26
|
+
"import": "./dist/hono.mjs",
|
|
27
|
+
"require": "./dist/hono.cjs"
|
|
23
28
|
}
|
|
24
29
|
},
|
|
30
|
+
"files": [
|
|
31
|
+
"dist"
|
|
32
|
+
],
|
|
25
33
|
"scripts": {
|
|
26
34
|
"build": "tsdown",
|
|
27
35
|
"build:prod": "NODE_ENV=production tsdown",
|
|
@@ -40,10 +48,14 @@
|
|
|
40
48
|
"upgrade-deps": "ncu -u"
|
|
41
49
|
},
|
|
42
50
|
"peerDependencies": {
|
|
51
|
+
"hono": "^4.0.0",
|
|
43
52
|
"typeorm": "^0.3.0",
|
|
44
53
|
"zod": "^4.0.0"
|
|
45
54
|
},
|
|
46
55
|
"peerDependenciesMeta": {
|
|
56
|
+
"hono": {
|
|
57
|
+
"optional": true
|
|
58
|
+
},
|
|
47
59
|
"typeorm": {
|
|
48
60
|
"optional": true
|
|
49
61
|
},
|
|
@@ -52,13 +64,13 @@
|
|
|
52
64
|
}
|
|
53
65
|
},
|
|
54
66
|
"devDependencies": {
|
|
55
|
-
"@types/bun": "1.3.
|
|
67
|
+
"@types/bun": "1.3.12",
|
|
56
68
|
"@types/node": "^25.6.0",
|
|
57
69
|
"eslint": "^10.2.0",
|
|
58
70
|
"rimraf": "^6.1.3",
|
|
59
71
|
"typescript": "^6.0.2",
|
|
60
72
|
"vitest": "^4.1.4",
|
|
61
|
-
"@longzai-intelligence/eslint-preset-library": "0.0.
|
|
73
|
+
"@longzai-intelligence/eslint-preset-library": "0.0.6",
|
|
62
74
|
"@longzai-intelligence/vitest-config": "0.0.7",
|
|
63
75
|
"@longzai-intelligence/typescript-config": "0.0.3",
|
|
64
76
|
"tsdown": "^0.21.7",
|
package/.turbo/turbo-build.log
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
$ tsdown
|
|
2
|
-
ℹ tsdown v0.21.7 powered by rolldown v1.0.0-rc.12
|
|
3
|
-
ℹ config file: /Volumes/JZAO/j-projects/workspaces/longzai/longzai-intelligence/longzai-intelligence/packages/pagination/tsdown.config.ts
|
|
4
|
-
(node:10081) ExperimentalWarning: Type Stripping is an experimental feature and might change at any time
|
|
5
|
-
(Use `node --trace-warnings ...` to show where the warning was created)
|
|
6
|
-
ℹ entry: src/index.ts
|
|
7
|
-
ℹ tsconfig: tsconfig/app.json
|
|
8
|
-
ℹ Build start
|
|
9
|
-
ℹ Cleaning 8 files
|
|
10
|
-
ℹ [CJS] dist/index.cjs 9.63 kB │ gzip: 2.45 kB
|
|
11
|
-
ℹ [CJS] dist/index.cjs.map 19.04 kB │ gzip: 4.55 kB
|
|
12
|
-
ℹ [CJS] 2 files, total: 28.66 kB
|
|
13
|
-
ℹ [CJS] dist/index.d.cts.map 2.74 kB │ gzip: 0.82 kB
|
|
14
|
-
ℹ [CJS] dist/index.d.cts 5.36 kB │ gzip: 1.21 kB
|
|
15
|
-
ℹ [CJS] 2 files, total: 8.10 kB
|
|
16
|
-
✔ Build complete in 647ms
|
|
17
|
-
ℹ [ESM] dist/index.mjs 9.02 kB │ gzip: 2.33 kB
|
|
18
|
-
ℹ [ESM] dist/index.mjs.map 19.04 kB │ gzip: 4.55 kB
|
|
19
|
-
ℹ [ESM] dist/index.d.mts.map 2.74 kB │ gzip: 0.82 kB
|
|
20
|
-
ℹ [ESM] dist/index.d.mts 5.36 kB │ gzip: 1.21 kB
|
|
21
|
-
ℹ [ESM] 4 files, total: 36.16 kB
|
|
22
|
-
✔ Build complete in 648ms
|
package/.turbo/turbo-lint.log
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
$ eslint .
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
$ vitest run --coverage
|
|
2
|
-
|
|
3
|
-
[1m[30m[46m RUN [49m[39m[22m [36mv4.1.4 [39m[90m/Volumes/JZAO/j-projects/workspaces/longzai/longzai-intelligence/longzai-intelligence/packages/pagination[39m
|
|
4
|
-
[2mCoverage enabled with [22m[33mv8[39m
|
|
5
|
-
|
|
6
|
-
[32m✓[39m src/__tests__/validation.util.test.ts [2m([22m[2m12 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
7
|
-
[32m✓[39m src/__tests__/pagination.util.test.ts [2m([22m[2m41 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
8
|
-
[32m✓[39m src/__tests__/index.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 30[2mms[22m[39m
|
|
9
|
-
[32m✓[39m src/__tests__/typeorm.adapter.test.ts [2m([22m[2m9 tests[22m[2m)[22m[32m 7[2mms[22m[39m
|
|
10
|
-
|
|
11
|
-
[2m Test Files [22m [1m[32m4 passed[39m[22m[90m (4)[39m
|
|
12
|
-
[2m Tests [22m [1m[32m68 passed[39m[22m[90m (68)[39m
|
|
13
|
-
[2m Start at [22m 10:06:41
|
|
14
|
-
[2m Duration [22m 196ms[2m (transform 144ms, setup 0ms, import 171ms, tests 46ms, environment 0ms)[22m
|
|
15
|
-
|
|
16
|
-
[34m % [39m[2mCoverage report from [22m[33mv8[39m
|
|
17
|
-
-------------------|---------|----------|---------|---------|-------------------
|
|
18
|
-
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
|
|
19
|
-
-------------------|---------|----------|---------|---------|-------------------
|
|
20
|
-
All files | 100 | 100 | 100 | 100 |
|
|
21
|
-
src | 0 | 0 | 0 | 0 |
|
|
22
|
-
index.ts | 0 | 0 | 0 | 0 |
|
|
23
|
-
src/adapters | 100 | 100 | 100 | 100 |
|
|
24
|
-
index.ts | 0 | 0 | 0 | 0 |
|
|
25
|
-
...rm.adapter.ts | 100 | 100 | 100 | 100 |
|
|
26
|
-
src/types | 100 | 100 | 100 | 100 |
|
|
27
|
-
index.ts | 0 | 0 | 0 | 0 |
|
|
28
|
-
...tion.types.ts | 100 | 100 | 100 | 100 |
|
|
29
|
-
result.types.ts | 0 | 0 | 0 | 0 |
|
|
30
|
-
sort.types.ts | 0 | 0 | 0 | 0 |
|
|
31
|
-
typeorm.d.ts | 0 | 0 | 0 | 0 |
|
|
32
|
-
src/utils | 100 | 100 | 100 | 100 |
|
|
33
|
-
index.ts | 0 | 0 | 0 | 0 |
|
|
34
|
-
...ation.util.ts | 100 | 100 | 100 | 100 |
|
|
35
|
-
...ation.util.ts | 100 | 100 | 100 | 100 |
|
|
36
|
-
-------------------|---------|----------|---------|---------|-------------------
|
package/.turbo/turbo-test.log
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
$ vitest run
|
|
2
|
-
|
|
3
|
-
[1m[30m[46m RUN [49m[39m[22m [36mv4.1.4 [39m[90m/Volumes/JZAO/j-projects/workspaces/longzai/longzai-intelligence/longzai-intelligence/packages/pagination[39m
|
|
4
|
-
|
|
5
|
-
[32m✓[39m src/__tests__/validation.util.test.ts [2m([22m[2m12 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
6
|
-
[32m✓[39m src/__tests__/pagination.util.test.ts [2m([22m[2m41 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
7
|
-
[32m✓[39m src/__tests__/typeorm.adapter.test.ts [2m([22m[2m9 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
8
|
-
[32m✓[39m src/__tests__/index.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 16[2mms[22m[39m
|
|
9
|
-
|
|
10
|
-
[2m Test Files [22m [1m[32m4 passed[39m[22m[90m (4)[39m
|
|
11
|
-
[2m Tests [22m [1m[32m68 passed[39m[22m[90m (68)[39m
|
|
12
|
-
[2m Start at [22m 10:06:38
|
|
13
|
-
[2m Duration [22m 136ms[2m (transform 101ms, setup 0ms, import 121ms, tests 26ms, environment 0ms)[22m
|
|
14
|
-
|
package/CHANGELOG.md
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
## [0.0.2] - 2026-04-13
|
|
4
|
-
|
|
5
|
-
### 新增功能
|
|
6
|
-
|
|
7
|
-
- 添加 Zod schemas 用于分页和排序验证
|
|
8
|
-
- 添加 TypeORM 适配器子路径导出
|
|
9
|
-
|
|
10
|
-
## [0.0.1] - 2026-04-10
|
|
11
|
-
|
|
12
|
-
### 功能
|
|
13
|
-
|
|
14
|
-
- 分页类型定义:PaginationParams、OffsetPaginationParams、CursorPaginationParams
|
|
15
|
-
- 排序类型定义:SortOrder、SortParams、MultiSortParams
|
|
16
|
-
- 分页工具函数:normalizePagination、calculateOffset、hasNextPage 等
|
|
17
|
-
- 校验工具函数:isValidPage、isValidPageSize、isValidOffset 等
|
|
18
|
-
- TypeORM 适配器:paginateWithRepository、paginateWithQueryBuilder、createPaginationQueryBuilder
|