@lsby/net-core 0.3.36 → 0.3.38
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-type/addition.cjs +14 -0
- package/dist/bin/gen-type/bin.cjs +51 -8
- package/dist/bin/gen-type/index.cjs +51 -8
- package/dist/cjs/bin/gen-type/addition.cjs +14 -0
- package/dist/cjs/bin/gen-type/bin.cjs +51 -8
- package/dist/cjs/bin/gen-type/index.cjs +51 -8
- package/dist/cjs/global/global.cjs +24 -0
- package/dist/cjs/global/global.d.cts +3 -1
- package/dist/cjs/global/ws.cjs +46 -0
- package/dist/cjs/global/ws.d.cts +13 -0
- package/dist/cjs/index.cjs +121 -19
- package/dist/cjs/index.d.cts +2 -1
- package/dist/cjs/interface/extend/json-base.cjs +49 -2
- package/dist/cjs/interface/extend/json-wrap.cjs +49 -2
- package/dist/cjs/plugin/extend/json.cjs +49 -2
- package/dist/cjs/plugin/extend/web-socket.cjs +111 -0
- package/dist/cjs/plugin/extend/web-socket.d.cts +22 -0
- package/dist/cjs/plugin/plug.d.cts +2 -1
- package/dist/cjs/result/result.cjs +49 -2
- package/dist/cjs/server/server.cjs +57 -15
- package/dist/cjs/tools/tools.cjs +52 -0
- package/dist/cjs/tools/tools.d.cts +4 -0
- package/dist/esm/bin/gen-type/addition.js +1 -1
- package/dist/esm/bin/gen-type/bin.js +2 -2
- package/dist/esm/bin/gen-type/index.js +2 -2
- package/dist/esm/{chunk-7RH7Z7VC.js → chunk-3DVNMDUP.js} +38 -9
- package/dist/esm/{chunk-AMBUPXY3.js → chunk-54IJ3ZGJ.js} +8 -5
- package/dist/esm/chunk-AUPZZGG7.js +45 -0
- package/dist/esm/{chunk-AHCV3LQ7.js → chunk-BC6IISWS.js} +7 -0
- package/dist/esm/{chunk-XM66T73O.js → chunk-BEJF4KW3.js} +34 -16
- package/dist/esm/chunk-EAVNASDB.js +22 -0
- package/dist/esm/chunk-ES4NZ4EM.js +27 -0
- package/dist/esm/{chunk-PVTF4VYK.js → chunk-HOFWZLG5.js} +1 -1
- package/dist/esm/{chunk-B55VVACL.js → chunk-KNZTLDS7.js} +1 -1
- package/dist/esm/{chunk-OMGVOLYE.js → chunk-KRQ6KUVY.js} +14 -0
- package/dist/esm/{chunk-IPDMEQ3O.js → chunk-PKE7OYIU.js} +6 -3
- package/dist/esm/global/global.d.ts +3 -1
- package/dist/esm/global/global.js +2 -1
- package/dist/esm/global/ws.d.ts +13 -0
- package/dist/esm/global/ws.js +6 -0
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.js +15 -9
- package/dist/esm/interface/extend/json-base.js +5 -3
- package/dist/esm/interface/extend/json-wrap.js +5 -3
- package/dist/esm/plugin/extend/json.js +4 -2
- package/dist/esm/plugin/extend/web-socket.d.ts +22 -0
- package/dist/esm/plugin/extend/web-socket.js +9 -0
- package/dist/esm/plugin/plug.d.ts +2 -1
- package/dist/esm/result/result.js +4 -2
- package/dist/esm/server/server.js +3 -2
- package/dist/esm/tools/tools.d.ts +4 -0
- package/dist/esm/tools/tools.js +8 -0
- package/package.json +3 -1
|
@@ -67,6 +67,17 @@ export type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, A = InterfaceType>
|
|
|
67
67
|
: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, xs>
|
|
68
68
|
: never
|
|
69
69
|
: never
|
|
70
|
+
export type \u4ECE\u8DEF\u5F84\u83B7\u5F97WS\u53C2\u6570<Path, A = InterfaceWsType> = A extends []
|
|
71
|
+
? never
|
|
72
|
+
: A extends [infer x, ...infer xs]
|
|
73
|
+
? 'path' extends keyof x
|
|
74
|
+
? x['path'] extends Path
|
|
75
|
+
? 'data' extends keyof x
|
|
76
|
+
? x['data']
|
|
77
|
+
: never
|
|
78
|
+
: \u4ECE\u8DEF\u5F84\u83B7\u5F97WS\u53C2\u6570<Path, xs>
|
|
79
|
+
: never
|
|
80
|
+
: never
|
|
70
81
|
export type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<Path, A = InterfaceType> = A extends []
|
|
71
82
|
? never
|
|
72
83
|
: A extends [infer x, ...infer xs]
|
|
@@ -126,6 +137,9 @@ export type Get\u8BF7\u6C42\u540E\u7AEF\u51FD\u6570\u7C7B\u578B = <\u8DEF\u5F84
|
|
|
126
137
|
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>>(
|
|
127
138
|
\u8DEF\u5F84: \u8DEF\u5F84,
|
|
128
139
|
\u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,
|
|
140
|
+
ws\u4FE1\u606F\u56DE\u8C03?: (\u4FE1\u606F: \u4ECE\u8DEF\u5F84\u83B7\u5F97WS\u53C2\u6570<\u8DEF\u5F84>) => void,
|
|
141
|
+
ws\u5173\u95ED\u56DE\u8C03?: (\u4FE1\u606F: CloseEvent) => void,
|
|
142
|
+
ws\u9519\u8BEF\u56DE\u8C03?: (\u4FE1\u606F: Event) => void,
|
|
129
143
|
) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>
|
|
130
144
|
`;
|
|
131
145
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -79,6 +79,17 @@ export type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, A = InterfaceType>
|
|
|
79
79
|
: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, xs>
|
|
80
80
|
: never
|
|
81
81
|
: never
|
|
82
|
+
export type \u4ECE\u8DEF\u5F84\u83B7\u5F97WS\u53C2\u6570<Path, A = InterfaceWsType> = A extends []
|
|
83
|
+
? never
|
|
84
|
+
: A extends [infer x, ...infer xs]
|
|
85
|
+
? 'path' extends keyof x
|
|
86
|
+
? x['path'] extends Path
|
|
87
|
+
? 'data' extends keyof x
|
|
88
|
+
? x['data']
|
|
89
|
+
: never
|
|
90
|
+
: \u4ECE\u8DEF\u5F84\u83B7\u5F97WS\u53C2\u6570<Path, xs>
|
|
91
|
+
: never
|
|
92
|
+
: never
|
|
82
93
|
export type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<Path, A = InterfaceType> = A extends []
|
|
83
94
|
? never
|
|
84
95
|
: A extends [infer x, ...infer xs]
|
|
@@ -138,6 +149,9 @@ export type Get\u8BF7\u6C42\u540E\u7AEF\u51FD\u6570\u7C7B\u578B = <\u8DEF\u5F84
|
|
|
138
149
|
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>>(
|
|
139
150
|
\u8DEF\u5F84: \u8DEF\u5F84,
|
|
140
151
|
\u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,
|
|
152
|
+
ws\u4FE1\u606F\u56DE\u8C03?: (\u4FE1\u606F: \u4ECE\u8DEF\u5F84\u83B7\u5F97WS\u53C2\u6570<\u8DEF\u5F84>) => void,
|
|
153
|
+
ws\u5173\u95ED\u56DE\u8C03?: (\u4FE1\u606F: CloseEvent) => void,
|
|
154
|
+
ws\u9519\u8BEF\u56DE\u8C03?: (\u4FE1\u606F: Event) => void,
|
|
141
155
|
) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>
|
|
142
156
|
`;
|
|
143
157
|
|
|
@@ -179,12 +193,12 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
179
193
|
await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
|
|
180
194
|
var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
|
|
181
195
|
var \u4EE3\u7801 = [
|
|
182
|
-
`import { \u63A5\u53E3\u7C7B\u578B, \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C } from '@lsby/net-core'`,
|
|
196
|
+
`import { \u63A5\u53E3\u7C7B\u578B, \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C, \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u7ED3\u679C } from '@lsby/net-core'`,
|
|
183
197
|
`import { z } from 'zod'`,
|
|
184
198
|
`import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
|
|
185
199
|
``,
|
|
186
200
|
`
|
|
187
|
-
type \u8BA1\u7B97\u7ED3\u679C =
|
|
201
|
+
type JSON\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C =
|
|
188
202
|
typeof \u5BFC\u5165 extends \u63A5\u53E3\u7C7B\u578B<infer Path, infer Method, infer PreApis, infer SuccessSchema, infer ErrorSchema>
|
|
189
203
|
? Path extends string
|
|
190
204
|
? {
|
|
@@ -196,6 +210,19 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
196
210
|
}
|
|
197
211
|
: never
|
|
198
212
|
: never
|
|
213
|
+
type WS\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C =
|
|
214
|
+
typeof \u5BFC\u5165 extends \u63A5\u53E3\u7C7B\u578B<infer Path, infer Method, infer PreApis, infer SuccessSchema, infer ErrorSchema>
|
|
215
|
+
? Path extends string
|
|
216
|
+
? \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u7ED3\u679C<PreApis> extends infer R
|
|
217
|
+
? {} extends R
|
|
218
|
+
? never
|
|
219
|
+
: {
|
|
220
|
+
path: Path
|
|
221
|
+
data: \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u7ED3\u679C<PreApis>
|
|
222
|
+
}
|
|
223
|
+
: never
|
|
224
|
+
: never
|
|
225
|
+
: never
|
|
199
226
|
`
|
|
200
227
|
];
|
|
201
228
|
return import_typescript.default.createSourceFile(
|
|
@@ -219,12 +246,22 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
219
246
|
oldProgram: \u9879\u76EE
|
|
220
247
|
});
|
|
221
248
|
var \u7C7B\u578B\u68C0\u67E5\u5668 = \u65B0\u9879\u76EE.getTypeChecker();
|
|
222
|
-
var \
|
|
249
|
+
var JSON\u7ED3\u679C = [];
|
|
250
|
+
var WS\u7ED3\u679C = [];
|
|
223
251
|
for (var \u6E90\u6587\u4EF6 of \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC) {
|
|
224
252
|
import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (node) => {
|
|
225
|
-
if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "\u8BA1\u7B97\u7ED3\u679C") {
|
|
253
|
+
if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "JSON\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C") {
|
|
254
|
+
const type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
|
|
255
|
+
JSON\u7ED3\u679C.push(
|
|
256
|
+
\u7C7B\u578B\u68C0\u67E5\u5668.typeToString(
|
|
257
|
+
type,
|
|
258
|
+
void 0,
|
|
259
|
+
import_typescript.default.TypeFormatFlags.NoTruncation | import_typescript.default.TypeFormatFlags.AllowUniqueESSymbolType | import_typescript.default.TypeFormatFlags.UseAliasDefinedOutsideCurrentScope
|
|
260
|
+
)
|
|
261
|
+
);
|
|
262
|
+
} else if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "WS\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C") {
|
|
226
263
|
const type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
|
|
227
|
-
\
|
|
264
|
+
WS\u7ED3\u679C.push(
|
|
228
265
|
\u7C7B\u578B\u68C0\u67E5\u5668.typeToString(
|
|
229
266
|
type,
|
|
230
267
|
void 0,
|
|
@@ -234,9 +271,15 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
234
271
|
}
|
|
235
272
|
});
|
|
236
273
|
}
|
|
237
|
-
var \u6700\u7EC8\u7ED3\
|
|
238
|
-
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\
|
|
239
|
-
var \u6700\u7EC8\
|
|
274
|
+
var \u6700\u7EC8\u7ED3\u679C_JSON = Array.from(new Set(JSON\u7ED3\u679C.filter((a) => a != "any" && a != "never" && a != "unknown")));
|
|
275
|
+
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C_JSON.length} \u4E2A\u63A5\u53E3\u7C7B\u578B`);
|
|
276
|
+
var \u6700\u7EC8\u7ED3\u679C_WS = Array.from(new Set(WS\u7ED3\u679C.filter((a) => a != "any" && a != "never" && a != "unknown")));
|
|
277
|
+
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C_WS.length} \u4E2Aws\u63A5\u53E3\u7C7B\u578B`);
|
|
278
|
+
var \u6700\u7EC8\u4EE3\u7801 = [
|
|
279
|
+
`export type InterfaceType = [${\u6700\u7EC8\u7ED3\u679C_JSON.join(",")}]`,
|
|
280
|
+
`export type InterfaceWsType = [${\u6700\u7EC8\u7ED3\u679C_WS.join(",")}]`,
|
|
281
|
+
\u9644\u52A0\u4EE3\u7801
|
|
282
|
+
];
|
|
240
283
|
await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
|
|
241
284
|
var \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
|
|
242
285
|
if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
|
|
@@ -84,6 +84,17 @@ export type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, A = InterfaceType>
|
|
|
84
84
|
: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, xs>
|
|
85
85
|
: never
|
|
86
86
|
: never
|
|
87
|
+
export type \u4ECE\u8DEF\u5F84\u83B7\u5F97WS\u53C2\u6570<Path, A = InterfaceWsType> = A extends []
|
|
88
|
+
? never
|
|
89
|
+
: A extends [infer x, ...infer xs]
|
|
90
|
+
? 'path' extends keyof x
|
|
91
|
+
? x['path'] extends Path
|
|
92
|
+
? 'data' extends keyof x
|
|
93
|
+
? x['data']
|
|
94
|
+
: never
|
|
95
|
+
: \u4ECE\u8DEF\u5F84\u83B7\u5F97WS\u53C2\u6570<Path, xs>
|
|
96
|
+
: never
|
|
97
|
+
: never
|
|
87
98
|
export type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<Path, A = InterfaceType> = A extends []
|
|
88
99
|
? never
|
|
89
100
|
: A extends [infer x, ...infer xs]
|
|
@@ -143,6 +154,9 @@ export type Get\u8BF7\u6C42\u540E\u7AEF\u51FD\u6570\u7C7B\u578B = <\u8DEF\u5F84
|
|
|
143
154
|
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>>(
|
|
144
155
|
\u8DEF\u5F84: \u8DEF\u5F84,
|
|
145
156
|
\u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,
|
|
157
|
+
ws\u4FE1\u606F\u56DE\u8C03?: (\u4FE1\u606F: \u4ECE\u8DEF\u5F84\u83B7\u5F97WS\u53C2\u6570<\u8DEF\u5F84>) => void,
|
|
158
|
+
ws\u5173\u95ED\u56DE\u8C03?: (\u4FE1\u606F: CloseEvent) => void,
|
|
159
|
+
ws\u9519\u8BEF\u56DE\u8C03?: (\u4FE1\u606F: Event) => void,
|
|
146
160
|
) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>
|
|
147
161
|
`;
|
|
148
162
|
|
|
@@ -184,12 +198,12 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
184
198
|
await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
|
|
185
199
|
var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
|
|
186
200
|
var \u4EE3\u7801 = [
|
|
187
|
-
`import { \u63A5\u53E3\u7C7B\u578B, \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C } from '@lsby/net-core'`,
|
|
201
|
+
`import { \u63A5\u53E3\u7C7B\u578B, \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C, \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u7ED3\u679C } from '@lsby/net-core'`,
|
|
188
202
|
`import { z } from 'zod'`,
|
|
189
203
|
`import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
|
|
190
204
|
``,
|
|
191
205
|
`
|
|
192
|
-
type \u8BA1\u7B97\u7ED3\u679C =
|
|
206
|
+
type JSON\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C =
|
|
193
207
|
typeof \u5BFC\u5165 extends \u63A5\u53E3\u7C7B\u578B<infer Path, infer Method, infer PreApis, infer SuccessSchema, infer ErrorSchema>
|
|
194
208
|
? Path extends string
|
|
195
209
|
? {
|
|
@@ -201,6 +215,19 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
201
215
|
}
|
|
202
216
|
: never
|
|
203
217
|
: never
|
|
218
|
+
type WS\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C =
|
|
219
|
+
typeof \u5BFC\u5165 extends \u63A5\u53E3\u7C7B\u578B<infer Path, infer Method, infer PreApis, infer SuccessSchema, infer ErrorSchema>
|
|
220
|
+
? Path extends string
|
|
221
|
+
? \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u7ED3\u679C<PreApis> extends infer R
|
|
222
|
+
? {} extends R
|
|
223
|
+
? never
|
|
224
|
+
: {
|
|
225
|
+
path: Path
|
|
226
|
+
data: \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u7ED3\u679C<PreApis>
|
|
227
|
+
}
|
|
228
|
+
: never
|
|
229
|
+
: never
|
|
230
|
+
: never
|
|
204
231
|
`
|
|
205
232
|
];
|
|
206
233
|
return import_typescript.default.createSourceFile(
|
|
@@ -224,12 +251,22 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
224
251
|
oldProgram: \u9879\u76EE
|
|
225
252
|
});
|
|
226
253
|
var \u7C7B\u578B\u68C0\u67E5\u5668 = \u65B0\u9879\u76EE.getTypeChecker();
|
|
227
|
-
var \
|
|
254
|
+
var JSON\u7ED3\u679C = [];
|
|
255
|
+
var WS\u7ED3\u679C = [];
|
|
228
256
|
for (var \u6E90\u6587\u4EF6 of \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC) {
|
|
229
257
|
import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (node) => {
|
|
230
|
-
if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "\u8BA1\u7B97\u7ED3\u679C") {
|
|
258
|
+
if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "JSON\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C") {
|
|
259
|
+
const type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
|
|
260
|
+
JSON\u7ED3\u679C.push(
|
|
261
|
+
\u7C7B\u578B\u68C0\u67E5\u5668.typeToString(
|
|
262
|
+
type,
|
|
263
|
+
void 0,
|
|
264
|
+
import_typescript.default.TypeFormatFlags.NoTruncation | import_typescript.default.TypeFormatFlags.AllowUniqueESSymbolType | import_typescript.default.TypeFormatFlags.UseAliasDefinedOutsideCurrentScope
|
|
265
|
+
)
|
|
266
|
+
);
|
|
267
|
+
} else if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "WS\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C") {
|
|
231
268
|
const type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
|
|
232
|
-
\
|
|
269
|
+
WS\u7ED3\u679C.push(
|
|
233
270
|
\u7C7B\u578B\u68C0\u67E5\u5668.typeToString(
|
|
234
271
|
type,
|
|
235
272
|
void 0,
|
|
@@ -239,9 +276,15 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
239
276
|
}
|
|
240
277
|
});
|
|
241
278
|
}
|
|
242
|
-
var \u6700\u7EC8\u7ED3\
|
|
243
|
-
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\
|
|
244
|
-
var \u6700\u7EC8\
|
|
279
|
+
var \u6700\u7EC8\u7ED3\u679C_JSON = Array.from(new Set(JSON\u7ED3\u679C.filter((a) => a != "any" && a != "never" && a != "unknown")));
|
|
280
|
+
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C_JSON.length} \u4E2A\u63A5\u53E3\u7C7B\u578B`);
|
|
281
|
+
var \u6700\u7EC8\u7ED3\u679C_WS = Array.from(new Set(WS\u7ED3\u679C.filter((a) => a != "any" && a != "never" && a != "unknown")));
|
|
282
|
+
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C_WS.length} \u4E2Aws\u63A5\u53E3\u7C7B\u578B`);
|
|
283
|
+
var \u6700\u7EC8\u4EE3\u7801 = [
|
|
284
|
+
`export type InterfaceType = [${\u6700\u7EC8\u7ED3\u679C_JSON.join(",")}]`,
|
|
285
|
+
`export type InterfaceWsType = [${\u6700\u7EC8\u7ED3\u679C_WS.join(",")}]`,
|
|
286
|
+
\u9644\u52A0\u4EE3\u7801
|
|
287
|
+
];
|
|
245
288
|
await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
|
|
246
289
|
var \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
|
|
247
290
|
if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
|
|
@@ -67,6 +67,17 @@ export type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, A = InterfaceType>
|
|
|
67
67
|
: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, xs>
|
|
68
68
|
: never
|
|
69
69
|
: never
|
|
70
|
+
export type \u4ECE\u8DEF\u5F84\u83B7\u5F97WS\u53C2\u6570<Path, A = InterfaceWsType> = A extends []
|
|
71
|
+
? never
|
|
72
|
+
: A extends [infer x, ...infer xs]
|
|
73
|
+
? 'path' extends keyof x
|
|
74
|
+
? x['path'] extends Path
|
|
75
|
+
? 'data' extends keyof x
|
|
76
|
+
? x['data']
|
|
77
|
+
: never
|
|
78
|
+
: \u4ECE\u8DEF\u5F84\u83B7\u5F97WS\u53C2\u6570<Path, xs>
|
|
79
|
+
: never
|
|
80
|
+
: never
|
|
70
81
|
export type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<Path, A = InterfaceType> = A extends []
|
|
71
82
|
? never
|
|
72
83
|
: A extends [infer x, ...infer xs]
|
|
@@ -126,6 +137,9 @@ export type Get\u8BF7\u6C42\u540E\u7AEF\u51FD\u6570\u7C7B\u578B = <\u8DEF\u5F84
|
|
|
126
137
|
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>>(
|
|
127
138
|
\u8DEF\u5F84: \u8DEF\u5F84,
|
|
128
139
|
\u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,
|
|
140
|
+
ws\u4FE1\u606F\u56DE\u8C03?: (\u4FE1\u606F: \u4ECE\u8DEF\u5F84\u83B7\u5F97WS\u53C2\u6570<\u8DEF\u5F84>) => void,
|
|
141
|
+
ws\u5173\u95ED\u56DE\u8C03?: (\u4FE1\u606F: CloseEvent) => void,
|
|
142
|
+
ws\u9519\u8BEF\u56DE\u8C03?: (\u4FE1\u606F: Event) => void,
|
|
129
143
|
) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>
|
|
130
144
|
`;
|
|
131
145
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -79,6 +79,17 @@ export type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, A = InterfaceType>
|
|
|
79
79
|
: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, xs>
|
|
80
80
|
: never
|
|
81
81
|
: never
|
|
82
|
+
export type \u4ECE\u8DEF\u5F84\u83B7\u5F97WS\u53C2\u6570<Path, A = InterfaceWsType> = A extends []
|
|
83
|
+
? never
|
|
84
|
+
: A extends [infer x, ...infer xs]
|
|
85
|
+
? 'path' extends keyof x
|
|
86
|
+
? x['path'] extends Path
|
|
87
|
+
? 'data' extends keyof x
|
|
88
|
+
? x['data']
|
|
89
|
+
: never
|
|
90
|
+
: \u4ECE\u8DEF\u5F84\u83B7\u5F97WS\u53C2\u6570<Path, xs>
|
|
91
|
+
: never
|
|
92
|
+
: never
|
|
82
93
|
export type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<Path, A = InterfaceType> = A extends []
|
|
83
94
|
? never
|
|
84
95
|
: A extends [infer x, ...infer xs]
|
|
@@ -138,6 +149,9 @@ export type Get\u8BF7\u6C42\u540E\u7AEF\u51FD\u6570\u7C7B\u578B = <\u8DEF\u5F84
|
|
|
138
149
|
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>>(
|
|
139
150
|
\u8DEF\u5F84: \u8DEF\u5F84,
|
|
140
151
|
\u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,
|
|
152
|
+
ws\u4FE1\u606F\u56DE\u8C03?: (\u4FE1\u606F: \u4ECE\u8DEF\u5F84\u83B7\u5F97WS\u53C2\u6570<\u8DEF\u5F84>) => void,
|
|
153
|
+
ws\u5173\u95ED\u56DE\u8C03?: (\u4FE1\u606F: CloseEvent) => void,
|
|
154
|
+
ws\u9519\u8BEF\u56DE\u8C03?: (\u4FE1\u606F: Event) => void,
|
|
141
155
|
) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>
|
|
142
156
|
`;
|
|
143
157
|
|
|
@@ -179,12 +193,12 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
179
193
|
await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
|
|
180
194
|
var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
|
|
181
195
|
var \u4EE3\u7801 = [
|
|
182
|
-
`import { \u63A5\u53E3\u7C7B\u578B, \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C } from '@lsby/net-core'`,
|
|
196
|
+
`import { \u63A5\u53E3\u7C7B\u578B, \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C, \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u7ED3\u679C } from '@lsby/net-core'`,
|
|
183
197
|
`import { z } from 'zod'`,
|
|
184
198
|
`import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
|
|
185
199
|
``,
|
|
186
200
|
`
|
|
187
|
-
type \u8BA1\u7B97\u7ED3\u679C =
|
|
201
|
+
type JSON\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C =
|
|
188
202
|
typeof \u5BFC\u5165 extends \u63A5\u53E3\u7C7B\u578B<infer Path, infer Method, infer PreApis, infer SuccessSchema, infer ErrorSchema>
|
|
189
203
|
? Path extends string
|
|
190
204
|
? {
|
|
@@ -196,6 +210,19 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
196
210
|
}
|
|
197
211
|
: never
|
|
198
212
|
: never
|
|
213
|
+
type WS\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C =
|
|
214
|
+
typeof \u5BFC\u5165 extends \u63A5\u53E3\u7C7B\u578B<infer Path, infer Method, infer PreApis, infer SuccessSchema, infer ErrorSchema>
|
|
215
|
+
? Path extends string
|
|
216
|
+
? \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u7ED3\u679C<PreApis> extends infer R
|
|
217
|
+
? {} extends R
|
|
218
|
+
? never
|
|
219
|
+
: {
|
|
220
|
+
path: Path
|
|
221
|
+
data: \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u7ED3\u679C<PreApis>
|
|
222
|
+
}
|
|
223
|
+
: never
|
|
224
|
+
: never
|
|
225
|
+
: never
|
|
199
226
|
`
|
|
200
227
|
];
|
|
201
228
|
return import_typescript.default.createSourceFile(
|
|
@@ -219,12 +246,22 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
219
246
|
oldProgram: \u9879\u76EE
|
|
220
247
|
});
|
|
221
248
|
var \u7C7B\u578B\u68C0\u67E5\u5668 = \u65B0\u9879\u76EE.getTypeChecker();
|
|
222
|
-
var \
|
|
249
|
+
var JSON\u7ED3\u679C = [];
|
|
250
|
+
var WS\u7ED3\u679C = [];
|
|
223
251
|
for (var \u6E90\u6587\u4EF6 of \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC) {
|
|
224
252
|
import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (node) => {
|
|
225
|
-
if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "\u8BA1\u7B97\u7ED3\u679C") {
|
|
253
|
+
if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "JSON\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C") {
|
|
254
|
+
const type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
|
|
255
|
+
JSON\u7ED3\u679C.push(
|
|
256
|
+
\u7C7B\u578B\u68C0\u67E5\u5668.typeToString(
|
|
257
|
+
type,
|
|
258
|
+
void 0,
|
|
259
|
+
import_typescript.default.TypeFormatFlags.NoTruncation | import_typescript.default.TypeFormatFlags.AllowUniqueESSymbolType | import_typescript.default.TypeFormatFlags.UseAliasDefinedOutsideCurrentScope
|
|
260
|
+
)
|
|
261
|
+
);
|
|
262
|
+
} else if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "WS\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C") {
|
|
226
263
|
const type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
|
|
227
|
-
\
|
|
264
|
+
WS\u7ED3\u679C.push(
|
|
228
265
|
\u7C7B\u578B\u68C0\u67E5\u5668.typeToString(
|
|
229
266
|
type,
|
|
230
267
|
void 0,
|
|
@@ -234,9 +271,15 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
234
271
|
}
|
|
235
272
|
});
|
|
236
273
|
}
|
|
237
|
-
var \u6700\u7EC8\u7ED3\
|
|
238
|
-
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\
|
|
239
|
-
var \u6700\u7EC8\
|
|
274
|
+
var \u6700\u7EC8\u7ED3\u679C_JSON = Array.from(new Set(JSON\u7ED3\u679C.filter((a) => a != "any" && a != "never" && a != "unknown")));
|
|
275
|
+
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C_JSON.length} \u4E2A\u63A5\u53E3\u7C7B\u578B`);
|
|
276
|
+
var \u6700\u7EC8\u7ED3\u679C_WS = Array.from(new Set(WS\u7ED3\u679C.filter((a) => a != "any" && a != "never" && a != "unknown")));
|
|
277
|
+
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C_WS.length} \u4E2Aws\u63A5\u53E3\u7C7B\u578B`);
|
|
278
|
+
var \u6700\u7EC8\u4EE3\u7801 = [
|
|
279
|
+
`export type InterfaceType = [${\u6700\u7EC8\u7ED3\u679C_JSON.join(",")}]`,
|
|
280
|
+
`export type InterfaceWsType = [${\u6700\u7EC8\u7ED3\u679C_WS.join(",")}]`,
|
|
281
|
+
\u9644\u52A0\u4EE3\u7801
|
|
282
|
+
];
|
|
240
283
|
await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
|
|
241
284
|
var \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
|
|
242
285
|
if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
|
|
@@ -84,6 +84,17 @@ export type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, A = InterfaceType>
|
|
|
84
84
|
: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, xs>
|
|
85
85
|
: never
|
|
86
86
|
: never
|
|
87
|
+
export type \u4ECE\u8DEF\u5F84\u83B7\u5F97WS\u53C2\u6570<Path, A = InterfaceWsType> = A extends []
|
|
88
|
+
? never
|
|
89
|
+
: A extends [infer x, ...infer xs]
|
|
90
|
+
? 'path' extends keyof x
|
|
91
|
+
? x['path'] extends Path
|
|
92
|
+
? 'data' extends keyof x
|
|
93
|
+
? x['data']
|
|
94
|
+
: never
|
|
95
|
+
: \u4ECE\u8DEF\u5F84\u83B7\u5F97WS\u53C2\u6570<Path, xs>
|
|
96
|
+
: never
|
|
97
|
+
: never
|
|
87
98
|
export type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<Path, A = InterfaceType> = A extends []
|
|
88
99
|
? never
|
|
89
100
|
: A extends [infer x, ...infer xs]
|
|
@@ -143,6 +154,9 @@ export type Get\u8BF7\u6C42\u540E\u7AEF\u51FD\u6570\u7C7B\u578B = <\u8DEF\u5F84
|
|
|
143
154
|
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>>(
|
|
144
155
|
\u8DEF\u5F84: \u8DEF\u5F84,
|
|
145
156
|
\u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,
|
|
157
|
+
ws\u4FE1\u606F\u56DE\u8C03?: (\u4FE1\u606F: \u4ECE\u8DEF\u5F84\u83B7\u5F97WS\u53C2\u6570<\u8DEF\u5F84>) => void,
|
|
158
|
+
ws\u5173\u95ED\u56DE\u8C03?: (\u4FE1\u606F: CloseEvent) => void,
|
|
159
|
+
ws\u9519\u8BEF\u56DE\u8C03?: (\u4FE1\u606F: Event) => void,
|
|
146
160
|
) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>
|
|
147
161
|
`;
|
|
148
162
|
|
|
@@ -184,12 +198,12 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
184
198
|
await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
|
|
185
199
|
var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
|
|
186
200
|
var \u4EE3\u7801 = [
|
|
187
|
-
`import { \u63A5\u53E3\u7C7B\u578B, \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C } from '@lsby/net-core'`,
|
|
201
|
+
`import { \u63A5\u53E3\u7C7B\u578B, \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C, \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u7ED3\u679C } from '@lsby/net-core'`,
|
|
188
202
|
`import { z } from 'zod'`,
|
|
189
203
|
`import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
|
|
190
204
|
``,
|
|
191
205
|
`
|
|
192
|
-
type \u8BA1\u7B97\u7ED3\u679C =
|
|
206
|
+
type JSON\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C =
|
|
193
207
|
typeof \u5BFC\u5165 extends \u63A5\u53E3\u7C7B\u578B<infer Path, infer Method, infer PreApis, infer SuccessSchema, infer ErrorSchema>
|
|
194
208
|
? Path extends string
|
|
195
209
|
? {
|
|
@@ -201,6 +215,19 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
201
215
|
}
|
|
202
216
|
: never
|
|
203
217
|
: never
|
|
218
|
+
type WS\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C =
|
|
219
|
+
typeof \u5BFC\u5165 extends \u63A5\u53E3\u7C7B\u578B<infer Path, infer Method, infer PreApis, infer SuccessSchema, infer ErrorSchema>
|
|
220
|
+
? Path extends string
|
|
221
|
+
? \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u7ED3\u679C<PreApis> extends infer R
|
|
222
|
+
? {} extends R
|
|
223
|
+
? never
|
|
224
|
+
: {
|
|
225
|
+
path: Path
|
|
226
|
+
data: \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u7ED3\u679C<PreApis>
|
|
227
|
+
}
|
|
228
|
+
: never
|
|
229
|
+
: never
|
|
230
|
+
: never
|
|
204
231
|
`
|
|
205
232
|
];
|
|
206
233
|
return import_typescript.default.createSourceFile(
|
|
@@ -224,12 +251,22 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
224
251
|
oldProgram: \u9879\u76EE
|
|
225
252
|
});
|
|
226
253
|
var \u7C7B\u578B\u68C0\u67E5\u5668 = \u65B0\u9879\u76EE.getTypeChecker();
|
|
227
|
-
var \
|
|
254
|
+
var JSON\u7ED3\u679C = [];
|
|
255
|
+
var WS\u7ED3\u679C = [];
|
|
228
256
|
for (var \u6E90\u6587\u4EF6 of \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC) {
|
|
229
257
|
import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (node) => {
|
|
230
|
-
if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "\u8BA1\u7B97\u7ED3\u679C") {
|
|
258
|
+
if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "JSON\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C") {
|
|
259
|
+
const type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
|
|
260
|
+
JSON\u7ED3\u679C.push(
|
|
261
|
+
\u7C7B\u578B\u68C0\u67E5\u5668.typeToString(
|
|
262
|
+
type,
|
|
263
|
+
void 0,
|
|
264
|
+
import_typescript.default.TypeFormatFlags.NoTruncation | import_typescript.default.TypeFormatFlags.AllowUniqueESSymbolType | import_typescript.default.TypeFormatFlags.UseAliasDefinedOutsideCurrentScope
|
|
265
|
+
)
|
|
266
|
+
);
|
|
267
|
+
} else if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "WS\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C") {
|
|
231
268
|
const type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
|
|
232
|
-
\
|
|
269
|
+
WS\u7ED3\u679C.push(
|
|
233
270
|
\u7C7B\u578B\u68C0\u67E5\u5668.typeToString(
|
|
234
271
|
type,
|
|
235
272
|
void 0,
|
|
@@ -239,9 +276,15 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
239
276
|
}
|
|
240
277
|
});
|
|
241
278
|
}
|
|
242
|
-
var \u6700\u7EC8\u7ED3\
|
|
243
|
-
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\
|
|
244
|
-
var \u6700\u7EC8\
|
|
279
|
+
var \u6700\u7EC8\u7ED3\u679C_JSON = Array.from(new Set(JSON\u7ED3\u679C.filter((a) => a != "any" && a != "never" && a != "unknown")));
|
|
280
|
+
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C_JSON.length} \u4E2A\u63A5\u53E3\u7C7B\u578B`);
|
|
281
|
+
var \u6700\u7EC8\u7ED3\u679C_WS = Array.from(new Set(WS\u7ED3\u679C.filter((a) => a != "any" && a != "never" && a != "unknown")));
|
|
282
|
+
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C_WS.length} \u4E2Aws\u63A5\u53E3\u7C7B\u578B`);
|
|
283
|
+
var \u6700\u7EC8\u4EE3\u7801 = [
|
|
284
|
+
`export type InterfaceType = [${\u6700\u7EC8\u7ED3\u679C_JSON.join(",")}]`,
|
|
285
|
+
`export type InterfaceWsType = [${\u6700\u7EC8\u7ED3\u679C_WS.join(",")}]`,
|
|
286
|
+
\u9644\u52A0\u4EE3\u7801
|
|
287
|
+
];
|
|
245
288
|
await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
|
|
246
289
|
var \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
|
|
247
290
|
if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
|
|
@@ -25,9 +25,33 @@ __export(global_exports, {
|
|
|
25
25
|
module.exports = __toCommonJS(global_exports);
|
|
26
26
|
var import_ts_global = require("@lsby/ts-global");
|
|
27
27
|
var import_ts_log = require("@lsby/ts-log");
|
|
28
|
+
|
|
29
|
+
// src/global/ws.ts
|
|
30
|
+
var WebSocket\u7BA1\u7406\u8005 = class {
|
|
31
|
+
constructor(\u8FDE\u63A5\u8868) {
|
|
32
|
+
this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
|
|
33
|
+
}
|
|
34
|
+
async \u589E\u52A0\u8FDE\u63A5(\u8BF7\u6C42id, ws\u53E5\u67C4) {
|
|
35
|
+
this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] = ws\u53E5\u67C4;
|
|
36
|
+
}
|
|
37
|
+
async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u8BF7\u6C42id) {
|
|
38
|
+
return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] == null ? false : true;
|
|
39
|
+
}
|
|
40
|
+
async \u83B7\u5F97\u53E5\u67C4(\u8BF7\u6C42id) {
|
|
41
|
+
return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] || null;
|
|
42
|
+
}
|
|
43
|
+
async \u5220\u9664\u8FDE\u63A5(id) {
|
|
44
|
+
delete this.\u8FDE\u63A5\u8868[id];
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
// src/global/global.ts
|
|
28
49
|
var Global = new import_ts_global.GlobalService([
|
|
29
50
|
new import_ts_global.GlobalAsyncItem("log", async () => {
|
|
30
51
|
return new import_ts_log.Log("@lsby:net-core");
|
|
52
|
+
}),
|
|
53
|
+
new import_ts_global.GlobalAsyncItem("WebSocket\u7BA1\u7406\u8005", async () => {
|
|
54
|
+
return new WebSocket\u7BA1\u7406\u8005({});
|
|
31
55
|
})
|
|
32
56
|
]);
|
|
33
57
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { GlobalService, GlobalAsyncItem } from '@lsby/ts-global';
|
|
2
2
|
import { Log } from '@lsby/ts-log';
|
|
3
|
+
import { WebSocket管理者 as WebSocket___ } from './ws.cjs';
|
|
4
|
+
import 'ws';
|
|
3
5
|
|
|
4
|
-
declare var Global: GlobalService<[GlobalAsyncItem<"log", Log>]>;
|
|
6
|
+
declare var Global: GlobalService<[GlobalAsyncItem<"log", Log>, GlobalAsyncItem<"WebSocket管理者", WebSocket___>]>;
|
|
5
7
|
|
|
6
8
|
export { Global };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/global/ws.ts
|
|
21
|
+
var ws_exports = {};
|
|
22
|
+
__export(ws_exports, {
|
|
23
|
+
WebSocket\u7BA1\u7406\u8005: () => WebSocket\u7BA1\u7406\u8005
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(ws_exports);
|
|
26
|
+
var WebSocket\u7BA1\u7406\u8005 = class {
|
|
27
|
+
constructor(\u8FDE\u63A5\u8868) {
|
|
28
|
+
this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
|
|
29
|
+
}
|
|
30
|
+
async \u589E\u52A0\u8FDE\u63A5(\u8BF7\u6C42id, ws\u53E5\u67C4) {
|
|
31
|
+
this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] = ws\u53E5\u67C4;
|
|
32
|
+
}
|
|
33
|
+
async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u8BF7\u6C42id) {
|
|
34
|
+
return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] == null ? false : true;
|
|
35
|
+
}
|
|
36
|
+
async \u83B7\u5F97\u53E5\u67C4(\u8BF7\u6C42id) {
|
|
37
|
+
return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] || null;
|
|
38
|
+
}
|
|
39
|
+
async \u5220\u9664\u8FDE\u63A5(id) {
|
|
40
|
+
delete this.\u8FDE\u63A5\u8868[id];
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
44
|
+
0 && (module.exports = {
|
|
45
|
+
WebSocket\u7BA1\u7406\u8005
|
|
46
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { WebSocket } from 'ws';
|
|
2
|
+
|
|
3
|
+
type 请求id = string;
|
|
4
|
+
declare class WebSocket管理者 {
|
|
5
|
+
private 连接表;
|
|
6
|
+
constructor(连接表: Record<请求id, WebSocket | null>);
|
|
7
|
+
增加连接(请求id: 请求id, ws句柄: WebSocket): Promise<void>;
|
|
8
|
+
查询连接存在(请求id: string): Promise<boolean>;
|
|
9
|
+
获得句柄(请求id: 请求id): Promise<WebSocket | null>;
|
|
10
|
+
删除连接(id: string): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { WebSocket管理者 };
|