vafast 0.3.2 → 0.3.4
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/dist/auth/token.d.ts +13 -11
- package/dist/auth/token.js +118 -111
- package/dist/auth/token.js.map +1 -0
- package/dist/defineRoute.d.ts +5 -2
- package/dist/defineRoute.js +7 -2
- package/dist/defineRoute.js.map +1 -0
- package/dist/index.d.ts +30 -14
- package/dist/index.js +2247 -15
- package/dist/index.js.map +1 -0
- package/dist/middleware/auth.d.ts +8 -6
- package/dist/middleware/auth.js +198 -99
- package/dist/middleware/auth.js.map +1 -0
- package/dist/middleware/authMiddleware.d.ts +5 -2
- package/dist/middleware/authMiddleware.js +55 -11
- package/dist/middleware/authMiddleware.js.map +1 -0
- package/dist/middleware/component-renderer.d.ts +4 -2
- package/dist/middleware/component-renderer.js +87 -80
- package/dist/middleware/component-renderer.js.map +1 -0
- package/dist/middleware/component-router.d.ts +8 -3
- package/dist/middleware/component-router.js +33 -39
- package/dist/middleware/component-router.js.map +1 -0
- package/dist/middleware/cors.d.ts +6 -3
- package/dist/middleware/cors.js +42 -29
- package/dist/middleware/cors.js.map +1 -0
- package/dist/middleware/rateLimit.d.ts +5 -3
- package/dist/middleware/rateLimit.js +45 -29
- package/dist/middleware/rateLimit.js.map +1 -0
- package/dist/middleware.d.ts +6 -3
- package/dist/middleware.js +97 -51
- package/dist/middleware.js.map +1 -0
- package/dist/monitoring/index.d.ts +11 -4
- package/dist/monitoring/index.js +1299 -17
- package/dist/monitoring/index.js.map +1 -0
- package/dist/monitoring/native-monitor.d.ts +12 -6
- package/dist/monitoring/native-monitor.js +1258 -161
- package/dist/monitoring/native-monitor.js.map +1 -0
- package/dist/monitoring/types.d.ts +8 -6
- package/dist/monitoring/types.js +1 -1
- package/dist/monitoring/types.js.map +1 -0
- package/dist/node-server/index.d.ts +4 -22
- package/dist/node-server/index.js +254 -21
- package/dist/node-server/index.js.map +1 -0
- package/dist/node-server/request.d.ts +6 -2
- package/dist/node-server/request.js +102 -134
- package/dist/node-server/request.js.map +1 -0
- package/dist/node-server/response.d.ts +7 -3
- package/dist/node-server/response.js +67 -89
- package/dist/node-server/response.js.map +1 -0
- package/dist/node-server/serve.d.ts +11 -7
- package/dist/node-server/serve.js +231 -82
- package/dist/node-server/serve.js.map +1 -0
- package/dist/router/index.d.ts +3 -5
- package/dist/router/index.js +228 -7
- package/dist/router/index.js.map +1 -0
- package/dist/router/radix-tree.d.ts +7 -4
- package/dist/router/radix-tree.js +186 -218
- package/dist/router/radix-tree.js.map +1 -0
- package/dist/router.d.ts +7 -3
- package/dist/router.js +37 -83
- package/dist/router.js.map +1 -0
- package/dist/serve.d.ts +2 -12
- package/dist/serve.js +237 -11
- package/dist/serve.js.map +1 -0
- package/dist/server/base-server.d.ts +5 -2
- package/dist/server/base-server.js +124 -135
- package/dist/server/base-server.js.map +1 -0
- package/dist/server/component-server.d.ts +9 -4
- package/dist/server/component-server.js +481 -139
- package/dist/server/component-server.js.map +1 -0
- package/dist/server/index.d.ts +8 -7
- package/dist/server/index.js +985 -11
- package/dist/server/index.js.map +1 -0
- package/dist/server/server-factory.d.ts +11 -5
- package/dist/server/server-factory.js +979 -67
- package/dist/server/server-factory.js.map +1 -0
- package/dist/server/server.d.ts +7 -3
- package/dist/server/server.js +553 -112
- package/dist/server/server.js.map +1 -0
- package/dist/types/component-route.d.ts +8 -4
- package/dist/types/component-route.js +1 -1
- package/dist/types/component-route.js.map +1 -0
- package/dist/types/index.d.ts +5 -5
- package/dist/types/index.js +21 -4
- package/dist/types/index.js.map +1 -0
- package/dist/types/route.d.ts +13 -10
- package/dist/types/route.js +10 -9
- package/dist/types/route.js.map +1 -0
- package/dist/types/schema.d.ts +11 -7
- package/dist/types/schema.js +1 -1
- package/dist/types/schema.js.map +1 -0
- package/dist/types/types.d.ts +11 -9
- package/dist/types/types.js +1 -1
- package/dist/types/types.js.map +1 -0
- package/dist/utils/base64url.d.ts +4 -2
- package/dist/utils/base64url.js +12 -9
- package/dist/utils/base64url.js.map +1 -0
- package/dist/utils/create-handler.d.ts +11 -7
- package/dist/utils/create-handler.js +393 -217
- package/dist/utils/create-handler.js.map +1 -0
- package/dist/utils/dependency-manager.d.ts +3 -1
- package/dist/utils/dependency-manager.js +67 -69
- package/dist/utils/dependency-manager.js.map +1 -0
- package/dist/utils/go-await.d.ts +3 -1
- package/dist/utils/go-await.js +8 -22
- package/dist/utils/go-await.js.map +1 -0
- package/dist/utils/handle.d.ts +6 -4
- package/dist/utils/handle.js +44 -25
- package/dist/utils/handle.js.map +1 -0
- package/dist/utils/html-renderer.d.ts +3 -1
- package/dist/utils/html-renderer.js +25 -24
- package/dist/utils/html-renderer.js.map +1 -0
- package/dist/utils/index.d.ts +13 -13
- package/dist/utils/index.js +832 -21
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/parsers.d.ts +15 -13
- package/dist/utils/parsers.js +138 -188
- package/dist/utils/parsers.js.map +1 -0
- package/dist/utils/path-matcher.d.ts +3 -1
- package/dist/utils/path-matcher.js +68 -78
- package/dist/utils/path-matcher.js.map +1 -0
- package/dist/utils/request-validator.d.ts +13 -10
- package/dist/utils/request-validator.js +234 -84
- package/dist/utils/request-validator.js.map +1 -0
- package/dist/utils/response.d.ts +9 -7
- package/dist/utils/response.js +93 -102
- package/dist/utils/response.js.map +1 -0
- package/dist/utils/validators/schema-validator.d.ts +13 -9
- package/dist/utils/validators/schema-validator.js +228 -209
- package/dist/utils/validators/schema-validator.js.map +1 -0
- package/dist/utils/validators/schema-validators-ultra.d.ts +15 -12
- package/dist/utils/validators/schema-validators-ultra.js +233 -256
- package/dist/utils/validators/schema-validators-ultra.js.map +1 -0
- package/dist/utils/validators/validators.d.ts +15 -12
- package/dist/utils/validators/validators.js +81 -122
- package/dist/utils/validators/validators.js.map +1 -0
- package/package.json +5 -4
package/dist/utils/response.js
CHANGED
|
@@ -1,111 +1,102 @@
|
|
|
1
|
-
// src/response.ts
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
// 优化:只在有自定义 headers 时才创建 Headers 对象
|
|
6
|
-
if (Object.keys(headers).length === 0) {
|
|
7
|
-
return new Response(body, {
|
|
8
|
-
status,
|
|
9
|
-
headers: { "Content-Type": "application/json" },
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
// 有自定义 headers 时才创建 Headers 对象
|
|
13
|
-
const h = new Headers({
|
|
14
|
-
"Content-Type": "application/json",
|
|
15
|
-
...headers,
|
|
16
|
-
});
|
|
1
|
+
// src/utils/response.ts
|
|
2
|
+
function json(data, status = 200, headers = {}) {
|
|
3
|
+
const body = JSON.stringify(data);
|
|
4
|
+
if (Object.keys(headers).length === 0) {
|
|
17
5
|
return new Response(body, {
|
|
18
|
-
|
|
19
|
-
|
|
6
|
+
status,
|
|
7
|
+
headers: { "Content-Type": "application/json" }
|
|
20
8
|
});
|
|
9
|
+
}
|
|
10
|
+
const h = new Headers({
|
|
11
|
+
"Content-Type": "application/json",
|
|
12
|
+
...headers
|
|
13
|
+
});
|
|
14
|
+
return new Response(body, {
|
|
15
|
+
status,
|
|
16
|
+
headers: h
|
|
17
|
+
});
|
|
21
18
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
return new Response(response);
|
|
52
|
-
case "Uint8Array":
|
|
53
|
-
return new Response(response);
|
|
54
|
-
default:
|
|
55
|
-
// Promise 处理
|
|
56
|
-
if (response instanceof Promise) {
|
|
57
|
-
return response.then(mapResponse);
|
|
58
|
-
}
|
|
59
|
-
// 其他情况使用 JSON 序列化
|
|
60
|
-
return new Response(JSON.stringify(response), { headers: JSON_HEADERS });
|
|
61
|
-
}
|
|
19
|
+
var JSON_HEADERS = { "Content-Type": "application/json" };
|
|
20
|
+
var TEXT_HEADERS = { "Content-Type": "text/plain" };
|
|
21
|
+
function mapResponse(response) {
|
|
22
|
+
if (response instanceof Response) return response;
|
|
23
|
+
switch (response?.constructor?.name) {
|
|
24
|
+
case "String":
|
|
25
|
+
return new Response(response, { headers: TEXT_HEADERS });
|
|
26
|
+
case "Object":
|
|
27
|
+
case "Array":
|
|
28
|
+
return new Response(JSON.stringify(response), { headers: JSON_HEADERS });
|
|
29
|
+
case "Number":
|
|
30
|
+
case "Boolean":
|
|
31
|
+
return new Response(String(response), { headers: TEXT_HEADERS });
|
|
32
|
+
case void 0:
|
|
33
|
+
return new Response(null, { status: 204 });
|
|
34
|
+
case "ReadableStream":
|
|
35
|
+
return new Response(response);
|
|
36
|
+
case "Blob":
|
|
37
|
+
return new Response(response);
|
|
38
|
+
case "ArrayBuffer":
|
|
39
|
+
return new Response(response);
|
|
40
|
+
case "Uint8Array":
|
|
41
|
+
return new Response(response);
|
|
42
|
+
default:
|
|
43
|
+
if (response instanceof Promise) {
|
|
44
|
+
return response.then(mapResponse);
|
|
45
|
+
}
|
|
46
|
+
return new Response(JSON.stringify(response), { headers: JSON_HEADERS });
|
|
47
|
+
}
|
|
62
48
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
});
|
|
49
|
+
function redirect(location, status = 302) {
|
|
50
|
+
return new Response(null, {
|
|
51
|
+
status,
|
|
52
|
+
headers: {
|
|
53
|
+
Location: location
|
|
54
|
+
}
|
|
55
|
+
});
|
|
71
56
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
});
|
|
57
|
+
function text(content, status = 200, headers = {}) {
|
|
58
|
+
const h = new Headers({
|
|
59
|
+
"Content-Type": "text/plain; charset=utf-8",
|
|
60
|
+
...headers
|
|
61
|
+
});
|
|
62
|
+
return new Response(content, {
|
|
63
|
+
status,
|
|
64
|
+
headers: h
|
|
65
|
+
});
|
|
82
66
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
});
|
|
67
|
+
function html(content, status = 200, headers = {}) {
|
|
68
|
+
const h = new Headers({
|
|
69
|
+
"Content-Type": "text/html; charset=utf-8",
|
|
70
|
+
...headers
|
|
71
|
+
});
|
|
72
|
+
return new Response(content, {
|
|
73
|
+
status,
|
|
74
|
+
headers: h
|
|
75
|
+
});
|
|
93
76
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
});
|
|
77
|
+
function empty(status = 204, headers = {}) {
|
|
78
|
+
return new Response(null, {
|
|
79
|
+
status,
|
|
80
|
+
headers
|
|
81
|
+
});
|
|
100
82
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
});
|
|
83
|
+
function stream(stream2, status = 200, headers = {}) {
|
|
84
|
+
const h = new Headers({
|
|
85
|
+
"Content-Type": "application/octet-stream",
|
|
86
|
+
...headers
|
|
87
|
+
});
|
|
88
|
+
return new Response(stream2, {
|
|
89
|
+
status,
|
|
90
|
+
headers: h
|
|
91
|
+
});
|
|
111
92
|
}
|
|
93
|
+
export {
|
|
94
|
+
empty,
|
|
95
|
+
html,
|
|
96
|
+
json,
|
|
97
|
+
mapResponse,
|
|
98
|
+
redirect,
|
|
99
|
+
stream,
|
|
100
|
+
text
|
|
101
|
+
};
|
|
102
|
+
//# sourceMappingURL=response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/response.ts"],"sourcesContent":["// src/response.ts\n\n/** 生成 JSON 响应 */\nexport function json(\n data: unknown,\n status = 200,\n headers: HeadersInit = {},\n): Response {\n const body = JSON.stringify(data);\n\n // 优化:只在有自定义 headers 时才创建 Headers 对象\n if (Object.keys(headers).length === 0) {\n return new Response(body, {\n status,\n headers: { \"Content-Type\": \"application/json\" },\n });\n }\n\n // 有自定义 headers 时才创建 Headers 对象\n const h = new Headers({\n \"Content-Type\": \"application/json\",\n ...headers,\n });\n\n return new Response(body, {\n status,\n headers: h,\n });\n}\n\n// JSON 响应的预创建 headers(避免每次创建)\nconst JSON_HEADERS = { \"Content-Type\": \"application/json\" };\nconst TEXT_HEADERS = { \"Content-Type\": \"text/plain\" };\n\n/**\n * 类型特化的响应映射\n * 根据返回值类型直接生成 Response,避免不必要的检查\n */\nexport function mapResponse(response: unknown): Response {\n // 快速路径:已经是 Response\n if (response instanceof Response) return response;\n\n // 使用 constructor.name 进行类型判断(比 instanceof 更快)\n switch (response?.constructor?.name) {\n case \"String\":\n return new Response(response as string, { headers: TEXT_HEADERS });\n\n case \"Object\":\n case \"Array\":\n return new Response(JSON.stringify(response), { headers: JSON_HEADERS });\n\n case \"Number\":\n case \"Boolean\":\n return new Response(String(response), { headers: TEXT_HEADERS });\n\n case undefined:\n // null 或 undefined\n return new Response(null, { status: 204 });\n\n case \"ReadableStream\":\n return new Response(response as ReadableStream);\n\n case \"Blob\":\n return new Response(response as Blob);\n\n case \"ArrayBuffer\":\n return new Response(response as ArrayBuffer);\n\n case \"Uint8Array\":\n return new Response(response as unknown as BodyInit);\n\n default:\n // Promise 处理\n if (response instanceof Promise) {\n return response.then(mapResponse) as unknown as Response;\n }\n // 其他情况使用 JSON 序列化\n return new Response(JSON.stringify(response), { headers: JSON_HEADERS });\n }\n}\n\n/** 生成重定向响应 */\nexport function redirect(location: string, status: 301 | 302 = 302): Response {\n return new Response(null, {\n status,\n headers: {\n Location: location,\n },\n });\n}\n\n/** 生成纯文本响应 */\nexport function text(\n content: string,\n status = 200,\n headers: HeadersInit = {},\n): Response {\n const h = new Headers({\n \"Content-Type\": \"text/plain; charset=utf-8\",\n ...headers,\n });\n\n return new Response(content, {\n status,\n headers: h,\n });\n}\n\n/** 生成HTML响应 */\nexport function html(\n content: string,\n status = 200,\n headers: HeadersInit = {},\n): Response {\n const h = new Headers({\n \"Content-Type\": \"text/html; charset=utf-8\",\n ...headers,\n });\n\n return new Response(content, {\n status,\n headers: h,\n });\n}\n\n/** 生成空响应(204 No Content) */\nexport function empty(status = 204, headers: HeadersInit = {}): Response {\n return new Response(null, {\n status,\n headers,\n });\n}\n\n/** 生成流式响应 */\nexport function stream(\n stream: ReadableStream,\n status = 200,\n headers: HeadersInit = {},\n): Response {\n const h = new Headers({\n \"Content-Type\": \"application/octet-stream\",\n ...headers,\n });\n\n return new Response(stream, {\n status,\n headers: h,\n });\n}\n"],"mappings":";AAGO,SAAS,KACd,MACA,SAAS,KACT,UAAuB,CAAC,GACd;AACV,QAAM,OAAO,KAAK,UAAU,IAAI;AAGhC,MAAI,OAAO,KAAK,OAAO,EAAE,WAAW,GAAG;AACrC,WAAO,IAAI,SAAS,MAAM;AAAA,MACxB;AAAA,MACA,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAChD,CAAC;AAAA,EACH;AAGA,QAAM,IAAI,IAAI,QAAQ;AAAA,IACpB,gBAAgB;AAAA,IAChB,GAAG;AAAA,EACL,CAAC;AAED,SAAO,IAAI,SAAS,MAAM;AAAA,IACxB;AAAA,IACA,SAAS;AAAA,EACX,CAAC;AACH;AAGA,IAAM,eAAe,EAAE,gBAAgB,mBAAmB;AAC1D,IAAM,eAAe,EAAE,gBAAgB,aAAa;AAM7C,SAAS,YAAY,UAA6B;AAEvD,MAAI,oBAAoB,SAAU,QAAO;AAGzC,UAAQ,UAAU,aAAa,MAAM;AAAA,IACnC,KAAK;AACH,aAAO,IAAI,SAAS,UAAoB,EAAE,SAAS,aAAa,CAAC;AAAA,IAEnE,KAAK;AAAA,IACL,KAAK;AACH,aAAO,IAAI,SAAS,KAAK,UAAU,QAAQ,GAAG,EAAE,SAAS,aAAa,CAAC;AAAA,IAEzE,KAAK;AAAA,IACL,KAAK;AACH,aAAO,IAAI,SAAS,OAAO,QAAQ,GAAG,EAAE,SAAS,aAAa,CAAC;AAAA,IAEjE,KAAK;AAEH,aAAO,IAAI,SAAS,MAAM,EAAE,QAAQ,IAAI,CAAC;AAAA,IAE3C,KAAK;AACH,aAAO,IAAI,SAAS,QAA0B;AAAA,IAEhD,KAAK;AACH,aAAO,IAAI,SAAS,QAAgB;AAAA,IAEtC,KAAK;AACH,aAAO,IAAI,SAAS,QAAuB;AAAA,IAE7C,KAAK;AACH,aAAO,IAAI,SAAS,QAA+B;AAAA,IAErD;AAEE,UAAI,oBAAoB,SAAS;AAC/B,eAAO,SAAS,KAAK,WAAW;AAAA,MAClC;AAEA,aAAO,IAAI,SAAS,KAAK,UAAU,QAAQ,GAAG,EAAE,SAAS,aAAa,CAAC;AAAA,EAC3E;AACF;AAGO,SAAS,SAAS,UAAkB,SAAoB,KAAe;AAC5E,SAAO,IAAI,SAAS,MAAM;AAAA,IACxB;AAAA,IACA,SAAS;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,EACF,CAAC;AACH;AAGO,SAAS,KACd,SACA,SAAS,KACT,UAAuB,CAAC,GACd;AACV,QAAM,IAAI,IAAI,QAAQ;AAAA,IACpB,gBAAgB;AAAA,IAChB,GAAG;AAAA,EACL,CAAC;AAED,SAAO,IAAI,SAAS,SAAS;AAAA,IAC3B;AAAA,IACA,SAAS;AAAA,EACX,CAAC;AACH;AAGO,SAAS,KACd,SACA,SAAS,KACT,UAAuB,CAAC,GACd;AACV,QAAM,IAAI,IAAI,QAAQ;AAAA,IACpB,gBAAgB;AAAA,IAChB,GAAG;AAAA,EACL,CAAC;AAED,SAAO,IAAI,SAAS,SAAS;AAAA,IAC3B;AAAA,IACA,SAAS;AAAA,EACX,CAAC;AACH;AAGO,SAAS,MAAM,SAAS,KAAK,UAAuB,CAAC,GAAa;AACvE,SAAO,IAAI,SAAS,MAAM;AAAA,IACxB;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAGO,SAAS,OACdA,SACA,SAAS,KACT,UAAuB,CAAC,GACd;AACV,QAAM,IAAI,IAAI,QAAQ;AAAA,IACpB,gBAAgB;AAAA,IAChB,GAAG;AAAA,EACL,CAAC;AAED,SAAO,IAAI,SAASA,SAAQ;AAAA,IAC1B;AAAA,IACA,SAAS;AAAA,EACX,CAAC;AACH;","names":["stream"]}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { TSchema } from '@sinclair/typebox';
|
|
2
|
+
import { ValidationResult } from './validators.js';
|
|
3
|
+
|
|
1
4
|
/**
|
|
2
5
|
* Schema配置验证器
|
|
3
6
|
*
|
|
@@ -8,23 +11,22 @@
|
|
|
8
11
|
* @version 1.0.0
|
|
9
12
|
* @license MIT
|
|
10
13
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
export interface SchemaConfig {
|
|
14
|
+
|
|
15
|
+
interface SchemaConfig {
|
|
14
16
|
body?: TSchema;
|
|
15
17
|
query?: TSchema;
|
|
16
18
|
params?: TSchema;
|
|
17
19
|
headers?: TSchema;
|
|
18
20
|
cookies?: TSchema;
|
|
19
21
|
}
|
|
20
|
-
|
|
22
|
+
interface RequestData {
|
|
21
23
|
body?: unknown;
|
|
22
24
|
query?: unknown;
|
|
23
25
|
params?: unknown;
|
|
24
26
|
headers?: unknown;
|
|
25
27
|
cookies?: unknown;
|
|
26
28
|
}
|
|
27
|
-
|
|
29
|
+
interface SchemaValidationResult {
|
|
28
30
|
success: boolean;
|
|
29
31
|
data?: {
|
|
30
32
|
body?: unknown;
|
|
@@ -44,23 +46,25 @@ export interface SchemaValidationResult {
|
|
|
44
46
|
* @param data 请求数据
|
|
45
47
|
* @returns 验证结果
|
|
46
48
|
*/
|
|
47
|
-
|
|
49
|
+
declare function validateSchemaConfig(config: SchemaConfig, data: RequestData): SchemaValidationResult;
|
|
48
50
|
/**
|
|
49
51
|
* 异步验证SchemaConfig(支持异步验证器)
|
|
50
52
|
* @param config Schema配置
|
|
51
53
|
* @param data 请求数据
|
|
52
54
|
* @returns Promise<验证结果>
|
|
53
55
|
*/
|
|
54
|
-
|
|
56
|
+
declare function validateSchemaConfigAsync(config: SchemaConfig, data: RequestData): Promise<SchemaValidationResult>;
|
|
55
57
|
/**
|
|
56
58
|
* 创建验证器工厂函数
|
|
57
59
|
* @param config Schema配置
|
|
58
60
|
* @returns 验证器函数
|
|
59
61
|
*/
|
|
60
|
-
|
|
62
|
+
declare function createSchemaValidator(config: SchemaConfig): (data: RequestData) => SchemaValidationResult;
|
|
61
63
|
/**
|
|
62
64
|
* 创建异步验证器工厂函数
|
|
63
65
|
* @param config Schema配置
|
|
64
66
|
* @returns 异步验证器函数
|
|
65
67
|
*/
|
|
66
|
-
|
|
68
|
+
declare function createAsyncSchemaValidator(config: SchemaConfig): (data: RequestData) => Promise<SchemaValidationResult>;
|
|
69
|
+
|
|
70
|
+
export { type RequestData, type SchemaConfig, type SchemaValidationResult, createAsyncSchemaValidator, createSchemaValidator, validateSchemaConfig, validateSchemaConfigAsync };
|