@lsby/net-core 0.6.6 → 0.6.7-beta.10
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/cjs/global/global.cjs +7 -7
- package/dist/cjs/global/web-socket-management.cjs +7 -7
- package/dist/cjs/{tools/tools.cjs → help/help.cjs} +14 -4
- package/dist/cjs/help/help.d.cts +11 -0
- package/dist/cjs/index.cjs +202 -309
- package/dist/cjs/index.d.cts +7 -10
- package/dist/cjs/interface/interface-base.d.cts +5 -42
- package/dist/cjs/interface/interface-logic.cjs +12 -193
- package/dist/cjs/interface/interface-logic.d.cts +6 -60
- package/dist/cjs/interface/interface-result.cjs +4 -4
- package/dist/cjs/interface/interface-result.d.cts +6 -39
- package/dist/cjs/interface-base-CFXGjV5S.d.cts +176 -0
- package/dist/cjs/plugin/extend/chinese-path.d.cts +4 -1
- package/dist/cjs/plugin/extend/custom-data.cjs +8 -8
- package/dist/cjs/plugin/extend/custom-data.d.cts +4 -1
- package/dist/cjs/plugin/extend/json.cjs +9 -9
- package/dist/cjs/plugin/extend/json.d.cts +6 -2
- package/dist/cjs/plugin/extend/log-headers.cjs +2 -177
- package/dist/cjs/plugin/extend/log-headers.d.cts +4 -1
- package/dist/cjs/plugin/extend/send-file-plugin.d.cts +4 -1
- package/dist/cjs/plugin/extend/urlencoded.cjs +8 -8
- package/dist/cjs/plugin/extend/urlencoded.d.cts +4 -1
- package/dist/cjs/plugin/extend/web-socket.cjs +8 -8
- package/dist/cjs/plugin/extend/web-socket.d.cts +4 -1
- package/dist/cjs/plugin/plug.d.cts +7 -29
- package/dist/cjs/server/server.cjs +15 -13
- package/dist/cjs/server/server.d.cts +4 -27
- package/dist/cjs/wrapper/common-wrapper.cjs +89 -0
- package/dist/cjs/wrapper/common-wrapper.d.cts +19 -0
- package/dist/cjs/wrapper/deferred-result-wrapper.cjs +89 -0
- package/dist/cjs/wrapper/deferred-result-wrapper.d.cts +16 -0
- package/dist/esm/action/action.bak.js +136 -3
- package/dist/esm/{chunk-TU5RBGGM.js → chunk-3QNWAAXS.js} +9 -7
- package/dist/esm/{chunk-KCQRJ4JL.js → chunk-47MYYUQZ.js} +2 -2
- package/dist/esm/{chunk-JHQKJ7DH.js → chunk-6I3OJQWA.js} +3 -3
- package/dist/esm/{chunk-6P6XTMKW.js → chunk-7MHKNSNT.js} +2 -5
- package/dist/esm/chunk-BEFZ7IFH.js +21 -0
- package/dist/esm/{chunk-DXXX45UR.js → chunk-GKEZ4UTO.js} +3 -3
- package/dist/esm/{chunk-L36NOE2J.js → chunk-JB4HVEXB.js} +2 -2
- package/dist/esm/{chunk-2E2KK6JA.js → chunk-JQAGEE3X.js} +12 -20
- package/dist/esm/{chunk-3FDT2MPR.js → chunk-LDWZKZLU.js} +7 -7
- package/dist/esm/{chunk-IGHJCQ2S.js → chunk-RYGSLVLS.js} +9 -1
- package/dist/esm/chunk-TNQ5YSCZ.js +21 -0
- package/dist/esm/{chunk-Z3PYJGMZ.js → chunk-XPC3O5HH.js} +2 -2
- package/dist/esm/global/global.js +1 -1
- package/dist/esm/global/web-socket-management.js +1 -1
- package/dist/esm/help/help.d.ts +11 -0
- package/dist/esm/{tools/tools.js → help/help.js} +5 -1
- package/dist/esm/index.d.ts +7 -10
- package/dist/esm/index.js +31 -24
- package/dist/esm/interface/interface-base.d.ts +5 -42
- package/dist/esm/interface/interface-logic.d.ts +6 -60
- package/dist/esm/interface/interface-logic.js +1 -2
- package/dist/esm/interface/interface-result.d.ts +6 -39
- package/dist/esm/interface/interface-result.js +3 -3
- package/dist/esm/interface-base-D-Zxt7-a.d.ts +176 -0
- package/dist/esm/plugin/extend/chinese-path.d.ts +4 -1
- package/dist/esm/plugin/extend/custom-data.d.ts +4 -1
- package/dist/esm/plugin/extend/custom-data.js +2 -2
- package/dist/esm/plugin/extend/json.d.ts +6 -2
- package/dist/esm/plugin/extend/json.js +3 -3
- package/dist/esm/plugin/extend/log-headers.d.ts +4 -1
- package/dist/esm/plugin/extend/log-headers.js +1 -2
- package/dist/esm/plugin/extend/send-file-plugin.d.ts +4 -1
- package/dist/esm/plugin/extend/urlencoded.d.ts +4 -1
- package/dist/esm/plugin/extend/urlencoded.js +2 -2
- package/dist/esm/plugin/extend/web-socket.d.ts +4 -1
- package/dist/esm/plugin/extend/web-socket.js +2 -2
- package/dist/esm/plugin/plug.d.ts +7 -29
- package/dist/esm/server/server.d.ts +4 -27
- package/dist/esm/server/server.js +3 -3
- package/dist/esm/wrapper/common-wrapper.d.ts +19 -0
- package/dist/esm/wrapper/common-wrapper.js +8 -0
- package/dist/esm/wrapper/deferred-result-wrapper.d.ts +16 -0
- package/dist/esm/wrapper/deferred-result-wrapper.js +8 -0
- package/package.json +1 -1
- package/dist/cjs/tools/tools.d.cts +0 -4
- package/dist/cjs/tools/types.cjs +0 -18
- package/dist/cjs/tools/types.d.cts +0 -5
- package/dist/esm/chunk-CE4M2QA4.js +0 -140
- package/dist/esm/chunk-DAKGERGA.js +0 -0
- package/dist/esm/tools/tools.d.ts +0 -4
- package/dist/esm/tools/types.d.ts +0 -5
- package/dist/esm/tools/types.js +0 -1
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import {
|
|
3
|
+
import { 插 as __ } from '../../interface-base-CFXGjV5S.cjs';
|
|
4
4
|
import '@lsby/ts-fp-data';
|
|
5
|
+
import '../../help/help.cjs';
|
|
6
|
+
import '@lsby/ts-log';
|
|
7
|
+
import 'node:http';
|
|
5
8
|
|
|
6
9
|
declare class 表单解析插件<Result extends z.AnyZodObject> extends __<Result> {
|
|
7
10
|
private log;
|
|
@@ -31,10 +31,10 @@ var import_ts_log = require("@lsby/ts-log");
|
|
|
31
31
|
|
|
32
32
|
// src/global/web-socket-management.ts
|
|
33
33
|
var WebSocket\u7BA1\u7406\u5668 = class {
|
|
34
|
-
log = Global.getItem("log").then((a) => a.extend("WebSocket\u7BA1\u7406\u5668"));
|
|
34
|
+
log = Global.getItem("log").then((a) => a.extend("@lsby:net-core").extend("WebSocket\u7BA1\u7406\u5668"));
|
|
35
35
|
\u8FDE\u63A5\u8868 = {};
|
|
36
36
|
async \u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5(id, code, \u8BF4\u660E) {
|
|
37
|
-
let log = (await this.log).extend("\u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5")
|
|
37
|
+
let log = (await this.log).extend(id).extend("\u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5");
|
|
38
38
|
try {
|
|
39
39
|
await this.\u8FDE\u63A5\u8868[id]?.\u6E05\u7406\u51FD\u6570?.();
|
|
40
40
|
} catch (err) {
|
|
@@ -44,7 +44,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
44
44
|
delete this.\u8FDE\u63A5\u8868[id];
|
|
45
45
|
}
|
|
46
46
|
async \u9500\u6BC1\u5224\u5B9A(id) {
|
|
47
|
-
let log = (await this.log).extend("\u9500\u6BC1\u5224\u5B9A")
|
|
47
|
+
let log = (await this.log).extend(id).extend("\u9500\u6BC1\u5224\u5B9A");
|
|
48
48
|
let \u8FDE\u63A5 = this.\u8FDE\u63A5\u8868[id];
|
|
49
49
|
if (\u8FDE\u63A5 === void 0) {
|
|
50
50
|
await log.error(`\u65E0\u6CD5\u627E\u5230\u8FDE\u63A5`);
|
|
@@ -77,7 +77,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
async \u589E\u52A0\u6216\u66FF\u6362\u8FDE\u63A5(id, ws) {
|
|
80
|
-
let log = (await this.log).extend("\u589E\u52A0\u6216\u66FF\u6362\u8FDE\u63A5")
|
|
80
|
+
let log = (await this.log).extend(id).extend("\u589E\u52A0\u6216\u66FF\u6362\u8FDE\u63A5");
|
|
81
81
|
if (this.\u8FDE\u63A5\u8868[id] === void 0) {
|
|
82
82
|
this.\u8FDE\u63A5\u8868[id] = {
|
|
83
83
|
ws,
|
|
@@ -108,7 +108,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
108
108
|
await log.info("\u53D1\u9001\u65E7\u8FDE\u63A5\u7F13\u5B58\u5B8C\u6210");
|
|
109
109
|
}
|
|
110
110
|
async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(id, \u6E05\u7406\u51FD\u6570) {
|
|
111
|
-
let log = (await this.log).extend("\u8BBE\u7F6E\u6E05\u7406\u51FD\u6570")
|
|
111
|
+
let log = (await this.log).extend(id).extend("\u8BBE\u7F6E\u6E05\u7406\u51FD\u6570");
|
|
112
112
|
if (this.\u8FDE\u63A5\u8868[id] === void 0) {
|
|
113
113
|
await log.error(`\u65E0\u6CD5\u627E\u5230\u8FDE\u63A5`);
|
|
114
114
|
return;
|
|
@@ -116,7 +116,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
116
116
|
this.\u8FDE\u63A5\u8868[id].\u6E05\u7406\u51FD\u6570 = \u6E05\u7406\u51FD\u6570;
|
|
117
117
|
}
|
|
118
118
|
async \u53D1\u9001\u4FE1\u606F_\u5185\u90E8(id, data) {
|
|
119
|
-
let log = (await this.log).extend("\u53D1\u9001\u4FE1\u606F(\u5185\u90E8)")
|
|
119
|
+
let log = (await this.log).extend(id).extend("\u53D1\u9001\u4FE1\u606F(\u5185\u90E8)");
|
|
120
120
|
while (this.\u8FDE\u63A5\u8868[id]?.\u6570\u636E\u53D1\u9001\u4E2D === true) {
|
|
121
121
|
await log.info("\u6570\u636E\u53D1\u9001\u4E2D, \u5C06\u9000\u907F.");
|
|
122
122
|
let \u9000\u907F\u65F6\u95F4 = 100;
|
|
@@ -147,7 +147,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
147
147
|
});
|
|
148
148
|
}
|
|
149
149
|
async \u53D1\u9001\u4FE1\u606F(id, data) {
|
|
150
|
-
let log = (await this.log).extend("\u53D1\u9001\u4FE1\u606F")
|
|
150
|
+
let log = (await this.log).extend(id).extend("\u53D1\u9001\u4FE1\u606F");
|
|
151
151
|
if (this.\u8FDE\u63A5\u8868[id]?.\u5DF2\u5B8C\u6210 === true) {
|
|
152
152
|
await log.error("\u8FDE\u63A5\u5DF2\u5B8C\u6210, \u65E0\u6CD5\u53D1\u9001\u6570\u636E.");
|
|
153
153
|
return;
|
|
@@ -227,7 +227,7 @@ var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
227
227
|
}).or(import_zod.z.null())
|
|
228
228
|
}),
|
|
229
229
|
async (req, _res, \u9644\u52A0\u53C2\u6570) => {
|
|
230
|
-
let log =
|
|
230
|
+
let log = \u9644\u52A0\u53C2\u6570.log.extend("webSocket\u63D2\u4EF6");
|
|
231
231
|
let WebSocket\u7BA1\u7406\u56682 = await Global.getItem("WebSocket\u7BA1\u7406\u5668");
|
|
232
232
|
let wsId = req.headers["ws-client-id"];
|
|
233
233
|
await log.debug("\u68C0\u67E5 ws-client-id \u5934\u4FE1\u606F", { wsId });
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { 插 as __, 包 as _____, v as _____$1, w as _Task____ } from '../../interface-base-CFXGjV5S.cjs';
|
|
3
3
|
import '@lsby/ts-fp-data';
|
|
4
4
|
import 'express';
|
|
5
|
+
import '../../help/help.cjs';
|
|
6
|
+
import '@lsby/ts-log';
|
|
7
|
+
import 'node:http';
|
|
5
8
|
|
|
6
9
|
declare class WebSocket插件<信息 extends z.AnyZodObject | z.ZodUnion<any>> extends __<z.ZodObject<{
|
|
7
10
|
ws操作: z.ZodUnion<[
|
|
@@ -1,29 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* 类似express中的中间件, 做一些前置过程, 例如解析参数, 解析文件等.
|
|
10
|
-
*
|
|
11
|
-
* 可以被注入在"接口逻辑"中, 为其提供前置数据.
|
|
12
|
-
*/
|
|
13
|
-
declare class 插件<Obj extends z.AnyZodObject> {
|
|
14
|
-
private 类型;
|
|
15
|
-
private 实现;
|
|
16
|
-
protected readonly __类型保持符号?: Obj;
|
|
17
|
-
constructor(类型: Obj, 实现: (req: Request, res: Response, 附加参数: 插件附加参数) => Promise<z.infer<Obj>>);
|
|
18
|
-
获得类型(): Obj;
|
|
19
|
-
运行(req: Request, res: Response, 附加参数: 插件附加参数): Promise<z.infer<Obj>>;
|
|
20
|
-
}
|
|
21
|
-
type 任意插件 = 插件<any>;
|
|
22
|
-
type 包装插件项<A> = Task<A>;
|
|
23
|
-
type 插件项类型 = 包装插件项<插件<z.AnyZodObject>>;
|
|
24
|
-
type 取Task插件内部类型<A> = A extends Task<插件<infer x>> ? x : never;
|
|
25
|
-
type 取Task插件类型<A> = A extends Task<infer x> ? x : never;
|
|
26
|
-
type 取插件内部ts类型<A> = A extends 插件<infer x> ? z.infer<x> : never;
|
|
27
|
-
type 合并插件结果<Arr extends Array<插件项类型>> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x extends infer 插件项 ? xs extends Array<插件项类型> ? z.infer<取Task插件内部类型<插件项>> & 合并插件结果<xs> : {} : {} : {};
|
|
28
|
-
|
|
29
|
-
export { type 任意插件, type 包装插件项, type 取Task插件内部类型, type 取Task插件类型, type 取插件内部ts类型, type 合并插件结果, 插件, type 插件附加参数, type 插件项类型 };
|
|
1
|
+
import '@lsby/ts-fp-data';
|
|
2
|
+
import 'express';
|
|
3
|
+
import 'zod';
|
|
4
|
+
export { u as 任意插件, 包 as 包装插件项, 取 as 取Task插件内部类型, w as 取Task插件类型, x as 取插件内部ts类型, 合 as 合并插件结果, 插 as 插件, v as 插件项类型 } from '../interface-base-CFXGjV5S.cjs';
|
|
5
|
+
import '../help/help.cjs';
|
|
6
|
+
import '@lsby/ts-log';
|
|
7
|
+
import 'node:http';
|
|
@@ -45,10 +45,10 @@ var import_ts_log = require("@lsby/ts-log");
|
|
|
45
45
|
|
|
46
46
|
// src/global/web-socket-management.ts
|
|
47
47
|
var WebSocket\u7BA1\u7406\u5668 = class {
|
|
48
|
-
log = Global.getItem("log").then((a) => a.extend("WebSocket\u7BA1\u7406\u5668"));
|
|
48
|
+
log = Global.getItem("log").then((a) => a.extend("@lsby:net-core").extend("WebSocket\u7BA1\u7406\u5668"));
|
|
49
49
|
\u8FDE\u63A5\u8868 = {};
|
|
50
50
|
async \u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5(id, code, \u8BF4\u660E) {
|
|
51
|
-
let log = (await this.log).extend("\u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5")
|
|
51
|
+
let log = (await this.log).extend(id).extend("\u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5");
|
|
52
52
|
try {
|
|
53
53
|
await this.\u8FDE\u63A5\u8868[id]?.\u6E05\u7406\u51FD\u6570?.();
|
|
54
54
|
} catch (err) {
|
|
@@ -58,7 +58,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
58
58
|
delete this.\u8FDE\u63A5\u8868[id];
|
|
59
59
|
}
|
|
60
60
|
async \u9500\u6BC1\u5224\u5B9A(id) {
|
|
61
|
-
let log = (await this.log).extend("\u9500\u6BC1\u5224\u5B9A")
|
|
61
|
+
let log = (await this.log).extend(id).extend("\u9500\u6BC1\u5224\u5B9A");
|
|
62
62
|
let \u8FDE\u63A5 = this.\u8FDE\u63A5\u8868[id];
|
|
63
63
|
if (\u8FDE\u63A5 === void 0) {
|
|
64
64
|
await log.error(`\u65E0\u6CD5\u627E\u5230\u8FDE\u63A5`);
|
|
@@ -91,7 +91,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
async \u589E\u52A0\u6216\u66FF\u6362\u8FDE\u63A5(id, ws) {
|
|
94
|
-
let log = (await this.log).extend("\u589E\u52A0\u6216\u66FF\u6362\u8FDE\u63A5")
|
|
94
|
+
let log = (await this.log).extend(id).extend("\u589E\u52A0\u6216\u66FF\u6362\u8FDE\u63A5");
|
|
95
95
|
if (this.\u8FDE\u63A5\u8868[id] === void 0) {
|
|
96
96
|
this.\u8FDE\u63A5\u8868[id] = {
|
|
97
97
|
ws,
|
|
@@ -122,7 +122,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
122
122
|
await log.info("\u53D1\u9001\u65E7\u8FDE\u63A5\u7F13\u5B58\u5B8C\u6210");
|
|
123
123
|
}
|
|
124
124
|
async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(id, \u6E05\u7406\u51FD\u6570) {
|
|
125
|
-
let log = (await this.log).extend("\u8BBE\u7F6E\u6E05\u7406\u51FD\u6570")
|
|
125
|
+
let log = (await this.log).extend(id).extend("\u8BBE\u7F6E\u6E05\u7406\u51FD\u6570");
|
|
126
126
|
if (this.\u8FDE\u63A5\u8868[id] === void 0) {
|
|
127
127
|
await log.error(`\u65E0\u6CD5\u627E\u5230\u8FDE\u63A5`);
|
|
128
128
|
return;
|
|
@@ -130,7 +130,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
130
130
|
this.\u8FDE\u63A5\u8868[id].\u6E05\u7406\u51FD\u6570 = \u6E05\u7406\u51FD\u6570;
|
|
131
131
|
}
|
|
132
132
|
async \u53D1\u9001\u4FE1\u606F_\u5185\u90E8(id, data) {
|
|
133
|
-
let log = (await this.log).extend("\u53D1\u9001\u4FE1\u606F(\u5185\u90E8)")
|
|
133
|
+
let log = (await this.log).extend(id).extend("\u53D1\u9001\u4FE1\u606F(\u5185\u90E8)");
|
|
134
134
|
while (this.\u8FDE\u63A5\u8868[id]?.\u6570\u636E\u53D1\u9001\u4E2D === true) {
|
|
135
135
|
await log.info("\u6570\u636E\u53D1\u9001\u4E2D, \u5C06\u9000\u907F.");
|
|
136
136
|
let \u9000\u907F\u65F6\u95F4 = 100;
|
|
@@ -161,7 +161,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
161
161
|
});
|
|
162
162
|
}
|
|
163
163
|
async \u53D1\u9001\u4FE1\u606F(id, data) {
|
|
164
|
-
let log = (await this.log).extend("\u53D1\u9001\u4FE1\u606F")
|
|
164
|
+
let log = (await this.log).extend(id).extend("\u53D1\u9001\u4FE1\u606F");
|
|
165
165
|
if (this.\u8FDE\u63A5\u8868[id]?.\u5DF2\u5B8C\u6210 === true) {
|
|
166
166
|
await log.error("\u8FDE\u63A5\u5DF2\u5B8C\u6210, \u65E0\u6CD5\u53D1\u9001\u6570\u636E.");
|
|
167
167
|
return;
|
|
@@ -214,7 +214,7 @@ var Global = new import_ts_global.GlobalService([
|
|
|
214
214
|
})
|
|
215
215
|
]);
|
|
216
216
|
|
|
217
|
-
// src/
|
|
217
|
+
// src/help/help.ts
|
|
218
218
|
function \u622A\u65AD\u5B57\u7B26\u4E32(\u5185\u5BB9) {
|
|
219
219
|
let \u6700\u5927\u65E5\u5FD7\u957F\u5EA6 = 1e3;
|
|
220
220
|
if (\u5185\u5BB9.length > \u6700\u5927\u65E5\u5FD7\u957F\u5EA6)
|
|
@@ -255,14 +255,15 @@ var \u670D\u52A1\u5668 = class {
|
|
|
255
255
|
}
|
|
256
256
|
async \u5904\u7406\u8BF7\u6C42(req, res) {
|
|
257
257
|
let \u8BF7\u6C42id = (0, import_short_uuid.default)().new();
|
|
258
|
-
let
|
|
258
|
+
let \u4E3Blog = (await this.log).extend(\u8BF7\u6C42id);
|
|
259
|
+
let log = \u4E3Blog.extend("\u63A7\u5236\u5668");
|
|
259
260
|
try {
|
|
260
261
|
let { path: \u8BF7\u6C42\u8DEF\u5F84, method } = req;
|
|
261
262
|
let \u8BF7\u6C42\u65B9\u6CD5 = method.toLowerCase();
|
|
262
263
|
await log.debug("\u6536\u5230\u8BF7\u6C42, \u8DEF\u5F84: %o, \u65B9\u6CD5: %o", \u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5);
|
|
263
264
|
let \u76EE\u6807\u63A5\u53E3 = this.\u63A5\u53E3\u4EEC.find((\u63A5\u53E3) => \u8BF7\u6C42\u65B9\u6CD5 === \u63A5\u53E3.\u83B7\u5F97\u65B9\u6CD5() && \u8BF7\u6C42\u8DEF\u5F84 === \u63A5\u53E3.\u83B7\u5F97\u8DEF\u5F84()) ?? null;
|
|
264
265
|
if (\u76EE\u6807\u63A5\u53E3 !== null) {
|
|
265
|
-
await this.\u5904\u7406\u63A5\u53E3\u903B\u8F91(req, res,
|
|
266
|
+
await this.\u5904\u7406\u63A5\u53E3\u903B\u8F91(req, res, \u76EE\u6807\u63A5\u53E3, { log: \u4E3Blog });
|
|
266
267
|
return;
|
|
267
268
|
}
|
|
268
269
|
let \u9759\u6001\u8D44\u6E90\u8DEF\u5F84 = this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84 ?? null;
|
|
@@ -303,11 +304,12 @@ var \u670D\u52A1\u5668 = class {
|
|
|
303
304
|
}
|
|
304
305
|
return \u547D\u4E2D;
|
|
305
306
|
}
|
|
306
|
-
async \u5904\u7406\u63A5\u53E3\u903B\u8F91(req, res,
|
|
307
|
+
async \u5904\u7406\u63A5\u53E3\u903B\u8F91(req, res, \u76EE\u6807\u63A5\u53E3, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570) {
|
|
308
|
+
let log = \u8BF7\u6C42\u9644\u52A0\u53C2\u6570.log.extend("\u5904\u7406\u63A5\u53E3\u903B\u8F91");
|
|
307
309
|
let \u63A5\u53E3\u903B\u8F91 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u903B\u8F91();
|
|
308
310
|
let \u7ED3\u679C\u8F6C\u6362\u5668 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u7ED3\u679C\u8F6C\u6362\u5668();
|
|
309
311
|
await log.debug("\u8C03\u7528\u63A5\u53E3\u903B\u8F91...");
|
|
310
|
-
let \u63A5\u53E3\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F91.\u8FD0\u884C(req, res, {},
|
|
312
|
+
let \u63A5\u53E3\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F91.\u8FD0\u884C(req, res, {}, \u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
|
|
311
313
|
await log.debug("\u63A5\u53E3\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
|
|
312
314
|
let \u6700\u7EC8\u7ED3\u679C = \u7ED3\u679C\u8F6C\u6362\u5668.\u5B9E\u73B0(\u63A5\u53E3\u7ED3\u679C);
|
|
313
315
|
await log.debug("\u8FD4\u56DE\u6570\u636E: %o", JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6700\u7EC8\u7ED3\u679C)));
|
|
@@ -316,7 +318,7 @@ var \u670D\u52A1\u5668 = class {
|
|
|
316
318
|
}
|
|
317
319
|
async \u521D\u59CB\u5316WebSocket(server) {
|
|
318
320
|
let wss = new import_ws.WebSocketServer({ server });
|
|
319
|
-
let logBase =
|
|
321
|
+
let logBase = await this.log;
|
|
320
322
|
wss.on("connection", async (ws, req) => {
|
|
321
323
|
let log = logBase.extend((0, import_short_uuid.default)().new()).extend("WebSocket");
|
|
322
324
|
await log.debug("\u6536\u5230 WebSocket \u8FDE\u63A5\u8BF7\u6C42: %o", req.url);
|
|
@@ -1,30 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import '@lsby/ts-log';
|
|
2
|
+
import 'node:http';
|
|
3
|
+
export { 服 as 服务器, 请 as 请求附加参数类型 } from '../interface-base-CFXGjV5S.cjs';
|
|
3
4
|
import 'zod';
|
|
4
|
-
import '../interface/interface-logic.cjs';
|
|
5
5
|
import '@lsby/ts-fp-data';
|
|
6
6
|
import 'express';
|
|
7
|
-
import '../
|
|
8
|
-
import '../interface/interface-result.cjs';
|
|
9
|
-
|
|
10
|
-
declare class 服务器 {
|
|
11
|
-
private 接口们;
|
|
12
|
-
private 端口;
|
|
13
|
-
private 静态资源路径?;
|
|
14
|
-
private 默认get文件路径?;
|
|
15
|
-
private log;
|
|
16
|
-
constructor(接口们: ____[], 端口: number, 静态资源路径?: string | undefined, 默认get文件路径?: string | undefined);
|
|
17
|
-
run(): Promise<{
|
|
18
|
-
ip: string[];
|
|
19
|
-
api: string[];
|
|
20
|
-
server: http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>;
|
|
21
|
-
}>;
|
|
22
|
-
private 处理请求;
|
|
23
|
-
private 处理静态资源;
|
|
24
|
-
private 处理接口逻辑;
|
|
25
|
-
private 初始化WebSocket;
|
|
26
|
-
private 关闭WebSocket连接;
|
|
27
|
-
private 获取本地地址;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export { 服务器 };
|
|
7
|
+
import '../help/help.cjs';
|
|
@@ -0,0 +1,89 @@
|
|
|
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/wrapper/common-wrapper.ts
|
|
21
|
+
var common_wrapper_exports = {};
|
|
22
|
+
__export(common_wrapper_exports, {
|
|
23
|
+
\u5E38\u7528\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5: () => \u5E38\u7528\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(common_wrapper_exports);
|
|
26
|
+
var import_zod = require("zod");
|
|
27
|
+
|
|
28
|
+
// src/interface/interface-base.ts
|
|
29
|
+
var \u63A5\u53E3 = class {
|
|
30
|
+
constructor(\u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5, \u63A5\u53E3\u903B\u8F91, \u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod, \u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod, \u7ED3\u679C\u8F6C\u6362\u5668) {
|
|
31
|
+
this.\u8BF7\u6C42\u8DEF\u5F84 = \u8BF7\u6C42\u8DEF\u5F84;
|
|
32
|
+
this.\u8BF7\u6C42\u65B9\u6CD5 = \u8BF7\u6C42\u65B9\u6CD5;
|
|
33
|
+
this.\u63A5\u53E3\u903B\u8F91 = \u63A5\u53E3\u903B\u8F91;
|
|
34
|
+
this.\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod = \u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod;
|
|
35
|
+
this.\u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod = \u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod;
|
|
36
|
+
this.\u7ED3\u679C\u8F6C\u6362\u5668 = \u7ED3\u679C\u8F6C\u6362\u5668;
|
|
37
|
+
}
|
|
38
|
+
\u83B7\u5F97\u8DEF\u5F84() {
|
|
39
|
+
return this.\u8BF7\u6C42\u8DEF\u5F84;
|
|
40
|
+
}
|
|
41
|
+
\u83B7\u5F97\u65B9\u6CD5() {
|
|
42
|
+
return this.\u8BF7\u6C42\u65B9\u6CD5;
|
|
43
|
+
}
|
|
44
|
+
\u83B7\u5F97\u903B\u8F91() {
|
|
45
|
+
return this.\u63A5\u53E3\u903B\u8F91;
|
|
46
|
+
}
|
|
47
|
+
\u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod() {
|
|
48
|
+
return this.\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod;
|
|
49
|
+
}
|
|
50
|
+
\u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod() {
|
|
51
|
+
return this.\u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod;
|
|
52
|
+
}
|
|
53
|
+
\u83B7\u5F97\u7ED3\u679C\u8F6C\u6362\u5668() {
|
|
54
|
+
return this.\u7ED3\u679C\u8F6C\u6362\u5668;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
// src/interface/interface-result.ts
|
|
59
|
+
var \u63A5\u53E3\u7ED3\u679C\u8F6C\u6362\u5668 = class {
|
|
60
|
+
};
|
|
61
|
+
var \u5E38\u7528\u5F62\u5F0F\u8F6C\u6362\u5668 = class extends \u63A5\u53E3\u7ED3\u679C\u8F6C\u6362\u5668 {
|
|
62
|
+
\u5B9E\u73B0(\u6570\u636E) {
|
|
63
|
+
switch (\u6570\u636E.getTag()) {
|
|
64
|
+
case "Left": {
|
|
65
|
+
return { status: "fail", data: \u6570\u636E.assertLeft().getLeft() };
|
|
66
|
+
}
|
|
67
|
+
case "Right": {
|
|
68
|
+
return { status: "success", data: \u6570\u636E.assertRight().getRight() };
|
|
69
|
+
}
|
|
70
|
+
default: {
|
|
71
|
+
throw new Error("\u610F\u5916\u7684\u6570\u636E\u6807\u8BB0");
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
// src/wrapper/common-wrapper.ts
|
|
78
|
+
var \u5E38\u7528\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5 = class extends \u63A5\u53E3 {
|
|
79
|
+
constructor(\u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5, \u63A5\u53E3\u903B\u8F91, \u903B\u8F91\u9519\u8BEF\u7C7B\u578BZod, \u903B\u8F91\u6B63\u786E\u7C7B\u578BZod) {
|
|
80
|
+
let \u63A5\u53E3\u9519\u8BEF\u8F93\u51FA\u5F62\u5F0F = import_zod.z.object({ status: import_zod.z.literal("fail"), data: \u903B\u8F91\u9519\u8BEF\u7C7B\u578BZod });
|
|
81
|
+
let \u63A5\u53E3\u6B63\u786E\u8F93\u51FA\u5F62\u5F0F = import_zod.z.object({ status: import_zod.z.literal("success"), data: \u903B\u8F91\u6B63\u786E\u7C7B\u578BZod });
|
|
82
|
+
let \u63A5\u53E3\u8F6C\u6362\u5668 = new \u5E38\u7528\u5F62\u5F0F\u8F6C\u6362\u5668();
|
|
83
|
+
super(\u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5, \u63A5\u53E3\u903B\u8F91, \u63A5\u53E3\u9519\u8BEF\u8F93\u51FA\u5F62\u5F0F, \u63A5\u53E3\u6B63\u786E\u8F93\u51FA\u5F62\u5F0F, \u63A5\u53E3\u8F6C\u6362\u5668);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
87
|
+
0 && (module.exports = {
|
|
88
|
+
\u5E38\u7528\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5
|
|
89
|
+
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { 接 as ______, a as ______$1, k as ____, b as __, 常 as _______, o as __________, p as __________$1 } from '../interface-base-CFXGjV5S.cjs';
|
|
3
|
+
import '@lsby/ts-fp-data';
|
|
4
|
+
import 'express';
|
|
5
|
+
import '../help/help.cjs';
|
|
6
|
+
import '@lsby/ts-log';
|
|
7
|
+
import 'node:http';
|
|
8
|
+
|
|
9
|
+
declare class 常用形式接口封装<路径类型 extends ______, 方法类型 extends ______$1, 逻辑类型 extends ____<any, Record<string, never>, z.infer<接口错误形式Zod>, z.infer<接口正确形式Zod>>, 接口错误形式Zod extends z.ZodTypeAny, 接口正确形式Zod extends z.ZodTypeAny> extends __<路径类型, 方法类型, 逻辑类型, z.ZodObject<{
|
|
10
|
+
status: z.ZodLiteral<'fail'>;
|
|
11
|
+
data: 接口错误形式Zod;
|
|
12
|
+
}>, z.ZodObject<{
|
|
13
|
+
status: z.ZodLiteral<'success'>;
|
|
14
|
+
data: 接口正确形式Zod;
|
|
15
|
+
}>, _______<__________<逻辑类型>, __________$1<逻辑类型>>> {
|
|
16
|
+
constructor(请求路径: 路径类型, 请求方法: 方法类型, 接口逻辑: 逻辑类型, 逻辑错误类型Zod: 接口错误形式Zod, 逻辑正确类型Zod: 接口正确形式Zod);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { 常用形式接口封装 };
|
|
@@ -0,0 +1,89 @@
|
|
|
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/wrapper/deferred-result-wrapper.ts
|
|
21
|
+
var deferred_result_wrapper_exports = {};
|
|
22
|
+
__export(deferred_result_wrapper_exports, {
|
|
23
|
+
\u5E38\u7528\u5EF6\u65F6\u76F4\u63A5\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5: () => \u5E38\u7528\u5EF6\u65F6\u76F4\u63A5\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(deferred_result_wrapper_exports);
|
|
26
|
+
var import_zod = require("zod");
|
|
27
|
+
|
|
28
|
+
// src/interface/interface-base.ts
|
|
29
|
+
var \u63A5\u53E3 = class {
|
|
30
|
+
constructor(\u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5, \u63A5\u53E3\u903B\u8F91, \u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod, \u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod, \u7ED3\u679C\u8F6C\u6362\u5668) {
|
|
31
|
+
this.\u8BF7\u6C42\u8DEF\u5F84 = \u8BF7\u6C42\u8DEF\u5F84;
|
|
32
|
+
this.\u8BF7\u6C42\u65B9\u6CD5 = \u8BF7\u6C42\u65B9\u6CD5;
|
|
33
|
+
this.\u63A5\u53E3\u903B\u8F91 = \u63A5\u53E3\u903B\u8F91;
|
|
34
|
+
this.\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod = \u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod;
|
|
35
|
+
this.\u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod = \u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod;
|
|
36
|
+
this.\u7ED3\u679C\u8F6C\u6362\u5668 = \u7ED3\u679C\u8F6C\u6362\u5668;
|
|
37
|
+
}
|
|
38
|
+
\u83B7\u5F97\u8DEF\u5F84() {
|
|
39
|
+
return this.\u8BF7\u6C42\u8DEF\u5F84;
|
|
40
|
+
}
|
|
41
|
+
\u83B7\u5F97\u65B9\u6CD5() {
|
|
42
|
+
return this.\u8BF7\u6C42\u65B9\u6CD5;
|
|
43
|
+
}
|
|
44
|
+
\u83B7\u5F97\u903B\u8F91() {
|
|
45
|
+
return this.\u63A5\u53E3\u903B\u8F91;
|
|
46
|
+
}
|
|
47
|
+
\u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod() {
|
|
48
|
+
return this.\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod;
|
|
49
|
+
}
|
|
50
|
+
\u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod() {
|
|
51
|
+
return this.\u63A5\u53E3\u6B63\u786E\u5F62\u5F0FZod;
|
|
52
|
+
}
|
|
53
|
+
\u83B7\u5F97\u7ED3\u679C\u8F6C\u6362\u5668() {
|
|
54
|
+
return this.\u7ED3\u679C\u8F6C\u6362\u5668;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
// src/interface/interface-result.ts
|
|
59
|
+
var \u63A5\u53E3\u7ED3\u679C\u8F6C\u6362\u5668 = class {
|
|
60
|
+
};
|
|
61
|
+
var \u5E38\u7528\u5EF6\u65F6\u76F4\u63A5\u5F62\u5F0F\u8F6C\u6362\u5668 = class extends \u63A5\u53E3\u7ED3\u679C\u8F6C\u6362\u5668 {
|
|
62
|
+
\u5B9E\u73B0(\u6570\u636E) {
|
|
63
|
+
switch (\u6570\u636E.getTag()) {
|
|
64
|
+
case "Left": {
|
|
65
|
+
return { status: "fail", data: \u6570\u636E.assertLeft().getLeft() };
|
|
66
|
+
}
|
|
67
|
+
case "Right": {
|
|
68
|
+
return \u6570\u636E.assertRight().getRight()();
|
|
69
|
+
}
|
|
70
|
+
default: {
|
|
71
|
+
throw new Error("\u610F\u5916\u7684\u6570\u636E\u6807\u8BB0");
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
// src/wrapper/deferred-result-wrapper.ts
|
|
78
|
+
var \u5E38\u7528\u5EF6\u65F6\u76F4\u63A5\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5 = class extends \u63A5\u53E3 {
|
|
79
|
+
constructor(\u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5, \u63A5\u53E3\u903B\u8F91, \u903B\u8F91\u9519\u8BEF\u7C7B\u578BZod, \u903B\u8F91\u6B63\u786E\u7C7B\u578BZod) {
|
|
80
|
+
let \u63A5\u53E3\u9519\u8BEF\u8F93\u51FA\u5F62\u5F0F = import_zod.z.object({ status: import_zod.z.literal("fail"), data: \u903B\u8F91\u9519\u8BEF\u7C7B\u578BZod });
|
|
81
|
+
let \u63A5\u53E3\u6B63\u786E\u8F93\u51FA\u5F62\u5F0F = \u903B\u8F91\u6B63\u786E\u7C7B\u578BZod;
|
|
82
|
+
let \u63A5\u53E3\u8F6C\u6362\u5668 = new \u5E38\u7528\u5EF6\u65F6\u76F4\u63A5\u5F62\u5F0F\u8F6C\u6362\u5668();
|
|
83
|
+
super(\u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5, \u63A5\u53E3\u903B\u8F91, \u63A5\u53E3\u9519\u8BEF\u8F93\u51FA\u5F62\u5F0F, \u63A5\u53E3\u6B63\u786E\u8F93\u51FA\u5F62\u5F0F, \u63A5\u53E3\u8F6C\u6362\u5668);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
87
|
+
0 && (module.exports = {
|
|
88
|
+
\u5E38\u7528\u5EF6\u65F6\u76F4\u63A5\u5F62\u5F0F\u63A5\u53E3\u5C01\u88C5
|
|
89
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { 接 as ______, a as ______$1, k as ____, b as __, t as ___________, o as __________, p as __________$1 } from '../interface-base-CFXGjV5S.cjs';
|
|
3
|
+
import '@lsby/ts-fp-data';
|
|
4
|
+
import 'express';
|
|
5
|
+
import '../help/help.cjs';
|
|
6
|
+
import '@lsby/ts-log';
|
|
7
|
+
import 'node:http';
|
|
8
|
+
|
|
9
|
+
declare class 常用延时直接形式接口封装<路径类型 extends ______, 方法类型 extends ______$1, 逻辑类型 extends ____<any, Record<string, never>, z.infer<接口错误形式Zod>, () => z.infer<接口正确形式Zod>>, 接口错误形式Zod extends z.ZodTypeAny, 接口正确形式Zod extends z.ZodTypeAny> extends __<路径类型, 方法类型, 逻辑类型, z.ZodObject<{
|
|
10
|
+
status: z.ZodLiteral<'fail'>;
|
|
11
|
+
data: 接口错误形式Zod;
|
|
12
|
+
}>, 接口正确形式Zod, ___________<boolean, __________<逻辑类型>, __________$1<逻辑类型>>> {
|
|
13
|
+
constructor(请求路径: 路径类型, 请求方法: 方法类型, 接口逻辑: 逻辑类型, 逻辑错误类型Zod: 接口错误形式Zod, 逻辑正确类型Zod: 接口正确形式Zod);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export { 常用延时直接形式接口封装 };
|
|
@@ -1,6 +1,139 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
// src/action/action.bak.ts
|
|
2
|
+
import { Either, Left, Right } from "@lsby/ts-fp-data";
|
|
3
|
+
var \u4E1A\u52A1\u884C\u4E3A = class _\u4E1A\u52A1\u884C\u4E3A {
|
|
4
|
+
// ================================= 静态 =================================
|
|
5
|
+
static \u901A\u8FC7\u5B9E\u73B0\u6784\u9020(\u5B9E\u73B0) {
|
|
6
|
+
return new class extends _\u4E1A\u52A1\u884C\u4E3A {
|
|
7
|
+
async \u4E1A\u52A1\u884C\u4E3A\u5B9E\u73B0(\u53C2\u6570) {
|
|
8
|
+
return \u5B9E\u73B0(\u53C2\u6570);
|
|
9
|
+
}
|
|
10
|
+
}();
|
|
11
|
+
}
|
|
12
|
+
static \u901A\u8FC7\u6B63\u786E\u503C\u6784\u9020(a) {
|
|
13
|
+
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async () => new Right(a));
|
|
14
|
+
}
|
|
15
|
+
static \u901A\u8FC7\u9519\u8BEF\u503C\u6784\u9020(a) {
|
|
16
|
+
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async () => new Left(a));
|
|
17
|
+
}
|
|
18
|
+
static \u6D41\u5F0F\u7EC4\u5408(a, b) {
|
|
19
|
+
return a.\u6D41\u5F0F\u7EC4\u5408(b);
|
|
20
|
+
}
|
|
21
|
+
static \u6DF7\u5408\u7EC4\u5408(a, b) {
|
|
22
|
+
return a.\u6DF7\u5408\u7EC4\u5408(b);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 对多个项混合组合
|
|
26
|
+
*/
|
|
27
|
+
static \u6DF7\u5408\u7EC4\u5408\u591A\u9879(arr) {
|
|
28
|
+
return arr.reduce((s, a) => s.\u6DF7\u5408\u7EC4\u5408(a));
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 同时运行多个行为, 并提供一个函数处理它们的结果
|
|
32
|
+
* 如果其中任何一个行为发生错误, 则最终行为输出第一个错误
|
|
33
|
+
* 处理函数的类型是: 所有行为的结果合并 => 泛型A
|
|
34
|
+
* 新行为的类型是:
|
|
35
|
+
* - 参数: 所有行为的参数合并
|
|
36
|
+
* - 错误: 所有行为的错误合并
|
|
37
|
+
* - 返回值: 泛型A
|
|
38
|
+
*/
|
|
39
|
+
static \u5E76\u884C\u7EC4\u5408(arr, f) {
|
|
40
|
+
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
41
|
+
let \u6240\u6709\u7ED3\u679C = await Promise.all(arr.map((a) => a.\u4E1A\u52A1\u884C\u4E3A\u5B9E\u73B0(\u53C2\u6570)));
|
|
42
|
+
let \u9519\u8BEF = \u6240\u6709\u7ED3\u679C.filter((a) => a.isLeft())[0] ?? null;
|
|
43
|
+
if (\u9519\u8BEF !== null)
|
|
44
|
+
return \u9519\u8BEF;
|
|
45
|
+
let \u6B63\u786E\u7ED3\u679C\u5408\u5E76 = \u6240\u6709\u7ED3\u679C.map((a) => a.assertRight().getRight()).reduce((s, a) => Object.assign(s, a), {});
|
|
46
|
+
return new Right(await f(\u6B63\u786E\u7ED3\u679C\u5408\u5E76));
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
// ================================= 设置 =================================
|
|
50
|
+
\u8BBE\u7F6E\u53C2\u6570(\u8BBE\u7F6E\u53C2\u6570) {
|
|
51
|
+
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
52
|
+
return await this.\u4E1A\u52A1\u884C\u4E3A\u5B9E\u73B0({ ...\u8BBE\u7F6E\u53C2\u6570, ...\u53C2\u6570 });
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
// ================================= 运行 =================================
|
|
56
|
+
/**
|
|
57
|
+
* 运行业务行为, 如果抛出错误, 则原封不动向上抛出
|
|
58
|
+
*/
|
|
59
|
+
async \u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A(\u53C2\u6570) {
|
|
60
|
+
return await this.\u4E1A\u52A1\u884C\u4E3A\u5B9E\u73B0(\u53C2\u6570);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* 运行业务行为, 如果抛出错误, 则将错误值强制转换为字符串, 并包装为Error抛出
|
|
64
|
+
*/
|
|
65
|
+
async \u8FD0\u884C\u4E1A\u52A1\u884C\u4E3A\u5E76\u5305\u88C5(\u53C2\u6570) {
|
|
66
|
+
try {
|
|
67
|
+
return await this.\u4E1A\u52A1\u884C\u4E3A\u5B9E\u73B0(\u53C2\u6570);
|
|
68
|
+
} catch (e) {
|
|
69
|
+
throw new Error(String(e));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// ================================= 组合 =================================
|
|
73
|
+
/**
|
|
74
|
+
* 将两个行为串接, 得到一个新行为, 新行为的类型是:
|
|
75
|
+
* - 参数: a行为的参数
|
|
76
|
+
* - 错误: a行为的错误+b行为的错误
|
|
77
|
+
* - 返回值: b行为的返回值
|
|
78
|
+
*/
|
|
79
|
+
\u6D41\u5F0F\u7EC4\u5408(b) {
|
|
80
|
+
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
81
|
+
let \u6211\u7684\u7ED3\u679C = await this.\u4E1A\u52A1\u884C\u4E3A\u5B9E\u73B0(\u53C2\u6570);
|
|
82
|
+
if (\u6211\u7684\u7ED3\u679C.isLeft())
|
|
83
|
+
return new Left(\u6211\u7684\u7ED3\u679C.assertLeft().getLeft());
|
|
84
|
+
return b.\u4E1A\u52A1\u884C\u4E3A\u5B9E\u73B0(\u6211\u7684\u7ED3\u679C.assertRight().getRight());
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* 将两个行为串接, 得到一个新的行为
|
|
89
|
+
* 相比流式组合, 本函数不要求串联位置参数匹配, 缺少的参数将在调用时补全
|
|
90
|
+
* 新行为的类型是:
|
|
91
|
+
* - 参数: a行为的参数+(b行为的参数-a行为的返回值)
|
|
92
|
+
* - 错误: a行为的错误+b行为的错误
|
|
93
|
+
* - 返回值: a行为的返回值+b行为的返回值
|
|
94
|
+
*/
|
|
95
|
+
\u6DF7\u5408\u7EC4\u5408(b) {
|
|
96
|
+
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
97
|
+
let \u6211\u7684\u7ED3\u679C = await this.\u4E1A\u52A1\u884C\u4E3A\u5B9E\u73B0(\u53C2\u6570);
|
|
98
|
+
if (\u6211\u7684\u7ED3\u679C.isLeft())
|
|
99
|
+
return new Left(\u6211\u7684\u7ED3\u679C.assertLeft().getLeft());
|
|
100
|
+
let \u5BF9\u65B9\u7ED3\u679C = await b.\u4E1A\u52A1\u884C\u4E3A\u5B9E\u73B0({ ...\u53C2\u6570, ...\u6211\u7684\u7ED3\u679C.assertRight().getRight() });
|
|
101
|
+
return \u5BF9\u65B9\u7ED3\u679C.map((a) => Object.assign(a, \u6211\u7684\u7ED3\u679C.assertRight().getRight()));
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
// ================================= 映射 =================================
|
|
105
|
+
\u6620\u5C04\u7ED3\u679C(f) {
|
|
106
|
+
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
107
|
+
let \u6211\u7684\u7ED3\u679C = await this.\u4E1A\u52A1\u884C\u4E3A\u5B9E\u73B0(\u53C2\u6570);
|
|
108
|
+
if (\u6211\u7684\u7ED3\u679C.isLeft())
|
|
109
|
+
return new Left(\u6211\u7684\u7ED3\u679C.assertLeft().getLeft());
|
|
110
|
+
return Either.pure(f(\u6211\u7684\u7ED3\u679C.assertRight().getRight()));
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
\u6620\u5C04\u9519\u8BEF(f) {
|
|
114
|
+
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
115
|
+
let \u6211\u7684\u7ED3\u679C = await this.\u4E1A\u52A1\u884C\u4E3A\u5B9E\u73B0(\u53C2\u6570);
|
|
116
|
+
if (\u6211\u7684\u7ED3\u679C.isLeft())
|
|
117
|
+
return new Left(f(\u6211\u7684\u7ED3\u679C.assertLeft().getLeft()));
|
|
118
|
+
return Either.pure(\u6211\u7684\u7ED3\u679C.assertRight().getRight());
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* 产生一个代数效应, 在效应中执行当前业务行为, 然后将其正确结果映射为新业务行为
|
|
123
|
+
* 新行为的类型是:
|
|
124
|
+
* - 参数: 必须是已有行为的参数的扩展, 因为调用时必须先调用已有行为
|
|
125
|
+
* - 错误: 已有行为的错误+自定义错误, 因为调用已有行为时可能出错
|
|
126
|
+
* - 返回值: 自定义数据
|
|
127
|
+
*/
|
|
128
|
+
\u7ED1\u5B9A(f) {
|
|
129
|
+
return _\u4E1A\u52A1\u884C\u4E3A.\u901A\u8FC7\u5B9E\u73B0\u6784\u9020(async (\u53C2\u6570) => {
|
|
130
|
+
let \u6211\u7684\u7ED3\u679C = await this.\u4E1A\u52A1\u884C\u4E3A\u5B9E\u73B0(\u53C2\u6570);
|
|
131
|
+
if (\u6211\u7684\u7ED3\u679C.isLeft())
|
|
132
|
+
return new Left(\u6211\u7684\u7ED3\u679C.assertLeft().getLeft());
|
|
133
|
+
return f(\u6211\u7684\u7ED3\u679C.assertRight().getRight()).\u4E1A\u52A1\u884C\u4E3A\u5B9E\u73B0(\u53C2\u6570);
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
};
|
|
4
137
|
export {
|
|
5
138
|
\u4E1A\u52A1\u884C\u4E3A
|
|
6
139
|
};
|