@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
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { Task, Either } from '@lsby/ts-fp-data';
|
|
3
|
+
import { Request, Response } from 'express';
|
|
4
|
+
import { 联合转元组 as _____ } from './help/help.cjs';
|
|
5
|
+
import { Log } from '@lsby/ts-log';
|
|
6
|
+
import * as http from 'node:http';
|
|
7
|
+
|
|
8
|
+
type 请求附加参数类型 = {
|
|
9
|
+
log: Log;
|
|
10
|
+
};
|
|
11
|
+
declare class 服务器 {
|
|
12
|
+
private 接口们;
|
|
13
|
+
private 端口;
|
|
14
|
+
private 静态资源路径?;
|
|
15
|
+
private 默认get文件路径?;
|
|
16
|
+
private log;
|
|
17
|
+
constructor(接口们: 任意接口[], 端口: number, 静态资源路径?: string | undefined, 默认get文件路径?: string | undefined);
|
|
18
|
+
run(): Promise<{
|
|
19
|
+
ip: string[];
|
|
20
|
+
api: string[];
|
|
21
|
+
server: http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>;
|
|
22
|
+
}>;
|
|
23
|
+
private 处理请求;
|
|
24
|
+
private 处理静态资源;
|
|
25
|
+
private 处理接口逻辑;
|
|
26
|
+
private 初始化WebSocket;
|
|
27
|
+
private 关闭WebSocket连接;
|
|
28
|
+
private 获取本地地址;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* 类似express中的中间件, 做一些前置过程, 例如解析参数, 解析文件等.
|
|
33
|
+
*
|
|
34
|
+
* 可以被注入在"接口逻辑"中, 为其提供前置数据.
|
|
35
|
+
*/
|
|
36
|
+
declare class 插件<Obj extends z.AnyZodObject> {
|
|
37
|
+
private 类型;
|
|
38
|
+
private 实现;
|
|
39
|
+
protected readonly __类型保持符号?: Obj;
|
|
40
|
+
constructor(类型: Obj, 实现: (req: Request, res: Response, 附加参数: 请求附加参数类型) => Promise<z.infer<Obj>>);
|
|
41
|
+
获得类型(): Obj;
|
|
42
|
+
运行(req: Request, res: Response, 附加参数: 请求附加参数类型): Promise<z.infer<Obj>>;
|
|
43
|
+
}
|
|
44
|
+
type 任意插件 = 插件<any>;
|
|
45
|
+
type 包装插件项<A> = Task<A>;
|
|
46
|
+
type 插件项类型 = 包装插件项<插件<z.AnyZodObject>>;
|
|
47
|
+
type 取Task插件内部类型<A> = A extends Task<插件<infer x>> ? x : never;
|
|
48
|
+
type 取Task插件类型<A> = A extends Task<infer x> ? x : never;
|
|
49
|
+
type 取插件内部ts类型<A> = A extends 插件<infer x> ? z.infer<x> : never;
|
|
50
|
+
type 合并插件结果<Arr extends Array<插件项类型>> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x extends infer 插件项 ? xs extends Array<插件项类型> ? z.infer<取Task插件内部类型<插件项>> & 合并插件结果<xs> : {} : {} : {};
|
|
51
|
+
|
|
52
|
+
type 接口逻辑错误类型 = string | never;
|
|
53
|
+
type 接口逻辑正确类型 = Record<string, any>;
|
|
54
|
+
type 接口逻辑附加参数类型 = Record<string, any>;
|
|
55
|
+
/**
|
|
56
|
+
* # 接口逻辑的基础抽象类
|
|
57
|
+
*
|
|
58
|
+
* - 该类表示一个接口的逻辑执行过程, 包括插件的运行, 结果的合并以及业务逻辑的实际执行.
|
|
59
|
+
* - 插件提供预处理功能, 例如参数解析等, 它通过解析express的上下文, 获得结果并提供给实现.
|
|
60
|
+
* - 实现函数负责业务逻辑的主要操作, 例如数据库查询等, 它接收插件的处理结果, 并返回计算结果(用Either表示).
|
|
61
|
+
* - 运行时除了获得express上下文外, 还可以接收自定义参数, 称为`逻辑附加参数`.
|
|
62
|
+
* - 每个接口逻辑实例可以通过一些方法与其他接口逻辑合并, 形成一个复杂的流程.
|
|
63
|
+
*
|
|
64
|
+
* ## 构造:
|
|
65
|
+
*
|
|
66
|
+
* - 可以通过继承该抽象类, 并实现抽象函数来使用.
|
|
67
|
+
* - 也可以通过静态方法`构造`来直接进行构造.
|
|
68
|
+
*
|
|
69
|
+
* ## 组合
|
|
70
|
+
*
|
|
71
|
+
* 通过组合, 可以将简单的逻辑模块化, 并按需构建复杂的接口处理流程.
|
|
72
|
+
*
|
|
73
|
+
* ### 混合
|
|
74
|
+
*
|
|
75
|
+
* - 该类提供了`混合`方法, 用于将多个接口逻辑实例合成一个复合接口逻辑.
|
|
76
|
+
* - 组合的接口逻辑会按顺序依次被调用.
|
|
77
|
+
* - 如果某接口逻辑返回左值, 则整个结构将立即返回该左值.
|
|
78
|
+
* - 否则, 将右值内容注入上下文, 允许之后的接口逻辑通过`逻辑附加参数`访问它.
|
|
79
|
+
* - 最终将返回所有接口的结果的与.
|
|
80
|
+
* - 这类似于monad的do结构, 在该结构中, 每个运行结果都会被注入到全局上下文并消除monad包装, 而语句可以使用上下文的值.
|
|
81
|
+
*
|
|
82
|
+
* ### 其他组合方法用到再写
|
|
83
|
+
*/
|
|
84
|
+
declare abstract class 接口逻辑<插件类型 extends 插件项类型[], 逻辑附加参数类型 extends 接口逻辑附加参数类型, 错误类型 extends 接口逻辑错误类型, 返回类型 extends 接口逻辑正确类型> {
|
|
85
|
+
static 空逻辑(): 接口逻辑<[], {}, never, {}>;
|
|
86
|
+
static 构造<插件类型 extends 插件项类型[], 逻辑附加参数类型 extends 接口逻辑附加参数类型, 错误类型 extends 接口逻辑错误类型, 返回类型 extends 接口逻辑正确类型>(插件们: [...插件类型], 实现: (参数: 合并插件结果<插件类型>, 逻辑附加参数: 逻辑附加参数类型, 请求附加参数: 请求附加参数类型) => Promise<Either<错误类型, 返回类型>>): 接口逻辑<插件类型, 逻辑附加参数类型, 错误类型, 返回类型>;
|
|
87
|
+
protected readonly __类型保持符号?: [插件类型, 逻辑附加参数类型, 错误类型, 返回类型];
|
|
88
|
+
abstract 获得插件们(): [...插件类型];
|
|
89
|
+
abstract 实现(参数: 合并插件结果<插件类型>, 逻辑附加参数: 逻辑附加参数类型, 请求附加参数: 请求附加参数类型): Promise<Either<错误类型, 返回类型>>;
|
|
90
|
+
运行(req: Request, res: Response, 传入的逻辑附加参数: 逻辑附加参数类型, 传入的插件附加参数: 请求附加参数类型): Promise<Either<错误类型, 返回类型>>;
|
|
91
|
+
混合<输入的插件类型 extends 插件项类型[], 输入的错误类型 extends 接口逻辑错误类型, 输入的返回类型 extends 接口逻辑正确类型>(输入: 接口逻辑<输入的插件类型, 返回类型, 输入的错误类型, 输入的返回类型>): 接口逻辑<[
|
|
92
|
+
...插件类型,
|
|
93
|
+
...输入的插件类型
|
|
94
|
+
], 逻辑附加参数类型, 错误类型 | 输入的错误类型, 返回类型 & 输入的返回类型>;
|
|
95
|
+
}
|
|
96
|
+
type 任意接口逻辑 = 接口逻辑<any, any, any, any>;
|
|
97
|
+
type 可调用接口逻辑 = 接口逻辑<any, Record<string, never>, any, any>;
|
|
98
|
+
type 获得接口逻辑插件类型<A> = A extends 接口逻辑<infer X, any, any, any> ? X : never;
|
|
99
|
+
type 获得接口逻辑附加参数类型<A> = A extends 接口逻辑<any, infer X, any, any> ? X : never;
|
|
100
|
+
type 获得接口逻辑错误类型<A> = A extends 接口逻辑<any, any, infer X, any> ? X : never;
|
|
101
|
+
type 获得接口逻辑正确类型<A> = A extends 接口逻辑<any, any, any, infer X> ? X : never;
|
|
102
|
+
type 计算接口逻辑错误结果<接口逻辑> = _____<获得接口逻辑错误类型<接口逻辑>>;
|
|
103
|
+
type 计算接口逻辑正确结果<接口逻辑> = {
|
|
104
|
+
[k in keyof 获得接口逻辑正确类型<接口逻辑>]: 获得接口逻辑正确类型<接口逻辑>[k];
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* 描述接口逻辑返回的数据将以何种形式返回给前端.
|
|
109
|
+
*/
|
|
110
|
+
declare abstract class 接口结果转换器<实现错误类型 extends 接口逻辑错误类型, 实现正确类型 extends 接口逻辑正确类型, 接口错误形式, 接口正确形式> {
|
|
111
|
+
protected readonly __类型保持符号?: [实现错误类型, 实现正确类型, 接口错误形式, 接口正确形式];
|
|
112
|
+
abstract 实现(数据: Either<实现错误类型, 实现正确类型>): 接口错误形式 | 接口正确形式;
|
|
113
|
+
}
|
|
114
|
+
type 任意接口结果转换器 = 接口结果转换器<any, any, any, any>;
|
|
115
|
+
declare class 常用形式转换器<实现错误类型 extends 接口逻辑错误类型, 实现正确类型 extends 接口逻辑正确类型> extends 接口结果转换器<实现错误类型, 实现正确类型, {
|
|
116
|
+
status: 'fail';
|
|
117
|
+
data: 实现错误类型;
|
|
118
|
+
}, {
|
|
119
|
+
status: 'success';
|
|
120
|
+
data: 实现正确类型;
|
|
121
|
+
}> {
|
|
122
|
+
实现(数据: Either<实现错误类型, 实现正确类型>): {
|
|
123
|
+
status: 'fail';
|
|
124
|
+
data: 实现错误类型;
|
|
125
|
+
} | {
|
|
126
|
+
status: 'success';
|
|
127
|
+
data: 实现正确类型;
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
declare class 常用延时直接形式转换器<实现最终返回类型, 实现错误类型 extends 接口逻辑错误类型, 实现正确类型 extends () => 实现最终返回类型> extends 接口结果转换器<实现错误类型, 实现正确类型, {
|
|
131
|
+
status: 'fail';
|
|
132
|
+
data: 实现错误类型;
|
|
133
|
+
}, 实现最终返回类型> {
|
|
134
|
+
实现(数据: Either<实现错误类型, 实现正确类型>): {
|
|
135
|
+
status: 'fail';
|
|
136
|
+
data: 实现错误类型;
|
|
137
|
+
} | 实现最终返回类型;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
type 接口路径类型 = string;
|
|
141
|
+
type 接口方法类型 = 'get' | 'post';
|
|
142
|
+
/**
|
|
143
|
+
* 接口的描述.
|
|
144
|
+
*/
|
|
145
|
+
declare class 接口<路径类型 extends 接口路径类型, 方法类型 extends 接口方法类型, 逻辑类型 extends 可调用接口逻辑, 接口错误形式Zod extends z.ZodTypeAny, 接口正确形式Zod extends z.ZodTypeAny, 接口结果转换器类型 extends 接口结果转换器<获得接口逻辑错误类型<逻辑类型>, 获得接口逻辑正确类型<逻辑类型>, z.infer<接口错误形式Zod>, z.infer<接口正确形式Zod>>> {
|
|
146
|
+
private 请求路径;
|
|
147
|
+
private 请求方法;
|
|
148
|
+
private 接口逻辑;
|
|
149
|
+
private 接口错误形式Zod;
|
|
150
|
+
private 接口正确形式Zod;
|
|
151
|
+
private 结果转换器;
|
|
152
|
+
protected readonly __类型保持符号?: [
|
|
153
|
+
路径类型,
|
|
154
|
+
方法类型,
|
|
155
|
+
逻辑类型,
|
|
156
|
+
接口错误形式Zod,
|
|
157
|
+
接口正确形式Zod,
|
|
158
|
+
接口结果转换器类型
|
|
159
|
+
];
|
|
160
|
+
constructor(请求路径: 路径类型, 请求方法: 方法类型, 接口逻辑: 逻辑类型, 接口错误形式Zod: 接口错误形式Zod, 接口正确形式Zod: 接口正确形式Zod, 结果转换器: 接口结果转换器类型);
|
|
161
|
+
获得路径(): 路径类型;
|
|
162
|
+
获得方法(): 方法类型;
|
|
163
|
+
获得逻辑(): 逻辑类型;
|
|
164
|
+
获得接口错误形式Zod(): 接口错误形式Zod;
|
|
165
|
+
获得接口正确形式Zod(): 接口正确形式Zod;
|
|
166
|
+
获得结果转换器(): 接口结果转换器类型;
|
|
167
|
+
}
|
|
168
|
+
type 任意接口 = 接口<any, any, any, any, any, any>;
|
|
169
|
+
type 获得接口路径类型<A> = A extends 接口<infer X, any, any, any, any, any> ? X : never;
|
|
170
|
+
type 获得接口方法类型<A> = A extends 接口<any, infer X, any, any, any, any> ? X : never;
|
|
171
|
+
type 获得接口逻辑类型<A> = A extends 接口<any, any, infer X, any, any, any> ? X : never;
|
|
172
|
+
type 获得接口错误形式<A> = A extends 接口<any, any, any, infer X, any, any> ? z.infer<X> : never;
|
|
173
|
+
type 获得接口正确形式<A> = A extends 接口<any, any, any, any, infer X, any> ? z.infer<X> : never;
|
|
174
|
+
type 获得接口结果转换器类型<A> = A extends 接口<any, any, any, any, any, infer X> ? X : never;
|
|
175
|
+
|
|
176
|
+
export { type 接口方法类型 as a, 接口 as b, type 获得接口方法类型 as c, type 获得接口逻辑类型 as d, type 获得接口错误形式 as e, type 获得接口正确形式 as f, type 获得接口结果转换器类型 as g, type 接口逻辑错误类型 as h, type 接口逻辑正确类型 as i, type 接口逻辑附加参数类型 as j, 接口逻辑 as k, type 任意接口逻辑 as l, type 获得接口逻辑插件类型 as m, type 获得接口逻辑附加参数类型 as n, type 获得接口逻辑错误类型 as o, type 获得接口逻辑正确类型 as p, type 计算接口逻辑正确结果 as q, 接口结果转换器 as r, type 任意接口结果转换器 as s, 常用延时直接形式转换器 as t, type 任意插件 as u, type 插件项类型 as v, type 取Task插件类型 as w, type 取插件内部ts类型 as x, type 任意接口 as 任, type 包装插件项 as 包, type 取Task插件内部类型 as 取, type 可调用接口逻辑 as 可, type 合并插件结果 as 合, 常用形式转换器 as 常, type 接口路径类型 as 接, 插件 as 插, 服务器 as 服, type 获得接口路径类型 as 获, type 计算接口逻辑错误结果 as 计, type 请求附加参数类型 as 请 };
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { 插 as __ } 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 let zod类型表示: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
7
10
|
declare class 中文路径支持插件 extends __<typeof zod类型表示> {
|
|
@@ -30,10 +30,10 @@ var import_ts_log = require("@lsby/ts-log");
|
|
|
30
30
|
|
|
31
31
|
// src/global/web-socket-management.ts
|
|
32
32
|
var WebSocket\u7BA1\u7406\u5668 = class {
|
|
33
|
-
log = Global.getItem("log").then((a) => a.extend("WebSocket\u7BA1\u7406\u5668"));
|
|
33
|
+
log = Global.getItem("log").then((a) => a.extend("@lsby:net-core").extend("WebSocket\u7BA1\u7406\u5668"));
|
|
34
34
|
\u8FDE\u63A5\u8868 = {};
|
|
35
35
|
async \u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5(id, code, \u8BF4\u660E) {
|
|
36
|
-
let log = (await this.log).extend("\u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5")
|
|
36
|
+
let log = (await this.log).extend(id).extend("\u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5");
|
|
37
37
|
try {
|
|
38
38
|
await this.\u8FDE\u63A5\u8868[id]?.\u6E05\u7406\u51FD\u6570?.();
|
|
39
39
|
} catch (err) {
|
|
@@ -43,7 +43,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
43
43
|
delete this.\u8FDE\u63A5\u8868[id];
|
|
44
44
|
}
|
|
45
45
|
async \u9500\u6BC1\u5224\u5B9A(id) {
|
|
46
|
-
let log = (await this.log).extend("\u9500\u6BC1\u5224\u5B9A")
|
|
46
|
+
let log = (await this.log).extend(id).extend("\u9500\u6BC1\u5224\u5B9A");
|
|
47
47
|
let \u8FDE\u63A5 = this.\u8FDE\u63A5\u8868[id];
|
|
48
48
|
if (\u8FDE\u63A5 === void 0) {
|
|
49
49
|
await log.error(`\u65E0\u6CD5\u627E\u5230\u8FDE\u63A5`);
|
|
@@ -76,7 +76,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
async \u589E\u52A0\u6216\u66FF\u6362\u8FDE\u63A5(id, ws) {
|
|
79
|
-
let log = (await this.log).extend("\u589E\u52A0\u6216\u66FF\u6362\u8FDE\u63A5")
|
|
79
|
+
let log = (await this.log).extend(id).extend("\u589E\u52A0\u6216\u66FF\u6362\u8FDE\u63A5");
|
|
80
80
|
if (this.\u8FDE\u63A5\u8868[id] === void 0) {
|
|
81
81
|
this.\u8FDE\u63A5\u8868[id] = {
|
|
82
82
|
ws,
|
|
@@ -107,7 +107,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
107
107
|
await log.info("\u53D1\u9001\u65E7\u8FDE\u63A5\u7F13\u5B58\u5B8C\u6210");
|
|
108
108
|
}
|
|
109
109
|
async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(id, \u6E05\u7406\u51FD\u6570) {
|
|
110
|
-
let log = (await this.log).extend("\u8BBE\u7F6E\u6E05\u7406\u51FD\u6570")
|
|
110
|
+
let log = (await this.log).extend(id).extend("\u8BBE\u7F6E\u6E05\u7406\u51FD\u6570");
|
|
111
111
|
if (this.\u8FDE\u63A5\u8868[id] === void 0) {
|
|
112
112
|
await log.error(`\u65E0\u6CD5\u627E\u5230\u8FDE\u63A5`);
|
|
113
113
|
return;
|
|
@@ -115,7 +115,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
115
115
|
this.\u8FDE\u63A5\u8868[id].\u6E05\u7406\u51FD\u6570 = \u6E05\u7406\u51FD\u6570;
|
|
116
116
|
}
|
|
117
117
|
async \u53D1\u9001\u4FE1\u606F_\u5185\u90E8(id, data) {
|
|
118
|
-
let log = (await this.log).extend("\u53D1\u9001\u4FE1\u606F(\u5185\u90E8)")
|
|
118
|
+
let log = (await this.log).extend(id).extend("\u53D1\u9001\u4FE1\u606F(\u5185\u90E8)");
|
|
119
119
|
while (this.\u8FDE\u63A5\u8868[id]?.\u6570\u636E\u53D1\u9001\u4E2D === true) {
|
|
120
120
|
await log.info("\u6570\u636E\u53D1\u9001\u4E2D, \u5C06\u9000\u907F.");
|
|
121
121
|
let \u9000\u907F\u65F6\u95F4 = 100;
|
|
@@ -146,7 +146,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
146
146
|
});
|
|
147
147
|
}
|
|
148
148
|
async \u53D1\u9001\u4FE1\u606F(id, data) {
|
|
149
|
-
let log = (await this.log).extend("\u53D1\u9001\u4FE1\u606F")
|
|
149
|
+
let log = (await this.log).extend(id).extend("\u53D1\u9001\u4FE1\u606F");
|
|
150
150
|
if (this.\u8FDE\u63A5\u8868[id]?.\u5DF2\u5B8C\u6210 === true) {
|
|
151
151
|
await log.error("\u8FDE\u63A5\u5DF2\u5B8C\u6210, \u65E0\u6CD5\u53D1\u9001\u6570\u636E.");
|
|
152
152
|
return;
|
|
@@ -218,7 +218,7 @@ var \u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
218
218
|
log = Global.getItem("log");
|
|
219
219
|
constructor(t, data) {
|
|
220
220
|
super(t, async (_res, _req, \u9644\u52A0\u53C2\u6570) => {
|
|
221
|
-
let log =
|
|
221
|
+
let log = \u9644\u52A0\u53C2\u6570.log.extend("\u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6");
|
|
222
222
|
await log.debug("\u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6\u8FD0\u884C, \u7ED3\u679C: %o", data);
|
|
223
223
|
return data;
|
|
224
224
|
});
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { 插 as __ } 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 自定义数据插件<Data extends z.AnyZodObject> extends __<Data> {
|
|
7
10
|
private log;
|
|
@@ -42,10 +42,10 @@ var import_ts_log = require("@lsby/ts-log");
|
|
|
42
42
|
|
|
43
43
|
// src/global/web-socket-management.ts
|
|
44
44
|
var WebSocket\u7BA1\u7406\u5668 = class {
|
|
45
|
-
log = Global.getItem("log").then((a) => a.extend("WebSocket\u7BA1\u7406\u5668"));
|
|
45
|
+
log = Global.getItem("log").then((a) => a.extend("@lsby:net-core").extend("WebSocket\u7BA1\u7406\u5668"));
|
|
46
46
|
\u8FDE\u63A5\u8868 = {};
|
|
47
47
|
async \u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5(id, code, \u8BF4\u660E) {
|
|
48
|
-
let log = (await this.log).extend("\u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5")
|
|
48
|
+
let log = (await this.log).extend(id).extend("\u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5");
|
|
49
49
|
try {
|
|
50
50
|
await this.\u8FDE\u63A5\u8868[id]?.\u6E05\u7406\u51FD\u6570?.();
|
|
51
51
|
} catch (err) {
|
|
@@ -55,7 +55,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
55
55
|
delete this.\u8FDE\u63A5\u8868[id];
|
|
56
56
|
}
|
|
57
57
|
async \u9500\u6BC1\u5224\u5B9A(id) {
|
|
58
|
-
let log = (await this.log).extend("\u9500\u6BC1\u5224\u5B9A")
|
|
58
|
+
let log = (await this.log).extend(id).extend("\u9500\u6BC1\u5224\u5B9A");
|
|
59
59
|
let \u8FDE\u63A5 = this.\u8FDE\u63A5\u8868[id];
|
|
60
60
|
if (\u8FDE\u63A5 === void 0) {
|
|
61
61
|
await log.error(`\u65E0\u6CD5\u627E\u5230\u8FDE\u63A5`);
|
|
@@ -88,7 +88,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
async \u589E\u52A0\u6216\u66FF\u6362\u8FDE\u63A5(id, ws) {
|
|
91
|
-
let log = (await this.log).extend("\u589E\u52A0\u6216\u66FF\u6362\u8FDE\u63A5")
|
|
91
|
+
let log = (await this.log).extend(id).extend("\u589E\u52A0\u6216\u66FF\u6362\u8FDE\u63A5");
|
|
92
92
|
if (this.\u8FDE\u63A5\u8868[id] === void 0) {
|
|
93
93
|
this.\u8FDE\u63A5\u8868[id] = {
|
|
94
94
|
ws,
|
|
@@ -119,7 +119,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
119
119
|
await log.info("\u53D1\u9001\u65E7\u8FDE\u63A5\u7F13\u5B58\u5B8C\u6210");
|
|
120
120
|
}
|
|
121
121
|
async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(id, \u6E05\u7406\u51FD\u6570) {
|
|
122
|
-
let log = (await this.log).extend("\u8BBE\u7F6E\u6E05\u7406\u51FD\u6570")
|
|
122
|
+
let log = (await this.log).extend(id).extend("\u8BBE\u7F6E\u6E05\u7406\u51FD\u6570");
|
|
123
123
|
if (this.\u8FDE\u63A5\u8868[id] === void 0) {
|
|
124
124
|
await log.error(`\u65E0\u6CD5\u627E\u5230\u8FDE\u63A5`);
|
|
125
125
|
return;
|
|
@@ -127,7 +127,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
127
127
|
this.\u8FDE\u63A5\u8868[id].\u6E05\u7406\u51FD\u6570 = \u6E05\u7406\u51FD\u6570;
|
|
128
128
|
}
|
|
129
129
|
async \u53D1\u9001\u4FE1\u606F_\u5185\u90E8(id, data) {
|
|
130
|
-
let log = (await this.log).extend("\u53D1\u9001\u4FE1\u606F(\u5185\u90E8)")
|
|
130
|
+
let log = (await this.log).extend(id).extend("\u53D1\u9001\u4FE1\u606F(\u5185\u90E8)");
|
|
131
131
|
while (this.\u8FDE\u63A5\u8868[id]?.\u6570\u636E\u53D1\u9001\u4E2D === true) {
|
|
132
132
|
await log.info("\u6570\u636E\u53D1\u9001\u4E2D, \u5C06\u9000\u907F.");
|
|
133
133
|
let \u9000\u907F\u65F6\u95F4 = 100;
|
|
@@ -158,7 +158,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
158
158
|
});
|
|
159
159
|
}
|
|
160
160
|
async \u53D1\u9001\u4FE1\u606F(id, data) {
|
|
161
|
-
let log = (await this.log).extend("\u53D1\u9001\u4FE1\u606F")
|
|
161
|
+
let log = (await this.log).extend(id).extend("\u53D1\u9001\u4FE1\u606F");
|
|
162
162
|
if (this.\u8FDE\u63A5\u8868[id]?.\u5DF2\u5B8C\u6210 === true) {
|
|
163
163
|
await log.error("\u8FDE\u63A5\u5DF2\u5B8C\u6210, \u65E0\u6CD5\u53D1\u9001\u6570\u636E.");
|
|
164
164
|
return;
|
|
@@ -211,7 +211,7 @@ var Global = new import_ts_global.GlobalService([
|
|
|
211
211
|
})
|
|
212
212
|
]);
|
|
213
213
|
|
|
214
|
-
// src/
|
|
214
|
+
// src/help/help.ts
|
|
215
215
|
function \u622A\u65AD\u5B57\u7B26\u4E32(\u5185\u5BB9) {
|
|
216
216
|
let \u6700\u5927\u65E5\u5FD7\u957F\u5EA6 = 1e3;
|
|
217
217
|
if (\u5185\u5BB9.length > \u6700\u5927\u65E5\u5FD7\u957F\u5EA6)
|
|
@@ -253,7 +253,7 @@ var JSON\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
253
253
|
log = Global.getItem("log");
|
|
254
254
|
constructor(t, opt) {
|
|
255
255
|
super(t, async (req, res, \u9644\u52A0\u53C2\u6570) => {
|
|
256
|
-
let log =
|
|
256
|
+
let log = \u9644\u52A0\u53C2\u6570.log.extend("JSON\u89E3\u6790\u63D2\u4EF6");
|
|
257
257
|
await new Promise(
|
|
258
258
|
(pRes, _rej) => import_express.default.json(opt)(req, res, () => {
|
|
259
259
|
pRes(null);
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
2
|
import { AnyZodObject, z } from 'zod';
|
|
3
|
-
import {
|
|
3
|
+
import { 插 as __, 包 as _____, v as _____$1, 取 as _Task______, m 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 JSON解析插件<Result extends AnyZodObject> extends __<Result> {
|
|
7
10
|
private log;
|
|
@@ -10,5 +13,6 @@ declare class JSON解析插件<Result extends AnyZodObject> extends __<Result> {
|
|
|
10
13
|
type 任意JSON解析插件 = JSON解析插件<any>;
|
|
11
14
|
type 任意JSON解析插件项 = _____<任意JSON解析插件>;
|
|
12
15
|
type 合并JSON插件结果<Arr extends Array<_____$1>> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x extends infer 插件项 ? xs extends Array<_____$1> ? 插件项 extends 任意JSON解析插件项 ? z.infer<_Task______<插件项>> & 合并JSON插件结果<xs> : 合并JSON插件结果<xs> : {} : {} : {};
|
|
16
|
+
type 计算接口逻辑JSON参数<接口逻辑> = 合并JSON插件结果<__________<接口逻辑>>;
|
|
13
17
|
|
|
14
|
-
export { JSON解析插件, type 任意JSON解析插件, type 任意JSON解析插件项, type 合并JSON
|
|
18
|
+
export { JSON解析插件, type 任意JSON解析插件, type 任意JSON解析插件项, type 合并JSON插件结果, type 计算接口逻辑JSON参数 };
|
|
@@ -25,181 +25,6 @@ __export(log_headers_exports, {
|
|
|
25
25
|
module.exports = __toCommonJS(log_headers_exports);
|
|
26
26
|
var import_zod = require("zod");
|
|
27
27
|
|
|
28
|
-
// src/global/global.ts
|
|
29
|
-
var import_ts_global = require("@lsby/ts-global");
|
|
30
|
-
var import_ts_log = require("@lsby/ts-log");
|
|
31
|
-
|
|
32
|
-
// src/global/web-socket-management.ts
|
|
33
|
-
var WebSocket\u7BA1\u7406\u5668 = class {
|
|
34
|
-
log = Global.getItem("log").then((a) => a.extend("WebSocket\u7BA1\u7406\u5668"));
|
|
35
|
-
\u8FDE\u63A5\u8868 = {};
|
|
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").extend(id);
|
|
38
|
-
try {
|
|
39
|
-
await this.\u8FDE\u63A5\u8868[id]?.\u6E05\u7406\u51FD\u6570?.();
|
|
40
|
-
} catch (err) {
|
|
41
|
-
await log.error(`\u6267\u884C\u6E05\u7406\u51FD\u6570\u5931\u8D25: %o.`, String(err));
|
|
42
|
-
}
|
|
43
|
-
this.\u8FDE\u63A5\u8868[id]?.ws?.close(code, \u8BF4\u660E);
|
|
44
|
-
delete this.\u8FDE\u63A5\u8868[id];
|
|
45
|
-
}
|
|
46
|
-
async \u9500\u6BC1\u5224\u5B9A(id) {
|
|
47
|
-
let log = (await this.log).extend("\u9500\u6BC1\u5224\u5B9A").extend(id);
|
|
48
|
-
let \u8FDE\u63A5 = this.\u8FDE\u63A5\u8868[id];
|
|
49
|
-
if (\u8FDE\u63A5 === void 0) {
|
|
50
|
-
await log.error(`\u65E0\u6CD5\u627E\u5230\u8FDE\u63A5`);
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
if (\u8FDE\u63A5.\u5DF2\u9519\u8BEF === true) {
|
|
54
|
-
await log.error(`\u8FDE\u63A5\u5DF2\u88AB\u6807\u8BB0\u4E3A\u9519\u8BEF, \u65AD\u5F00\u8FDE\u63A5.`);
|
|
55
|
-
clearTimeout(\u8FDE\u63A5.\u8D85\u65F6\u5B9A\u65F6\u5668);
|
|
56
|
-
await this.\u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5(id, 1011, "\u53D1\u751F\u9519\u8BEF");
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
if (\u8FDE\u63A5.\u5DF2\u5B8C\u6210 === true && \u8FDE\u63A5.\u7F13\u5B58.length === 0) {
|
|
60
|
-
await log.debug(`\u8FDE\u63A5\u5DF2\u5B8C\u6210, \u6B63\u5E38\u5173\u95ED.`);
|
|
61
|
-
await this.\u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5(id, 1e3, "\u6B63\u5E38\u5173\u95ED");
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
if (\u8FDE\u63A5.\u5DF2\u65AD\u5F00 === false) {
|
|
65
|
-
clearTimeout(\u8FDE\u63A5.\u8D85\u65F6\u5B9A\u65F6\u5668);
|
|
66
|
-
}
|
|
67
|
-
if (\u8FDE\u63A5.\u5DF2\u65AD\u5F00 === true) {
|
|
68
|
-
await log.debug("\u8FDE\u63A5\u5DF2\u65AD\u5F00, \u7B49\u5F85\u5BA2\u6237\u7AEF\u91CD\u8FDE.");
|
|
69
|
-
let \u8D85\u65F6\u65F6\u95F4 = 3e4;
|
|
70
|
-
clearTimeout(\u8FDE\u63A5.\u8D85\u65F6\u5B9A\u65F6\u5668);
|
|
71
|
-
\u8FDE\u63A5.\u8D85\u65F6\u5B9A\u65F6\u5668 = setTimeout(async () => {
|
|
72
|
-
if (this.\u8FDE\u63A5\u8868[id]?.\u5DF2\u65AD\u5F00 === true) {
|
|
73
|
-
await log.error("\u5BA2\u6237\u7AEF\u8D85\u65F6\u672A\u91CD\u8FDE\uFF0C\u6E05\u7406\u8FDE\u63A5.");
|
|
74
|
-
await this.\u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5(id, 1011, "\u5BA2\u6237\u7AEF\u8D85\u65F6\u672A\u91CD\u8FDE\uFF0C\u6E05\u7406\u8FDE\u63A5");
|
|
75
|
-
}
|
|
76
|
-
}, \u8D85\u65F6\u65F6\u95F4);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
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").extend(id);
|
|
81
|
-
if (this.\u8FDE\u63A5\u8868[id] === void 0) {
|
|
82
|
-
this.\u8FDE\u63A5\u8868[id] = {
|
|
83
|
-
ws,
|
|
84
|
-
\u7F13\u5B58: [],
|
|
85
|
-
\u5DF2\u5B8C\u6210: false,
|
|
86
|
-
\u5DF2\u65AD\u5F00: false,
|
|
87
|
-
\u5DF2\u9519\u8BEF: false,
|
|
88
|
-
\u6570\u636E\u53D1\u9001\u4E2D: false,
|
|
89
|
-
\u7F13\u5B58\u53D1\u9001\u4E2D: false
|
|
90
|
-
};
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
let \u65E7\u53E5\u67C4 = this.\u8FDE\u63A5\u8868[id].ws;
|
|
94
|
-
await log.info("\u65E7\u8FDE\u63A5\u5B58\u5728, \u5C06\u66FF\u6362\u8868\u4E2D\u6570\u636E, \u5E76\u5173\u95ED\u65E7ws\u53E5\u67C4.");
|
|
95
|
-
this.\u8FDE\u63A5\u8868[id].ws = ws;
|
|
96
|
-
this.\u8FDE\u63A5\u8868[id].\u5DF2\u5B8C\u6210 = false;
|
|
97
|
-
this.\u8FDE\u63A5\u8868[id].\u5DF2\u65AD\u5F00 = false;
|
|
98
|
-
this.\u8FDE\u63A5\u8868[id].\u5DF2\u9519\u8BEF = false;
|
|
99
|
-
this.\u8FDE\u63A5\u8868[id].\u6570\u636E\u53D1\u9001\u4E2D = false;
|
|
100
|
-
this.\u8FDE\u63A5\u8868[id].\u7F13\u5B58\u53D1\u9001\u4E2D = false;
|
|
101
|
-
\u65E7\u53E5\u67C4?.close(1011, "\u65B0\u8FDE\u63A5\u66FF\u6362\u65E7\u8FDE\u63A5");
|
|
102
|
-
await log.info("\u53D1\u9001\u65E7\u8FDE\u63A5\u7F13\u5B58");
|
|
103
|
-
this.\u8FDE\u63A5\u8868[id].\u7F13\u5B58\u53D1\u9001\u4E2D = true;
|
|
104
|
-
while (this.\u8FDE\u63A5\u8868[id].\u7F13\u5B58.length !== 0) {
|
|
105
|
-
await this.\u53D1\u9001\u4FE1\u606F_\u5185\u90E8(id, this.\u8FDE\u63A5\u8868[id].\u7F13\u5B58.shift());
|
|
106
|
-
}
|
|
107
|
-
this.\u8FDE\u63A5\u8868[id].\u7F13\u5B58\u53D1\u9001\u4E2D = false;
|
|
108
|
-
await log.info("\u53D1\u9001\u65E7\u8FDE\u63A5\u7F13\u5B58\u5B8C\u6210");
|
|
109
|
-
}
|
|
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").extend(id);
|
|
112
|
-
if (this.\u8FDE\u63A5\u8868[id] === void 0) {
|
|
113
|
-
await log.error(`\u65E0\u6CD5\u627E\u5230\u8FDE\u63A5`);
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
this.\u8FDE\u63A5\u8868[id].\u6E05\u7406\u51FD\u6570 = \u6E05\u7406\u51FD\u6570;
|
|
117
|
-
}
|
|
118
|
-
async \u53D1\u9001\u4FE1\u606F_\u5185\u90E8(id, data) {
|
|
119
|
-
let log = (await this.log).extend("\u53D1\u9001\u4FE1\u606F(\u5185\u90E8)").extend(id);
|
|
120
|
-
while (this.\u8FDE\u63A5\u8868[id]?.\u6570\u636E\u53D1\u9001\u4E2D === true) {
|
|
121
|
-
await log.info("\u6570\u636E\u53D1\u9001\u4E2D, \u5C06\u9000\u907F.");
|
|
122
|
-
let \u9000\u907F\u65F6\u95F4 = 100;
|
|
123
|
-
await new Promise((res, _rej) => setTimeout(() => res(), \u9000\u907F\u65F6\u95F4));
|
|
124
|
-
}
|
|
125
|
-
let \u8FDE\u63A5 = this.\u8FDE\u63A5\u8868[id];
|
|
126
|
-
if (\u8FDE\u63A5 === void 0) {
|
|
127
|
-
await log.error("\u65E0\u6CD5\u627E\u5230\u8FDE\u63A5");
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
await new Promise((res, rej) => {
|
|
131
|
-
\u8FDE\u63A5.\u6570\u636E\u53D1\u9001\u4E2D = true;
|
|
132
|
-
let ws\u53E5\u67C4 = \u8FDE\u63A5.ws;
|
|
133
|
-
if (ws\u53E5\u67C4 === null) {
|
|
134
|
-
log.error("\u65E0\u6CD5\u627E\u5230ws\u53E5\u67C4").catch(console.error);
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
ws\u53E5\u67C4.send(JSON.stringify(data), (err) => {
|
|
138
|
-
if ((err ?? null) !== null) {
|
|
139
|
-
log.error(err).catch(console.error);
|
|
140
|
-
return rej(err);
|
|
141
|
-
}
|
|
142
|
-
log.debug("WebSocket \u4FE1\u606F\u53D1\u9001\u6210\u529F").catch(console.error);
|
|
143
|
-
return res();
|
|
144
|
-
});
|
|
145
|
-
}).finally(() => {
|
|
146
|
-
\u8FDE\u63A5.\u6570\u636E\u53D1\u9001\u4E2D = false;
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
async \u53D1\u9001\u4FE1\u606F(id, data) {
|
|
150
|
-
let log = (await this.log).extend("\u53D1\u9001\u4FE1\u606F").extend(id);
|
|
151
|
-
if (this.\u8FDE\u63A5\u8868[id]?.\u5DF2\u5B8C\u6210 === true) {
|
|
152
|
-
await log.error("\u8FDE\u63A5\u5DF2\u5B8C\u6210, \u65E0\u6CD5\u53D1\u9001\u6570\u636E.");
|
|
153
|
-
return;
|
|
154
|
-
}
|
|
155
|
-
if (this.\u8FDE\u63A5\u8868[id]?.\u5DF2\u65AD\u5F00 === true) {
|
|
156
|
-
await log.error("\u8FDE\u63A5\u5DF2\u65AD\u5F00, \u5C06\u7F13\u5B58\u6570\u636E.");
|
|
157
|
-
this.\u8FDE\u63A5\u8868[id].\u7F13\u5B58.push(data);
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
while (this.\u8FDE\u63A5\u8868[id]?.\u7F13\u5B58\u53D1\u9001\u4E2D === true) {
|
|
161
|
-
await log.info("\u7F13\u5B58\u53D1\u9001\u4E2D, \u5C06\u9000\u907F.");
|
|
162
|
-
let \u9000\u907F\u65F6\u95F4 = 100;
|
|
163
|
-
await new Promise((res, _rej) => setTimeout(() => res(), \u9000\u907F\u65F6\u95F4));
|
|
164
|
-
}
|
|
165
|
-
await this.\u53D1\u9001\u4FE1\u606F_\u5185\u90E8(id, data);
|
|
166
|
-
}
|
|
167
|
-
async \u6807\u8BB0\u8FDE\u63A5\u5DF2\u5B8C\u6210(id) {
|
|
168
|
-
if (this.\u8FDE\u63A5\u8868[id] === void 0)
|
|
169
|
-
return;
|
|
170
|
-
this.\u8FDE\u63A5\u8868[id].\u5DF2\u5B8C\u6210 = true;
|
|
171
|
-
await this.\u9500\u6BC1\u5224\u5B9A(id);
|
|
172
|
-
}
|
|
173
|
-
async \u6807\u8BB0\u8FDE\u63A5\u5DF2\u65AD\u5F00(id) {
|
|
174
|
-
if (this.\u8FDE\u63A5\u8868[id] === void 0)
|
|
175
|
-
return;
|
|
176
|
-
this.\u8FDE\u63A5\u8868[id].\u5DF2\u65AD\u5F00 = true;
|
|
177
|
-
await this.\u9500\u6BC1\u5224\u5B9A(id);
|
|
178
|
-
}
|
|
179
|
-
async \u53D6\u6D88\u6807\u8BB0\u8FDE\u63A5\u5DF2\u65AD\u5F00(id) {
|
|
180
|
-
if (this.\u8FDE\u63A5\u8868[id] === void 0)
|
|
181
|
-
return;
|
|
182
|
-
this.\u8FDE\u63A5\u8868[id].\u5DF2\u65AD\u5F00 = false;
|
|
183
|
-
await this.\u9500\u6BC1\u5224\u5B9A(id);
|
|
184
|
-
}
|
|
185
|
-
async \u6807\u8BB0\u8FDE\u63A5\u5DF2\u9519\u8BEF(id) {
|
|
186
|
-
if (this.\u8FDE\u63A5\u8868[id] === void 0)
|
|
187
|
-
return;
|
|
188
|
-
this.\u8FDE\u63A5\u8868[id].\u5DF2\u9519\u8BEF = true;
|
|
189
|
-
await this.\u9500\u6BC1\u5224\u5B9A(id);
|
|
190
|
-
}
|
|
191
|
-
};
|
|
192
|
-
|
|
193
|
-
// src/global/global.ts
|
|
194
|
-
var Global = new import_ts_global.GlobalService([
|
|
195
|
-
new import_ts_global.GlobalAsyncItem("log", async () => {
|
|
196
|
-
return new import_ts_log.Log("@lsby:net-core");
|
|
197
|
-
}),
|
|
198
|
-
new import_ts_global.GlobalAsyncItem("WebSocket\u7BA1\u7406\u5668", async () => {
|
|
199
|
-
return new WebSocket\u7BA1\u7406\u5668();
|
|
200
|
-
})
|
|
201
|
-
]);
|
|
202
|
-
|
|
203
28
|
// src/plugin/plug.ts
|
|
204
29
|
var \u63D2\u4EF6 = class {
|
|
205
30
|
constructor(\u7C7B\u578B, \u5B9E\u73B0) {
|
|
@@ -218,8 +43,8 @@ var \u63D2\u4EF6 = class {
|
|
|
218
43
|
var zod\u7C7B\u578B\u8868\u793A = import_zod.z.object({});
|
|
219
44
|
var \u8C03\u8BD5\u8BF7\u6C42\u5934\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
220
45
|
constructor() {
|
|
221
|
-
super(zod\u7C7B\u578B\u8868\u793A, async (req) => {
|
|
222
|
-
let log =
|
|
46
|
+
super(zod\u7C7B\u578B\u8868\u793A, async (req, res, \u9644\u52A0\u53C2\u6570) => {
|
|
47
|
+
let log = \u9644\u52A0\u53C2\u6570.log.extend("\u8C03\u8BD5\u8BF7\u6C42\u5934\u63D2\u4EF6");
|
|
223
48
|
await log.debug(req.headers);
|
|
224
49
|
return {};
|
|
225
50
|
});
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { 插 as __ } 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 let zod类型表示: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
7
10
|
declare class 调试请求头插件 extends __<typeof zod类型表示> {
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { 插 as __ } 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 let zod类型表示: z.ZodObject<{
|
|
7
10
|
sendFile: z.ZodFunction<z.ZodTuple<[z.ZodType<Buffer, z.ZodTypeDef, Buffer>], null>, z.ZodType<Buffer, z.ZodTypeDef, Buffer>>;
|
|
@@ -42,10 +42,10 @@ var import_ts_log = require("@lsby/ts-log");
|
|
|
42
42
|
|
|
43
43
|
// src/global/web-socket-management.ts
|
|
44
44
|
var WebSocket\u7BA1\u7406\u5668 = class {
|
|
45
|
-
log = Global.getItem("log").then((a) => a.extend("WebSocket\u7BA1\u7406\u5668"));
|
|
45
|
+
log = Global.getItem("log").then((a) => a.extend("@lsby:net-core").extend("WebSocket\u7BA1\u7406\u5668"));
|
|
46
46
|
\u8FDE\u63A5\u8868 = {};
|
|
47
47
|
async \u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5(id, code, \u8BF4\u660E) {
|
|
48
|
-
let log = (await this.log).extend("\u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5")
|
|
48
|
+
let log = (await this.log).extend(id).extend("\u5173\u95ED\u5E76\u5220\u9664\u8FDE\u63A5");
|
|
49
49
|
try {
|
|
50
50
|
await this.\u8FDE\u63A5\u8868[id]?.\u6E05\u7406\u51FD\u6570?.();
|
|
51
51
|
} catch (err) {
|
|
@@ -55,7 +55,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
55
55
|
delete this.\u8FDE\u63A5\u8868[id];
|
|
56
56
|
}
|
|
57
57
|
async \u9500\u6BC1\u5224\u5B9A(id) {
|
|
58
|
-
let log = (await this.log).extend("\u9500\u6BC1\u5224\u5B9A")
|
|
58
|
+
let log = (await this.log).extend(id).extend("\u9500\u6BC1\u5224\u5B9A");
|
|
59
59
|
let \u8FDE\u63A5 = this.\u8FDE\u63A5\u8868[id];
|
|
60
60
|
if (\u8FDE\u63A5 === void 0) {
|
|
61
61
|
await log.error(`\u65E0\u6CD5\u627E\u5230\u8FDE\u63A5`);
|
|
@@ -88,7 +88,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
async \u589E\u52A0\u6216\u66FF\u6362\u8FDE\u63A5(id, ws) {
|
|
91
|
-
let log = (await this.log).extend("\u589E\u52A0\u6216\u66FF\u6362\u8FDE\u63A5")
|
|
91
|
+
let log = (await this.log).extend(id).extend("\u589E\u52A0\u6216\u66FF\u6362\u8FDE\u63A5");
|
|
92
92
|
if (this.\u8FDE\u63A5\u8868[id] === void 0) {
|
|
93
93
|
this.\u8FDE\u63A5\u8868[id] = {
|
|
94
94
|
ws,
|
|
@@ -119,7 +119,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
119
119
|
await log.info("\u53D1\u9001\u65E7\u8FDE\u63A5\u7F13\u5B58\u5B8C\u6210");
|
|
120
120
|
}
|
|
121
121
|
async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(id, \u6E05\u7406\u51FD\u6570) {
|
|
122
|
-
let log = (await this.log).extend("\u8BBE\u7F6E\u6E05\u7406\u51FD\u6570")
|
|
122
|
+
let log = (await this.log).extend(id).extend("\u8BBE\u7F6E\u6E05\u7406\u51FD\u6570");
|
|
123
123
|
if (this.\u8FDE\u63A5\u8868[id] === void 0) {
|
|
124
124
|
await log.error(`\u65E0\u6CD5\u627E\u5230\u8FDE\u63A5`);
|
|
125
125
|
return;
|
|
@@ -127,7 +127,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
127
127
|
this.\u8FDE\u63A5\u8868[id].\u6E05\u7406\u51FD\u6570 = \u6E05\u7406\u51FD\u6570;
|
|
128
128
|
}
|
|
129
129
|
async \u53D1\u9001\u4FE1\u606F_\u5185\u90E8(id, data) {
|
|
130
|
-
let log = (await this.log).extend("\u53D1\u9001\u4FE1\u606F(\u5185\u90E8)")
|
|
130
|
+
let log = (await this.log).extend(id).extend("\u53D1\u9001\u4FE1\u606F(\u5185\u90E8)");
|
|
131
131
|
while (this.\u8FDE\u63A5\u8868[id]?.\u6570\u636E\u53D1\u9001\u4E2D === true) {
|
|
132
132
|
await log.info("\u6570\u636E\u53D1\u9001\u4E2D, \u5C06\u9000\u907F.");
|
|
133
133
|
let \u9000\u907F\u65F6\u95F4 = 100;
|
|
@@ -158,7 +158,7 @@ var WebSocket\u7BA1\u7406\u5668 = class {
|
|
|
158
158
|
});
|
|
159
159
|
}
|
|
160
160
|
async \u53D1\u9001\u4FE1\u606F(id, data) {
|
|
161
|
-
let log = (await this.log).extend("\u53D1\u9001\u4FE1\u606F")
|
|
161
|
+
let log = (await this.log).extend(id).extend("\u53D1\u9001\u4FE1\u606F");
|
|
162
162
|
if (this.\u8FDE\u63A5\u8868[id]?.\u5DF2\u5B8C\u6210 === true) {
|
|
163
163
|
await log.error("\u8FDE\u63A5\u5DF2\u5B8C\u6210, \u65E0\u6CD5\u53D1\u9001\u6570\u636E.");
|
|
164
164
|
return;
|
|
@@ -230,7 +230,7 @@ var \u8868\u5355\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
230
230
|
log = Global.getItem("log");
|
|
231
231
|
constructor(t, opt) {
|
|
232
232
|
super(t, async (req, res, \u9644\u52A0\u53C2\u6570) => {
|
|
233
|
-
let log =
|
|
233
|
+
let log = \u9644\u52A0\u53C2\u6570.log.extend("JSON\u89E3\u6790\u63D2\u4EF6");
|
|
234
234
|
await new Promise(
|
|
235
235
|
(pRes, _rej) => import_express.default.urlencoded({ extended: true, ...opt })(req, res, () => {
|
|
236
236
|
pRes(null);
|