@lsby/net-core 0.3.26 → 0.3.28
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 +18 -5
- package/dist/bin/gen-list/index.cjs +18 -5
- package/dist/bin/gen-test/bin.cjs +1 -1
- package/dist/bin/gen-test/index.cjs +1 -1
- package/dist/bin/gen-type/bin.cjs +12 -9
- package/dist/bin/gen-type/index.cjs +12 -9
- package/dist/cjs/action/action.cjs +22 -15
- package/dist/cjs/action/action.d.cts +22 -15
- package/dist/cjs/bin/gen-list/bin.cjs +18 -5
- package/dist/cjs/bin/gen-list/index.cjs +18 -5
- package/dist/cjs/bin/gen-test/bin.cjs +1 -1
- package/dist/cjs/bin/gen-test/index.cjs +1 -1
- package/dist/cjs/bin/gen-type/bin.cjs +12 -9
- package/dist/cjs/bin/gen-type/index.cjs +12 -9
- package/dist/cjs/index.cjs +40 -24
- package/dist/cjs/index.d.cts +3 -3
- package/dist/cjs/interface/extend/json-base.cjs +22 -15
- package/dist/cjs/interface/extend/json-wrap.cjs +35 -18
- package/dist/cjs/interface/extend/json-wrap.d.cts +14 -12
- package/dist/cjs/interface/interface-inst.cjs +22 -15
- package/dist/cjs/interface/interface-inst.d.cts +3 -3
- package/dist/cjs/interface/interface-type.d.cts +3 -2
- package/dist/cjs/plugin/extend/json.cjs +3 -4
- package/dist/cjs/plugin/extend/json.d.cts +2 -4
- package/dist/cjs/plugin/extend/urlencoded.cjs +2 -2
- package/dist/cjs/plugin/extend/urlencoded.d.cts +1 -3
- package/dist/cjs/server/server.d.cts +2 -2
- package/dist/esm/action/action.d.ts +22 -15
- package/dist/esm/action/action.js +1 -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/bin.js +1 -1
- package/dist/esm/bin/gen-type/index.js +1 -1
- package/dist/esm/{chunk-KFTP2JZZ.js → chunk-6QNJCAAV.js} +12 -9
- package/dist/esm/{chunk-AYTYZZMN.js → chunk-7OIWSU4D.js} +6 -7
- package/dist/esm/{chunk-AY7GYJWL.js → chunk-E7N7HVWO.js} +1 -1
- package/dist/esm/{chunk-535X7O4J.js → chunk-FBFLXFIL.js} +1 -1
- package/dist/esm/{chunk-33UG5J6F.js → chunk-G73B4M36.js} +18 -5
- package/dist/esm/{chunk-QXOTCD4X.js → chunk-GWWQPWGC.js} +1 -1
- package/dist/esm/{chunk-XTHURYQM.js → chunk-KZPZVZ2B.js} +2 -2
- package/dist/esm/{chunk-V3S5HDZD.js → chunk-T3WICQWT.js} +22 -15
- package/dist/esm/{chunk-343YQDPA.js → chunk-YRW76W44.js} +14 -4
- package/dist/esm/index.d.ts +3 -3
- package/dist/esm/index.js +9 -9
- package/dist/esm/interface/extend/json-base.js +3 -3
- package/dist/esm/interface/extend/json-wrap.d.ts +14 -12
- package/dist/esm/interface/extend/json-wrap.js +3 -3
- package/dist/esm/interface/interface-inst.d.ts +3 -3
- package/dist/esm/interface/interface-inst.js +2 -2
- package/dist/esm/interface/interface-type.d.ts +3 -2
- package/dist/esm/plugin/extend/json.d.ts +2 -4
- package/dist/esm/plugin/extend/json.js +2 -2
- package/dist/esm/plugin/extend/urlencoded.d.ts +1 -3
- package/dist/esm/plugin/extend/urlencoded.js +1 -1
- package/dist/esm/server/server.d.ts +2 -2
- package/package.json +1 -1
|
@@ -86,9 +86,22 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
86
86
|
var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.map((a) => {
|
|
87
87
|
var \u7C7B\u540D\u5B57 = a.\u7C7B\u8282\u70B9.name?.text;
|
|
88
88
|
var \u4EE3\u7801 = [
|
|
89
|
-
`import { \
|
|
89
|
+
`import { \u63A5\u53E3\u7C7B\u578B } from '@lsby/net-core'`,
|
|
90
90
|
`import {${\u7C7B\u540D\u5B57}} from "./${a.\u6587\u4EF6.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
|
|
91
|
-
`
|
|
91
|
+
`
|
|
92
|
+
type \u8BA1\u7B97\u7ED3\u679C =
|
|
93
|
+
ReturnType<${\u7C7B\u540D\u5B57}['\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B']> extends \u63A5\u53E3\u7C7B\u578B<
|
|
94
|
+
infer \u8DEF\u5F84,
|
|
95
|
+
infer \u65B9\u6CD5,
|
|
96
|
+
infer \u63D2\u4EF6\u4EEC,
|
|
97
|
+
infer \u6B63\u786E\u7ED3\u679C\u7C7B\u578B,
|
|
98
|
+
infer \u9519\u8BEF\u7ED3\u679C\u7C7B\u578B
|
|
99
|
+
>
|
|
100
|
+
? \u8DEF\u5F84 extends string
|
|
101
|
+
? true
|
|
102
|
+
: false
|
|
103
|
+
: false
|
|
104
|
+
`
|
|
92
105
|
];
|
|
93
106
|
return import_typescript.default.createSourceFile(
|
|
94
107
|
a.\u6587\u4EF6.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
|
|
@@ -127,13 +140,13 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
127
140
|
var \u6700\u7EC8\u7ED3\u679C = import_lodash.default.zip(\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC, \u68C0\u67E5\u7ED3\u679C).filter((a) => a[1] == true).map((a) => a[0]).filter((a) => a != null);
|
|
128
141
|
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u5B9E\u73B0`);
|
|
129
142
|
var \u6700\u7EC8\u4EE3\u7801 = [
|
|
130
|
-
`import { \
|
|
143
|
+
`import { \u6709\u6548\u7684\u63A5\u53E3 } from '@lsby/net-core'`,
|
|
131
144
|
"",
|
|
132
145
|
...\u6700\u7EC8\u7ED3\u679C.map(
|
|
133
|
-
(a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from '
|
|
146
|
+
(a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from './${\u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a)}'`
|
|
134
147
|
),
|
|
135
148
|
"",
|
|
136
|
-
`export var interfaceList: \
|
|
149
|
+
`export var interfaceList: \u6709\u6548\u7684\u63A5\u53E3[] = [`,
|
|
137
150
|
...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => ` new ${a}(),`),
|
|
138
151
|
`]`,
|
|
139
152
|
""
|
|
@@ -91,9 +91,22 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
91
91
|
var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.map((a) => {
|
|
92
92
|
var \u7C7B\u540D\u5B57 = a.\u7C7B\u8282\u70B9.name?.text;
|
|
93
93
|
var \u4EE3\u7801 = [
|
|
94
|
-
`import { \
|
|
94
|
+
`import { \u63A5\u53E3\u7C7B\u578B } from '@lsby/net-core'`,
|
|
95
95
|
`import {${\u7C7B\u540D\u5B57}} from "./${a.\u6587\u4EF6.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
|
|
96
|
-
`
|
|
96
|
+
`
|
|
97
|
+
type \u8BA1\u7B97\u7ED3\u679C =
|
|
98
|
+
ReturnType<${\u7C7B\u540D\u5B57}['\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B']> extends \u63A5\u53E3\u7C7B\u578B<
|
|
99
|
+
infer \u8DEF\u5F84,
|
|
100
|
+
infer \u65B9\u6CD5,
|
|
101
|
+
infer \u63D2\u4EF6\u4EEC,
|
|
102
|
+
infer \u6B63\u786E\u7ED3\u679C\u7C7B\u578B,
|
|
103
|
+
infer \u9519\u8BEF\u7ED3\u679C\u7C7B\u578B
|
|
104
|
+
>
|
|
105
|
+
? \u8DEF\u5F84 extends string
|
|
106
|
+
? true
|
|
107
|
+
: false
|
|
108
|
+
: false
|
|
109
|
+
`
|
|
97
110
|
];
|
|
98
111
|
return import_typescript.default.createSourceFile(
|
|
99
112
|
a.\u6587\u4EF6.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
|
|
@@ -132,13 +145,13 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
132
145
|
var \u6700\u7EC8\u7ED3\u679C = import_lodash.default.zip(\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC, \u68C0\u67E5\u7ED3\u679C).filter((a) => a[1] == true).map((a) => a[0]).filter((a) => a != null);
|
|
133
146
|
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u5B9E\u73B0`);
|
|
134
147
|
var \u6700\u7EC8\u4EE3\u7801 = [
|
|
135
|
-
`import { \
|
|
148
|
+
`import { \u6709\u6548\u7684\u63A5\u53E3 } from '@lsby/net-core'`,
|
|
136
149
|
"",
|
|
137
150
|
...\u6700\u7EC8\u7ED3\u679C.map(
|
|
138
|
-
(a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from '
|
|
151
|
+
(a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from './${\u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a)}'`
|
|
139
152
|
),
|
|
140
153
|
"",
|
|
141
|
-
`export var interfaceList: \
|
|
154
|
+
`export var interfaceList: \u6709\u6548\u7684\u63A5\u53E3[] = [`,
|
|
142
155
|
...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => ` new ${a}(),`),
|
|
143
156
|
`]`,
|
|
144
157
|
""
|
|
@@ -133,7 +133,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
133
133
|
"import './unit-test-prefix'",
|
|
134
134
|
"",
|
|
135
135
|
...\u6700\u7EC8\u7ED3\u679C.map(
|
|
136
|
-
(a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from '
|
|
136
|
+
(a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from './${\u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a)}'`
|
|
137
137
|
),
|
|
138
138
|
"",
|
|
139
139
|
...\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())`),
|
|
@@ -138,7 +138,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
138
138
|
"import './unit-test-prefix'",
|
|
139
139
|
"",
|
|
140
140
|
...\u6700\u7EC8\u7ED3\u679C.map(
|
|
141
|
-
(a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from '
|
|
141
|
+
(a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from './${\u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a)}'`
|
|
142
142
|
),
|
|
143
143
|
"",
|
|
144
144
|
...\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())`),
|
|
@@ -192,15 +192,18 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
192
192
|
`import * as ${netcore\u5F15\u5165} from '@lsby/net-core'`,
|
|
193
193
|
`import { z as ${zod\u5F15\u5165} } from 'zod'`,
|
|
194
194
|
`
|
|
195
|
-
type ${a.\u8BA1\u7B97\u8282\u70B9\u540D\u79F0} =
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
195
|
+
type ${a.\u8BA1\u7B97\u8282\u70B9\u540D\u79F0} =
|
|
196
|
+
typeof ${\u53D8\u91CF\u540D\u79F0} extends ${netcore\u5F15\u5165}.\u63A5\u53E3\u7C7B\u578B<infer Path, infer Method, infer PreApis, infer SuccessSchema, infer ErrorSchema>
|
|
197
|
+
? Path extends string
|
|
198
|
+
? {
|
|
199
|
+
path: Path
|
|
200
|
+
method: Method
|
|
201
|
+
input: ${netcore\u5F15\u5165}.\u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C<PreApis>
|
|
202
|
+
successOutput: ${zod\u5F15\u5165}.infer<SuccessSchema>
|
|
203
|
+
errorOutput: ${zod\u5F15\u5165}.infer<ErrorSchema>
|
|
204
|
+
}
|
|
205
|
+
: never
|
|
206
|
+
: never
|
|
204
207
|
`
|
|
205
208
|
];
|
|
206
209
|
}
|
|
@@ -197,15 +197,18 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
197
197
|
`import * as ${netcore\u5F15\u5165} from '@lsby/net-core'`,
|
|
198
198
|
`import { z as ${zod\u5F15\u5165} } from 'zod'`,
|
|
199
199
|
`
|
|
200
|
-
type ${a.\u8BA1\u7B97\u8282\u70B9\u540D\u79F0} =
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
200
|
+
type ${a.\u8BA1\u7B97\u8282\u70B9\u540D\u79F0} =
|
|
201
|
+
typeof ${\u53D8\u91CF\u540D\u79F0} extends ${netcore\u5F15\u5165}.\u63A5\u53E3\u7C7B\u578B<infer Path, infer Method, infer PreApis, infer SuccessSchema, infer ErrorSchema>
|
|
202
|
+
? Path extends string
|
|
203
|
+
? {
|
|
204
|
+
path: Path
|
|
205
|
+
method: Method
|
|
206
|
+
input: ${netcore\u5F15\u5165}.\u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C<PreApis>
|
|
207
|
+
successOutput: ${zod\u5F15\u5165}.infer<SuccessSchema>
|
|
208
|
+
errorOutput: ${zod\u5F15\u5165}.infer<ErrorSchema>
|
|
209
|
+
}
|
|
210
|
+
: never
|
|
211
|
+
: never
|
|
209
212
|
`
|
|
210
213
|
];
|
|
211
214
|
}
|
|
@@ -52,12 +52,12 @@ var \u4E1A\u52A1\u884C\u4E3A = class _\u4E1A\u52A1\u884C\u4E3A {
|
|
|
52
52
|
return arr.reduce((s, a) => s.\u6DF7\u5408\u7EC4\u5408(a));
|
|
53
53
|
}
|
|
54
54
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
* 处理函数的类型是:
|
|
58
|
-
*
|
|
59
|
-
* - 参数:
|
|
60
|
-
* - 错误:
|
|
55
|
+
* 同时运行多个行为, 并提供一个函数处理它们的结果
|
|
56
|
+
* 如果其中任何一个行为发生错误, 则最终行为输出第一个错误
|
|
57
|
+
* 处理函数的类型是: 所有行为的结果合并 => 泛型A
|
|
58
|
+
* 新行为的类型是:
|
|
59
|
+
* - 参数: 所有行为的参数合并
|
|
60
|
+
* - 错误: 所有行为的错误合并
|
|
61
61
|
* - 返回值: 泛型A
|
|
62
62
|
*/
|
|
63
63
|
static \u5E76\u884C\u7EC4\u5408(arr, f) {
|
|
@@ -86,10 +86,10 @@ var \u4E1A\u52A1\u884C\u4E3A = class _\u4E1A\u52A1\u884C\u4E3A {
|
|
|
86
86
|
}
|
|
87
87
|
// ================================= 组合 =================================
|
|
88
88
|
/**
|
|
89
|
-
*
|
|
90
|
-
* - 参数: a
|
|
91
|
-
* - 错误: a
|
|
92
|
-
* - 返回值: b
|
|
89
|
+
* 将两个行为串接, 得到一个新行为, 新行为的类型是:
|
|
90
|
+
* - 参数: a行为的参数
|
|
91
|
+
* - 错误: a行为的错误+b行为的错误
|
|
92
|
+
* - 返回值: b行为的返回值
|
|
93
93
|
*/
|
|
94
94
|
\u6D41\u5F0F\u7EC4\u5408(b) {
|
|
95
95
|
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
@@ -100,12 +100,12 @@ var \u4E1A\u52A1\u884C\u4E3A = class _\u4E1A\u52A1\u884C\u4E3A {
|
|
|
100
100
|
});
|
|
101
101
|
}
|
|
102
102
|
/**
|
|
103
|
-
*
|
|
103
|
+
* 将两个行为串接, 得到一个新的行为
|
|
104
104
|
* 相比流式组合, 本函数不要求串联位置参数匹配, 缺少的参数将在调用时补全
|
|
105
|
-
*
|
|
106
|
-
* - 参数: a
|
|
107
|
-
* - 错误: a
|
|
108
|
-
* - 返回值: a
|
|
105
|
+
* 新行为的类型是:
|
|
106
|
+
* - 参数: a行为的参数+(b行为的参数-a行为的返回值)
|
|
107
|
+
* - 错误: a行为的错误+b行为的错误
|
|
108
|
+
* - 返回值: a行为的返回值+b行为的返回值
|
|
109
109
|
*/
|
|
110
110
|
\u6DF7\u5408\u7EC4\u5408(b) {
|
|
111
111
|
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
@@ -133,6 +133,13 @@ var \u4E1A\u52A1\u884C\u4E3A = class _\u4E1A\u52A1\u884C\u4E3A {
|
|
|
133
133
|
return import_ts_fp_data.Either.pure(\u6211\u7684\u7ED3\u679C.assertRight().getRight());
|
|
134
134
|
});
|
|
135
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* 产生一个代数效应, 在效应中执行当前业务行为, 然后将其正确结果映射为新业务行为
|
|
138
|
+
* 新行为的类型是:
|
|
139
|
+
* - 参数: 必须是已有行为的参数的扩展, 因为调用时必须先调用已有行为
|
|
140
|
+
* - 错误: 已有行为的错误+自定义错误, 因为调用已有行为时可能出错
|
|
141
|
+
* - 返回值: 自定义数据
|
|
142
|
+
*/
|
|
136
143
|
\u7ED1\u5B9A(f) {
|
|
137
144
|
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
138
145
|
const \u6211\u7684\u7ED3\u679C = await this.\u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A(\u53C2\u6570);
|
|
@@ -54,12 +54,12 @@ declare abstract class 业务行为<参数类型 extends 业务行为参数类
|
|
|
54
54
|
*/
|
|
55
55
|
static 混合组合多项<A extends 任意业务行为[]>(arr: [...A]): 计算混合组合数组<A>;
|
|
56
56
|
/**
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* 处理函数的类型是:
|
|
60
|
-
*
|
|
61
|
-
* - 参数:
|
|
62
|
-
* - 错误:
|
|
57
|
+
* 同时运行多个行为, 并提供一个函数处理它们的结果
|
|
58
|
+
* 如果其中任何一个行为发生错误, 则最终行为输出第一个错误
|
|
59
|
+
* 处理函数的类型是: 所有行为的结果合并 => 泛型A
|
|
60
|
+
* 新行为的类型是:
|
|
61
|
+
* - 参数: 所有行为的参数合并
|
|
62
|
+
* - 错误: 所有行为的错误合并
|
|
63
63
|
* - 返回值: 泛型A
|
|
64
64
|
*/
|
|
65
65
|
static 并行组合<X extends 任意业务行为[], A extends 业务行为返回类型>(arr: [...X], f: (a: 计算业务行为返回<计算合并<X>>) => Promise<A>): 业务行为<计算业务行为参数<计算合并<X>>, 计算业务行为错误<计算合并<X>>, A>;
|
|
@@ -67,23 +67,30 @@ declare abstract class 业务行为<参数类型 extends 业务行为参数类
|
|
|
67
67
|
设置参数<A extends Partial<参数类型>>(设置参数: A): 业务行为<Omit<参数类型, keyof A>, 错误类型, 返回类型>;
|
|
68
68
|
运行业务行为(参数: 参数类型): Promise<Either<错误类型, 返回类型>>;
|
|
69
69
|
/**
|
|
70
|
-
*
|
|
71
|
-
* - 参数: a
|
|
72
|
-
* - 错误: a
|
|
73
|
-
* - 返回值: b
|
|
70
|
+
* 将两个行为串接, 得到一个新行为, 新行为的类型是:
|
|
71
|
+
* - 参数: a行为的参数
|
|
72
|
+
* - 错误: a行为的错误+b行为的错误
|
|
73
|
+
* - 返回值: b行为的返回值
|
|
74
74
|
*/
|
|
75
75
|
流式组合<B错误类型 extends 业务行为错误类型, B返回类型 extends 业务行为返回类型>(b: 业务行为<返回类型, B错误类型, B返回类型>): 业务行为<参数类型, 错误类型 | B错误类型, B返回类型>;
|
|
76
76
|
/**
|
|
77
|
-
*
|
|
77
|
+
* 将两个行为串接, 得到一个新的行为
|
|
78
78
|
* 相比流式组合, 本函数不要求串联位置参数匹配, 缺少的参数将在调用时补全
|
|
79
|
-
*
|
|
80
|
-
* - 参数: a
|
|
81
|
-
* - 错误: a
|
|
82
|
-
* - 返回值: a
|
|
79
|
+
* 新行为的类型是:
|
|
80
|
+
* - 参数: a行为的参数+(b行为的参数-a行为的返回值)
|
|
81
|
+
* - 错误: a行为的错误+b行为的错误
|
|
82
|
+
* - 返回值: a行为的返回值+b行为的返回值
|
|
83
83
|
*/
|
|
84
84
|
混合组合<B参数类型 extends 业务行为参数类型, B错误类型 extends 业务行为错误类型, B返回类型 extends 业务行为返回类型>(b: 业务行为<B参数类型, B错误类型, B返回类型>): 计算混合组合<参数类型, 错误类型, 返回类型, B参数类型, B错误类型, B返回类型>;
|
|
85
85
|
映射结果<新返回类型 extends 业务行为返回类型>(f: (a: 返回类型) => 新返回类型): 业务行为<参数类型, 错误类型, 新返回类型>;
|
|
86
86
|
映射错误<新错误类型 extends 业务行为错误类型>(f: (a: 错误类型) => 新错误类型): 业务行为<参数类型, 新错误类型, 返回类型>;
|
|
87
|
+
/**
|
|
88
|
+
* 产生一个代数效应, 在效应中执行当前业务行为, 然后将其正确结果映射为新业务行为
|
|
89
|
+
* 新行为的类型是:
|
|
90
|
+
* - 参数: 必须是已有行为的参数的扩展, 因为调用时必须先调用已有行为
|
|
91
|
+
* - 错误: 已有行为的错误+自定义错误, 因为调用已有行为时可能出错
|
|
92
|
+
* - 返回值: 自定义数据
|
|
93
|
+
*/
|
|
87
94
|
绑定<新参数类型 extends 业务行为参数类型 & 参数类型, 新错误类型 extends 错误类型 | 业务行为错误类型, 新返回类型 extends 业务行为返回类型>(f: (a: 返回类型) => 业务行为<新参数类型, 新错误类型, 新返回类型>): 业务行为<新参数类型, 新错误类型, 新返回类型>;
|
|
88
95
|
}
|
|
89
96
|
|
|
@@ -86,9 +86,22 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
86
86
|
var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.map((a) => {
|
|
87
87
|
var \u7C7B\u540D\u5B57 = a.\u7C7B\u8282\u70B9.name?.text;
|
|
88
88
|
var \u4EE3\u7801 = [
|
|
89
|
-
`import { \
|
|
89
|
+
`import { \u63A5\u53E3\u7C7B\u578B } from '@lsby/net-core'`,
|
|
90
90
|
`import {${\u7C7B\u540D\u5B57}} from "./${a.\u6587\u4EF6.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
|
|
91
|
-
`
|
|
91
|
+
`
|
|
92
|
+
type \u8BA1\u7B97\u7ED3\u679C =
|
|
93
|
+
ReturnType<${\u7C7B\u540D\u5B57}['\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B']> extends \u63A5\u53E3\u7C7B\u578B<
|
|
94
|
+
infer \u8DEF\u5F84,
|
|
95
|
+
infer \u65B9\u6CD5,
|
|
96
|
+
infer \u63D2\u4EF6\u4EEC,
|
|
97
|
+
infer \u6B63\u786E\u7ED3\u679C\u7C7B\u578B,
|
|
98
|
+
infer \u9519\u8BEF\u7ED3\u679C\u7C7B\u578B
|
|
99
|
+
>
|
|
100
|
+
? \u8DEF\u5F84 extends string
|
|
101
|
+
? true
|
|
102
|
+
: false
|
|
103
|
+
: false
|
|
104
|
+
`
|
|
92
105
|
];
|
|
93
106
|
return import_typescript.default.createSourceFile(
|
|
94
107
|
a.\u6587\u4EF6.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
|
|
@@ -127,13 +140,13 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
127
140
|
var \u6700\u7EC8\u7ED3\u679C = import_lodash.default.zip(\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC, \u68C0\u67E5\u7ED3\u679C).filter((a) => a[1] == true).map((a) => a[0]).filter((a) => a != null);
|
|
128
141
|
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u5B9E\u73B0`);
|
|
129
142
|
var \u6700\u7EC8\u4EE3\u7801 = [
|
|
130
|
-
`import { \
|
|
143
|
+
`import { \u6709\u6548\u7684\u63A5\u53E3 } from '@lsby/net-core'`,
|
|
131
144
|
"",
|
|
132
145
|
...\u6700\u7EC8\u7ED3\u679C.map(
|
|
133
|
-
(a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from '
|
|
146
|
+
(a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from './${\u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a)}'`
|
|
134
147
|
),
|
|
135
148
|
"",
|
|
136
|
-
`export var interfaceList: \
|
|
149
|
+
`export var interfaceList: \u6709\u6548\u7684\u63A5\u53E3[] = [`,
|
|
137
150
|
...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => ` new ${a}(),`),
|
|
138
151
|
`]`,
|
|
139
152
|
""
|
|
@@ -91,9 +91,22 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
91
91
|
var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.map((a) => {
|
|
92
92
|
var \u7C7B\u540D\u5B57 = a.\u7C7B\u8282\u70B9.name?.text;
|
|
93
93
|
var \u4EE3\u7801 = [
|
|
94
|
-
`import { \
|
|
94
|
+
`import { \u63A5\u53E3\u7C7B\u578B } from '@lsby/net-core'`,
|
|
95
95
|
`import {${\u7C7B\u540D\u5B57}} from "./${a.\u6587\u4EF6.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
|
|
96
|
-
`
|
|
96
|
+
`
|
|
97
|
+
type \u8BA1\u7B97\u7ED3\u679C =
|
|
98
|
+
ReturnType<${\u7C7B\u540D\u5B57}['\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B']> extends \u63A5\u53E3\u7C7B\u578B<
|
|
99
|
+
infer \u8DEF\u5F84,
|
|
100
|
+
infer \u65B9\u6CD5,
|
|
101
|
+
infer \u63D2\u4EF6\u4EEC,
|
|
102
|
+
infer \u6B63\u786E\u7ED3\u679C\u7C7B\u578B,
|
|
103
|
+
infer \u9519\u8BEF\u7ED3\u679C\u7C7B\u578B
|
|
104
|
+
>
|
|
105
|
+
? \u8DEF\u5F84 extends string
|
|
106
|
+
? true
|
|
107
|
+
: false
|
|
108
|
+
: false
|
|
109
|
+
`
|
|
97
110
|
];
|
|
98
111
|
return import_typescript.default.createSourceFile(
|
|
99
112
|
a.\u6587\u4EF6.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
|
|
@@ -132,13 +145,13 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
132
145
|
var \u6700\u7EC8\u7ED3\u679C = import_lodash.default.zip(\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC, \u68C0\u67E5\u7ED3\u679C).filter((a) => a[1] == true).map((a) => a[0]).filter((a) => a != null);
|
|
133
146
|
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u5B9E\u73B0`);
|
|
134
147
|
var \u6700\u7EC8\u4EE3\u7801 = [
|
|
135
|
-
`import { \
|
|
148
|
+
`import { \u6709\u6548\u7684\u63A5\u53E3 } from '@lsby/net-core'`,
|
|
136
149
|
"",
|
|
137
150
|
...\u6700\u7EC8\u7ED3\u679C.map(
|
|
138
|
-
(a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from '
|
|
151
|
+
(a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from './${\u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a)}'`
|
|
139
152
|
),
|
|
140
153
|
"",
|
|
141
|
-
`export var interfaceList: \
|
|
154
|
+
`export var interfaceList: \u6709\u6548\u7684\u63A5\u53E3[] = [`,
|
|
142
155
|
...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => ` new ${a}(),`),
|
|
143
156
|
`]`,
|
|
144
157
|
""
|
|
@@ -133,7 +133,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
133
133
|
"import './unit-test-prefix'",
|
|
134
134
|
"",
|
|
135
135
|
...\u6700\u7EC8\u7ED3\u679C.map(
|
|
136
|
-
(a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from '
|
|
136
|
+
(a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from './${\u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a)}'`
|
|
137
137
|
),
|
|
138
138
|
"",
|
|
139
139
|
...\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())`),
|
|
@@ -138,7 +138,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
138
138
|
"import './unit-test-prefix'",
|
|
139
139
|
"",
|
|
140
140
|
...\u6700\u7EC8\u7ED3\u679C.map(
|
|
141
|
-
(a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from '
|
|
141
|
+
(a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from './${\u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a)}'`
|
|
142
142
|
),
|
|
143
143
|
"",
|
|
144
144
|
...\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())`),
|
|
@@ -192,15 +192,18 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
192
192
|
`import * as ${netcore\u5F15\u5165} from '@lsby/net-core'`,
|
|
193
193
|
`import { z as ${zod\u5F15\u5165} } from 'zod'`,
|
|
194
194
|
`
|
|
195
|
-
type ${a.\u8BA1\u7B97\u8282\u70B9\u540D\u79F0} =
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
195
|
+
type ${a.\u8BA1\u7B97\u8282\u70B9\u540D\u79F0} =
|
|
196
|
+
typeof ${\u53D8\u91CF\u540D\u79F0} extends ${netcore\u5F15\u5165}.\u63A5\u53E3\u7C7B\u578B<infer Path, infer Method, infer PreApis, infer SuccessSchema, infer ErrorSchema>
|
|
197
|
+
? Path extends string
|
|
198
|
+
? {
|
|
199
|
+
path: Path
|
|
200
|
+
method: Method
|
|
201
|
+
input: ${netcore\u5F15\u5165}.\u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C<PreApis>
|
|
202
|
+
successOutput: ${zod\u5F15\u5165}.infer<SuccessSchema>
|
|
203
|
+
errorOutput: ${zod\u5F15\u5165}.infer<ErrorSchema>
|
|
204
|
+
}
|
|
205
|
+
: never
|
|
206
|
+
: never
|
|
204
207
|
`
|
|
205
208
|
];
|
|
206
209
|
}
|
|
@@ -197,15 +197,18 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
197
197
|
`import * as ${netcore\u5F15\u5165} from '@lsby/net-core'`,
|
|
198
198
|
`import { z as ${zod\u5F15\u5165} } from 'zod'`,
|
|
199
199
|
`
|
|
200
|
-
type ${a.\u8BA1\u7B97\u8282\u70B9\u540D\u79F0} =
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
200
|
+
type ${a.\u8BA1\u7B97\u8282\u70B9\u540D\u79F0} =
|
|
201
|
+
typeof ${\u53D8\u91CF\u540D\u79F0} extends ${netcore\u5F15\u5165}.\u63A5\u53E3\u7C7B\u578B<infer Path, infer Method, infer PreApis, infer SuccessSchema, infer ErrorSchema>
|
|
202
|
+
? Path extends string
|
|
203
|
+
? {
|
|
204
|
+
path: Path
|
|
205
|
+
method: Method
|
|
206
|
+
input: ${netcore\u5F15\u5165}.\u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C<PreApis>
|
|
207
|
+
successOutput: ${zod\u5F15\u5165}.infer<SuccessSchema>
|
|
208
|
+
errorOutput: ${zod\u5F15\u5165}.infer<ErrorSchema>
|
|
209
|
+
}
|
|
210
|
+
: never
|
|
211
|
+
: never
|
|
209
212
|
`
|
|
210
213
|
];
|
|
211
214
|
}
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -82,12 +82,12 @@ var \u4E1A\u52A1\u884C\u4E3A = class _\u4E1A\u52A1\u884C\u4E3A {
|
|
|
82
82
|
return arr.reduce((s, a) => s.\u6DF7\u5408\u7EC4\u5408(a));
|
|
83
83
|
}
|
|
84
84
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
* 处理函数的类型是:
|
|
88
|
-
*
|
|
89
|
-
* - 参数:
|
|
90
|
-
* - 错误:
|
|
85
|
+
* 同时运行多个行为, 并提供一个函数处理它们的结果
|
|
86
|
+
* 如果其中任何一个行为发生错误, 则最终行为输出第一个错误
|
|
87
|
+
* 处理函数的类型是: 所有行为的结果合并 => 泛型A
|
|
88
|
+
* 新行为的类型是:
|
|
89
|
+
* - 参数: 所有行为的参数合并
|
|
90
|
+
* - 错误: 所有行为的错误合并
|
|
91
91
|
* - 返回值: 泛型A
|
|
92
92
|
*/
|
|
93
93
|
static \u5E76\u884C\u7EC4\u5408(arr, f) {
|
|
@@ -116,10 +116,10 @@ var \u4E1A\u52A1\u884C\u4E3A = class _\u4E1A\u52A1\u884C\u4E3A {
|
|
|
116
116
|
}
|
|
117
117
|
// ================================= 组合 =================================
|
|
118
118
|
/**
|
|
119
|
-
*
|
|
120
|
-
* - 参数: a
|
|
121
|
-
* - 错误: a
|
|
122
|
-
* - 返回值: b
|
|
119
|
+
* 将两个行为串接, 得到一个新行为, 新行为的类型是:
|
|
120
|
+
* - 参数: a行为的参数
|
|
121
|
+
* - 错误: a行为的错误+b行为的错误
|
|
122
|
+
* - 返回值: b行为的返回值
|
|
123
123
|
*/
|
|
124
124
|
\u6D41\u5F0F\u7EC4\u5408(b) {
|
|
125
125
|
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
@@ -130,12 +130,12 @@ var \u4E1A\u52A1\u884C\u4E3A = class _\u4E1A\u52A1\u884C\u4E3A {
|
|
|
130
130
|
});
|
|
131
131
|
}
|
|
132
132
|
/**
|
|
133
|
-
*
|
|
133
|
+
* 将两个行为串接, 得到一个新的行为
|
|
134
134
|
* 相比流式组合, 本函数不要求串联位置参数匹配, 缺少的参数将在调用时补全
|
|
135
|
-
*
|
|
136
|
-
* - 参数: a
|
|
137
|
-
* - 错误: a
|
|
138
|
-
* - 返回值: a
|
|
135
|
+
* 新行为的类型是:
|
|
136
|
+
* - 参数: a行为的参数+(b行为的参数-a行为的返回值)
|
|
137
|
+
* - 错误: a行为的错误+b行为的错误
|
|
138
|
+
* - 返回值: a行为的返回值+b行为的返回值
|
|
139
139
|
*/
|
|
140
140
|
\u6DF7\u5408\u7EC4\u5408(b) {
|
|
141
141
|
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
@@ -163,6 +163,13 @@ var \u4E1A\u52A1\u884C\u4E3A = class _\u4E1A\u52A1\u884C\u4E3A {
|
|
|
163
163
|
return import_ts_fp_data.Either.pure(\u6211\u7684\u7ED3\u679C.assertRight().getRight());
|
|
164
164
|
});
|
|
165
165
|
}
|
|
166
|
+
/**
|
|
167
|
+
* 产生一个代数效应, 在效应中执行当前业务行为, 然后将其正确结果映射为新业务行为
|
|
168
|
+
* 新行为的类型是:
|
|
169
|
+
* - 参数: 必须是已有行为的参数的扩展, 因为调用时必须先调用已有行为
|
|
170
|
+
* - 错误: 已有行为的错误+自定义错误, 因为调用已有行为时可能出错
|
|
171
|
+
* - 返回值: 自定义数据
|
|
172
|
+
*/
|
|
166
173
|
\u7ED1\u5B9A(f) {
|
|
167
174
|
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
168
175
|
const \u6211\u7684\u7ED3\u679C = await this.\u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A(\u53C2\u6570);
|
|
@@ -273,17 +280,27 @@ var \u63A5\u53E3\u7C7B\u578B = class {
|
|
|
273
280
|
|
|
274
281
|
// src/interface/extend/json-wrap.ts
|
|
275
282
|
var JSON\u72B6\u6001\u63A5\u53E3\u7C7B\u578B = class extends \u63A5\u53E3\u7C7B\u578B {
|
|
276
|
-
constructor(path, method, \u63D2\u4EF6\u4EEC, \u6B63\u786E\
|
|
283
|
+
constructor(path, method, \u63D2\u4EF6\u4EEC, \u6B63\u786E\u7ED3\u679C\u7C7B\u578B, \u9519\u8BEF\u7ED3\u679C\u7C7B\u578B) {
|
|
277
284
|
super(
|
|
278
285
|
path,
|
|
279
286
|
method,
|
|
280
287
|
\u63D2\u4EF6\u4EEC,
|
|
281
|
-
import_zod.z.object({ status: import_zod.z.literal("success"), data: \u6B63\u786E\
|
|
282
|
-
import_zod.z.object({ status: import_zod.z.literal("fail"), data: \u9519\u8BEF\
|
|
288
|
+
import_zod.z.object({ status: import_zod.z.literal("success"), data: \u6B63\u786E\u7ED3\u679C\u7C7B\u578B }),
|
|
289
|
+
import_zod.z.object({ status: import_zod.z.literal("fail"), data: \u9519\u8BEF\u7ED3\u679C\u7C7B\u578B })
|
|
283
290
|
);
|
|
284
291
|
}
|
|
285
292
|
};
|
|
286
293
|
var JSON\u72B6\u6001\u63A5\u53E3 = class extends \u63A5\u53E3 {
|
|
294
|
+
\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B() {
|
|
295
|
+
var c = this.\u83B7\u5F97JSON\u63A5\u53E3\u7C7B\u578B();
|
|
296
|
+
return new \u63A5\u53E3\u7C7B\u578B(
|
|
297
|
+
c.\u83B7\u5F97\u8DEF\u5F84(),
|
|
298
|
+
c.\u83B7\u5F97\u65B9\u6CD5(),
|
|
299
|
+
c.\u83B7\u5F97\u63D2\u4EF6\u4EEC(),
|
|
300
|
+
c.\u83B7\u5F97\u6B63\u786E\u7ED3\u679C\u7C7B\u578B().shape.data,
|
|
301
|
+
c.\u83B7\u5F97\u9519\u8BEF\u7ED3\u679C\u7C7B\u578B().shape.data
|
|
302
|
+
);
|
|
303
|
+
}
|
|
287
304
|
async \u8F6C\u6362\u4E1A\u52A1\u7ED3\u679C\u5230\u63A5\u53E3\u7ED3\u679C(\u4E1A\u52A1\u7ED3\u679C) {
|
|
288
305
|
var c = await \u4E1A\u52A1\u7ED3\u679C;
|
|
289
306
|
if (c.isLeft())
|
|
@@ -344,11 +361,10 @@ var \u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
344
361
|
// src/plugin/extend/json.ts
|
|
345
362
|
var import_node_util = require("util");
|
|
346
363
|
var import_express = __toESM(require("express"), 1);
|
|
347
|
-
var import_zod3 = require("zod");
|
|
348
364
|
var JSON\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
349
365
|
log = Global.getItem("log");
|
|
350
366
|
constructor(t, opt) {
|
|
351
|
-
super(
|
|
367
|
+
super(t, async (req, res) => {
|
|
352
368
|
var log = (await this.log).extend("JSON\u89E3\u6790\u63D2\u4EF6");
|
|
353
369
|
await new Promise(
|
|
354
370
|
(pRes, _rej) => import_express.default.json(opt)(req, res, () => {
|
|
@@ -356,12 +372,12 @@ var JSON\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
356
372
|
})
|
|
357
373
|
);
|
|
358
374
|
await log.debug("\u51C6\u5907\u89E3\u6790 JSON\uFF1A%o", req.body);
|
|
359
|
-
const parseResult =
|
|
375
|
+
const parseResult = t.safeParse(req.body);
|
|
360
376
|
if (!parseResult.success) {
|
|
361
377
|
await log.err("\u89E3\u6790 JSON \u5931\u8D25\uFF1A%o", parseResult.error);
|
|
362
378
|
throw new Error((0, import_node_util.format)("\u89E3\u6790 JSON \u5931\u8D25: %O", parseResult.error));
|
|
363
379
|
}
|
|
364
|
-
await log.debug("\u6210\u529F\u89E3\u6790 JSON\uFF1A%o", parseResult.data
|
|
380
|
+
await log.debug("\u6210\u529F\u89E3\u6790 JSON\uFF1A%o", parseResult.data);
|
|
365
381
|
return parseResult.data;
|
|
366
382
|
});
|
|
367
383
|
}
|
|
@@ -378,10 +394,10 @@ var \u8868\u5355\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
378
394
|
pRes(null);
|
|
379
395
|
})
|
|
380
396
|
);
|
|
381
|
-
const parseResult = t.safeParse(
|
|
397
|
+
const parseResult = t.safeParse(req.body);
|
|
382
398
|
if (!parseResult.success)
|
|
383
399
|
throw new Error((0, import_node_util2.format)("\u89E3\u6790url\u7F16\u7801\u6B63\u6587\u5931\u8D25: %O", parseResult.error));
|
|
384
|
-
return
|
|
400
|
+
return parseResult.data;
|
|
385
401
|
});
|
|
386
402
|
}
|
|
387
403
|
};
|
package/dist/cjs/index.d.cts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { 业务行为, 业务行为参数类型, 业务行为返回类型, 业务行为错误类型, 计算业务行为参数, 计算业务行为返回, 计算业务行为错误 } from './action/action.cjs';
|
|
2
2
|
export { JSON接口 } from './interface/extend/json-base.cjs';
|
|
3
|
-
export { JSON状态接口, JSON状态接口类型, 计算JSON
|
|
4
|
-
export {
|
|
3
|
+
export { JSON状态接口, JSON状态接口类型, 计算JSON状态接口返回, 转换状态接口描述 } from './interface/extend/json-wrap.cjs';
|
|
4
|
+
export { 接口, 有效的接口, 计算接口参数, 计算接口返回 } from './interface/interface-inst.cjs';
|
|
5
5
|
export { 接口测试 } from './interface/interface-test.cjs';
|
|
6
|
-
export { 任意接口类型, 接口类型, 接口类型插件们, 接口类型方法, 接口类型正确结果, 接口类型路径, 接口类型错误结果, 获得接口插件们 } from './interface/interface-type.cjs';
|
|
6
|
+
export { 任意接口类型, 接口类型, 接口类型插件们, 接口类型方法, 接口类型正确结果, 接口类型路径, 接口类型错误结果, 有效的接口类型, 获得接口插件们 } from './interface/interface-type.cjs';
|
|
7
7
|
export { 中文路径支持插件 } from './plugin/extend/chinese-path.cjs';
|
|
8
8
|
export { 自定义数据插件 } from './plugin/extend/custom-data.cjs';
|
|
9
9
|
export { JSON解析插件, 从接口类型获得JSON参数, 任意JSON解析插件, 任意JSON解析插件项, 合并JSON插件结果 } from './plugin/extend/json.cjs';
|