@taicode/common-server 1.0.7 → 1.0.9

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.
@@ -1,5 +1,26 @@
1
1
  import { FastifySchema } from 'fastify';
2
2
  import { z, ZodEnum, ZodType } from 'zod';
3
+ /**
4
+ * 标准查询请求体 Schema
5
+ * 用于定义包含过滤条件、分页参数和排序条件的查询请求
6
+ * @param f - 过滤条件的类型
7
+ * @param e - 排序字段的枚举类型(可选)
8
+ * @returns 查询请求体的 Schema
9
+ */
10
+ export declare function queryParamsSchema<F extends ZodType, E extends ZodEnum>(f: F, e?: E): z.ZodObject<{
11
+ filter: F;
12
+ paging: z.ZodObject<{
13
+ size: z.ZodNumber;
14
+ index: z.ZodNumber;
15
+ }, z.core.$strip>;
16
+ sort: z.ZodArray<z.ZodObject<{
17
+ key: E;
18
+ order: z.ZodEnum<{
19
+ ASC: "ASC";
20
+ DESC: "DESC";
21
+ }>;
22
+ }, z.core.$strip>> | z.ZodUndefined;
23
+ }, z.core.$strip>;
3
24
  /**
4
25
  * 查询结果 Schema
5
26
  * 用于定义分页查询的返回结果结构
@@ -10,6 +31,12 @@ export declare function queryResultSchema<T extends ZodType>(t: T): z.ZodObject<
10
31
  total: z.ZodNumber;
11
32
  list: z.ZodArray<T>;
12
33
  }, z.core.$strip>;
34
+ /**
35
+ * 列表查询参数 Schema
36
+ * 一次性列出全部数据
37
+ * @returns 列表查询参数的 Schema
38
+ */
39
+ export declare function listParamsSchema(): z.ZodNullable<z.ZodUndefined>;
13
40
  /**
14
41
  * 列表结果 Schema
15
42
  * 用于定义列表查询的返回结果结构(与 queryResultSchema 功能相同)
@@ -21,44 +48,62 @@ export declare function listResultSchema<T extends ZodType>(t: T): z.ZodObject<{
21
48
  list: z.ZodArray<T>;
22
49
  }, z.core.$strip>;
23
50
  /**
24
- * 标准查询请求体 Schema
25
- * 用于定义包含过滤条件、分页参数和排序条件的查询请求
51
+ * 指定时间范围查询请求体 Schema
52
+ * 用于定义包含过滤条件、时间范围和排序条件的查询请求(不包含分页)
26
53
  * @param f - 过滤条件的类型
27
54
  * @param e - 排序字段的枚举类型(可选)
28
- * @returns 查询请求体的 Schema
55
+ * @returns 范围查询请求体的 Schema
29
56
  */
30
- export declare function queryBodySchema<F extends ZodType, E extends ZodEnum>(f: F, e?: E): z.ZodObject<{
57
+ export declare function rangeQueryParamsSchema<F extends ZodType, E extends ZodEnum>(f: F, e?: E): z.ZodObject<{
31
58
  filter: F;
32
- paging: z.ZodObject<{
33
- size: z.ZodNumber;
34
- index: z.ZodNumber;
35
- }, z.core.$strip>;
36
- sort: z.ZodArray<z.ZodObject<{
59
+ sort: z.ZodUndefined | z.ZodArray<z.ZodObject<{
37
60
  key: E;
38
61
  order: z.ZodEnum<{
39
62
  ASC: "ASC";
40
63
  DESC: "DESC";
41
64
  }>;
42
- }, z.core.$strip>> | z.ZodUndefined;
65
+ }, z.core.$strip>>;
66
+ range: z.ZodTuple<[z.ZodISODateTime, z.ZodISODateTime], null>;
43
67
  }, z.core.$strip>;
44
68
  /**
45
- * 范围查询请求体 Schema
46
- * 用于定义包含过滤条件、时间范围和排序条件的查询请求(不包含分页)
69
+ * 范围查询结果 Schema
70
+ * 用于定义范围查询的返回结果结构
71
+ * @param t - 数据项的类型
72
+ * @returns 包含时间点和数据的数组 Schema
73
+ */
74
+ export declare function rangeQueryResultSchema<T extends ZodType>(t: T): z.ZodArray<z.ZodObject<{
75
+ data: T;
76
+ time: z.ZodISODateTime;
77
+ }, z.core.$strip>>;
78
+ /**
79
+ * 统计查询参数 Schema
80
+ * 用于定义统计查询的请求参数
47
81
  * @param f - 过滤条件的类型
48
82
  * @param e - 排序字段的枚举类型(可选)
49
- * @returns 范围查询请求体的 Schema
83
+ * @returns 统计查询参数的 Schema
50
84
  */
51
- export declare function rangeQueryBodySchema<F extends ZodType, E extends ZodEnum>(f: F, e?: E): z.ZodObject<{
85
+ export declare function statisticQueryParamsSchema<F extends ZodType>(f: F): z.ZodObject<{
52
86
  filter: F;
53
- sort: z.ZodUndefined | z.ZodArray<z.ZodObject<{
54
- key: E;
55
- order: z.ZodEnum<{
56
- ASC: "ASC";
57
- DESC: "DESC";
58
- }>;
59
- }, z.core.$strip>>;
87
+ step: z.ZodEnum<{
88
+ minute: "minute";
89
+ hour: "hour";
90
+ day: "day";
91
+ week: "week";
92
+ month: "month";
93
+ year: "year";
94
+ }>;
60
95
  range: z.ZodTuple<[z.ZodISODateTime, z.ZodISODateTime], null>;
61
96
  }, z.core.$strip>;
97
+ /**
98
+ * 统计查询结果 Schema
99
+ * 用于定义统计查询的返回结果结构
100
+ * @param t - 数据项的类型
101
+ * @returns 包含时间点和数据的数组 Schema
102
+ */
103
+ export declare function statisticQueryResultSchema<T extends ZodType>(t: T): z.ZodArray<z.ZodObject<{
104
+ data: T;
105
+ time: z.ZodISODateTime;
106
+ }, z.core.$strip>>;
62
107
  /**
63
108
  * 模糊查询请求体 Schema
64
109
  * 用于定义包含模糊搜索关键词、时间范围和排序条件的查询请求
@@ -66,7 +111,7 @@ export declare function rangeQueryBodySchema<F extends ZodType, E extends ZodEnu
66
111
  * @param e - 排序字段的枚举类型(可选)
67
112
  * @returns 模糊查询请求体的 Schema
68
113
  */
69
- export declare function fuzzQueryBodySchema<F extends ZodType, E extends ZodEnum>(f: F, e?: E): z.ZodObject<{
114
+ export declare function fuzzQueryParamsSchema<F extends ZodType, E extends ZodEnum>(f: F, e?: E): z.ZodObject<{
70
115
  filter: F;
71
116
  paging: z.ZodObject<{
72
117
  size: z.ZodNumber;
@@ -80,6 +125,16 @@ export declare function fuzzQueryBodySchema<F extends ZodType, E extends ZodEnum
80
125
  }>;
81
126
  }, z.core.$strip>>;
82
127
  }, z.core.$strip>;
128
+ /**
129
+ * 模糊查询结果 Schema
130
+ * 用于定义模糊查询的返回结果结构
131
+ * @param t - 数据项的类型
132
+ * @returns 包含总数和数据列表的 Schema
133
+ */
134
+ export declare function fuzzQueryResultSchema<T extends ZodType>(t: T): z.ZodObject<{
135
+ total: z.ZodNumber;
136
+ list: z.ZodArray<T>;
137
+ }, z.core.$strip>;
83
138
  /**
84
139
  * 标准响应数据内容 Schema
85
140
  * 用于定义统一的 API 响应结构
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAA;AA2BzC;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC;;;kBAKxD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC;;;kBAKvD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;;;;;;;;;;;;;kBAMhF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;;;;;;;;;;kBAMrF;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;;;;;;;;;;;;;kBAMpF;AAGD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;;;;kBAMlF;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;;;EAMvG;AAED,UAAU,YAAa,SAAQ,aAAa;IAC1C,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,MAAM,EAAE,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,CAY/F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAA;AA2BzC;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;;;;;;;;;;;;;kBAMlF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC;;;kBAKxD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,kCAE/B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC;;;kBAKvD;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;;;;;;;;;;kBAMvF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC;;;mBAK7D;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC;;;;;;;;;;;kBAMjE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC;;;mBAKjE;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;;;;;;;;;;;;;kBAMtF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC;;;kBAK5D;AAGD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;;;;kBAMlF;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;;;EAMvG;AAED,UAAU,YAAa,SAAQ,aAAa;IAC1C,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,MAAM,EAAE,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,CAY/F"}
@@ -22,6 +22,20 @@ function _sortSchema(t) {
22
22
  order: z.enum(['ASC', 'DESC']).describe('排序方向:ASC-升序,DESC-降序')
23
23
  }));
24
24
  }
25
+ /**
26
+ * 标准查询请求体 Schema
27
+ * 用于定义包含过滤条件、分页参数和排序条件的查询请求
28
+ * @param f - 过滤条件的类型
29
+ * @param e - 排序字段的枚举类型(可选)
30
+ * @returns 查询请求体的 Schema
31
+ */
32
+ export function queryParamsSchema(f, e) {
33
+ return z.object({
34
+ filter: f.describe('过滤条件'),
35
+ paging: _pagingSchema().describe('分页参数'),
36
+ sort: e ? _sortSchema(e).describe('排序条件') : z.undefined(),
37
+ });
38
+ }
25
39
  /**
26
40
  * 查询结果 Schema
27
41
  * 用于定义分页查询的返回结果结构
@@ -34,6 +48,14 @@ export function queryResultSchema(t) {
34
48
  list: z.array(t).describe('数据列表')
35
49
  });
36
50
  }
51
+ /**
52
+ * 列表查询参数 Schema
53
+ * 一次性列出全部数据
54
+ * @returns 列表查询参数的 Schema
55
+ */
56
+ export function listParamsSchema() {
57
+ return z.undefined().nullable();
58
+ }
37
59
  /**
38
60
  * 列表结果 Schema
39
61
  * 用于定义列表查询的返回结果结构(与 queryResultSchema 功能相同)
@@ -47,33 +69,57 @@ export function listResultSchema(t) {
47
69
  });
48
70
  }
49
71
  /**
50
- * 标准查询请求体 Schema
51
- * 用于定义包含过滤条件、分页参数和排序条件的查询请求
72
+ * 指定时间范围查询请求体 Schema
73
+ * 用于定义包含过滤条件、时间范围和排序条件的查询请求(不包含分页)
52
74
  * @param f - 过滤条件的类型
53
75
  * @param e - 排序字段的枚举类型(可选)
54
- * @returns 查询请求体的 Schema
76
+ * @returns 范围查询请求体的 Schema
55
77
  */
56
- export function queryBodySchema(f, e) {
78
+ export function rangeQueryParamsSchema(f, e) {
57
79
  return z.object({
58
80
  filter: f.describe('过滤条件'),
59
- paging: _pagingSchema().describe('分页参数'),
60
81
  sort: e ? _sortSchema(e).describe('排序条件') : z.undefined(),
82
+ range: z.tuple([z.iso.datetime(), z.iso.datetime()]).describe('时间范围,格式为 [开始时间, 结束时间]'),
61
83
  });
62
84
  }
63
85
  /**
64
- * 范围查询请求体 Schema
65
- * 用于定义包含过滤条件、时间范围和排序条件的查询请求(不包含分页)
86
+ * 范围查询结果 Schema
87
+ * 用于定义范围查询的返回结果结构
88
+ * @param t - 数据项的类型
89
+ * @returns 包含时间点和数据的数组 Schema
90
+ */
91
+ export function rangeQueryResultSchema(t) {
92
+ return z.array(z.object({
93
+ data: t,
94
+ time: z.iso.datetime().describe('时间点'),
95
+ }));
96
+ }
97
+ /**
98
+ * 统计查询参数 Schema
99
+ * 用于定义统计查询的请求参数
66
100
  * @param f - 过滤条件的类型
67
101
  * @param e - 排序字段的枚举类型(可选)
68
- * @returns 范围查询请求体的 Schema
102
+ * @returns 统计查询参数的 Schema
69
103
  */
70
- export function rangeQueryBodySchema(f, e) {
104
+ export function statisticQueryParamsSchema(f) {
71
105
  return z.object({
72
106
  filter: f.describe('过滤条件'),
73
- sort: e ? _sortSchema(e).describe('排序条件') : z.undefined(),
107
+ step: z.enum(['minute', 'hour', 'day', 'week', 'month', 'year']).describe('统计粒度'),
74
108
  range: z.tuple([z.iso.datetime(), z.iso.datetime()]).describe('时间范围,格式为 [开始时间, 结束时间]'),
75
109
  });
76
110
  }
111
+ /**
112
+ * 统计查询结果 Schema
113
+ * 用于定义统计查询的返回结果结构
114
+ * @param t - 数据项的类型
115
+ * @returns 包含时间点和数据的数组 Schema
116
+ */
117
+ export function statisticQueryResultSchema(t) {
118
+ return z.array(z.object({
119
+ data: t,
120
+ time: z.iso.datetime().describe('时间点'),
121
+ }));
122
+ }
77
123
  /**
78
124
  * 模糊查询请求体 Schema
79
125
  * 用于定义包含模糊搜索关键词、时间范围和排序条件的查询请求
@@ -81,13 +127,25 @@ export function rangeQueryBodySchema(f, e) {
81
127
  * @param e - 排序字段的枚举类型(可选)
82
128
  * @returns 模糊查询请求体的 Schema
83
129
  */
84
- export function fuzzQueryBodySchema(f, e) {
130
+ export function fuzzQueryParamsSchema(f, e) {
85
131
  return z.object({
86
132
  filter: f.describe('模糊搜索关键词,长度1-50字符'),
87
133
  paging: _pagingSchema().describe('分页参数'),
88
134
  sort: e ? _sortSchema(e).describe('排序条件') : z.undefined(),
89
135
  });
90
136
  }
137
+ /**
138
+ * 模糊查询结果 Schema
139
+ * 用于定义模糊查询的返回结果结构
140
+ * @param t - 数据项的类型
141
+ * @returns 包含总数和数据列表的 Schema
142
+ */
143
+ export function fuzzQueryResultSchema(t) {
144
+ return z.object({
145
+ total: z.number().describe('数据总数'),
146
+ list: z.array(t).describe('数据列表')
147
+ });
148
+ }
91
149
  /**
92
150
  * 标准响应数据内容 Schema
93
151
  * 用于定义统一的 API 响应结构
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taicode/common-server",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "author": "Alain",
5
5
  "license": "ISC",
6
6
  "description": "",