@lsby/net-core 0.8.1 → 0.9.1
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/index.cjs +114 -112
- package/dist/cjs/index.d.cts +1 -1
- package/dist/cjs/interface/interface-base.d.cts +1 -1
- package/dist/cjs/interface/interface-logic.cjs +4 -4
- package/dist/cjs/interface/interface-logic.d.cts +1 -1
- package/dist/cjs/interface/interface-result.d.cts +1 -1
- package/dist/cjs/{interface-base-D0rlBwTb.d.cts → interface-base-Dq8o7vnl.d.cts} +12 -5
- package/dist/cjs/plugin/extend/custom-data.cjs +2 -62
- package/dist/cjs/plugin/extend/custom-data.d.cts +1 -2
- package/dist/cjs/plugin/extend/json.d.cts +1 -1
- package/dist/cjs/plugin/extend/log-headers.d.cts +1 -1
- package/dist/cjs/plugin/extend/query.d.cts +1 -1
- package/dist/cjs/plugin/extend/send-file-plugin.d.cts +1 -1
- package/dist/cjs/plugin/extend/urlencoded.cjs +2 -62
- package/dist/cjs/plugin/extend/urlencoded.d.cts +1 -2
- package/dist/cjs/plugin/extend/web-socket.cjs +0 -1
- package/dist/cjs/plugin/extend/web-socket.d.cts +1 -2
- package/dist/cjs/plugin/plug.d.cts +1 -1
- package/dist/cjs/server/server.cjs +49 -46
- package/dist/cjs/server/server.d.cts +1 -1
- package/dist/cjs/wrapper/common-wrapper-return.d.cts +1 -1
- package/dist/cjs/wrapper/common-wrapper.d.cts +1 -1
- package/dist/cjs/wrapper/deferred-result-wrapper.d.cts +1 -1
- package/dist/esm/{chunk-ST4PR6O3.js → chunk-BDY77BE7.js} +4 -4
- package/dist/esm/{chunk-TBBZDFIS.js → chunk-RRM3JVJB.js} +52 -49
- package/dist/esm/{chunk-EW7SZA75.js → chunk-VJFTSMHQ.js} +3 -4
- package/dist/esm/{chunk-NAQTIAMT.js → chunk-VMCAX3QH.js} +0 -4
- package/dist/esm/{chunk-JSSODPOL.js → chunk-XEV5RHGZ.js} +0 -4
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +19 -19
- package/dist/esm/interface/interface-base.d.ts +1 -1
- package/dist/esm/interface/interface-logic.d.ts +1 -1
- package/dist/esm/interface/interface-logic.js +1 -1
- package/dist/esm/interface/interface-result.d.ts +1 -1
- package/dist/esm/{interface-base-T320o147.d.ts → interface-base-CKPWT5C9.d.ts} +12 -5
- package/dist/esm/plugin/extend/custom-data.d.ts +1 -2
- package/dist/esm/plugin/extend/custom-data.js +1 -2
- package/dist/esm/plugin/extend/json.d.ts +1 -1
- package/dist/esm/plugin/extend/json.js +2 -2
- package/dist/esm/plugin/extend/log-headers.d.ts +1 -1
- package/dist/esm/plugin/extend/query.d.ts +1 -1
- package/dist/esm/plugin/extend/query.js +2 -2
- package/dist/esm/plugin/extend/send-file-plugin.d.ts +1 -1
- package/dist/esm/plugin/extend/urlencoded.d.ts +1 -2
- package/dist/esm/plugin/extend/urlencoded.js +1 -2
- package/dist/esm/plugin/extend/web-socket.d.ts +1 -2
- package/dist/esm/plugin/extend/web-socket.js +2 -2
- package/dist/esm/plugin/plug.d.ts +1 -1
- package/dist/esm/server/server.d.ts +1 -1
- package/dist/esm/server/server.js +2 -2
- package/dist/esm/wrapper/common-wrapper-return.d.ts +1 -1
- package/dist/esm/wrapper/common-wrapper-return.js +2 -2
- package/dist/esm/wrapper/common-wrapper.d.ts +1 -1
- package/dist/esm/wrapper/common-wrapper.js +2 -2
- package/dist/esm/wrapper/deferred-result-wrapper.d.ts +1 -1
- package/dist/esm/wrapper/deferred-result-wrapper.js +2 -2
- package/package.json +1 -1
- package/dist/esm/{chunk-AY6KWNWX.js → chunk-6SGTOPVW.js} +3 -3
- package/dist/esm/{chunk-JXTWTY2S.js → chunk-AP57BLCR.js} +3 -3
- package/dist/esm/{chunk-GMYXAJS3.js → chunk-B2WM3PYV.js} +3 -3
- package/dist/esm/{chunk-WECMWUFB.js → chunk-GGR24VBS.js} +3 -3
- package/dist/esm/{chunk-LZOZF4CS.js → chunk-WXP6N5FD.js} +3 -3
|
@@ -36,65 +36,6 @@ module.exports = __toCommonJS(urlencoded_exports);
|
|
|
36
36
|
var import_express = __toESM(require("express"), 1);
|
|
37
37
|
var import_node_util = require("util");
|
|
38
38
|
|
|
39
|
-
// src/global/global.ts
|
|
40
|
-
var import_ts_global = require("@lsby/ts-global");
|
|
41
|
-
var import_ts_log = require("@lsby/ts-log");
|
|
42
|
-
var import_ws = require("ws");
|
|
43
|
-
var log = new import_ts_log.Log("@lsby:net-core");
|
|
44
|
-
var WebSocket\u7BA1\u7406\u5668 = class {
|
|
45
|
-
constructor(\u8FDE\u63A5\u8868) {
|
|
46
|
-
this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
|
|
47
|
-
this.\u5B9A\u65F6\u5668ID = setInterval(() => {
|
|
48
|
-
this.\u6E05\u7406\u65E0\u6548\u8FDE\u63A5().catch((err) => {
|
|
49
|
-
this.log.error(`\u6E05\u7406\u65E0\u6548\u8FDE\u63A5\u5931\u8D25: ${err}`).catch((a) => `\u65E5\u5FD7\u8F93\u51FA\u9519\u8BEF: ${a}: \u65E5\u5FD7\u5185\u5BB9: ${`\u6E05\u7406\u65E0\u6548\u8FDE\u63A5\u5931\u8D25: ${err}`}`);
|
|
50
|
-
});
|
|
51
|
-
}, 3e4);
|
|
52
|
-
}
|
|
53
|
-
log = log.extend("@lsby:net-core").extend("WebSocket\u7BA1\u7406\u5668");
|
|
54
|
-
\u6E05\u7406\u51FD\u6570\u8868 = {};
|
|
55
|
-
\u5B9A\u65F6\u5668ID = null;
|
|
56
|
-
\u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
|
|
57
|
-
this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
|
|
58
|
-
}
|
|
59
|
-
\u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(id) {
|
|
60
|
-
return this.\u8FDE\u63A5\u8868.hasOwnProperty(id) ? true : false;
|
|
61
|
-
}
|
|
62
|
-
async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(id, \u6E05\u7406\u51FD\u6570) {
|
|
63
|
-
if (this.\u8FDE\u63A5\u8868.hasOwnProperty(id) === false) return;
|
|
64
|
-
this.\u6E05\u7406\u51FD\u6570\u8868[id] = \u6E05\u7406\u51FD\u6570;
|
|
65
|
-
}
|
|
66
|
-
async \u83B7\u5F97\u53E5\u67C4(id) {
|
|
67
|
-
return this.\u8FDE\u63A5\u8868[id] ?? null;
|
|
68
|
-
}
|
|
69
|
-
\u5220\u9664\u8FDE\u63A5(id) {
|
|
70
|
-
let \u6E05\u7406\u51FD\u6570 = this.\u6E05\u7406\u51FD\u6570\u8868[id];
|
|
71
|
-
try {
|
|
72
|
-
this.\u8FDE\u63A5\u8868[id]?.close(1e3, "\u670D\u52A1\u5668\u4E3B\u52A8\u5173\u95ED");
|
|
73
|
-
} catch (err) {
|
|
74
|
-
this.log.error(`\u5173\u95ED WebSocket \u53E5\u67C4\u5931\u8D25, id: ${id}, \u9519\u8BEF: ${err}`).catch((a) => `\u65E5\u5FD7\u8F93\u51FA\u9519\u8BEF: ${a}: \u65E5\u5FD7\u5185\u5BB9: ${`\u5173\u95ED WebSocket \u53E5\u67C4\u5931\u8D25, id: ${id}, \u9519\u8BEF: ${err}`}`);
|
|
75
|
-
}
|
|
76
|
-
\u6E05\u7406\u51FD\u6570?.().catch((err) => this.log.error(`\u6E05\u7406\u8FDE\u63A5\u5931\u8D25, id: ${id}, \u9519\u8BEF: ${err}`));
|
|
77
|
-
delete this.\u8FDE\u63A5\u8868[id];
|
|
78
|
-
delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
|
|
79
|
-
}
|
|
80
|
-
async \u6E05\u7406\u65E0\u6548\u8FDE\u63A5() {
|
|
81
|
-
let \u6E05\u7406\u6570\u91CF = 0;
|
|
82
|
-
for (let [id, ws] of Object.entries(this.\u8FDE\u63A5\u8868)) {
|
|
83
|
-
if (ws === null || ws.readyState === import_ws.WebSocket.CLOSED) {
|
|
84
|
-
this.\u5220\u9664\u8FDE\u63A5(id);
|
|
85
|
-
\u6E05\u7406\u6570\u91CF++;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
if (\u6E05\u7406\u6570\u91CF > 0) {
|
|
89
|
-
await this.log.info(`\u6E05\u7406\u4E86 ${\u6E05\u7406\u6570\u91CF} \u4E2A\u65E0\u6548 WebSocket \u8FDE\u63A5`);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
var Global = new import_ts_global.GlobalService([
|
|
94
|
-
new import_ts_global.GlobalItem("log", log),
|
|
95
|
-
new import_ts_global.GlobalItem("WebSocket\u7BA1\u7406\u5668", new WebSocket\u7BA1\u7406\u5668({}))
|
|
96
|
-
]);
|
|
97
|
-
|
|
98
39
|
// src/plugin/plug.ts
|
|
99
40
|
var \u63D2\u4EF6 = class {
|
|
100
41
|
constructor(\u7C7B\u578B, \u5B9E\u73B0) {
|
|
@@ -111,10 +52,9 @@ var \u63D2\u4EF6 = class {
|
|
|
111
52
|
|
|
112
53
|
// src/plugin/extend/urlencoded.ts
|
|
113
54
|
var \u8868\u5355\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
114
|
-
log = Global.getItem("log");
|
|
115
55
|
constructor(t, opt) {
|
|
116
56
|
super(t, async (req, res, \u9644\u52A0\u53C2\u6570) => {
|
|
117
|
-
let
|
|
57
|
+
let log = \u9644\u52A0\u53C2\u6570.log.extend("JSON\u89E3\u6790\u63D2\u4EF6");
|
|
118
58
|
await new Promise(
|
|
119
59
|
(pRes, _rej) => import_express.default.urlencoded({ extended: true, ...opt })(req, res, () => {
|
|
120
60
|
pRes(null);
|
|
@@ -122,7 +62,7 @@ var \u8868\u5355\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
122
62
|
);
|
|
123
63
|
let parseResult = t.safeParse(req.body);
|
|
124
64
|
if (parseResult.success === false) {
|
|
125
|
-
await
|
|
65
|
+
await log.error("\u89E3\u6790url\u7F16\u7801\u6B63\u6587\u5931\u8D25: %o", parseResult.error);
|
|
126
66
|
throw new Error((0, import_node_util.format)("\u89E3\u6790url\u7F16\u7801\u6B63\u6587\u5931\u8D25: %o", parseResult.error));
|
|
127
67
|
}
|
|
128
68
|
return parseResult.data;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { 插 as __ } from '../../interface-base-
|
|
3
|
+
import { 插 as __ } from '../../interface-base-Dq8o7vnl.cjs';
|
|
4
4
|
import '@lsby/ts-fp-data';
|
|
5
5
|
import '../../help/interior.cjs';
|
|
6
6
|
import '@lsby/ts-log';
|
|
@@ -8,7 +8,6 @@ import 'node:http';
|
|
|
8
8
|
import '../../interface/interface-retuen.cjs';
|
|
9
9
|
|
|
10
10
|
declare class 表单解析插件<Result extends z.AnyZodObject> extends __<Result> {
|
|
11
|
-
private log;
|
|
12
11
|
constructor(t: Result, opt: Parameters<typeof express.urlencoded>[0]);
|
|
13
12
|
}
|
|
14
13
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { 插 as __, A as _____ } from '../../interface-base-
|
|
2
|
+
import { 插 as __, A as _____ } from '../../interface-base-Dq8o7vnl.cjs';
|
|
3
3
|
import '@lsby/ts-fp-data';
|
|
4
4
|
import 'express';
|
|
5
5
|
import '../../help/interior.cjs';
|
|
@@ -17,7 +17,6 @@ declare class WebSocket插件<信息 extends z.AnyZodObject | z.ZodUnion<any>> e
|
|
|
17
17
|
z.ZodNull
|
|
18
18
|
]>;
|
|
19
19
|
}>> {
|
|
20
|
-
private log;
|
|
21
20
|
constructor(信息描述: 信息);
|
|
22
21
|
}
|
|
23
22
|
type 任意WS插件 = WebSocket插件<any>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import 'express';
|
|
2
2
|
import 'zod';
|
|
3
|
-
export { z as 任意插件, B as 取插件内部ts类型, 取 as 取插件内部类型, 合 as 合并插件结果, 插 as 插件, A as 插件项类型 } from '../interface-base-
|
|
3
|
+
export { z as 任意插件, B as 取插件内部ts类型, 取 as 取插件内部类型, 合 as 合并插件结果, 插 as 插件, A as 插件项类型 } from '../interface-base-Dq8o7vnl.cjs';
|
|
4
4
|
import '@lsby/ts-fp-data';
|
|
5
5
|
import '../help/interior.cjs';
|
|
6
6
|
import '@lsby/ts-log';
|
|
@@ -119,18 +119,24 @@ function \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E) {
|
|
|
119
119
|
|
|
120
120
|
// src/server/server.ts
|
|
121
121
|
var \u670D\u52A1\u5668 = class {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
122
|
+
\u7CFB\u7EDFlog = Global.getItem("log");
|
|
123
|
+
\u63A5\u53E3log;
|
|
124
|
+
\u63A5\u53E3\u4EEC;
|
|
125
|
+
\u7AEF\u53E3;
|
|
126
|
+
\u9759\u6001\u8D44\u6E90\u8DEF\u5F84;
|
|
127
|
+
\u9ED8\u8BA4get\u6587\u4EF6\u8DEF\u5F84;
|
|
128
|
+
constructor(options) {
|
|
129
|
+
this.\u63A5\u53E3\u4EEC = options.\u63A5\u53E3\u4EEC;
|
|
130
|
+
this.\u7AEF\u53E3 = options.\u7AEF\u53E3;
|
|
131
|
+
this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84 = options.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84;
|
|
132
|
+
this.\u9ED8\u8BA4get\u6587\u4EF6\u8DEF\u5F84 = options.\u9ED8\u8BA4get\u6587\u4EF6\u8DEF\u5F84;
|
|
133
|
+
this.\u63A5\u53E3log = options.log !== void 0 ? Promise.resolve(options.log) : Global.getItem("log");
|
|
127
134
|
}
|
|
128
|
-
log = Global.getItem("log");
|
|
129
135
|
async run() {
|
|
130
|
-
let log2 = (await this.log).extend("\u670D\u52A1\u5668");
|
|
131
136
|
let app = (0, import_express.default)();
|
|
137
|
+
let \u7CFB\u7EDFlog = await this.\u7CFB\u7EDFlog;
|
|
132
138
|
if (this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84 !== void 0) {
|
|
133
|
-
await
|
|
139
|
+
await \u7CFB\u7EDFlog.debug(`\u8BBE\u7F6E\u9759\u6001\u8D44\u6E90\u8DEF\u5F84: ${this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84}`);
|
|
134
140
|
app.use(import_express.default.static(this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84));
|
|
135
141
|
}
|
|
136
142
|
app.use(this.\u5904\u7406\u8BF7\u6C42.bind(this));
|
|
@@ -140,17 +146,17 @@ var \u670D\u52A1\u5668 = class {
|
|
|
140
146
|
}
|
|
141
147
|
async \u5904\u7406\u8BF7\u6C42(req, res) {
|
|
142
148
|
let \u8BF7\u6C42id = (0, import_short_uuid.default)().new();
|
|
143
|
-
let \
|
|
144
|
-
let
|
|
149
|
+
let \u7CFB\u7EDFlog = (await this.\u7CFB\u7EDFlog).extend(\u8BF7\u6C42id);
|
|
150
|
+
let \u63A5\u53E3log = (await this.\u63A5\u53E3log).extend(\u8BF7\u6C42id);
|
|
145
151
|
let \u5F00\u59CB\u65F6\u95F4 = Date.now();
|
|
146
152
|
try {
|
|
147
153
|
let { path: \u8BF7\u6C42\u8DEF\u5F84, method } = req;
|
|
148
154
|
\u8BF7\u6C42\u8DEF\u5F84 = decodeURIComponent(\u8BF7\u6C42\u8DEF\u5F84);
|
|
149
155
|
let \u8BF7\u6C42\u65B9\u6CD5 = method.toLowerCase();
|
|
150
|
-
await
|
|
156
|
+
await \u7CFB\u7EDFlog.debug("\u6536\u5230\u8BF7\u6C42, \u8DEF\u5F84: %o, \u65B9\u6CD5: %o", \u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5);
|
|
151
157
|
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;
|
|
152
158
|
if (\u76EE\u6807\u63A5\u53E3 !== null) {
|
|
153
|
-
await this.\u5904\u7406\u63A5\u53E3\u903B\u8F91(req, res, \u76EE\u6807\u63A5\u53E3,
|
|
159
|
+
await this.\u5904\u7406\u63A5\u53E3\u903B\u8F91(req, res, \u76EE\u6807\u63A5\u53E3, \u63A5\u53E3log, \u7CFB\u7EDFlog);
|
|
154
160
|
return;
|
|
155
161
|
}
|
|
156
162
|
if (this.\u9ED8\u8BA4get\u6587\u4EF6\u8DEF\u5F84 !== void 0 && \u8BF7\u6C42\u65B9\u6CD5 === "get") {
|
|
@@ -159,31 +165,30 @@ var \u670D\u52A1\u5668 = class {
|
|
|
159
165
|
res.send(\u9ED8\u8BA4\u6587\u4EF6\u5185\u5BB9);
|
|
160
166
|
return;
|
|
161
167
|
} catch (e) {
|
|
162
|
-
await
|
|
168
|
+
await \u7CFB\u7EDFlog.error("\u8FD4\u56DE\u9ED8\u8BA4get\u6587\u4EF6\u5185\u5BB9\u5931\u8D25: %o", String(e));
|
|
163
169
|
}
|
|
164
170
|
}
|
|
165
|
-
await
|
|
171
|
+
await \u7CFB\u7EDFlog.debug("\u6CA1\u6709\u547D\u4E2D\u4EFB\u4F55\u8D44\u6E90");
|
|
166
172
|
res.status(404).end();
|
|
167
173
|
} catch (error) {
|
|
168
|
-
await
|
|
174
|
+
await \u7CFB\u7EDFlog.error(error);
|
|
169
175
|
res.status(500).send("\u670D\u52A1\u5668\u5185\u90E8\u9519\u8BEF");
|
|
170
176
|
} finally {
|
|
171
177
|
let \u8017\u65F6ms = Date.now() - \u5F00\u59CB\u65F6\u95F4;
|
|
172
|
-
await \
|
|
178
|
+
await \u7CFB\u7EDFlog.info("\u8BF7\u6C42\u5B8C\u6210, \u8017\u65F6: %o ms", \u8017\u65F6ms);
|
|
173
179
|
}
|
|
174
180
|
}
|
|
175
|
-
async \u5904\u7406\u63A5\u53E3\u903B\u8F91(req, res, \u76EE\u6807\u63A5\u53E3, \
|
|
176
|
-
let log2 = \u8BF7\u6C42\u9644\u52A0\u53C2\u6570.log.extend("\u5904\u7406\u63A5\u53E3\u903B\u8F91");
|
|
181
|
+
async \u5904\u7406\u63A5\u53E3\u903B\u8F91(req, res, \u76EE\u6807\u63A5\u53E3, \u63A5\u53E3log, \u7CFB\u7EDFlog) {
|
|
177
182
|
let \u63A5\u53E3\u903B\u8F91 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u903B\u8F91();
|
|
178
183
|
let \u7ED3\u679C\u8F6C\u6362\u5668 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u7ED3\u679C\u8F6C\u6362\u5668();
|
|
179
184
|
let \u7ED3\u679C\u8FD4\u56DE\u5668 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u7ED3\u679C\u8FD4\u56DE\u5668();
|
|
180
185
|
let \u603B\u5F00\u59CB = Date.now();
|
|
181
186
|
let \u5F00\u59CB = Date.now();
|
|
182
|
-
await
|
|
183
|
-
let \u63D2\u4EF6\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F91.\u8BA1\u7B97\u63D2\u4EF6\u7ED3\u679C(req, res, \
|
|
184
|
-
let \u63A5\u53E3\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F91.\u901A\u8FC7\u63D2\u4EF6\u7ED3\u679C\u8FD0\u884C(\u63D2\u4EF6\u7ED3\u679C, {}, \
|
|
187
|
+
await \u7CFB\u7EDFlog.debug("\u8C03\u7528\u63A5\u53E3\u903B\u8F91...");
|
|
188
|
+
let \u63D2\u4EF6\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F91.\u8BA1\u7B97\u63D2\u4EF6\u7ED3\u679C(req, res, { log: \u7CFB\u7EDFlog });
|
|
189
|
+
let \u63A5\u53E3\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F91.\u901A\u8FC7\u63D2\u4EF6\u7ED3\u679C\u8FD0\u884C(\u63D2\u4EF6\u7ED3\u679C, {}, { log: \u63A5\u53E3log });
|
|
185
190
|
let \u63A5\u53E3\u8017\u65F6 = Date.now() - \u5F00\u59CB;
|
|
186
|
-
await
|
|
191
|
+
await \u7CFB\u7EDFlog.info("\u63A5\u53E3\u903B\u8F91\u6267\u884C\u5B8C\u6BD5, \u8017\u65F6: %o ms", \u63A5\u53E3\u8017\u65F6);
|
|
187
192
|
\u5F00\u59CB = Date.now();
|
|
188
193
|
let \u8F6C\u6362\u7ED3\u679C = \u7ED3\u679C\u8F6C\u6362\u5668.\u5B9E\u73B0(\u63A5\u53E3\u7ED3\u679C);
|
|
189
194
|
let \u9519\u8BEF\u7ED3\u679C = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod().safeParse(\u8F6C\u6362\u7ED3\u679C);
|
|
@@ -195,61 +200,59 @@ var \u670D\u52A1\u5668 = class {
|
|
|
195
200
|
\u6700\u7EC8\u7ED3\u679C = \u6B63\u786E\u7ED3\u679C.data;
|
|
196
201
|
} else {
|
|
197
202
|
let \u7ED3\u679C\u5B57\u7B26\u4E32 = JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u8F6C\u6362\u7ED3\u679C));
|
|
198
|
-
await
|
|
199
|
-
await
|
|
200
|
-
await
|
|
203
|
+
await \u7CFB\u7EDFlog.error(`\u8F6C\u6362\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C: ${\u7ED3\u679C\u5B57\u7B26\u4E32}`);
|
|
204
|
+
await \u7CFB\u7EDFlog.error("\u5BF9\u4E8E\u9519\u8BEF\u7ED3\u679C: %o", \u9519\u8BEF\u7ED3\u679C.error);
|
|
205
|
+
await \u7CFB\u7EDFlog.error("\u5BF9\u4E8E\u6B63\u786E\u7ED3\u679C: %o", \u6B63\u786E\u7ED3\u679C.error);
|
|
201
206
|
throw new Error(`\u8F6C\u6362\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C`);
|
|
202
207
|
}
|
|
203
208
|
let \u8F6C\u6362\u8017\u65F6 = Date.now() - \u5F00\u59CB;
|
|
204
|
-
await
|
|
205
|
-
await
|
|
209
|
+
await \u7CFB\u7EDFlog.info("\u7ED3\u679C\u8F6C\u6362\u4E0E\u6821\u9A8C\u5B8C\u6210, \u8017\u65F6: %o ms", \u8F6C\u6362\u8017\u65F6);
|
|
210
|
+
await \u7CFB\u7EDFlog.debug("\u6700\u7EC8\u7ED3\u679C: %o", JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6700\u7EC8\u7ED3\u679C)));
|
|
206
211
|
\u5F00\u59CB = Date.now();
|
|
207
212
|
await \u7ED3\u679C\u8FD4\u56DE\u5668.\u8FD4\u56DE(req, res, \u6700\u7EC8\u7ED3\u679C);
|
|
208
213
|
let \u8FD4\u56DE\u8017\u65F6 = Date.now() - \u5F00\u59CB;
|
|
209
|
-
await
|
|
214
|
+
await \u7CFB\u7EDFlog.info("\u8FD4\u56DE\u903B\u8F91\u6267\u884C\u5B8C\u6BD5, \u8017\u65F6: %o ms", \u8FD4\u56DE\u8017\u65F6);
|
|
210
215
|
let \u603B\u8017\u65F6 = Date.now() - \u603B\u5F00\u59CB;
|
|
211
|
-
await
|
|
216
|
+
await \u7CFB\u7EDFlog.info("\u63A5\u53E3\u5B8C\u6574\u6267\u884C\u8017\u65F6: %o ms", \u603B\u8017\u65F6);
|
|
212
217
|
}
|
|
213
218
|
async \u521D\u59CB\u5316WebSocket(server) {
|
|
214
219
|
let wss = new import_ws2.WebSocketServer({ server });
|
|
215
|
-
let
|
|
220
|
+
let \u7CFB\u7EDFlog = await this.\u7CFB\u7EDFlog;
|
|
216
221
|
wss.on("listening", async () => {
|
|
217
|
-
|
|
218
|
-
await log2.info("WebSocket \u670D\u52A1\u5668\u5DF2\u542F\u52A8\u5E76\u76D1\u542C");
|
|
222
|
+
await \u7CFB\u7EDFlog.info("WebSocket \u670D\u52A1\u5668\u5DF2\u542F\u52A8\u5E76\u76D1\u542C");
|
|
219
223
|
});
|
|
220
224
|
wss.on("error", async (err) => {
|
|
221
|
-
|
|
222
|
-
await log2.error("WebSocket \u670D\u52A1\u5668\u53D1\u751F\u9519\u8BEF: %o", err);
|
|
225
|
+
await \u7CFB\u7EDFlog.error("WebSocket \u670D\u52A1\u5668\u53D1\u751F\u9519\u8BEF: %o", err);
|
|
223
226
|
});
|
|
224
227
|
wss.on("connection", async (ws, req) => {
|
|
225
|
-
let
|
|
226
|
-
await
|
|
228
|
+
let \u63A5\u53E3log = \u7CFB\u7EDFlog.extend((0, import_short_uuid.default)().new());
|
|
229
|
+
await \u63A5\u53E3log.debug("\u6536\u5230 WebSocket \u8FDE\u63A5\u8BF7\u6C42: %o", req.url);
|
|
227
230
|
let \u5BA2\u6237\u7AEFid = req.url?.split("?id=")[1] ?? null;
|
|
228
231
|
if (\u5BA2\u6237\u7AEFid === null) {
|
|
229
|
-
await
|
|
230
|
-
return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws,
|
|
232
|
+
await \u63A5\u53E3log.error("\u8FDE\u63A5\u8BF7\u6C42\u7F3A\u5C11\u5BA2\u6237\u7AEF ID");
|
|
233
|
+
return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws, \u63A5\u53E3log, 4001, "\u7F3A\u5C11\u5BA2\u6237\u7AEF ID");
|
|
231
234
|
}
|
|
232
|
-
await
|
|
235
|
+
await \u63A5\u53E3log.debug("\u89E3\u6790\u5BA2\u6237\u7AEF ID: %s", \u5BA2\u6237\u7AEFid);
|
|
233
236
|
let WebSocket\u7BA1\u7406\u56682 = Global.getItemSync("WebSocket\u7BA1\u7406\u5668");
|
|
234
237
|
let \u8FDE\u63A5\u5DF2\u5B58\u5728 = WebSocket\u7BA1\u7406\u56682.\u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u5BA2\u6237\u7AEFid);
|
|
235
238
|
if (\u8FDE\u63A5\u5DF2\u5B58\u5728) {
|
|
236
|
-
await
|
|
237
|
-
return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws,
|
|
239
|
+
await \u63A5\u53E3log.error("\u5BA2\u6237\u7AEF ID \u5DF2\u5B58\u5728: %s", \u5BA2\u6237\u7AEFid);
|
|
240
|
+
return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws, \u63A5\u53E3log, 4002, "\u5BA2\u6237\u7AEF ID \u5DF2\u5B58\u5728");
|
|
238
241
|
}
|
|
239
242
|
WebSocket\u7BA1\u7406\u56682.\u589E\u52A0\u8FDE\u63A5(\u5BA2\u6237\u7AEFid, ws);
|
|
240
|
-
await
|
|
243
|
+
await \u63A5\u53E3log.info("WebSocket \u8FDE\u63A5\u5DF2\u5EFA\u7ACB, \u5BA2\u6237\u7AEF ID: %s", \u5BA2\u6237\u7AEFid);
|
|
241
244
|
ws.on("close", async () => {
|
|
242
|
-
await
|
|
245
|
+
await \u63A5\u53E3log.info("WebSocket \u8FDE\u63A5\u5173\u95ED: %s", \u5BA2\u6237\u7AEFid);
|
|
243
246
|
WebSocket\u7BA1\u7406\u56682.\u5220\u9664\u8FDE\u63A5(\u5BA2\u6237\u7AEFid);
|
|
244
247
|
});
|
|
245
248
|
ws.on("error", async (err) => {
|
|
246
|
-
await
|
|
249
|
+
await \u63A5\u53E3log.error("WebSocket \u51FA\u73B0\u9519\u8BEF, \u5BA2\u6237\u7AEF ID: %s, \u9519\u8BEF: %o", \u5BA2\u6237\u7AEFid, err);
|
|
247
250
|
WebSocket\u7BA1\u7406\u56682.\u5220\u9664\u8FDE\u63A5(\u5BA2\u6237\u7AEFid);
|
|
248
251
|
});
|
|
249
252
|
});
|
|
250
253
|
}
|
|
251
|
-
async \u5173\u95EDWebSocket\u8FDE\u63A5(ws,
|
|
252
|
-
await
|
|
254
|
+
async \u5173\u95EDWebSocket\u8FDE\u63A5(ws, \u63A5\u53E3log, code, reason) {
|
|
255
|
+
await \u63A5\u53E3log.debug(`\u5173\u95ED WebSocket \u8FDE\u63A5, \u4EE3\u7801: ${code}, \u539F\u56E0: ${reason}`);
|
|
253
256
|
ws.close(code, reason);
|
|
254
257
|
}
|
|
255
258
|
\u83B7\u53D6\u672C\u5730\u5730\u5740() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Request, Response } from 'express';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { 接 as ______, a as ______$1, l as ____Base, 空 as ___, b as __, 常 as _______, q as __________, r as __________$1 } from '../interface-base-
|
|
3
|
+
import { 接 as ______, a as ______$1, l as ____Base, 空 as ___, b as __, 常 as _______, q as __________, r as __________$1 } from '../interface-base-Dq8o7vnl.cjs';
|
|
4
4
|
import { 自定义返回器 as ______$2 } from '../interface/interface-retuen.cjs';
|
|
5
5
|
import '@lsby/ts-fp-data';
|
|
6
6
|
import '../help/interior.cjs';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { 接 as ______, a as ______$1, l as ____Base, 空 as ___, b as __, 常 as _______, q as __________, r as __________$1 } from '../interface-base-
|
|
2
|
+
import { 接 as ______, a as ______$1, l as ____Base, 空 as ___, b as __, 常 as _______, q as __________, r as __________$1 } from '../interface-base-Dq8o7vnl.cjs';
|
|
3
3
|
import { 常用返回器 as _____ } from '../interface/interface-retuen.cjs';
|
|
4
4
|
import '@lsby/ts-fp-data';
|
|
5
5
|
import 'express';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { 接 as ______, a as ______$1, l as ____Base, 空 as ___, b as __, y as ___________, q as __________, r as __________$1 } from '../interface-base-
|
|
2
|
+
import { 接 as ______, a as ______$1, l as ____Base, 空 as ___, b as __, y as ___________, q as __________, r as __________$1 } from '../interface-base-Dq8o7vnl.cjs';
|
|
3
3
|
import { 常用返回器 as _____ } from '../interface/interface-retuen.cjs';
|
|
4
4
|
import '@lsby/ts-fp-data';
|
|
5
5
|
import 'express';
|
|
@@ -38,20 +38,20 @@ var \u63A5\u53E3\u903B\u8F91Base = class _\u63A5\u53E3\u903B\u8F91Base {
|
|
|
38
38
|
await \u65E5\u5FD7\u5BF9\u8C61.debug("\u63D2\u4EF6 \u6267\u884C\u5B8C\u6BD5");
|
|
39
39
|
return \u5408\u5E76\u7ED3\u679C;
|
|
40
40
|
}
|
|
41
|
-
async \u901A\u8FC7\u63D2\u4EF6\u7ED3\u679C\u8FD0\u884C(\u5408\u5E76\u63D2\u4EF6\u7ED3\u679C, \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4F20\u5165\u7684\
|
|
42
|
-
let log = \u4F20\u5165\u7684\
|
|
41
|
+
async \u901A\u8FC7\u63D2\u4EF6\u7ED3\u679C\u8FD0\u884C(\u5408\u5E76\u63D2\u4EF6\u7ED3\u679C, \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4F20\u5165\u7684\u8BF7\u6C42\u9644\u52A0\u53C2\u6570) {
|
|
42
|
+
let log = \u4F20\u5165\u7684\u8BF7\u6C42\u9644\u52A0\u53C2\u6570.log.extend("\u63A5\u53E3\u903B\u8F91");
|
|
43
43
|
let \u6E05\u7406\u51FD\u6570 = this.\u83B7\u5F97\u6E05\u7406\u51FD\u6570?.();
|
|
44
44
|
let \u6700\u7EC8\u7ED3\u679C = void 0;
|
|
45
45
|
try {
|
|
46
46
|
await log.debug("\u51C6\u5907\u6267\u884C\u63A5\u53E3\u5B9E\u73B0...");
|
|
47
|
-
let \u5B9E\u73B0\u7ED3\u679C = await this.\u5B9E\u73B0(\u5408\u5E76\u63D2\u4EF6\u7ED3\u679C, \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4F20\u5165\u7684\
|
|
47
|
+
let \u5B9E\u73B0\u7ED3\u679C = await this.\u5B9E\u73B0(\u5408\u5E76\u63D2\u4EF6\u7ED3\u679C, \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, \u4F20\u5165\u7684\u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
|
|
48
48
|
await log.debug("\u63A5\u53E3\u5B9E\u73B0\u6267\u884C\u5B8C\u6BD5");
|
|
49
49
|
\u6700\u7EC8\u7ED3\u679C = \u5B9E\u73B0\u7ED3\u679C.map((a) => ({ ...\u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570, ...a }));
|
|
50
50
|
return \u6700\u7EC8\u7ED3\u679C;
|
|
51
51
|
} finally {
|
|
52
52
|
if (\u6E05\u7406\u51FD\u6570 !== void 0) {
|
|
53
53
|
let \u4E0A\u5C42\u6DF7\u5408\u7ED3\u679C = \u6700\u7EC8\u7ED3\u679C !== void 0 && \u6700\u7EC8\u7ED3\u679C.isRight() === true ? \u6700\u7EC8\u7ED3\u679C.assertRight().getRight() : \u4F20\u5165\u7684\u903B\u8F91\u9644\u52A0\u53C2\u6570;
|
|
54
|
-
await \u6E05\u7406\u51FD\u6570(\u5408\u5E76\u63D2\u4EF6\u7ED3\u679C, \u4E0A\u5C42\u6DF7\u5408\u7ED3\u679C, \u4F20\u5165\u7684\
|
|
54
|
+
await \u6E05\u7406\u51FD\u6570(\u5408\u5E76\u63D2\u4EF6\u7ED3\u679C, \u4E0A\u5C42\u6DF7\u5408\u7ED3\u679C, \u4F20\u5165\u7684\u8BF7\u6C42\u9644\u52A0\u53C2\u6570);
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Global
|
|
3
|
-
} from "./chunk-OUDYK6TE.js";
|
|
4
1
|
import {
|
|
5
2
|
递归截断字符串
|
|
6
3
|
} from "./chunk-ZIVQ3WZA.js";
|
|
4
|
+
import {
|
|
5
|
+
Global
|
|
6
|
+
} from "./chunk-OUDYK6TE.js";
|
|
7
7
|
|
|
8
8
|
// src/server/server.ts
|
|
9
9
|
import express from "express";
|
|
@@ -12,18 +12,24 @@ import { networkInterfaces } from "os";
|
|
|
12
12
|
import short from "short-uuid";
|
|
13
13
|
import { WebSocketServer } from "ws";
|
|
14
14
|
var \u670D\u52A1\u5668 = class {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
\u7CFB\u7EDFlog = Global.getItem("log");
|
|
16
|
+
\u63A5\u53E3log;
|
|
17
|
+
\u63A5\u53E3\u4EEC;
|
|
18
|
+
\u7AEF\u53E3;
|
|
19
|
+
\u9759\u6001\u8D44\u6E90\u8DEF\u5F84;
|
|
20
|
+
\u9ED8\u8BA4get\u6587\u4EF6\u8DEF\u5F84;
|
|
21
|
+
constructor(options) {
|
|
22
|
+
this.\u63A5\u53E3\u4EEC = options.\u63A5\u53E3\u4EEC;
|
|
23
|
+
this.\u7AEF\u53E3 = options.\u7AEF\u53E3;
|
|
24
|
+
this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84 = options.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84;
|
|
25
|
+
this.\u9ED8\u8BA4get\u6587\u4EF6\u8DEF\u5F84 = options.\u9ED8\u8BA4get\u6587\u4EF6\u8DEF\u5F84;
|
|
26
|
+
this.\u63A5\u53E3log = options.log !== void 0 ? Promise.resolve(options.log) : Global.getItem("log");
|
|
20
27
|
}
|
|
21
|
-
log = Global.getItem("log");
|
|
22
28
|
async run() {
|
|
23
|
-
let log = (await this.log).extend("\u670D\u52A1\u5668");
|
|
24
29
|
let app = express();
|
|
30
|
+
let \u7CFB\u7EDFlog = await this.\u7CFB\u7EDFlog;
|
|
25
31
|
if (this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84 !== void 0) {
|
|
26
|
-
await
|
|
32
|
+
await \u7CFB\u7EDFlog.debug(`\u8BBE\u7F6E\u9759\u6001\u8D44\u6E90\u8DEF\u5F84: ${this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84}`);
|
|
27
33
|
app.use(express.static(this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84));
|
|
28
34
|
}
|
|
29
35
|
app.use(this.\u5904\u7406\u8BF7\u6C42.bind(this));
|
|
@@ -33,17 +39,17 @@ var \u670D\u52A1\u5668 = class {
|
|
|
33
39
|
}
|
|
34
40
|
async \u5904\u7406\u8BF7\u6C42(req, res) {
|
|
35
41
|
let \u8BF7\u6C42id = short().new();
|
|
36
|
-
let \
|
|
37
|
-
let
|
|
42
|
+
let \u7CFB\u7EDFlog = (await this.\u7CFB\u7EDFlog).extend(\u8BF7\u6C42id);
|
|
43
|
+
let \u63A5\u53E3log = (await this.\u63A5\u53E3log).extend(\u8BF7\u6C42id);
|
|
38
44
|
let \u5F00\u59CB\u65F6\u95F4 = Date.now();
|
|
39
45
|
try {
|
|
40
46
|
let { path: \u8BF7\u6C42\u8DEF\u5F84, method } = req;
|
|
41
47
|
\u8BF7\u6C42\u8DEF\u5F84 = decodeURIComponent(\u8BF7\u6C42\u8DEF\u5F84);
|
|
42
48
|
let \u8BF7\u6C42\u65B9\u6CD5 = method.toLowerCase();
|
|
43
|
-
await
|
|
49
|
+
await \u7CFB\u7EDFlog.debug("\u6536\u5230\u8BF7\u6C42, \u8DEF\u5F84: %o, \u65B9\u6CD5: %o", \u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5);
|
|
44
50
|
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;
|
|
45
51
|
if (\u76EE\u6807\u63A5\u53E3 !== null) {
|
|
46
|
-
await this.\u5904\u7406\u63A5\u53E3\u903B\u8F91(req, res, \u76EE\u6807\u63A5\u53E3,
|
|
52
|
+
await this.\u5904\u7406\u63A5\u53E3\u903B\u8F91(req, res, \u76EE\u6807\u63A5\u53E3, \u63A5\u53E3log, \u7CFB\u7EDFlog);
|
|
47
53
|
return;
|
|
48
54
|
}
|
|
49
55
|
if (this.\u9ED8\u8BA4get\u6587\u4EF6\u8DEF\u5F84 !== void 0 && \u8BF7\u6C42\u65B9\u6CD5 === "get") {
|
|
@@ -52,31 +58,30 @@ var \u670D\u52A1\u5668 = class {
|
|
|
52
58
|
res.send(\u9ED8\u8BA4\u6587\u4EF6\u5185\u5BB9);
|
|
53
59
|
return;
|
|
54
60
|
} catch (e) {
|
|
55
|
-
await
|
|
61
|
+
await \u7CFB\u7EDFlog.error("\u8FD4\u56DE\u9ED8\u8BA4get\u6587\u4EF6\u5185\u5BB9\u5931\u8D25: %o", String(e));
|
|
56
62
|
}
|
|
57
63
|
}
|
|
58
|
-
await
|
|
64
|
+
await \u7CFB\u7EDFlog.debug("\u6CA1\u6709\u547D\u4E2D\u4EFB\u4F55\u8D44\u6E90");
|
|
59
65
|
res.status(404).end();
|
|
60
66
|
} catch (error) {
|
|
61
|
-
await
|
|
67
|
+
await \u7CFB\u7EDFlog.error(error);
|
|
62
68
|
res.status(500).send("\u670D\u52A1\u5668\u5185\u90E8\u9519\u8BEF");
|
|
63
69
|
} finally {
|
|
64
70
|
let \u8017\u65F6ms = Date.now() - \u5F00\u59CB\u65F6\u95F4;
|
|
65
|
-
await \
|
|
71
|
+
await \u7CFB\u7EDFlog.info("\u8BF7\u6C42\u5B8C\u6210, \u8017\u65F6: %o ms", \u8017\u65F6ms);
|
|
66
72
|
}
|
|
67
73
|
}
|
|
68
|
-
async \u5904\u7406\u63A5\u53E3\u903B\u8F91(req, res, \u76EE\u6807\u63A5\u53E3, \
|
|
69
|
-
let log = \u8BF7\u6C42\u9644\u52A0\u53C2\u6570.log.extend("\u5904\u7406\u63A5\u53E3\u903B\u8F91");
|
|
74
|
+
async \u5904\u7406\u63A5\u53E3\u903B\u8F91(req, res, \u76EE\u6807\u63A5\u53E3, \u63A5\u53E3log, \u7CFB\u7EDFlog) {
|
|
70
75
|
let \u63A5\u53E3\u903B\u8F91 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u903B\u8F91();
|
|
71
76
|
let \u7ED3\u679C\u8F6C\u6362\u5668 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u7ED3\u679C\u8F6C\u6362\u5668();
|
|
72
77
|
let \u7ED3\u679C\u8FD4\u56DE\u5668 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u7ED3\u679C\u8FD4\u56DE\u5668();
|
|
73
78
|
let \u603B\u5F00\u59CB = Date.now();
|
|
74
79
|
let \u5F00\u59CB = Date.now();
|
|
75
|
-
await
|
|
76
|
-
let \u63D2\u4EF6\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F91.\u8BA1\u7B97\u63D2\u4EF6\u7ED3\u679C(req, res, \
|
|
77
|
-
let \u63A5\u53E3\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F91.\u901A\u8FC7\u63D2\u4EF6\u7ED3\u679C\u8FD0\u884C(\u63D2\u4EF6\u7ED3\u679C, {}, \
|
|
80
|
+
await \u7CFB\u7EDFlog.debug("\u8C03\u7528\u63A5\u53E3\u903B\u8F91...");
|
|
81
|
+
let \u63D2\u4EF6\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F91.\u8BA1\u7B97\u63D2\u4EF6\u7ED3\u679C(req, res, { log: \u7CFB\u7EDFlog });
|
|
82
|
+
let \u63A5\u53E3\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F91.\u901A\u8FC7\u63D2\u4EF6\u7ED3\u679C\u8FD0\u884C(\u63D2\u4EF6\u7ED3\u679C, {}, { log: \u63A5\u53E3log });
|
|
78
83
|
let \u63A5\u53E3\u8017\u65F6 = Date.now() - \u5F00\u59CB;
|
|
79
|
-
await
|
|
84
|
+
await \u7CFB\u7EDFlog.info("\u63A5\u53E3\u903B\u8F91\u6267\u884C\u5B8C\u6BD5, \u8017\u65F6: %o ms", \u63A5\u53E3\u8017\u65F6);
|
|
80
85
|
\u5F00\u59CB = Date.now();
|
|
81
86
|
let \u8F6C\u6362\u7ED3\u679C = \u7ED3\u679C\u8F6C\u6362\u5668.\u5B9E\u73B0(\u63A5\u53E3\u7ED3\u679C);
|
|
82
87
|
let \u9519\u8BEF\u7ED3\u679C = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod().safeParse(\u8F6C\u6362\u7ED3\u679C);
|
|
@@ -88,61 +93,59 @@ var \u670D\u52A1\u5668 = class {
|
|
|
88
93
|
\u6700\u7EC8\u7ED3\u679C = \u6B63\u786E\u7ED3\u679C.data;
|
|
89
94
|
} else {
|
|
90
95
|
let \u7ED3\u679C\u5B57\u7B26\u4E32 = JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u8F6C\u6362\u7ED3\u679C));
|
|
91
|
-
await
|
|
92
|
-
await
|
|
93
|
-
await
|
|
96
|
+
await \u7CFB\u7EDFlog.error(`\u8F6C\u6362\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C: ${\u7ED3\u679C\u5B57\u7B26\u4E32}`);
|
|
97
|
+
await \u7CFB\u7EDFlog.error("\u5BF9\u4E8E\u9519\u8BEF\u7ED3\u679C: %o", \u9519\u8BEF\u7ED3\u679C.error);
|
|
98
|
+
await \u7CFB\u7EDFlog.error("\u5BF9\u4E8E\u6B63\u786E\u7ED3\u679C: %o", \u6B63\u786E\u7ED3\u679C.error);
|
|
94
99
|
throw new Error(`\u8F6C\u6362\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C`);
|
|
95
100
|
}
|
|
96
101
|
let \u8F6C\u6362\u8017\u65F6 = Date.now() - \u5F00\u59CB;
|
|
97
|
-
await
|
|
98
|
-
await
|
|
102
|
+
await \u7CFB\u7EDFlog.info("\u7ED3\u679C\u8F6C\u6362\u4E0E\u6821\u9A8C\u5B8C\u6210, \u8017\u65F6: %o ms", \u8F6C\u6362\u8017\u65F6);
|
|
103
|
+
await \u7CFB\u7EDFlog.debug("\u6700\u7EC8\u7ED3\u679C: %o", JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6700\u7EC8\u7ED3\u679C)));
|
|
99
104
|
\u5F00\u59CB = Date.now();
|
|
100
105
|
await \u7ED3\u679C\u8FD4\u56DE\u5668.\u8FD4\u56DE(req, res, \u6700\u7EC8\u7ED3\u679C);
|
|
101
106
|
let \u8FD4\u56DE\u8017\u65F6 = Date.now() - \u5F00\u59CB;
|
|
102
|
-
await
|
|
107
|
+
await \u7CFB\u7EDFlog.info("\u8FD4\u56DE\u903B\u8F91\u6267\u884C\u5B8C\u6BD5, \u8017\u65F6: %o ms", \u8FD4\u56DE\u8017\u65F6);
|
|
103
108
|
let \u603B\u8017\u65F6 = Date.now() - \u603B\u5F00\u59CB;
|
|
104
|
-
await
|
|
109
|
+
await \u7CFB\u7EDFlog.info("\u63A5\u53E3\u5B8C\u6574\u6267\u884C\u8017\u65F6: %o ms", \u603B\u8017\u65F6);
|
|
105
110
|
}
|
|
106
111
|
async \u521D\u59CB\u5316WebSocket(server) {
|
|
107
112
|
let wss = new WebSocketServer({ server });
|
|
108
|
-
let
|
|
113
|
+
let \u7CFB\u7EDFlog = await this.\u7CFB\u7EDFlog;
|
|
109
114
|
wss.on("listening", async () => {
|
|
110
|
-
|
|
111
|
-
await log.info("WebSocket \u670D\u52A1\u5668\u5DF2\u542F\u52A8\u5E76\u76D1\u542C");
|
|
115
|
+
await \u7CFB\u7EDFlog.info("WebSocket \u670D\u52A1\u5668\u5DF2\u542F\u52A8\u5E76\u76D1\u542C");
|
|
112
116
|
});
|
|
113
117
|
wss.on("error", async (err) => {
|
|
114
|
-
|
|
115
|
-
await log.error("WebSocket \u670D\u52A1\u5668\u53D1\u751F\u9519\u8BEF: %o", err);
|
|
118
|
+
await \u7CFB\u7EDFlog.error("WebSocket \u670D\u52A1\u5668\u53D1\u751F\u9519\u8BEF: %o", err);
|
|
116
119
|
});
|
|
117
120
|
wss.on("connection", async (ws, req) => {
|
|
118
|
-
let
|
|
119
|
-
await
|
|
121
|
+
let \u63A5\u53E3log = \u7CFB\u7EDFlog.extend(short().new());
|
|
122
|
+
await \u63A5\u53E3log.debug("\u6536\u5230 WebSocket \u8FDE\u63A5\u8BF7\u6C42: %o", req.url);
|
|
120
123
|
let \u5BA2\u6237\u7AEFid = req.url?.split("?id=")[1] ?? null;
|
|
121
124
|
if (\u5BA2\u6237\u7AEFid === null) {
|
|
122
|
-
await
|
|
123
|
-
return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws,
|
|
125
|
+
await \u63A5\u53E3log.error("\u8FDE\u63A5\u8BF7\u6C42\u7F3A\u5C11\u5BA2\u6237\u7AEF ID");
|
|
126
|
+
return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws, \u63A5\u53E3log, 4001, "\u7F3A\u5C11\u5BA2\u6237\u7AEF ID");
|
|
124
127
|
}
|
|
125
|
-
await
|
|
128
|
+
await \u63A5\u53E3log.debug("\u89E3\u6790\u5BA2\u6237\u7AEF ID: %s", \u5BA2\u6237\u7AEFid);
|
|
126
129
|
let WebSocket\u7BA1\u7406\u5668 = Global.getItemSync("WebSocket\u7BA1\u7406\u5668");
|
|
127
130
|
let \u8FDE\u63A5\u5DF2\u5B58\u5728 = WebSocket\u7BA1\u7406\u5668.\u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u5BA2\u6237\u7AEFid);
|
|
128
131
|
if (\u8FDE\u63A5\u5DF2\u5B58\u5728) {
|
|
129
|
-
await
|
|
130
|
-
return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws,
|
|
132
|
+
await \u63A5\u53E3log.error("\u5BA2\u6237\u7AEF ID \u5DF2\u5B58\u5728: %s", \u5BA2\u6237\u7AEFid);
|
|
133
|
+
return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws, \u63A5\u53E3log, 4002, "\u5BA2\u6237\u7AEF ID \u5DF2\u5B58\u5728");
|
|
131
134
|
}
|
|
132
135
|
WebSocket\u7BA1\u7406\u5668.\u589E\u52A0\u8FDE\u63A5(\u5BA2\u6237\u7AEFid, ws);
|
|
133
|
-
await
|
|
136
|
+
await \u63A5\u53E3log.info("WebSocket \u8FDE\u63A5\u5DF2\u5EFA\u7ACB, \u5BA2\u6237\u7AEF ID: %s", \u5BA2\u6237\u7AEFid);
|
|
134
137
|
ws.on("close", async () => {
|
|
135
|
-
await
|
|
138
|
+
await \u63A5\u53E3log.info("WebSocket \u8FDE\u63A5\u5173\u95ED: %s", \u5BA2\u6237\u7AEFid);
|
|
136
139
|
WebSocket\u7BA1\u7406\u5668.\u5220\u9664\u8FDE\u63A5(\u5BA2\u6237\u7AEFid);
|
|
137
140
|
});
|
|
138
141
|
ws.on("error", async (err) => {
|
|
139
|
-
await
|
|
142
|
+
await \u63A5\u53E3log.error("WebSocket \u51FA\u73B0\u9519\u8BEF, \u5BA2\u6237\u7AEF ID: %s, \u9519\u8BEF: %o", \u5BA2\u6237\u7AEFid, err);
|
|
140
143
|
WebSocket\u7BA1\u7406\u5668.\u5220\u9664\u8FDE\u63A5(\u5BA2\u6237\u7AEFid);
|
|
141
144
|
});
|
|
142
145
|
});
|
|
143
146
|
}
|
|
144
|
-
async \u5173\u95EDWebSocket\u8FDE\u63A5(ws,
|
|
145
|
-
await
|
|
147
|
+
async \u5173\u95EDWebSocket\u8FDE\u63A5(ws, \u63A5\u53E3log, code, reason) {
|
|
148
|
+
await \u63A5\u53E3log.debug(`\u5173\u95ED WebSocket \u8FDE\u63A5, \u4EE3\u7801: ${code}, \u539F\u56E0: ${reason}`);
|
|
146
149
|
ws.close(code, reason);
|
|
147
150
|
}
|
|
148
151
|
\u83B7\u53D6\u672C\u5730\u5730\u5740() {
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
插件
|
|
3
|
-
} from "./chunk-43GZE5YL.js";
|
|
4
1
|
import {
|
|
5
2
|
Global
|
|
6
3
|
} from "./chunk-OUDYK6TE.js";
|
|
4
|
+
import {
|
|
5
|
+
插件
|
|
6
|
+
} from "./chunk-43GZE5YL.js";
|
|
7
7
|
|
|
8
8
|
// src/plugin/extend/web-socket.ts
|
|
9
9
|
import { WebSocket } from "ws";
|
|
10
10
|
import { z } from "zod";
|
|
11
11
|
var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
12
|
-
log = Global.getItem("log");
|
|
13
12
|
constructor(\u4FE1\u606F\u63CF\u8FF0) {
|
|
14
13
|
super(
|
|
15
14
|
z.object({
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
插件
|
|
3
3
|
} from "./chunk-43GZE5YL.js";
|
|
4
|
-
import {
|
|
5
|
-
Global
|
|
6
|
-
} from "./chunk-OUDYK6TE.js";
|
|
7
4
|
|
|
8
5
|
// src/plugin/extend/custom-data.ts
|
|
9
6
|
var \u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
10
|
-
log = Global.getItem("log");
|
|
11
7
|
constructor(t, data) {
|
|
12
8
|
super(t, async (_res, _req, \u9644\u52A0\u53C2\u6570) => {
|
|
13
9
|
let log = \u9644\u52A0\u53C2\u6570.log.extend("\u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6");
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
插件
|
|
3
3
|
} from "./chunk-43GZE5YL.js";
|
|
4
|
-
import {
|
|
5
|
-
Global
|
|
6
|
-
} from "./chunk-OUDYK6TE.js";
|
|
7
4
|
|
|
8
5
|
// src/plugin/extend/urlencoded.ts
|
|
9
6
|
import express from "express";
|
|
10
7
|
import { format } from "util";
|
|
11
8
|
var \u8868\u5355\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
12
|
-
log = Global.getItem("log");
|
|
13
9
|
constructor(t, opt) {
|
|
14
10
|
super(t, async (req, res, \u9644\u52A0\u53C2\u6570) => {
|
|
15
11
|
let log = \u9644\u52A0\u53C2\u6570.log.extend("JSON\u89E3\u6790\u63D2\u4EF6");
|