@lsby/net-core 0.9.3 → 0.10.1
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/bin/gen-api-type/bin.cjs +1 -1
- package/dist/bin/gen-api-type/index.cjs +1 -1
- package/dist/cjs/bin/gen-api-type/bin.cjs +1 -1
- package/dist/cjs/bin/gen-api-type/index.cjs +1 -1
- package/dist/cjs/global/global.cjs +8 -5
- package/dist/cjs/help/help.cjs +21 -0
- package/dist/cjs/help/help.d.cts +10 -1
- package/dist/cjs/index.cjs +71 -61
- package/dist/cjs/index.d.cts +4 -5
- package/dist/cjs/interface/interface-base.d.cts +1 -1
- package/dist/cjs/interface/interface-logic.cjs +27 -4
- package/dist/cjs/interface/interface-logic.d.cts +1 -1
- package/dist/cjs/interface/interface-result.cjs +6 -6
- package/dist/cjs/interface/interface-result.d.cts +1 -1
- package/dist/cjs/interface/interface-retuen.d.cts +14 -0
- package/dist/cjs/{interface-base-_3j8cNEe.d.cts → interface-base-CyfrfgWu.d.cts} +31 -3
- package/dist/cjs/plugin/extend/custom-data.d.cts +4 -1
- package/dist/cjs/plugin/extend/json.cjs +3 -2
- package/dist/cjs/plugin/extend/json.d.cts +8 -3
- package/dist/cjs/plugin/extend/log-headers.d.cts +1 -1
- package/dist/cjs/plugin/extend/query.cjs +3 -2
- package/dist/cjs/plugin/extend/query.d.cts +8 -3
- package/dist/cjs/plugin/extend/urlencoded.cjs +4 -3
- package/dist/cjs/plugin/extend/urlencoded.d.cts +4 -2
- package/dist/cjs/plugin/extend/web-socket.cjs +8 -5
- package/dist/cjs/plugin/extend/web-socket.d.cts +1 -1
- package/dist/cjs/plugin/plug.d.cts +1 -1
- package/dist/cjs/server/server.cjs +8 -5
- package/dist/cjs/server/server.d.cts +1 -1
- package/dist/cjs/wrapper/common-wrapper-return.cjs +3 -3
- package/dist/cjs/wrapper/common-wrapper-return.d.cts +12 -3
- package/dist/cjs/wrapper/common-wrapper.d.cts +8 -1
- package/dist/cjs/wrapper/deferred-result-wrapper.cjs +6 -6
- package/dist/cjs/wrapper/deferred-result-wrapper.d.cts +12 -5
- package/dist/esm/bin/gen-api-type/bin.js +1 -1
- package/dist/esm/bin/gen-api-type/index.js +1 -1
- package/dist/esm/{chunk-XEV5RHGZ.js → chunk-3XRAG6DM.js} +4 -3
- package/dist/esm/{chunk-3KWXQ7TQ.js → chunk-3ZQFVYIR.js} +3 -3
- package/dist/esm/chunk-7LQRWJ3X.js +32 -0
- package/dist/esm/{chunk-REQ5ZXOQ.js → chunk-B5DKJ5AV.js} +1 -1
- package/dist/esm/{chunk-OH6PZFGR.js → chunk-C5FED6EO.js} +1 -1
- package/dist/esm/{chunk-AEG7V7QY.js → chunk-DNJQGD5M.js} +3 -3
- package/dist/esm/{chunk-ITCALAYE.js → chunk-E23EZWBE.js} +8 -4
- package/dist/esm/{chunk-LZOZF4CS.js → chunk-H7LZCHCE.js} +3 -3
- package/dist/esm/{chunk-WECMWUFB.js → chunk-HDPEZW7H.js} +1 -1
- package/dist/esm/{chunk-JXTWTY2S.js → chunk-NB2QNDI2.js} +5 -5
- package/dist/esm/{chunk-OUDYK6TE.js → chunk-NJKBRPN7.js} +8 -5
- package/dist/esm/{chunk-GMYXAJS3.js → chunk-TSDOOGHG.js} +3 -2
- package/dist/esm/{chunk-AY6KWNWX.js → chunk-UUXGAK5S.js} +3 -2
- package/dist/esm/global/global.js +1 -1
- package/dist/esm/help/help.d.ts +10 -1
- package/dist/esm/help/help.js +3 -1
- package/dist/esm/index.d.ts +4 -5
- package/dist/esm/index.js +24 -26
- package/dist/esm/interface/interface-base.d.ts +1 -1
- package/dist/esm/interface/interface-logic.d.ts +1 -1
- package/dist/esm/interface/interface-logic.js +2 -1
- package/dist/esm/interface/interface-result.d.ts +1 -1
- package/dist/esm/interface/interface-result.js +5 -5
- package/dist/esm/interface/interface-retuen.d.ts +14 -0
- package/dist/esm/{interface-base-CxLIUGsx.d.ts → interface-base-C1ZNSMJz.d.ts} +31 -3
- package/dist/esm/plugin/extend/custom-data.d.ts +4 -1
- package/dist/esm/plugin/extend/json.d.ts +8 -3
- package/dist/esm/plugin/extend/json.js +1 -1
- package/dist/esm/plugin/extend/log-headers.d.ts +1 -1
- package/dist/esm/plugin/extend/query.d.ts +8 -3
- package/dist/esm/plugin/extend/query.js +1 -1
- package/dist/esm/plugin/extend/urlencoded.d.ts +4 -2
- package/dist/esm/plugin/extend/urlencoded.js +1 -1
- package/dist/esm/plugin/extend/web-socket.d.ts +1 -1
- package/dist/esm/plugin/extend/web-socket.js +2 -2
- package/dist/esm/plugin/plug.d.ts +1 -1
- package/dist/esm/server/server.d.ts +1 -1
- package/dist/esm/server/server.js +2 -2
- package/dist/esm/wrapper/common-wrapper-return.d.ts +12 -3
- package/dist/esm/wrapper/common-wrapper-return.js +4 -4
- package/dist/esm/wrapper/common-wrapper.d.ts +8 -1
- package/dist/esm/wrapper/common-wrapper.js +2 -2
- package/dist/esm/wrapper/deferred-result-wrapper.d.ts +12 -5
- package/dist/esm/wrapper/deferred-result-wrapper.js +4 -4
- package/package.json +1 -1
- package/dist/cjs/plugin/extend/send-file-plugin.cjs +0 -58
- package/dist/cjs/plugin/extend/send-file-plugin.d.cts +0 -21
- package/dist/esm/chunk-RRUUWHTF.js +0 -22
- package/dist/esm/chunk-YMH6HJJF.js +0 -12
- package/dist/esm/plugin/extend/send-file-plugin.d.ts +0 -21
- package/dist/esm/plugin/extend/send-file-plugin.js +0 -7
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
普通对象深合并
|
|
3
|
+
} from "./chunk-7LQRWJ3X.js";
|
|
4
|
+
|
|
1
5
|
// src/interface/interface-logic.ts
|
|
2
6
|
import { Right } from "@lsby/ts-fp-data";
|
|
3
7
|
var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
|
|
@@ -32,7 +36,7 @@ var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
|
|
|
32
36
|
let \u63D2\u4EF6\u8FD4\u56DE = await \u63D2\u4EF6.\u8FD0\u884C(req, res, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
|
|
33
37
|
\u6240\u6709\u63D2\u4EF6\u7ED3\u679C.push(\u63D2\u4EF6\u8FD4\u56DE);
|
|
34
38
|
}
|
|
35
|
-
let \u5408\u5E76\u7ED3\u679C = \u6240\u6709\u63D2\u4EF6\u7ED3\u679C.reduce((s, a) => (
|
|
39
|
+
let \u5408\u5E76\u7ED3\u679C = \u6240\u6709\u63D2\u4EF6\u7ED3\u679C.reduce((s, a) => \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(s, a), {});
|
|
36
40
|
return \u5408\u5E76\u7ED3\u679C;
|
|
37
41
|
}
|
|
38
42
|
async \u901A\u8FC7\u63D2\u4EF6\u7ED3\u679C\u8FD0\u884C(\u5408\u5E76\u63D2\u4EF6\u7ED3\u679C, \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4F20\u5165\u7684\u8BF7\u6C42\u9644\u52A0\u53C2\u6570) {
|
|
@@ -40,7 +44,7 @@ var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
|
|
|
40
44
|
let \u6700\u7EC8\u7ED3\u679C = void 0;
|
|
41
45
|
try {
|
|
42
46
|
let \u5B9E\u73B0\u7ED3\u679C = await this.\u5B9E\u73B0(\u5408\u5E76\u63D2\u4EF6\u7ED3\u679C, \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4F20\u5165\u7684\u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
|
|
43
|
-
\u6700\u7EC8\u7ED3\u679C = \u5B9E\u73B0\u7ED3\u679C.map((a) => (
|
|
47
|
+
\u6700\u7EC8\u7ED3\u679C = \u5B9E\u73B0\u7ED3\u679C.map((a) => \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(\u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, a));
|
|
44
48
|
return \u6700\u7EC8\u7ED3\u679C;
|
|
45
49
|
} finally {
|
|
46
50
|
if (\u6E05\u7406\u51FD\u6570 !== void 0) {
|
|
@@ -76,9 +80,9 @@ var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
|
|
|
76
80
|
async (\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570) => {
|
|
77
81
|
let \u4E0A\u5C42\u8C03\u7528\u7ED3\u679C = await this.\u5B9E\u73B0(\u53C2\u6570, \u903B\u8F91\u9644\u52A0\u53C2\u6570, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
|
|
78
82
|
if (\u4E0A\u5C42\u8C03\u7528\u7ED3\u679C.isLeft()) return \u4E0A\u5C42\u8C03\u7528\u7ED3\u679C;
|
|
79
|
-
let \u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684 =
|
|
83
|
+
let \u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684 = \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4E0A\u5C42\u8C03\u7528\u7ED3\u679C.assertRight().getRight());
|
|
80
84
|
let \u4E0B\u5C42\u8C03\u7528\u7ED3\u679C = await \u8F93\u5165.\u5B9E\u73B0(\u53C2\u6570, \u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
|
|
81
|
-
let \u6700\u7EC8\u8FD4\u56DE\u7ED3\u679C = \u4E0B\u5C42\u8C03\u7528\u7ED3\u679C.map((a) => (
|
|
85
|
+
let \u6700\u7EC8\u8FD4\u56DE\u7ED3\u679C = \u4E0B\u5C42\u8C03\u7528\u7ED3\u679C.map((a) => \u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76(\u4F20\u7ED9\u4E0B\u4E00\u5C42\u7684, a));
|
|
82
86
|
return \u6700\u7EC8\u8FD4\u56DE\u7ED3\u679C;
|
|
83
87
|
},
|
|
84
88
|
\u5408\u5E76\u6E05\u7406,
|
|
@@ -6,11 +6,11 @@ import {
|
|
|
6
6
|
} from "./chunk-MDUWXEQ7.js";
|
|
7
7
|
import {
|
|
8
8
|
常用形式转换器
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-DNJQGD5M.js";
|
|
10
10
|
|
|
11
11
|
// src/wrapper/common-wrapper-return.ts
|
|
12
12
|
import { z } from "zod";
|
|
13
|
-
var \u5E38\u7528\u5F62\u5F0F\u5E76\u81EA\u5B9A\u4E49\u8FD4\u56DE\u63A5\u53E3\u5C01\u88C5 = class extends \u63A5\u53E3 {
|
|
13
|
+
var \u5E38\u7528\u5F62\u5F0F\u5E76\u81EA\u5B9A\u4E49\u8FD4\u56DE\u5668\u63A5\u53E3\u5C01\u88C5 = class extends \u63A5\u53E3 {
|
|
14
14
|
constructor(\u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5, \u63A5\u53E3\u903B\u8F91, \u903B\u8F91\u9519\u8BEF\u7C7B\u578BZod, \u903B\u8F91\u6B63\u786E\u7C7B\u578BZod, \u8FD4\u56DE\u5668\u5B9E\u73B0) {
|
|
15
15
|
let \u63A5\u53E3\u9519\u8BEF\u8F93\u51FA\u5F62\u5F0F = z.object({ status: z.literal("fail"), data: \u903B\u8F91\u9519\u8BEF\u7C7B\u578BZod });
|
|
16
16
|
let \u63A5\u53E3\u6B63\u786E\u8F93\u51FA\u5F62\u5F0F = z.object({ status: z.literal("success"), data: \u903B\u8F91\u6B63\u786E\u7C7B\u578BZod });
|
|
@@ -20,5 +20,5 @@ var \u5E38\u7528\u5F62\u5F0F\u5E76\u81EA\u5B9A\u4E49\u8FD4\u56DE\u63A5\u53E3\u5C
|
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
export {
|
|
23
|
-
|
|
23
|
+
常用形式并自定义返回器接口封装
|
|
24
24
|
};
|
|
@@ -5,20 +5,20 @@ import {
|
|
|
5
5
|
接口
|
|
6
6
|
} from "./chunk-MDUWXEQ7.js";
|
|
7
7
|
import {
|
|
8
|
-
|
|
9
|
-
} from "./chunk-
|
|
8
|
+
直接形式转换器
|
|
9
|
+
} from "./chunk-DNJQGD5M.js";
|
|
10
10
|
|
|
11
11
|
// src/wrapper/deferred-result-wrapper.ts
|
|
12
12
|
import { z } from "zod";
|
|
13
|
-
var \u5E38\u7528\
|
|
13
|
+
var \u5E38\u7528\u76F4\u63A5\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5 = class extends \u63A5\u53E3 {
|
|
14
14
|
constructor(\u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5, \u63A5\u53E3\u903B\u8F91, \u903B\u8F91\u9519\u8BEF\u7C7B\u578BZod, \u903B\u8F91\u6B63\u786E\u7C7B\u578BZod) {
|
|
15
15
|
let \u63A5\u53E3\u9519\u8BEF\u8F93\u51FA\u5F62\u5F0F = z.object({ status: z.literal("fail"), data: \u903B\u8F91\u9519\u8BEF\u7C7B\u578BZod });
|
|
16
16
|
let \u63A5\u53E3\u6B63\u786E\u8F93\u51FA\u5F62\u5F0F = \u903B\u8F91\u6B63\u786E\u7C7B\u578BZod;
|
|
17
|
-
let \u63A5\u53E3\u8F6C\u6362\u5668 = new \
|
|
17
|
+
let \u63A5\u53E3\u8F6C\u6362\u5668 = new \u76F4\u63A5\u5F62\u5F0F\u8F6C\u6362\u5668();
|
|
18
18
|
super(\u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5, \u63A5\u53E3\u903B\u8F91, \u63A5\u53E3\u9519\u8BEF\u8F93\u51FA\u5F62\u5F0F, \u63A5\u53E3\u6B63\u786E\u8F93\u51FA\u5F62\u5F0F, \u63A5\u53E3\u8F6C\u6362\u5668, new \u5E38\u7528\u8FD4\u56DE\u5668());
|
|
19
19
|
}
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
export {
|
|
23
|
-
|
|
23
|
+
常用直接形式接口封装
|
|
24
24
|
};
|
|
@@ -6,11 +6,14 @@ var log = new Log("@lsby:net-core");
|
|
|
6
6
|
var WebSocket\u7BA1\u7406\u5668 = class {
|
|
7
7
|
constructor(\u8FDE\u63A5\u8868) {
|
|
8
8
|
this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
|
|
9
|
-
this.\u5B9A\u65F6\u5668ID = setInterval(
|
|
10
|
-
|
|
11
|
-
this
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
this.\u5B9A\u65F6\u5668ID = setInterval(
|
|
10
|
+
() => {
|
|
11
|
+
this.\u6E05\u7406\u65E0\u6548\u8FDE\u63A5().catch((err) => {
|
|
12
|
+
this.log.error(`\u6E05\u7406\u65E0\u6548\u8FDE\u63A5\u5931\u8D25: ${err}`).catch((a) => `\u65E5\u5FD7\u8F93\u51FA\u9519\u8BEF: ${a}: \u65E5\u5FD7\u5185\u5BB9: ${`\u6E05\u7406\u65E0\u6548\u8FDE\u63A5\u5931\u8D25: ${err}`}`);
|
|
13
|
+
});
|
|
14
|
+
},
|
|
15
|
+
5 * 60 * 1e3
|
|
16
|
+
);
|
|
14
17
|
}
|
|
15
18
|
log = log.extend("@lsby:net-core").extend("WebSocket\u7BA1\u7406\u5668");
|
|
16
19
|
\u6E05\u7406\u51FD\u6570\u8868 = {};
|
|
@@ -8,11 +8,12 @@ import {
|
|
|
8
8
|
// src/plugin/extend/json.ts
|
|
9
9
|
import express from "express";
|
|
10
10
|
import { format } from "util";
|
|
11
|
+
import { z } from "zod";
|
|
11
12
|
var \u70D9\u5370 = Symbol();
|
|
12
13
|
var JSON\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
13
14
|
[\u70D9\u5370] = ["JSON\u89E3\u6790\u63D2\u4EF6"];
|
|
14
15
|
constructor(t, opt) {
|
|
15
|
-
super(t, async (req, res, \u9644\u52A0\u53C2\u6570) => {
|
|
16
|
+
super(z.object({ body: t }), async (req, res, \u9644\u52A0\u53C2\u6570) => {
|
|
16
17
|
let log = \u9644\u52A0\u53C2\u6570.log.extend("JSON\u89E3\u6790\u63D2\u4EF6");
|
|
17
18
|
await new Promise(
|
|
18
19
|
(pRes, _rej) => express.json(opt)(req, res, () => {
|
|
@@ -26,7 +27,7 @@ var JSON\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
26
27
|
throw new Error(format("\u89E3\u6790 JSON \u5931\u8D25: %o", parseResult.error));
|
|
27
28
|
}
|
|
28
29
|
await log.debug("\u6210\u529F\u89E3\u6790 JSON");
|
|
29
|
-
return parseResult.data;
|
|
30
|
+
return { body: parseResult.data };
|
|
30
31
|
});
|
|
31
32
|
}
|
|
32
33
|
};
|
|
@@ -7,11 +7,12 @@ import {
|
|
|
7
7
|
|
|
8
8
|
// src/plugin/extend/query.ts
|
|
9
9
|
import { format } from "util";
|
|
10
|
+
import { z } from "zod";
|
|
10
11
|
var \u70D9\u5370 = Symbol();
|
|
11
12
|
var GET\u53C2\u6570\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
12
13
|
[\u70D9\u5370] = ["GET\u53C2\u6570\u89E3\u6790\u63D2\u4EF6"];
|
|
13
14
|
constructor(t) {
|
|
14
|
-
super(t, async (req, _res, \u9644\u52A0\u53C2\u6570) => {
|
|
15
|
+
super(z.object({ query: t }), async (req, _res, \u9644\u52A0\u53C2\u6570) => {
|
|
15
16
|
let log = \u9644\u52A0\u53C2\u6570.log.extend("GET\u53C2\u6570\u89E3\u6790\u63D2\u4EF6");
|
|
16
17
|
await log.debug("\u51C6\u5907\u89E3\u6790 GET \u53C2\u6570\uFF1A%o", JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(req.query)));
|
|
17
18
|
let parseResult = t.safeParse(req.query);
|
|
@@ -20,7 +21,7 @@ var GET\u53C2\u6570\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
20
21
|
throw new Error(format("\u89E3\u6790 GET \u53C2\u6570\u5931\u8D25: %o", parseResult.error));
|
|
21
22
|
}
|
|
22
23
|
await log.debug("\u6210\u529F\u89E3\u6790 GET \u53C2\u6570");
|
|
23
|
-
return parseResult.data;
|
|
24
|
+
return { query: parseResult.data };
|
|
24
25
|
});
|
|
25
26
|
}
|
|
26
27
|
};
|
package/dist/esm/help/help.d.ts
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
declare function 构造元组<T extends any[]>(args: [...T]): T;
|
|
2
2
|
declare function 构造对象<K extends string, V>(key: K, value: V): Record<K, V>;
|
|
3
|
+
type 普通对象 = Record<any, any>;
|
|
4
|
+
type 严格递归合并对象<A, B> = A extends 普通对象 ? B extends 普通对象 ? {
|
|
5
|
+
[K in keyof A | keyof B]: K extends keyof A ? K extends keyof B ? A[K] extends 普通对象 ? B[K] extends 普通对象 ? 严格递归合并对象<A[K], B[K]> : never : never : A[K] : K extends keyof B ? B[K] : never;
|
|
6
|
+
} : never : never;
|
|
7
|
+
/**
|
|
8
|
+
* 深合并两个对象,如果两个值都是普通对象,则递归合并,否则用后者覆盖
|
|
9
|
+
* 只有直接上游是对象原型的对象才算是普通对象
|
|
10
|
+
*/
|
|
11
|
+
declare function 普通对象深合并(target: Record<any, any>, source: Record<any, any>): Record<string, any>;
|
|
3
12
|
|
|
4
|
-
export { 构造元组, 构造对象 };
|
|
13
|
+
export { type 严格递归合并对象, 普通对象深合并, 构造元组, 构造对象 };
|
package/dist/esm/help/help.js
CHANGED
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
export { 构造元组, 构造对象 } from './help/help.js';
|
|
2
|
-
export { 任 as 任意接口, x as 任意接口结果转换器, n as 任意接口逻辑,
|
|
1
|
+
export { 严格递归合并对象, 普通对象深合并, 构造元组, 构造对象 } from './help/help.js';
|
|
2
|
+
export { 任 as 任意接口, x as 任意接口结果转换器, n as 任意接口逻辑, y as 任意插件, 兼 as 兼容空对象, A as 取插件内部ts类型, 取 as 取插件内部类型, 可 as 可调用接口逻辑, 合 as 合并插件结果, 常 as 常用形式转换器, b as 接口, a as 接口方法类型, w as 接口结果转换器, 接 as 接口路径类型, m as 接口逻辑, l as 接口逻辑Base, j as 接口逻辑正确类型, i as 接口逻辑错误类型, k as 接口逻辑附加参数类型, 插 as 插件, z as 插件项类型, 服 as 服务器, 清 as 清理函数类型, 直 as 直接形式转换器, 空 as 空对象, c as 获得接口方法类型, f as 获得接口正确形式, g as 获得接口结果转换器类型, h as 获得接口结果返回器类型, 获 as 获得接口路径类型, s as 获得接口逻辑上游接口类型, o as 获得接口逻辑插件类型, t as 获得接口逻辑最后接口类型, r as 获得接口逻辑正确类型, d as 获得接口逻辑类型, q as 获得接口逻辑错误类型, p as 获得接口逻辑附加参数类型, e as 获得接口错误形式, 计 as 计算接口逻辑参数, v as 计算接口逻辑正确结果, u as 计算接口逻辑错误结果, 请 as 请求附加参数类型 } from './interface-base-C1ZNSMJz.js';
|
|
3
3
|
export { 任意接口结果返回器, 常用返回器, 接口结果返回器, 自定义返回器 } from './interface/interface-retuen.js';
|
|
4
4
|
export { 接口测试 } from './interface/interface-test.js';
|
|
5
5
|
export { 自定义数据插件 } from './plugin/extend/custom-data.js';
|
|
6
6
|
export { JSON解析插件, 任意JSON解析插件, 任意JSON解析插件项, 合并JSON插件结果, 计算接口逻辑JSON参数 } from './plugin/extend/json.js';
|
|
7
7
|
export { 调试请求头插件 } from './plugin/extend/log-headers.js';
|
|
8
8
|
export { GET参数解析插件, 任意GET参数解析插件, 任意GET参数解析插件项, 合并GET插件结果, 计算接口逻辑GET参数 } from './plugin/extend/query.js';
|
|
9
|
-
export { 发送文件插件 } from './plugin/extend/send-file-plugin.js';
|
|
10
9
|
export { 表单解析插件 } from './plugin/extend/urlencoded.js';
|
|
11
10
|
export { WebSocket插件, 任意WS插件, 任意WS插件项, 取WS插件泛型, 取第一个WS插件结果 } from './plugin/extend/web-socket.js';
|
|
12
11
|
export { EXPORT_TYPE } from './symbol/export-type.js';
|
|
13
12
|
export { GetNetCoreExportTypeDefine, GetNetCoreExportTypeName, NetCoreExportType } from './types/export-type.js';
|
|
14
13
|
export { 常用形式接口封装 } from './wrapper/common-wrapper.js';
|
|
15
|
-
export {
|
|
16
|
-
export {
|
|
14
|
+
export { 常用形式并自定义返回器接口封装 } from './wrapper/common-wrapper-return.js';
|
|
15
|
+
export { 常用直接形式接口封装 } from './wrapper/deferred-result-wrapper.js';
|
|
17
16
|
import 'zod';
|
|
18
17
|
import '@lsby/ts-fp-data';
|
|
19
18
|
import 'express';
|
package/dist/esm/index.js
CHANGED
|
@@ -3,25 +3,22 @@ import {
|
|
|
3
3
|
} from "./chunk-VMCAX3QH.js";
|
|
4
4
|
import {
|
|
5
5
|
JSON解析插件
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-TSDOOGHG.js";
|
|
7
7
|
import {
|
|
8
8
|
调试请求头插件
|
|
9
9
|
} from "./chunk-7MHKNSNT.js";
|
|
10
10
|
import {
|
|
11
11
|
GET参数解析插件
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import {
|
|
14
|
-
发送文件插件
|
|
15
|
-
} from "./chunk-RRUUWHTF.js";
|
|
12
|
+
} from "./chunk-UUXGAK5S.js";
|
|
16
13
|
import {
|
|
17
14
|
表单解析插件
|
|
18
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-3XRAG6DM.js";
|
|
19
16
|
import {
|
|
20
17
|
WebSocket插件
|
|
21
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-C5FED6EO.js";
|
|
22
19
|
import {
|
|
23
|
-
|
|
24
|
-
} from "./chunk-
|
|
20
|
+
常用直接形式接口封装
|
|
21
|
+
} from "./chunk-NB2QNDI2.js";
|
|
25
22
|
import {
|
|
26
23
|
接口测试
|
|
27
24
|
} from "./chunk-N7TPWCQ5.js";
|
|
@@ -30,51 +27,50 @@ import {
|
|
|
30
27
|
} from "./chunk-43GZE5YL.js";
|
|
31
28
|
import {
|
|
32
29
|
服务器
|
|
33
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-3ZQFVYIR.js";
|
|
34
31
|
import {
|
|
35
32
|
EXPORT_TYPE
|
|
36
33
|
} from "./chunk-ZF7EC2OM.js";
|
|
37
34
|
import "./chunk-XPFEAXE4.js";
|
|
38
35
|
import {
|
|
39
|
-
|
|
40
|
-
} from "./chunk-
|
|
36
|
+
常用形式并自定义返回器接口封装
|
|
37
|
+
} from "./chunk-H7LZCHCE.js";
|
|
41
38
|
import {
|
|
42
39
|
常用形式接口封装
|
|
43
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-HDPEZW7H.js";
|
|
44
41
|
import {
|
|
45
42
|
常用返回器,
|
|
46
43
|
接口结果返回器,
|
|
47
44
|
自定义返回器
|
|
48
45
|
} from "./chunk-XBAKTT6S.js";
|
|
49
|
-
import
|
|
50
|
-
构造元组,
|
|
51
|
-
构造对象
|
|
52
|
-
} from "./chunk-YMH6HJJF.js";
|
|
46
|
+
import "./chunk-NJKBRPN7.js";
|
|
53
47
|
import "./chunk-ZIVQ3WZA.js";
|
|
54
|
-
import "./chunk-OUDYK6TE.js";
|
|
55
48
|
import {
|
|
56
49
|
接口
|
|
57
50
|
} from "./chunk-MDUWXEQ7.js";
|
|
58
51
|
import {
|
|
59
52
|
接口逻辑,
|
|
60
53
|
接口逻辑Base
|
|
61
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-E23EZWBE.js";
|
|
55
|
+
import {
|
|
56
|
+
普通对象深合并,
|
|
57
|
+
构造元组,
|
|
58
|
+
构造对象
|
|
59
|
+
} from "./chunk-7LQRWJ3X.js";
|
|
62
60
|
import {
|
|
63
|
-
常用延时直接形式转换器,
|
|
64
61
|
常用形式转换器,
|
|
65
|
-
|
|
66
|
-
|
|
62
|
+
接口结果转换器,
|
|
63
|
+
直接形式转换器
|
|
64
|
+
} from "./chunk-DNJQGD5M.js";
|
|
67
65
|
export {
|
|
68
66
|
EXPORT_TYPE,
|
|
69
67
|
GET\u53C2\u6570\u89E3\u6790\u63D2\u4EF6,
|
|
70
68
|
JSON\u89E3\u6790\u63D2\u4EF6,
|
|
71
69
|
WebSocket\u63D2\u4EF6,
|
|
72
|
-
\
|
|
73
|
-
\u5E38\u7528\u5EF6\u65F6\u76F4\u63A5\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5,
|
|
74
|
-
\u5E38\u7528\u5EF6\u65F6\u76F4\u63A5\u5F62\u5F0F\u8F6C\u6362\u5668,
|
|
75
|
-
\u5E38\u7528\u5F62\u5F0F\u5E76\u81EA\u5B9A\u4E49\u8FD4\u56DE\u63A5\u53E3\u5C01\u88C5,
|
|
70
|
+
\u5E38\u7528\u5F62\u5F0F\u5E76\u81EA\u5B9A\u4E49\u8FD4\u56DE\u5668\u63A5\u53E3\u5C01\u88C5,
|
|
76
71
|
\u5E38\u7528\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5,
|
|
77
72
|
\u5E38\u7528\u5F62\u5F0F\u8F6C\u6362\u5668,
|
|
73
|
+
\u5E38\u7528\u76F4\u63A5\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5,
|
|
78
74
|
\u5E38\u7528\u8FD4\u56DE\u5668,
|
|
79
75
|
\u63A5\u53E3,
|
|
80
76
|
\u63A5\u53E3\u6D4B\u8BD5,
|
|
@@ -83,9 +79,11 @@ export {
|
|
|
83
79
|
\u63A5\u53E3\u903B\u8F91,
|
|
84
80
|
\u63A5\u53E3\u903B\u8F91Base,
|
|
85
81
|
\u63D2\u4EF6,
|
|
82
|
+
\u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76,
|
|
86
83
|
\u670D\u52A1\u5668,
|
|
87
84
|
\u6784\u9020\u5143\u7EC4,
|
|
88
85
|
\u6784\u9020\u5BF9\u8C61,
|
|
86
|
+
\u76F4\u63A5\u5F62\u5F0F\u8F6C\u6362\u5668,
|
|
89
87
|
\u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6,
|
|
90
88
|
\u81EA\u5B9A\u4E49\u8FD4\u56DE\u5668,
|
|
91
89
|
\u8868\u5355\u89E3\u6790\u63D2\u4EF6,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import 'zod';
|
|
2
|
-
export { 任 as 任意接口, b as 接口, a as 接口方法类型, 接 as 接口路径类型, c as 获得接口方法类型, f as 获得接口正确形式, g as 获得接口结果转换器类型, h as 获得接口结果返回器类型, 获 as 获得接口路径类型, d as 获得接口逻辑类型, e as 获得接口错误形式 } from '../interface-base-
|
|
2
|
+
export { 任 as 任意接口, b as 接口, a as 接口方法类型, 接 as 接口路径类型, c as 获得接口方法类型, f as 获得接口正确形式, g as 获得接口结果转换器类型, h as 获得接口结果返回器类型, 获 as 获得接口路径类型, d as 获得接口逻辑类型, e as 获得接口错误形式 } from '../interface-base-C1ZNSMJz.js';
|
|
3
3
|
import './interface-retuen.js';
|
|
4
4
|
import '@lsby/ts-fp-data';
|
|
5
5
|
import 'express';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import '@lsby/ts-fp-data';
|
|
2
2
|
import 'express';
|
|
3
3
|
import '../help/interior.js';
|
|
4
|
-
export { n as 任意接口逻辑, 兼 as 兼容空对象, 可 as 可调用接口逻辑, m as 接口逻辑, l as 接口逻辑Base, j as 接口逻辑正确类型, i as 接口逻辑错误类型, k as 接口逻辑附加参数类型, 清 as 清理函数类型, 空 as 空对象, s as 获得接口逻辑上游接口类型, o as 获得接口逻辑插件类型, t as 获得接口逻辑最后接口类型, r as 获得接口逻辑正确类型, q as 获得接口逻辑错误类型, p as 获得接口逻辑附加参数类型, 计 as 计算接口逻辑参数, v as 计算接口逻辑正确结果, u as 计算接口逻辑错误结果 } from '../interface-base-
|
|
4
|
+
export { n as 任意接口逻辑, 兼 as 兼容空对象, 可 as 可调用接口逻辑, m as 接口逻辑, l as 接口逻辑Base, j as 接口逻辑正确类型, i as 接口逻辑错误类型, k as 接口逻辑附加参数类型, 清 as 清理函数类型, 空 as 空对象, s as 获得接口逻辑上游接口类型, o as 获得接口逻辑插件类型, t as 获得接口逻辑最后接口类型, r as 获得接口逻辑正确类型, q as 获得接口逻辑错误类型, p as 获得接口逻辑附加参数类型, 计 as 计算接口逻辑参数, v as 计算接口逻辑正确结果, u as 计算接口逻辑错误结果 } from '../interface-base-C1ZNSMJz.js';
|
|
5
5
|
import 'zod';
|
|
6
6
|
import '@lsby/ts-log';
|
|
7
7
|
import 'node:http';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import '@lsby/ts-fp-data';
|
|
2
|
-
export { x as 任意接口结果转换器,
|
|
2
|
+
export { x as 任意接口结果转换器, 常 as 常用形式转换器, w as 接口结果转换器, 直 as 直接形式转换器 } from '../interface-base-C1ZNSMJz.js';
|
|
3
3
|
import 'zod';
|
|
4
4
|
import 'express';
|
|
5
5
|
import '../help/interior.js';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
|
-
常用延时直接形式转换器,
|
|
3
2
|
常用形式转换器,
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
接口结果转换器,
|
|
4
|
+
直接形式转换器
|
|
5
|
+
} from "../chunk-DNJQGD5M.js";
|
|
6
6
|
export {
|
|
7
|
-
\u5E38\u7528\u5EF6\u65F6\u76F4\u63A5\u5F62\u5F0F\u8F6C\u6362\u5668,
|
|
8
7
|
\u5E38\u7528\u5F62\u5F0F\u8F6C\u6362\u5668,
|
|
9
|
-
\u63A5\u53E3\u7ED3\u679C\u8F6C\u6362\u5668
|
|
8
|
+
\u63A5\u53E3\u7ED3\u679C\u8F6C\u6362\u5668,
|
|
9
|
+
\u76F4\u63A5\u5F62\u5F0F\u8F6C\u6362\u5668
|
|
10
10
|
};
|
|
@@ -1,12 +1,26 @@
|
|
|
1
1
|
import { Request, Response } from 'express';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* 描述接口如何将转换器转换后的数据发送给客户端
|
|
5
|
+
*
|
|
6
|
+
* 这一层的存在使得数据格式和传输方式完全解耦:
|
|
7
|
+
* - 相同的数据可以通过 JSON, XML, Protobuf 等不同格式发送
|
|
8
|
+
* - 可以选择不同的传输方式: HTTP 响应, WebSocket, SSE, 文件下载等
|
|
9
|
+
* - 可以设置相应头等数据
|
|
10
|
+
*/
|
|
3
11
|
declare abstract class 接口结果返回器<接口正确形式> {
|
|
4
12
|
abstract 返回(req: Request, res: Response, 结果: 接口正确形式): void | Promise<void>;
|
|
5
13
|
}
|
|
6
14
|
type 任意接口结果返回器 = 接口结果返回器<any>;
|
|
15
|
+
/**
|
|
16
|
+
* 常用返回器: 直接使用 res.send 发送数据
|
|
17
|
+
*/
|
|
7
18
|
declare class 常用返回器<正确形式> extends 接口结果返回器<正确形式> {
|
|
8
19
|
返回(req: Request, res: Response, 结果: 正确形式): void;
|
|
9
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* 自定义返回器: 支持任意自定义的返回逻辑
|
|
23
|
+
*/
|
|
10
24
|
declare class 自定义返回器<正确形式> extends 接口结果返回器<正确形式> {
|
|
11
25
|
private 实现函数;
|
|
12
26
|
constructor(实现函数: (req: Request, res: Response, 结果: 正确形式) => void | Promise<void>);
|
|
@@ -137,6 +137,15 @@ declare abstract class 接口结果转换器<实现错误类型 extends 接口
|
|
|
137
137
|
abstract 实现(数据: Either<实现错误类型, 实现正确类型>): 接口错误形式 | 接口正确形式;
|
|
138
138
|
}
|
|
139
139
|
type 任意接口结果转换器 = 接口结果转换器<any, any, any, any>;
|
|
140
|
+
/**
|
|
141
|
+
* 常用形式转换器
|
|
142
|
+
*
|
|
143
|
+
* 将业务逻辑返回的 Either<错误, 成功> 转换为前端友好的统一格式:
|
|
144
|
+
* - 成功时: { status: 'success', data: ... }
|
|
145
|
+
* - 失败时: { status: 'fail', data: ... }
|
|
146
|
+
*
|
|
147
|
+
* 这种格式让前端可以通过 status 字段统一判断请求是否成功
|
|
148
|
+
*/
|
|
140
149
|
declare class 常用形式转换器<实现错误类型 extends 接口逻辑错误类型, 实现正确类型 extends 接口逻辑正确类型> extends 接口结果转换器<实现错误类型, 实现正确类型, {
|
|
141
150
|
status: 'fail';
|
|
142
151
|
data: 实现错误类型;
|
|
@@ -152,8 +161,27 @@ declare class 常用形式转换器<实现错误类型 extends 接口逻辑错
|
|
|
152
161
|
data: 实现正确类型;
|
|
153
162
|
};
|
|
154
163
|
}
|
|
155
|
-
|
|
156
|
-
|
|
164
|
+
/**
|
|
165
|
+
* 直接形式转换器
|
|
166
|
+
*
|
|
167
|
+
* 将业务逻辑返回的 Either<错误, {data: ...}> 转换为直接格式:
|
|
168
|
+
* - 成功时: 直接的 data 内容
|
|
169
|
+
* - 失败时: { status: 'fail', data: ... }
|
|
170
|
+
*
|
|
171
|
+
* 用于需要直接返回的场景:
|
|
172
|
+
* - 因为接口逻辑需要组合, 所以返回值必须是对象, 但有时候需要返回一个非对象数据
|
|
173
|
+
* - 这个转换器就约定了一个模式, 用于返回直接结果
|
|
174
|
+
* - 业务逻辑需要返回 Either<错误, 成功>, 其中成功部分必须是 { data: 真正的返回值 }
|
|
175
|
+
* - 如果返回左值,返回标准错误格式 { status: 'fail', data: ... }
|
|
176
|
+
* - 如果返回右值,直接返回 data 部分
|
|
177
|
+
*
|
|
178
|
+
* 典型应用场景:
|
|
179
|
+
* - 文件下载: 直接返回文件流
|
|
180
|
+
* - 图片/视频: 直接返回二进制数据
|
|
181
|
+
* - SSE/WebSocket: 建立长连接
|
|
182
|
+
*/
|
|
183
|
+
declare class 直接形式转换器<实现最终返回类型, 实现错误类型 extends 接口逻辑错误类型, 实现正确类型 extends {
|
|
184
|
+
data: 实现最终返回类型;
|
|
157
185
|
}> extends 接口结果转换器<实现错误类型, 实现正确类型, {
|
|
158
186
|
status: 'fail';
|
|
159
187
|
data: 实现错误类型;
|
|
@@ -203,4 +231,4 @@ type 获得接口正确形式<A> = A extends 接口<any, any, any, any, infer X,
|
|
|
203
231
|
type 获得接口结果转换器类型<A> = A extends 接口<any, any, any, any, any, infer X, any> ? X : never;
|
|
204
232
|
type 获得接口结果返回器类型<A> = A extends 接口<any, any, any, any, any, any, infer X> ? X : never;
|
|
205
233
|
|
|
206
|
-
export { type
|
|
234
|
+
export { type 取插件内部ts类型 as A, type 接口方法类型 as a, 接口 as b, type 获得接口方法类型 as c, type 获得接口逻辑类型 as d, type 获得接口错误形式 as e, type 获得接口正确形式 as f, type 获得接口结果转换器类型 as g, type 获得接口结果返回器类型 as h, type 接口逻辑错误类型 as i, type 接口逻辑正确类型 as j, type 接口逻辑附加参数类型 as k, 接口逻辑Base as l, 接口逻辑 as m, type 任意接口逻辑 as n, type 获得接口逻辑插件类型 as o, type 获得接口逻辑附加参数类型 as p, type 获得接口逻辑错误类型 as q, type 获得接口逻辑正确类型 as r, type 获得接口逻辑上游接口类型 as s, type 获得接口逻辑最后接口类型 as t, type 计算接口逻辑错误结果 as u, type 计算接口逻辑正确结果 as v, 接口结果转换器 as w, type 任意接口结果转换器 as x, type 任意插件 as y, type 插件项类型 as z, type 任意接口 as 任, type 兼容空对象 as 兼, type 取插件内部类型 as 取, type 可调用接口逻辑 as 可, type 合并插件结果 as 合, 常用形式转换器 as 常, type 接口路径类型 as 接, 插件 as 插, 服务器 as 服, type 清理函数类型 as 清, 直接形式转换器 as 直, type 空对象 as 空, type 获得接口路径类型 as 获, type 计算接口逻辑参数 as 计, type 请求附加参数类型 as 请 };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { 插 as __ } from '../../interface-base-
|
|
2
|
+
import { 插 as __ } from '../../interface-base-C1ZNSMJz.js';
|
|
3
3
|
import '@lsby/ts-fp-data';
|
|
4
4
|
import 'express';
|
|
5
5
|
import '../../help/interior.js';
|
|
@@ -7,6 +7,9 @@ import '@lsby/ts-log';
|
|
|
7
7
|
import 'node:http';
|
|
8
8
|
import '../../interface/interface-retuen.js';
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* 该插件允许使用者给定任意的数据, 该数据将作为该插件的返回值, 最终传入到接口逻辑中
|
|
12
|
+
*/
|
|
10
13
|
declare class 自定义数据插件<Data extends z.AnyZodObject> extends __<Data> {
|
|
11
14
|
constructor(t: Data, data: z.infer<Data>);
|
|
12
15
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
2
|
import { AnyZodObject, z } from 'zod';
|
|
3
|
-
import {
|
|
3
|
+
import { 严格递归合并对象 as ________ } from '../../help/help.js';
|
|
4
|
+
import { 插 as __, z as _____, 取 as _______, o as __________ } from '../../interface-base-C1ZNSMJz.js';
|
|
4
5
|
import '@lsby/ts-fp-data';
|
|
5
6
|
import '../../help/interior.js';
|
|
6
7
|
import '@lsby/ts-log';
|
|
@@ -8,13 +9,17 @@ import 'node:http';
|
|
|
8
9
|
import '../../interface/interface-retuen.js';
|
|
9
10
|
|
|
10
11
|
declare const 烙印: unique symbol;
|
|
11
|
-
declare class JSON解析插件<Result extends AnyZodObject> extends __<
|
|
12
|
+
declare class JSON解析插件<Result extends AnyZodObject> extends __<z.ZodObject<{
|
|
13
|
+
body: Result;
|
|
14
|
+
}>> {
|
|
12
15
|
private [烙印];
|
|
13
16
|
constructor(t: Result, opt: Parameters<typeof express.json>[0]);
|
|
14
17
|
}
|
|
15
18
|
type 任意JSON解析插件 = JSON解析插件<any>;
|
|
16
19
|
type 任意JSON解析插件项 = 任意JSON解析插件;
|
|
17
|
-
type 合并JSON插件结果<Arr extends Array<_____>> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x extends infer 插件项 ? xs extends Array<_____> ? 插件项 extends 任意JSON解析插件项 ?
|
|
20
|
+
type 合并JSON插件结果<Arr extends Array<_____>> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x extends infer 插件项 ? xs extends Array<_____> ? 插件项 extends 任意JSON解析插件项 ? ________<{
|
|
21
|
+
body: z.infer<_______<插件项>>['body'];
|
|
22
|
+
}, 合并JSON插件结果<xs>> : 合并JSON插件结果<xs> : {} : {} : {};
|
|
18
23
|
type 计算接口逻辑JSON参数<接口逻辑> = 合并JSON插件结果<__________<接口逻辑>>;
|
|
19
24
|
|
|
20
25
|
export { JSON解析插件, type 任意JSON解析插件, type 任意JSON解析插件项, type 合并JSON插件结果, type 计算接口逻辑JSON参数 };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AnyZodObject, z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { 严格递归合并对象 as ________ } from '../../help/help.js';
|
|
3
|
+
import { 插 as __, z as _____, 取 as _______, o as __________ } from '../../interface-base-C1ZNSMJz.js';
|
|
3
4
|
import '@lsby/ts-fp-data';
|
|
4
5
|
import 'express';
|
|
5
6
|
import '../../help/interior.js';
|
|
@@ -8,13 +9,17 @@ import 'node:http';
|
|
|
8
9
|
import '../../interface/interface-retuen.js';
|
|
9
10
|
|
|
10
11
|
declare const 烙印: unique symbol;
|
|
11
|
-
declare class GET参数解析插件<Result extends AnyZodObject> extends __<
|
|
12
|
+
declare class GET参数解析插件<Result extends AnyZodObject> extends __<z.ZodObject<{
|
|
13
|
+
query: Result;
|
|
14
|
+
}>> {
|
|
12
15
|
private [烙印];
|
|
13
16
|
constructor(t: Result);
|
|
14
17
|
}
|
|
15
18
|
type 任意GET参数解析插件 = GET参数解析插件<any>;
|
|
16
19
|
type 任意GET参数解析插件项 = 任意GET参数解析插件;
|
|
17
|
-
type 合并GET插件结果<Arr extends Array<_____>> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x extends infer 插件项 ? xs extends Array<_____> ? 插件项 extends 任意GET参数解析插件项 ?
|
|
20
|
+
type 合并GET插件结果<Arr extends Array<_____>> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x extends infer 插件项 ? xs extends Array<_____> ? 插件项 extends 任意GET参数解析插件项 ? ________<{
|
|
21
|
+
query: z.infer<_______<插件项>>['query'];
|
|
22
|
+
}, 合并GET插件结果<xs>> : 合并GET插件结果<xs> : {} : {} : {};
|
|
18
23
|
type 计算接口逻辑GET参数<接口逻辑> = 合并GET插件结果<__________<接口逻辑>>;
|
|
19
24
|
|
|
20
25
|
export { GET参数解析插件, type 任意GET参数解析插件, type 任意GET参数解析插件项, type 合并GET插件结果, type 计算接口逻辑GET参数 };
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { 插 as __ } from '../../interface-base-
|
|
3
|
+
import { 插 as __ } from '../../interface-base-C1ZNSMJz.js';
|
|
4
4
|
import '@lsby/ts-fp-data';
|
|
5
5
|
import '../../help/interior.js';
|
|
6
6
|
import '@lsby/ts-log';
|
|
7
7
|
import 'node:http';
|
|
8
8
|
import '../../interface/interface-retuen.js';
|
|
9
9
|
|
|
10
|
-
declare class 表单解析插件<Result extends z.AnyZodObject> extends __<
|
|
10
|
+
declare class 表单解析插件<Result extends z.AnyZodObject> extends __<z.ZodObject<{
|
|
11
|
+
form: Result;
|
|
12
|
+
}>> {
|
|
11
13
|
constructor(t: Result, opt: Parameters<typeof express.urlencoded>[0]);
|
|
12
14
|
}
|
|
13
15
|
|