@lsby/net-core 0.3.23 → 0.3.25
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-list/bin.cjs +13 -4
- package/dist/bin/gen-list/index.cjs +13 -4
- package/dist/bin/gen-test/bin.cjs +18 -6
- package/dist/bin/gen-test/index.cjs +18 -6
- package/dist/bin/gen-type/addition.cjs +123 -0
- package/dist/bin/gen-type/addition.d.cts +3 -0
- package/dist/bin/gen-type/bin.cjs +112 -100
- package/dist/bin/gen-type/index.cjs +112 -100
- package/dist/cjs/bin/gen-list/bin.cjs +13 -4
- package/dist/cjs/bin/gen-list/index.cjs +13 -4
- package/dist/cjs/bin/gen-test/bin.cjs +18 -6
- package/dist/cjs/bin/gen-test/index.cjs +18 -6
- package/dist/cjs/bin/gen-type/addition.cjs +123 -0
- package/dist/cjs/bin/gen-type/addition.d.cts +3 -0
- package/dist/cjs/bin/gen-type/bin.cjs +112 -100
- package/dist/cjs/bin/gen-type/index.cjs +112 -100
- package/dist/cjs/index.cjs +10 -7
- package/dist/cjs/interface/extend/json-base.cjs +8 -5
- package/dist/cjs/interface/extend/json-base.d.cts +4 -4
- package/dist/cjs/interface/extend/json-wrap.cjs +5 -2
- package/dist/cjs/interface/extend/json-wrap.d.cts +4 -4
- package/dist/cjs/interface/interface-inst.cjs +3 -0
- package/dist/cjs/interface/interface-inst.d.cts +2 -1
- package/dist/esm/bin/gen-list/bin.js +1 -1
- package/dist/esm/bin/gen-list/index.js +1 -1
- package/dist/esm/bin/gen-test/bin.js +1 -1
- package/dist/esm/bin/gen-test/index.js +1 -1
- package/dist/esm/bin/gen-type/addition.d.ts +3 -0
- package/dist/esm/bin/gen-type/addition.js +6 -0
- package/dist/esm/bin/gen-type/bin.js +2 -1
- package/dist/esm/bin/gen-type/index.js +2 -1
- package/dist/esm/{chunk-TMRT3MBS.js → chunk-33UG5J6F.js} +13 -4
- package/dist/esm/{chunk-IZ623QVE.js → chunk-5FTVDMDL.js} +3 -0
- package/dist/esm/{chunk-MMAAGHJW.js → chunk-LA44GRGO.js} +18 -100
- package/dist/esm/{chunk-3WT6TRYJ.js → chunk-QX7F45LO.js} +7 -7
- package/dist/esm/{chunk-B5W4H32C.js → chunk-QXOTCD4X.js} +18 -6
- package/dist/esm/chunk-TW4ZMOLY.js +99 -0
- package/dist/esm/chunk-URPOOM7V.js +21 -0
- package/dist/esm/index.js +14 -14
- package/dist/esm/interface/extend/json-base.d.ts +4 -4
- package/dist/esm/interface/extend/json-base.js +3 -3
- package/dist/esm/interface/extend/json-wrap.d.ts +4 -4
- package/dist/esm/interface/extend/json-wrap.js +3 -3
- package/dist/esm/interface/interface-inst.d.ts +2 -1
- package/dist/esm/interface/interface-inst.js +1 -1
- package/package.json +1 -1
- package/dist/esm/chunk-P6ML63XI.js +0 -21
|
@@ -11,7 +11,8 @@ type 计算接口返回<接口类型描述> = Promise<Either<z.infer<________<
|
|
|
11
11
|
declare abstract class 接口<接口类型描述 extends ______$1> extends ____<计算接口参数<接口类型描述>, z.infer<________<接口类型描述>>, z.infer<________$1<接口类型描述>>> {
|
|
12
12
|
protected abstract 业务行为实现(参数: 计算接口参数<接口类型描述>): 计算接口返回<接口类型描述>;
|
|
13
13
|
abstract 获得API类型(): 接口类型描述;
|
|
14
|
-
|
|
14
|
+
API实现(参数: 计算接口参数<接口类型描述>): Promise<____$1<z.infer<________$1<接口类型描述>>> | ____$2<z.infer<________<接口类型描述>>>>;
|
|
15
|
+
abstract 转换业务结果到API结果(业务结果: 计算接口返回<接口类型描述>): Promise<____$1<z.infer<________$1<接口类型描述>>> | ____$2<z.infer<________<接口类型描述>>>>;
|
|
15
16
|
}
|
|
16
17
|
type 任意接口 = 接口<any>;
|
|
17
18
|
|
|
@@ -26,28 +26,34 @@ function \u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F
|
|
|
26
26
|
return path.relative(path.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84), a["\u6587\u4EF6"].fileName).replaceAll("\\", "/").replaceAll(".ts", "");
|
|
27
27
|
}
|
|
28
28
|
async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
|
|
29
|
-
var
|
|
30
|
-
await
|
|
29
|
+
var log = new Log("@lsby:net-core").extend("gen-list");
|
|
30
|
+
await log.debug("\u5F00\u59CB\u751F\u6210\u63A5\u53E3\u5217\u8868...");
|
|
31
|
+
await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
|
|
32
|
+
await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
|
|
33
|
+
await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
|
|
31
34
|
const tsconfig\u5185\u5BB9 = ts.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, fs.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
|
|
32
35
|
if (tsconfig\u5185\u5BB9.error) {
|
|
36
|
+
await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json: " + tsconfig\u5185\u5BB9.error.messageText);
|
|
33
37
|
throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
|
|
34
38
|
}
|
|
35
39
|
const \u89E3\u6790\u540E\u7684tsconfig = ts.parseJsonConfigFileContent(tsconfig\u5185\u5BB9.config, ts.sys, path.resolve(tsconfig\u8DEF\u5F84, ".."));
|
|
36
|
-
await
|
|
40
|
+
await log.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
|
|
37
41
|
const \u9879\u76EE\u4E3B\u673A = ts.createCompilerHost(\u89E3\u6790\u540E\u7684tsconfig.options);
|
|
38
42
|
const \u9879\u76EE = ts.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
|
|
39
|
-
await
|
|
43
|
+
await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
|
|
40
44
|
var \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
|
|
41
45
|
var \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
|
|
42
46
|
var \u6E90\u6587\u4EF6\u8DEF\u5F84 = path.normalize(\u6E90\u6587\u4EF62.fileName);
|
|
43
47
|
return \u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84);
|
|
44
48
|
});
|
|
49
|
+
await log.debug(`\u7B5B\u9009\u51FA ${\u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
|
|
45
50
|
const \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC = \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.flatMap(
|
|
46
51
|
(a) => \u63D0\u53D6\u9876\u7EA7\u5BFC\u51FA\u7C7B\u8282\u70B9(a).map((x) => ({
|
|
47
52
|
\u6587\u4EF6: a,
|
|
48
53
|
\u7C7B\u8282\u70B9: x
|
|
49
54
|
}))
|
|
50
55
|
);
|
|
56
|
+
await log.debug(`\u63D0\u53D6\u5230 ${\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.length} \u4E2A\u7C7B\u8282\u70B9`);
|
|
51
57
|
var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.map((a) => {
|
|
52
58
|
var \u7C7B\u540D\u5B57 = a.\u7C7B\u8282\u70B9.name?.text;
|
|
53
59
|
var \u4EE3\u7801 = [
|
|
@@ -90,6 +96,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
90
96
|
\u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
|
|
91
97
|
}
|
|
92
98
|
var \u6700\u7EC8\u7ED3\u679C = L.zip(\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC, \u68C0\u67E5\u7ED3\u679C).filter((a) => a[1] == true).map((a) => a[0]).filter((a) => a != null);
|
|
99
|
+
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u5B9E\u73B0`);
|
|
93
100
|
var \u6700\u7EC8\u4EE3\u7801 = [
|
|
94
101
|
`import { \u4EFB\u610F\u63A5\u53E3 } from '@lsby/net-core'`,
|
|
95
102
|
"",
|
|
@@ -102,10 +109,12 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
102
109
|
`]`,
|
|
103
110
|
""
|
|
104
111
|
];
|
|
112
|
+
await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
|
|
105
113
|
var \u8F93\u51FA\u6587\u4EF6\u5939 = path.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
|
|
106
114
|
if (!fs.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
|
|
107
115
|
fs.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
|
|
108
116
|
fs.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
|
|
117
|
+
await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
|
|
109
118
|
}
|
|
110
119
|
|
|
111
120
|
export {
|
|
@@ -4,6 +4,9 @@ import {
|
|
|
4
4
|
|
|
5
5
|
// src/interface/interface-inst.ts
|
|
6
6
|
var \u63A5\u53E3 = class extends \u4E1A\u52A1\u884C\u4E3A {
|
|
7
|
+
API\u5B9E\u73B0(\u53C2\u6570) {
|
|
8
|
+
return this.\u8F6C\u6362\u4E1A\u52A1\u7ED3\u679C\u5230API\u7ED3\u679C(this.\u4E1A\u52A1\u884C\u4E3A\u5B9E\u73B0(\u53C2\u6570));
|
|
9
|
+
}
|
|
7
10
|
};
|
|
8
11
|
|
|
9
12
|
export {
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
附加代码
|
|
3
|
+
} from "./chunk-TW4ZMOLY.js";
|
|
4
|
+
|
|
1
5
|
// src/bin/gen-type/index.ts
|
|
2
6
|
import { randomUUID } from "node:crypto";
|
|
3
7
|
import fs from "node:fs";
|
|
@@ -23,22 +27,27 @@ function \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(\u5B57\u7B26\u4E32) {
|
|
|
23
27
|
return "_" + \u5B57\u7B26\u4E32.replace(/[ !\-!@#$%^&*()\[\]{}\\|;:'",.\/?]/g, "_");
|
|
24
28
|
}
|
|
25
29
|
async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
|
|
26
|
-
var
|
|
27
|
-
await
|
|
30
|
+
var log = new Log("@lsby:net-core").extend("gen-type");
|
|
31
|
+
await log.debug("\u5F00\u59CB\u751F\u6210\u7C7B\u578B...");
|
|
32
|
+
await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
|
|
33
|
+
await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
|
|
34
|
+
await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
|
|
28
35
|
const tsconfig\u5185\u5BB9 = ts.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, fs.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
|
|
29
36
|
if (tsconfig\u5185\u5BB9.error) {
|
|
37
|
+
await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
|
|
30
38
|
throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
|
|
31
39
|
}
|
|
32
40
|
const \u89E3\u6790\u540E\u7684tsconfig = ts.parseJsonConfigFileContent(tsconfig\u5185\u5BB9.config, ts.sys, path.resolve(tsconfig\u8DEF\u5F84, ".."));
|
|
33
|
-
await
|
|
41
|
+
await log.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
|
|
34
42
|
const \u9879\u76EE\u4E3B\u673A = ts.createCompilerHost(\u89E3\u6790\u540E\u7684tsconfig.options);
|
|
35
43
|
const \u9879\u76EE = ts.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
|
|
36
|
-
await
|
|
44
|
+
await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
|
|
37
45
|
var \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
|
|
38
46
|
var \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
|
|
39
47
|
var \u6E90\u6587\u4EF6\u8DEF\u5F84 = path.normalize(\u6E90\u6587\u4EF62.fileName);
|
|
40
48
|
return \u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84);
|
|
41
49
|
});
|
|
50
|
+
await log.debug(`\u7B5B\u9009\u51FA ${\u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
|
|
42
51
|
const \u76F8\u5173\u53D8\u91CF\u8282\u70B9\u4EEC = \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.flatMap(
|
|
43
52
|
(a) => \u63D0\u53D6\u53D8\u91CF\u8282\u70B9(a).map((x) => ({
|
|
44
53
|
\u6587\u4EF6: a,
|
|
@@ -46,6 +55,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
46
55
|
\u8BA1\u7B97\u8282\u70B9\u540D\u79F0: \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(randomUUID())
|
|
47
56
|
}))
|
|
48
57
|
);
|
|
58
|
+
await log.debug(`\u63D0\u53D6\u5230 ${\u76F8\u5173\u53D8\u91CF\u8282\u70B9\u4EEC.length} \u4E2A\u53D8\u91CF\u8282\u70B9`);
|
|
49
59
|
var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u53D8\u91CF\u8282\u70B9\u4EEC.map((a) => {
|
|
50
60
|
var \u4EE3\u7801 = [];
|
|
51
61
|
if (a.\u53D8\u91CF\u8282\u70B9.name.kind != ts.SyntaxKind.Identifier) {
|
|
@@ -107,106 +117,14 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
107
117
|
});
|
|
108
118
|
\u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
|
|
109
119
|
}
|
|
110
|
-
var \u6700\u7EC8\u7ED3\u679C = Array.from(new Set(\u68C0\u67E5\u7ED3\u679C.filter((a) => a != "any")));
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
"",
|
|
114
|
-
`type \u5143\u7EC4\u8F6C\u8054\u5408<T> = T extends any[] ? T[number] : never`,
|
|
115
|
-
"",
|
|
116
|
-
`type \u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<A = InterfaceType> = A extends []`,
|
|
117
|
-
` ? []`,
|
|
118
|
-
` : A extends [infer x, ...infer xs]`,
|
|
119
|
-
` ? 'path' extends keyof x`,
|
|
120
|
-
` ? [x['path'], ...\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<xs>]`,
|
|
121
|
-
` : never`,
|
|
122
|
-
` : never`,
|
|
123
|
-
`type Get\u63A5\u53E3\u8DEF\u5F84\u4EEC<A = InterfaceType> = A extends []`,
|
|
124
|
-
` ? []`,
|
|
125
|
-
` : A extends [infer x, ...infer xs]`,
|
|
126
|
-
` ? 'method' extends keyof x`,
|
|
127
|
-
` ? x['method'] extends 'get'`,
|
|
128
|
-
` ? 'path' extends keyof x`,
|
|
129
|
-
` ? [x['path'], ...\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<xs>]`,
|
|
130
|
-
` : never`,
|
|
131
|
-
` : never`,
|
|
132
|
-
` : never`,
|
|
133
|
-
` : never`,
|
|
134
|
-
`type Post\u63A5\u53E3\u8DEF\u5F84\u4EEC<A = InterfaceType> = A extends []`,
|
|
135
|
-
` ? []`,
|
|
136
|
-
` : A extends [infer x, ...infer xs]`,
|
|
137
|
-
` ? 'method' extends keyof x`,
|
|
138
|
-
` ? x['method'] extends 'post'`,
|
|
139
|
-
` ? 'path' extends keyof x`,
|
|
140
|
-
` ? [x['path'], ...\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<xs>]`,
|
|
141
|
-
` : never`,
|
|
142
|
-
` : never`,
|
|
143
|
-
` : never`,
|
|
144
|
-
` : never`,
|
|
145
|
-
``,
|
|
146
|
-
`type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, A = InterfaceType> = A extends []`,
|
|
147
|
-
` ? []`,
|
|
148
|
-
` : A extends [infer x, ...infer xs]`,
|
|
149
|
-
` ? 'path' extends keyof x`,
|
|
150
|
-
` ? x['path'] extends Path`,
|
|
151
|
-
` ? 'input' extends keyof x`,
|
|
152
|
-
` ? x['input']`,
|
|
153
|
-
` : never`,
|
|
154
|
-
` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, xs>`,
|
|
155
|
-
` : never`,
|
|
156
|
-
` : never`,
|
|
157
|
-
`type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<Path, A = InterfaceType> = A extends []`,
|
|
158
|
-
` ? []`,
|
|
159
|
-
` : A extends [infer x, ...infer xs]`,
|
|
160
|
-
` ? 'path' extends keyof x`,
|
|
161
|
-
` ? x['path'] extends Path`,
|
|
162
|
-
` ? 'method' extends keyof x`,
|
|
163
|
-
` ? x['method']`,
|
|
164
|
-
` : never`,
|
|
165
|
-
` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<Path, xs>`,
|
|
166
|
-
` : never`,
|
|
167
|
-
` : never`,
|
|
168
|
-
`type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<Path, A = InterfaceType> = A extends []`,
|
|
169
|
-
` ? []`,
|
|
170
|
-
` : A extends [infer x, ...infer xs]`,
|
|
171
|
-
` ? 'path' extends keyof x`,
|
|
172
|
-
` ? x['path'] extends Path`,
|
|
173
|
-
` ? 'successOutput' extends keyof x`,
|
|
174
|
-
` ? x['successOutput']`,
|
|
175
|
-
` : never`,
|
|
176
|
-
` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<Path, xs>`,
|
|
177
|
-
` : never`,
|
|
178
|
-
` : never`,
|
|
179
|
-
`type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<Path, A = InterfaceType> = A extends []`,
|
|
180
|
-
` ? []`,
|
|
181
|
-
` : A extends [infer x, ...infer xs]`,
|
|
182
|
-
` ? 'path' extends keyof x`,
|
|
183
|
-
` ? x['path'] extends Path`,
|
|
184
|
-
` ? 'errorOutput' extends keyof x`,
|
|
185
|
-
` ? x['errorOutput']`,
|
|
186
|
-
` : never`,
|
|
187
|
-
` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<Path, xs>`,
|
|
188
|
-
` : never`,
|
|
189
|
-
` : never`,
|
|
190
|
-
``,
|
|
191
|
-
`export type \u8BF7\u6C42\u540E\u7AEF\u51FD\u6570\u7C7B\u578B = <\u8DEF\u5F84 extends \u5143\u7EC4\u8F6C\u8054\u5408<\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC>>(`,
|
|
192
|
-
` \u8DEF\u5F84: \u8DEF\u5F84,`,
|
|
193
|
-
` \u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,`,
|
|
194
|
-
` \u65B9\u6CD5: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<\u8DEF\u5F84>,`,
|
|
195
|
-
`) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>`,
|
|
196
|
-
`export type Get\u8BF7\u6C42\u540E\u7AEF\u51FD\u6570\u7C7B\u578B = <\u8DEF\u5F84 extends \u5143\u7EC4\u8F6C\u8054\u5408<Get\u63A5\u53E3\u8DEF\u5F84\u4EEC>>(`,
|
|
197
|
-
` \u8DEF\u5F84: \u8DEF\u5F84,`,
|
|
198
|
-
` \u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,`,
|
|
199
|
-
`) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>`,
|
|
200
|
-
`export type Post\u8BF7\u6C42\u540E\u7AEF\u51FD\u6570\u7C7B\u578B = <\u8DEF\u5F84 extends \u5143\u7EC4\u8F6C\u8054\u5408<Post\u63A5\u53E3\u8DEF\u5F84\u4EEC>>(`,
|
|
201
|
-
` \u8DEF\u5F84: \u8DEF\u5F84,`,
|
|
202
|
-
` \u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,`,
|
|
203
|
-
`) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>`,
|
|
204
|
-
""
|
|
205
|
-
];
|
|
120
|
+
var \u6700\u7EC8\u7ED3\u679C = Array.from(new Set(\u68C0\u67E5\u7ED3\u679C.filter((a) => a != "any" && a != "never")));
|
|
121
|
+
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u7C7B\u578B`);
|
|
122
|
+
var \u6700\u7EC8\u4EE3\u7801 = [`export type InterfaceType = [${\u6700\u7EC8\u7ED3\u679C.join(",")}]`, ...\u9644\u52A0\u4EE3\u7801];
|
|
206
123
|
var \u8F93\u51FA\u6587\u4EF6\u5939 = path.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
|
|
207
124
|
if (!fs.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
|
|
208
125
|
fs.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
|
|
209
126
|
fs.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
|
|
127
|
+
await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
|
|
210
128
|
}
|
|
211
129
|
|
|
212
130
|
export {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
正确JSON结果,
|
|
3
|
-
错误JSON结果
|
|
4
|
-
} from "./chunk-IPDMEQ3O.js";
|
|
5
1
|
import {
|
|
6
2
|
接口
|
|
7
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-5FTVDMDL.js";
|
|
8
4
|
import {
|
|
9
5
|
接口类型
|
|
10
6
|
} from "./chunk-SF5Z34AP.js";
|
|
7
|
+
import {
|
|
8
|
+
正确JSON结果,
|
|
9
|
+
错误JSON结果
|
|
10
|
+
} from "./chunk-IPDMEQ3O.js";
|
|
11
11
|
|
|
12
12
|
// src/interface/extend/json-wrap.ts
|
|
13
13
|
import { z } from "zod";
|
|
@@ -23,8 +23,8 @@ var JSON\u72B6\u6001\u63A5\u53E3\u7C7B\u578B = class extends \u63A5\u53E3\u7C7B\
|
|
|
23
23
|
}
|
|
24
24
|
};
|
|
25
25
|
var JSON\u72B6\u6001\u63A5\u53E3 = class extends \u63A5\u53E3 {
|
|
26
|
-
async
|
|
27
|
-
var c = await
|
|
26
|
+
async \u8F6C\u6362\u4E1A\u52A1\u7ED3\u679C\u5230API\u7ED3\u679C(\u4E1A\u52A1\u7ED3\u679C) {
|
|
27
|
+
var c = await \u4E1A\u52A1\u7ED3\u679C;
|
|
28
28
|
if (c.isLeft())
|
|
29
29
|
return new \u9519\u8BEFJSON\u7ED3\u679C({ status: "fail", data: c.assertLeft().getLeft() });
|
|
30
30
|
return new \u6B63\u786EJSON\u7ED3\u679C({ status: "success", data: c.assertRight().getRight() });
|
|
@@ -26,28 +26,36 @@ function \u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F
|
|
|
26
26
|
return path.relative(path.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84), a["\u6587\u4EF6"].fileName).replaceAll("\\", "/").replaceAll(".ts", "");
|
|
27
27
|
}
|
|
28
28
|
async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F) {
|
|
29
|
-
var
|
|
30
|
-
await
|
|
29
|
+
var log = new Log("@lsby:net-core").extend("gen-test");
|
|
30
|
+
await log.debug("\u5F00\u59CB\u751F\u6210\u6D4B\u8BD5...");
|
|
31
|
+
await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
|
|
32
|
+
await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
|
|
33
|
+
await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
|
|
34
|
+
await log.debug(`\u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F: ${\u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F}`);
|
|
31
35
|
const tsconfig\u5185\u5BB9 = ts.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, fs.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
|
|
32
36
|
if (tsconfig\u5185\u5BB9.error) {
|
|
37
|
+
await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json", tsconfig\u5185\u5BB9.error);
|
|
33
38
|
throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
|
|
34
39
|
}
|
|
35
40
|
const \u89E3\u6790\u540E\u7684tsconfig = ts.parseJsonConfigFileContent(tsconfig\u5185\u5BB9.config, ts.sys, path.resolve(tsconfig\u8DEF\u5F84, ".."));
|
|
36
|
-
await
|
|
41
|
+
await log.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
|
|
37
42
|
const \u9879\u76EE\u4E3B\u673A = ts.createCompilerHost(\u89E3\u6790\u540E\u7684tsconfig.options);
|
|
38
43
|
const \u9879\u76EE = ts.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
|
|
39
|
-
await
|
|
44
|
+
await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
|
|
40
45
|
var \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
|
|
41
46
|
var \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
|
|
42
47
|
var \u6E90\u6587\u4EF6\u8DEF\u5F84 = path.normalize(\u6E90\u6587\u4EF62.fileName);
|
|
43
|
-
|
|
48
|
+
var \u7B26\u5408\u8FC7\u6EE4\u8868\u8FBE\u5F0F = new RegExp(\u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F || ".*").test(\u6E90\u6587\u4EF6\u8DEF\u5F84);
|
|
49
|
+
return \u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84) && \u7B26\u5408\u8FC7\u6EE4\u8868\u8FBE\u5F0F;
|
|
44
50
|
});
|
|
51
|
+
await log.debug(`\u7B5B\u9009\u51FA ${\u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
|
|
45
52
|
const \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC = \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.flatMap(
|
|
46
53
|
(a) => \u63D0\u53D6\u9876\u7EA7\u5BFC\u51FA\u7C7B\u8282\u70B9(a).map((x) => ({
|
|
47
54
|
\u6587\u4EF6: a,
|
|
48
55
|
\u7C7B\u8282\u70B9: x
|
|
49
56
|
}))
|
|
50
57
|
);
|
|
58
|
+
await log.debug(`\u63D0\u53D6\u5230 ${\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.length} \u4E2A\u7C7B\u8282\u70B9`);
|
|
51
59
|
var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.map((a) => {
|
|
52
60
|
var \u7C7B\u540D\u5B57 = a.\u7C7B\u8282\u70B9.name?.text;
|
|
53
61
|
var \u4EE3\u7801 = [
|
|
@@ -90,6 +98,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
90
98
|
\u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
|
|
91
99
|
}
|
|
92
100
|
var \u6700\u7EC8\u7ED3\u679C = L.zip(\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC, \u68C0\u67E5\u7ED3\u679C).filter((a) => a[1] == true).map((a) => a[0]).filter((a) => a != null);
|
|
101
|
+
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u6D4B\u8BD5\u7528\u4F8B`);
|
|
93
102
|
var \u6700\u7EC8\u4EE3\u7801 = [
|
|
94
103
|
"import { test } from 'vitest'",
|
|
95
104
|
"import './unit-test-prefix'",
|
|
@@ -101,10 +110,13 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
101
110
|
...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => `test('${a}', async () => await new ${a}().\u8FD0\u884C())`),
|
|
102
111
|
""
|
|
103
112
|
];
|
|
113
|
+
await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
|
|
104
114
|
var \u8F93\u51FA\u6587\u4EF6\u5939 = path.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
|
|
105
|
-
if (!fs.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
|
|
115
|
+
if (!fs.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939)) {
|
|
106
116
|
fs.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
|
|
117
|
+
}
|
|
107
118
|
fs.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
|
|
119
|
+
await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
|
|
108
120
|
}
|
|
109
121
|
|
|
110
122
|
export {
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// src/bin/gen-type/addition.ts
|
|
2
|
+
var \u9644\u52A0\u4EE3\u7801 = [
|
|
3
|
+
"",
|
|
4
|
+
`type \u5143\u7EC4\u8F6C\u8054\u5408<T> = T extends any[] ? T[number] : never`,
|
|
5
|
+
"",
|
|
6
|
+
`type \u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<A = InterfaceType> = A extends []`,
|
|
7
|
+
` ? []`,
|
|
8
|
+
` : A extends [infer x, ...infer xs]`,
|
|
9
|
+
` ? 'path' extends keyof x`,
|
|
10
|
+
` ? [x['path'], ...\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<xs>]`,
|
|
11
|
+
` : never`,
|
|
12
|
+
` : never`,
|
|
13
|
+
`type Get\u63A5\u53E3\u8DEF\u5F84\u4EEC<A = InterfaceType> = A extends []`,
|
|
14
|
+
` ? []`,
|
|
15
|
+
` : A extends [infer x, ...infer xs]`,
|
|
16
|
+
` ? 'method' extends keyof x`,
|
|
17
|
+
` ? x['method'] extends 'get'`,
|
|
18
|
+
` ? 'path' extends keyof x`,
|
|
19
|
+
` ? [x['path'], ...\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<xs>]`,
|
|
20
|
+
` : never`,
|
|
21
|
+
` : never`,
|
|
22
|
+
` : never`,
|
|
23
|
+
` : never`,
|
|
24
|
+
`type Post\u63A5\u53E3\u8DEF\u5F84\u4EEC<A = InterfaceType> = A extends []`,
|
|
25
|
+
` ? []`,
|
|
26
|
+
` : A extends [infer x, ...infer xs]`,
|
|
27
|
+
` ? 'method' extends keyof x`,
|
|
28
|
+
` ? x['method'] extends 'post'`,
|
|
29
|
+
` ? 'path' extends keyof x`,
|
|
30
|
+
` ? [x['path'], ...\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<xs>]`,
|
|
31
|
+
` : never`,
|
|
32
|
+
` : never`,
|
|
33
|
+
` : never`,
|
|
34
|
+
` : never`,
|
|
35
|
+
``,
|
|
36
|
+
`type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, A = InterfaceType> = A extends []`,
|
|
37
|
+
` ? []`,
|
|
38
|
+
` : A extends [infer x, ...infer xs]`,
|
|
39
|
+
` ? 'path' extends keyof x`,
|
|
40
|
+
` ? x['path'] extends Path`,
|
|
41
|
+
` ? 'input' extends keyof x`,
|
|
42
|
+
` ? x['input']`,
|
|
43
|
+
` : never`,
|
|
44
|
+
` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, xs>`,
|
|
45
|
+
` : never`,
|
|
46
|
+
` : never`,
|
|
47
|
+
`type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<Path, A = InterfaceType> = A extends []`,
|
|
48
|
+
` ? []`,
|
|
49
|
+
` : A extends [infer x, ...infer xs]`,
|
|
50
|
+
` ? 'path' extends keyof x`,
|
|
51
|
+
` ? x['path'] extends Path`,
|
|
52
|
+
` ? 'method' extends keyof x`,
|
|
53
|
+
` ? x['method']`,
|
|
54
|
+
` : never`,
|
|
55
|
+
` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<Path, xs>`,
|
|
56
|
+
` : never`,
|
|
57
|
+
` : never`,
|
|
58
|
+
`type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<Path, A = InterfaceType> = A extends []`,
|
|
59
|
+
` ? []`,
|
|
60
|
+
` : A extends [infer x, ...infer xs]`,
|
|
61
|
+
` ? 'path' extends keyof x`,
|
|
62
|
+
` ? x['path'] extends Path`,
|
|
63
|
+
` ? 'successOutput' extends keyof x`,
|
|
64
|
+
` ? x['successOutput']`,
|
|
65
|
+
` : never`,
|
|
66
|
+
` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<Path, xs>`,
|
|
67
|
+
` : never`,
|
|
68
|
+
` : never`,
|
|
69
|
+
`type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<Path, A = InterfaceType> = A extends []`,
|
|
70
|
+
` ? []`,
|
|
71
|
+
` : A extends [infer x, ...infer xs]`,
|
|
72
|
+
` ? 'path' extends keyof x`,
|
|
73
|
+
` ? x['path'] extends Path`,
|
|
74
|
+
` ? 'errorOutput' extends keyof x`,
|
|
75
|
+
` ? x['errorOutput']`,
|
|
76
|
+
` : never`,
|
|
77
|
+
` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<Path, xs>`,
|
|
78
|
+
` : never`,
|
|
79
|
+
` : never`,
|
|
80
|
+
``,
|
|
81
|
+
`export type \u8BF7\u6C42\u540E\u7AEF\u51FD\u6570\u7C7B\u578B = <\u8DEF\u5F84 extends \u5143\u7EC4\u8F6C\u8054\u5408<\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC>>(`,
|
|
82
|
+
` \u8DEF\u5F84: \u8DEF\u5F84,`,
|
|
83
|
+
` \u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,`,
|
|
84
|
+
` \u65B9\u6CD5: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<\u8DEF\u5F84>,`,
|
|
85
|
+
`) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>`,
|
|
86
|
+
`export type Get\u8BF7\u6C42\u540E\u7AEF\u51FD\u6570\u7C7B\u578B = <\u8DEF\u5F84 extends \u5143\u7EC4\u8F6C\u8054\u5408<Get\u63A5\u53E3\u8DEF\u5F84\u4EEC>>(`,
|
|
87
|
+
` \u8DEF\u5F84: \u8DEF\u5F84,`,
|
|
88
|
+
` \u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,`,
|
|
89
|
+
`) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>`,
|
|
90
|
+
`export type Post\u8BF7\u6C42\u540E\u7AEF\u51FD\u6570\u7C7B\u578B = <\u8DEF\u5F84 extends \u5143\u7EC4\u8F6C\u8054\u5408<Post\u63A5\u53E3\u8DEF\u5F84\u4EEC>>(`,
|
|
91
|
+
` \u8DEF\u5F84: \u8DEF\u5F84,`,
|
|
92
|
+
` \u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,`,
|
|
93
|
+
`) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>`,
|
|
94
|
+
""
|
|
95
|
+
];
|
|
96
|
+
|
|
97
|
+
export {
|
|
98
|
+
附加代码
|
|
99
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {
|
|
2
|
+
接口
|
|
3
|
+
} from "./chunk-5FTVDMDL.js";
|
|
4
|
+
import {
|
|
5
|
+
正确JSON结果,
|
|
6
|
+
错误JSON结果
|
|
7
|
+
} from "./chunk-IPDMEQ3O.js";
|
|
8
|
+
|
|
9
|
+
// src/interface/extend/json-base.ts
|
|
10
|
+
var JSON\u63A5\u53E3 = class extends \u63A5\u53E3 {
|
|
11
|
+
async \u8F6C\u6362\u4E1A\u52A1\u7ED3\u679C\u5230API\u7ED3\u679C(\u4E1A\u52A1\u7ED3\u679C) {
|
|
12
|
+
var c = await \u4E1A\u52A1\u7ED3\u679C;
|
|
13
|
+
if (c.isLeft())
|
|
14
|
+
return new \u9519\u8BEFJSON\u7ED3\u679C(c.assertLeft().getLeft());
|
|
15
|
+
return new \u6B63\u786EJSON\u7ED3\u679C(c.assertRight().getRight());
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export {
|
|
20
|
+
JSON接口
|
|
21
|
+
};
|
package/dist/esm/index.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
JSON接口
|
|
3
|
+
} from "./chunk-URPOOM7V.js";
|
|
1
4
|
import {
|
|
2
5
|
JSON状态接口,
|
|
3
6
|
JSON状态接口类型
|
|
4
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-QX7F45LO.js";
|
|
5
8
|
import {
|
|
6
9
|
中文路径支持插件
|
|
7
10
|
} from "./chunk-KW3M3VXP.js";
|
|
@@ -15,19 +18,11 @@ import {
|
|
|
15
18
|
表单解析插件
|
|
16
19
|
} from "./chunk-XTHURYQM.js";
|
|
17
20
|
import {
|
|
18
|
-
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import {
|
|
21
|
-
正确JSON结果,
|
|
22
|
-
正确结果,
|
|
23
|
-
正确自定义结果,
|
|
24
|
-
结果,
|
|
25
|
-
错误JSON结果,
|
|
26
|
-
错误结果
|
|
27
|
-
} from "./chunk-IPDMEQ3O.js";
|
|
21
|
+
插件
|
|
22
|
+
} from "./chunk-N4NY37XI.js";
|
|
28
23
|
import {
|
|
29
24
|
接口
|
|
30
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-5FTVDMDL.js";
|
|
31
26
|
import {
|
|
32
27
|
业务行为
|
|
33
28
|
} from "./chunk-V3S5HDZD.js";
|
|
@@ -38,8 +33,13 @@ import {
|
|
|
38
33
|
接口类型
|
|
39
34
|
} from "./chunk-SF5Z34AP.js";
|
|
40
35
|
import {
|
|
41
|
-
|
|
42
|
-
|
|
36
|
+
正确JSON结果,
|
|
37
|
+
正确结果,
|
|
38
|
+
正确自定义结果,
|
|
39
|
+
结果,
|
|
40
|
+
错误JSON结果,
|
|
41
|
+
错误结果
|
|
42
|
+
} from "./chunk-IPDMEQ3O.js";
|
|
43
43
|
import {
|
|
44
44
|
服务器
|
|
45
45
|
} from "./chunk-N7VWAPFU.js";
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { 合并插件结果 as ______$1 } from '../../plugin/plug.js';
|
|
3
2
|
import { 正确结果 as ____, 错误结果 as ____$1 } from '../../result/result.js';
|
|
4
|
-
import { 接口 as __ } from '../interface-inst.js';
|
|
5
|
-
import { 任意接口类型 as ______,
|
|
3
|
+
import { 接口 as __, 计算接口返回 as ______$1 } from '../interface-inst.js';
|
|
4
|
+
import { 任意接口类型 as ______, 接口类型正确结果 as ________, 接口类型错误结果 as ________$1 } from '../interface-type.js';
|
|
6
5
|
import 'express';
|
|
7
6
|
import '@lsby/ts-fp-data';
|
|
8
7
|
import '../../action/action.js';
|
|
8
|
+
import '../../plugin/plug.js';
|
|
9
9
|
|
|
10
10
|
declare abstract class JSON接口<接口类型描述 extends ______> extends __<接口类型描述> {
|
|
11
|
-
API
|
|
11
|
+
转换业务结果到API结果(业务结果: ______$1<接口类型描述>): Promise<____<z.TypeOf<________<接口类型描述>>> | ____$1<z.TypeOf<________$1<接口类型描述>>>>;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
export { JSON接口 };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
JSON接口
|
|
3
|
-
} from "../../chunk-
|
|
4
|
-
import "../../chunk-
|
|
5
|
-
import "../../chunk-IZ623QVE.js";
|
|
3
|
+
} from "../../chunk-URPOOM7V.js";
|
|
4
|
+
import "../../chunk-5FTVDMDL.js";
|
|
6
5
|
import "../../chunk-V3S5HDZD.js";
|
|
6
|
+
import "../../chunk-IPDMEQ3O.js";
|
|
7
7
|
import "../../chunk-AHCV3LQ7.js";
|
|
8
8
|
export {
|
|
9
9
|
JSON\u63A5\u53E3
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { Either } from '@lsby/ts-fp-data';
|
|
3
|
-
import { 插件项类型 as _____
|
|
3
|
+
import { 插件项类型 as _____ } from '../../plugin/plug.js';
|
|
4
4
|
import { 正确结果 as ____$1, 错误结果 as ____$2 } from '../../result/result.js';
|
|
5
|
-
import { 接口 as __, 计算接口参数 as ______ } from '../interface-inst.js';
|
|
6
|
-
import { 接口类型 as ____, 接口类型错误结果 as ________, 接口类型正确结果 as ________$1
|
|
5
|
+
import { 接口 as __, 计算接口参数 as ______, 计算接口返回 as ______$1 } from '../interface-inst.js';
|
|
6
|
+
import { 接口类型 as ____, 接口类型错误结果 as ________, 接口类型正确结果 as ________$1 } from '../interface-type.js';
|
|
7
7
|
import 'express';
|
|
8
8
|
import '../../action/action.js';
|
|
9
9
|
|
|
@@ -20,7 +20,7 @@ type 任意的JSON状态接口类型 = JSON状态接口类型<any, any, any, any
|
|
|
20
20
|
type 计算JSON状态接口返回<接口类型描述> = Promise<Either<z.infer<________<接口类型描述>>['data'], z.infer<________$1<接口类型描述>>['data']>>;
|
|
21
21
|
declare abstract class JSON状态接口<接口类型描述 extends 任意的JSON状态接口类型> extends __<接口类型描述> {
|
|
22
22
|
protected abstract 业务行为实现(参数: ______<接口类型描述>): 计算JSON状态接口返回<接口类型描述>;
|
|
23
|
-
API
|
|
23
|
+
转换业务结果到API结果(业务结果: ______$1<接口类型描述>): Promise<____$1<z.TypeOf<________$1<接口类型描述>>> | ____$2<z.TypeOf<________<接口类型描述>>>>;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
export { JSON状态接口, JSON状态接口类型, type 计算JSON状态接口返回 };
|