@lsby/net-core 0.10.2 → 0.11.2
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 +138 -45
- package/dist/cjs/index.d.cts +4 -1
- package/dist/cjs/interface/interface-base.d.cts +1 -1
- 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-CyfrfgWu.d.cts → interface-base-gRngpxki.d.cts} +6 -5
- package/dist/cjs/plugin/extend/custom-data.d.cts +1 -1
- 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/urlencoded.d.cts +1 -1
- package/dist/cjs/plugin/extend/web-socket.d.cts +1 -1
- package/dist/cjs/plugin/plug.d.cts +1 -1
- package/dist/cjs/server/server.cjs +48 -45
- 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/cjs/wrapper/express-compatible-wrapper.d.cts +1 -1
- package/dist/cjs/wrapper/file-download-wrapper.d.cts +1 -1
- package/dist/esm/chunk-NCYHKHIH.js +54 -0
- package/dist/esm/{chunk-3ZQFVYIR.js → chunk-NRUNCIP7.js} +48 -45
- package/dist/esm/chunk-XSYZ5A6R.js +61 -0
- package/dist/esm/index.d.ts +4 -1
- package/dist/esm/index.js +9 -1
- 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-result.d.ts +1 -1
- package/dist/esm/{interface-base-C1ZNSMJz.d.ts → interface-base-DDfmN_Dg.d.ts} +6 -5
- package/dist/esm/plugin/extend/custom-data.d.ts +1 -1
- package/dist/esm/plugin/extend/json.d.ts +1 -1
- 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/urlencoded.d.ts +1 -1
- package/dist/esm/plugin/extend/web-socket.d.ts +1 -1
- package/dist/esm/plugin/plug.d.ts +1 -1
- package/dist/esm/server/server.d.ts +1 -1
- package/dist/esm/server/server.js +1 -1
- package/dist/esm/wrapper/common-wrapper-return.d.ts +1 -1
- package/dist/esm/wrapper/common-wrapper.d.ts +1 -1
- package/dist/esm/wrapper/deferred-result-wrapper.d.ts +1 -1
- package/dist/esm/wrapper/express-compatible-wrapper.d.ts +1 -1
- package/dist/esm/wrapper/express-compatible-wrapper.js +6 -49
- package/dist/esm/wrapper/file-download-wrapper.d.ts +1 -1
- package/dist/esm/wrapper/file-download-wrapper.js +5 -56
- package/package.json +1 -1
|
@@ -122,8 +122,8 @@ function \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6570\u636E) {
|
|
|
122
122
|
|
|
123
123
|
// src/server/server.ts
|
|
124
124
|
var \u670D\u52A1\u5668 = class {
|
|
125
|
-
|
|
126
|
-
\
|
|
125
|
+
log;
|
|
126
|
+
\u65E5\u5FD7\u56DE\u8C03;
|
|
127
127
|
\u63A5\u53E3\u4EEC;
|
|
128
128
|
\u7AEF\u53E3;
|
|
129
129
|
\u9759\u6001\u8D44\u6E90\u8DEF\u5F84;
|
|
@@ -133,14 +133,17 @@ var \u670D\u52A1\u5668 = class {
|
|
|
133
133
|
this.\u7AEF\u53E3 = options.\u7AEF\u53E3;
|
|
134
134
|
this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84 = options.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84;
|
|
135
135
|
this.\u9ED8\u8BA4get\u6587\u4EF6\u8DEF\u5F84 = options.\u9ED8\u8BA4get\u6587\u4EF6\u8DEF\u5F84;
|
|
136
|
-
this.\
|
|
137
|
-
this
|
|
136
|
+
this.\u65E5\u5FD7\u56DE\u8C03 = options.\u65E5\u5FD7\u56DE\u8C03;
|
|
137
|
+
this.log = Global.getItem("log").then((a) => {
|
|
138
|
+
if (this.\u65E5\u5FD7\u56DE\u8C03 !== void 0) a.pipe(this.\u65E5\u5FD7\u56DE\u8C03);
|
|
139
|
+
return a;
|
|
140
|
+
});
|
|
138
141
|
}
|
|
139
142
|
async run() {
|
|
143
|
+
let log2 = await this.log;
|
|
140
144
|
let app = (0, import_express.default)();
|
|
141
|
-
let \u7CFB\u7EDFlog = await this.\u7CFB\u7EDFlog;
|
|
142
145
|
if (this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84 !== void 0) {
|
|
143
|
-
await
|
|
146
|
+
await log2.debug(`\u8BBE\u7F6E\u9759\u6001\u8D44\u6E90\u8DEF\u5F84: ${this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84}`);
|
|
144
147
|
app.use(import_express.default.static(this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84));
|
|
145
148
|
}
|
|
146
149
|
app.use(this.\u5904\u7406\u8BF7\u6C42.bind(this));
|
|
@@ -150,17 +153,16 @@ var \u670D\u52A1\u5668 = class {
|
|
|
150
153
|
}
|
|
151
154
|
async \u5904\u7406\u8BF7\u6C42(req, res) {
|
|
152
155
|
let \u8BF7\u6C42id = (0, import_short_uuid.default)().new();
|
|
153
|
-
let
|
|
154
|
-
let \u63A5\u53E3log = (await this.\u63A5\u53E3log).extend(\u8BF7\u6C42id);
|
|
156
|
+
let log2 = (await this.log).extend(\u8BF7\u6C42id);
|
|
155
157
|
let \u5F00\u59CB\u65F6\u95F4 = Date.now();
|
|
156
158
|
try {
|
|
157
159
|
let { path: \u8BF7\u6C42\u8DEF\u5F84, method } = req;
|
|
158
160
|
\u8BF7\u6C42\u8DEF\u5F84 = decodeURIComponent(\u8BF7\u6C42\u8DEF\u5F84);
|
|
159
161
|
let \u8BF7\u6C42\u65B9\u6CD5 = method.toLowerCase();
|
|
160
|
-
await
|
|
162
|
+
await log2.debug("\u6536\u5230\u8BF7\u6C42, \u8DEF\u5F84: %o, \u65B9\u6CD5: %o", \u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5);
|
|
161
163
|
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;
|
|
162
164
|
if (\u76EE\u6807\u63A5\u53E3 !== null) {
|
|
163
|
-
await this.\u5904\u7406\u63A5\u53E3\u903B\u8F91(req, res, \u76EE\u6807\u63A5\u53E3,
|
|
165
|
+
await this.\u5904\u7406\u63A5\u53E3\u903B\u8F91({ req, res, \u76EE\u6807\u63A5\u53E3, log: log2, \u8BF7\u6C42id });
|
|
164
166
|
return;
|
|
165
167
|
}
|
|
166
168
|
if (this.\u9ED8\u8BA4get\u6587\u4EF6\u8DEF\u5F84 !== void 0 && \u8BF7\u6C42\u65B9\u6CD5 === "get") {
|
|
@@ -169,35 +171,36 @@ var \u670D\u52A1\u5668 = class {
|
|
|
169
171
|
res.send(\u9ED8\u8BA4\u6587\u4EF6\u5185\u5BB9);
|
|
170
172
|
return;
|
|
171
173
|
} catch (e) {
|
|
172
|
-
await
|
|
174
|
+
await log2.error("\u8FD4\u56DE\u9ED8\u8BA4get\u6587\u4EF6\u5185\u5BB9\u5931\u8D25: %o", String(e));
|
|
173
175
|
}
|
|
174
176
|
}
|
|
175
|
-
await
|
|
177
|
+
await log2.debug("\u6CA1\u6709\u547D\u4E2D\u4EFB\u4F55\u8D44\u6E90");
|
|
176
178
|
res.status(404).end();
|
|
177
179
|
} catch (error) {
|
|
178
|
-
await
|
|
180
|
+
await log2.error(error);
|
|
179
181
|
res.status(500).send("\u670D\u52A1\u5668\u5185\u90E8\u9519\u8BEF");
|
|
180
182
|
} finally {
|
|
181
183
|
let \u8017\u65F6ms = Date.now() - \u5F00\u59CB\u65F6\u95F4;
|
|
182
|
-
await
|
|
184
|
+
await log2.info("\u8BF7\u6C42\u5B8C\u6210, \u8017\u65F6: %o ms", \u8017\u65F6ms);
|
|
183
185
|
}
|
|
184
186
|
}
|
|
185
|
-
async \u5904\u7406\u63A5\u53E3\u903B\u8F91(
|
|
187
|
+
async \u5904\u7406\u63A5\u53E3\u903B\u8F91(opt) {
|
|
188
|
+
let { req, res, \u76EE\u6807\u63A5\u53E3, log: log2, \u8BF7\u6C42id } = opt;
|
|
186
189
|
let \u63A5\u53E3\u903B\u8F91 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u903B\u8F91();
|
|
187
190
|
let \u7ED3\u679C\u8F6C\u6362\u5668 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u7ED3\u679C\u8F6C\u6362\u5668();
|
|
188
191
|
let \u7ED3\u679C\u8FD4\u56DE\u5668 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u7ED3\u679C\u8FD4\u56DE\u5668();
|
|
189
192
|
let \u603B\u5F00\u59CB = Date.now();
|
|
190
193
|
let \u5F00\u59CB = Date.now();
|
|
191
|
-
await
|
|
194
|
+
await log2.debug("\u8C03\u7528\u63A5\u53E3\u903B\u8F91...");
|
|
192
195
|
let \u63D2\u4EF6\u4EEC = \u63A5\u53E3\u903B\u8F91.\u83B7\u5F97\u63D2\u4EF6\u4EEC();
|
|
193
|
-
await
|
|
194
|
-
let \u63D2\u4EF6\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F91.\u8BA1\u7B97\u63D2\u4EF6\u7ED3\u679C(req, res, { log: \
|
|
195
|
-
await
|
|
196
|
-
await
|
|
197
|
-
let \u63A5\u53E3\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F91.\u901A\u8FC7\u63D2\u4EF6\u7ED3\u679C\u8FD0\u884C(\u63D2\u4EF6\u7ED3\u679C, {}, { log: \
|
|
198
|
-
await
|
|
196
|
+
await log2.debug("\u627E\u5230 %o \u4E2A \u63D2\u4EF6, \u51C6\u5907\u6267\u884C...", \u63D2\u4EF6\u4EEC.length);
|
|
197
|
+
let \u63D2\u4EF6\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F91.\u8BA1\u7B97\u63D2\u4EF6\u7ED3\u679C(req, res, { log: log2, \u8BF7\u6C42id });
|
|
198
|
+
await log2.debug("\u63D2\u4EF6 \u6267\u884C\u5B8C\u6BD5");
|
|
199
|
+
await log2.debug("\u51C6\u5907\u6267\u884C\u63A5\u53E3\u5B9E\u73B0...");
|
|
200
|
+
let \u63A5\u53E3\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F91.\u901A\u8FC7\u63D2\u4EF6\u7ED3\u679C\u8FD0\u884C(\u63D2\u4EF6\u7ED3\u679C, {}, { log: log2, \u8BF7\u6C42id });
|
|
201
|
+
await log2.debug("\u63A5\u53E3\u5B9E\u73B0\u6267\u884C\u5B8C\u6BD5");
|
|
199
202
|
let \u63A5\u53E3\u8017\u65F6 = Date.now() - \u5F00\u59CB;
|
|
200
|
-
await
|
|
203
|
+
await log2.info("\u63A5\u53E3\u903B\u8F91\u6267\u884C\u5B8C\u6BD5, \u8017\u65F6: %o ms", \u63A5\u53E3\u8017\u65F6);
|
|
201
204
|
\u5F00\u59CB = Date.now();
|
|
202
205
|
let \u8F6C\u6362\u7ED3\u679C = \u7ED3\u679C\u8F6C\u6362\u5668.\u5B9E\u73B0(\u63A5\u53E3\u7ED3\u679C);
|
|
203
206
|
let \u9519\u8BEF\u7ED3\u679C = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod().safeParse(\u8F6C\u6362\u7ED3\u679C);
|
|
@@ -209,59 +212,59 @@ var \u670D\u52A1\u5668 = class {
|
|
|
209
212
|
\u6700\u7EC8\u7ED3\u679C = \u6B63\u786E\u7ED3\u679C.data;
|
|
210
213
|
} else {
|
|
211
214
|
let \u7ED3\u679C\u5B57\u7B26\u4E32 = JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u8F6C\u6362\u7ED3\u679C));
|
|
212
|
-
await
|
|
213
|
-
await
|
|
214
|
-
await
|
|
215
|
+
await log2.error(`\u8F6C\u6362\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C: ${\u7ED3\u679C\u5B57\u7B26\u4E32}`);
|
|
216
|
+
await log2.error("\u5BF9\u4E8E\u9519\u8BEF\u7ED3\u679C: %o", \u9519\u8BEF\u7ED3\u679C.error);
|
|
217
|
+
await log2.error("\u5BF9\u4E8E\u6B63\u786E\u7ED3\u679C: %o", \u6B63\u786E\u7ED3\u679C.error);
|
|
215
218
|
throw new Error(`\u8F6C\u6362\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C`);
|
|
216
219
|
}
|
|
217
220
|
let \u8F6C\u6362\u8017\u65F6 = Date.now() - \u5F00\u59CB;
|
|
218
|
-
await
|
|
219
|
-
await
|
|
221
|
+
await log2.info("\u7ED3\u679C\u8F6C\u6362\u4E0E\u6821\u9A8C\u5B8C\u6210, \u8017\u65F6: %o ms", \u8F6C\u6362\u8017\u65F6);
|
|
222
|
+
await log2.debug("\u6700\u7EC8\u7ED3\u679C: %o", JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6700\u7EC8\u7ED3\u679C)));
|
|
220
223
|
\u5F00\u59CB = Date.now();
|
|
221
224
|
await \u7ED3\u679C\u8FD4\u56DE\u5668.\u8FD4\u56DE(req, res, \u6700\u7EC8\u7ED3\u679C);
|
|
222
225
|
let \u8FD4\u56DE\u8017\u65F6 = Date.now() - \u5F00\u59CB;
|
|
223
|
-
await
|
|
226
|
+
await log2.info("\u8FD4\u56DE\u903B\u8F91\u6267\u884C\u5B8C\u6BD5, \u8017\u65F6: %o ms", \u8FD4\u56DE\u8017\u65F6);
|
|
224
227
|
let \u603B\u8017\u65F6 = Date.now() - \u603B\u5F00\u59CB;
|
|
225
|
-
await
|
|
228
|
+
await log2.info("\u63A5\u53E3\u5B8C\u6574\u6267\u884C\u8017\u65F6: %o ms", \u603B\u8017\u65F6);
|
|
226
229
|
}
|
|
227
230
|
async \u521D\u59CB\u5316WebSocket(server) {
|
|
231
|
+
let log2 = await this.log;
|
|
228
232
|
let wss = new import_ws2.WebSocketServer({ server });
|
|
229
|
-
let \u7CFB\u7EDFlog = await this.\u7CFB\u7EDFlog;
|
|
230
233
|
wss.on("listening", async () => {
|
|
231
|
-
await
|
|
234
|
+
await log2.info("WebSocket \u670D\u52A1\u5668\u5DF2\u542F\u52A8\u5E76\u76D1\u542C");
|
|
232
235
|
});
|
|
233
236
|
wss.on("error", async (err) => {
|
|
234
|
-
await
|
|
237
|
+
await log2.error("WebSocket \u670D\u52A1\u5668\u53D1\u751F\u9519\u8BEF: %o", err);
|
|
235
238
|
});
|
|
236
239
|
wss.on("connection", async (ws, req) => {
|
|
237
|
-
let \
|
|
238
|
-
await \
|
|
240
|
+
let \u8FDE\u63A5log = log2.extend((0, import_short_uuid.default)().new());
|
|
241
|
+
await \u8FDE\u63A5log.debug("\u6536\u5230 WebSocket \u8FDE\u63A5\u8BF7\u6C42: %o", req.url);
|
|
239
242
|
let \u5BA2\u6237\u7AEFid = req.url?.split("?id=")[1] ?? null;
|
|
240
243
|
if (\u5BA2\u6237\u7AEFid === null) {
|
|
241
|
-
await \
|
|
242
|
-
return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws, \
|
|
244
|
+
await \u8FDE\u63A5log.error("\u8FDE\u63A5\u8BF7\u6C42\u7F3A\u5C11\u5BA2\u6237\u7AEF ID");
|
|
245
|
+
return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws, \u8FDE\u63A5log, 4001, "\u7F3A\u5C11\u5BA2\u6237\u7AEF ID");
|
|
243
246
|
}
|
|
244
|
-
await \
|
|
247
|
+
await \u8FDE\u63A5log.debug("\u89E3\u6790\u5BA2\u6237\u7AEF ID: %s", \u5BA2\u6237\u7AEFid);
|
|
245
248
|
let WebSocket\u7BA1\u7406\u56682 = Global.getItemSync("WebSocket\u7BA1\u7406\u5668");
|
|
246
249
|
let \u8FDE\u63A5\u5DF2\u5B58\u5728 = WebSocket\u7BA1\u7406\u56682.\u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u5BA2\u6237\u7AEFid);
|
|
247
250
|
if (\u8FDE\u63A5\u5DF2\u5B58\u5728) {
|
|
248
|
-
await \
|
|
249
|
-
return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws, \
|
|
251
|
+
await \u8FDE\u63A5log.error("\u5BA2\u6237\u7AEF ID \u5DF2\u5B58\u5728: %s", \u5BA2\u6237\u7AEFid);
|
|
252
|
+
return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws, \u8FDE\u63A5log, 4002, "\u5BA2\u6237\u7AEF ID \u5DF2\u5B58\u5728");
|
|
250
253
|
}
|
|
251
254
|
WebSocket\u7BA1\u7406\u56682.\u589E\u52A0\u8FDE\u63A5(\u5BA2\u6237\u7AEFid, ws);
|
|
252
|
-
await \
|
|
255
|
+
await \u8FDE\u63A5log.info("WebSocket \u8FDE\u63A5\u5DF2\u5EFA\u7ACB, \u5BA2\u6237\u7AEF ID: %s", \u5BA2\u6237\u7AEFid);
|
|
253
256
|
ws.on("close", async () => {
|
|
254
|
-
await \
|
|
257
|
+
await \u8FDE\u63A5log.info("WebSocket \u8FDE\u63A5\u5173\u95ED: %s", \u5BA2\u6237\u7AEFid);
|
|
255
258
|
WebSocket\u7BA1\u7406\u56682.\u5220\u9664\u8FDE\u63A5(\u5BA2\u6237\u7AEFid);
|
|
256
259
|
});
|
|
257
260
|
ws.on("error", async (err) => {
|
|
258
|
-
await \
|
|
261
|
+
await \u8FDE\u63A5log.error("WebSocket \u51FA\u73B0\u9519\u8BEF, \u5BA2\u6237\u7AEF ID: %s, \u9519\u8BEF: %o", \u5BA2\u6237\u7AEFid, err);
|
|
259
262
|
WebSocket\u7BA1\u7406\u56682.\u5220\u9664\u8FDE\u63A5(\u5BA2\u6237\u7AEFid);
|
|
260
263
|
});
|
|
261
264
|
});
|
|
262
265
|
}
|
|
263
|
-
async \u5173\u95EDWebSocket\u8FDE\u63A5(ws,
|
|
264
|
-
await
|
|
266
|
+
async \u5173\u95EDWebSocket\u8FDE\u63A5(ws, log2, code, reason) {
|
|
267
|
+
await log2.debug(`\u5173\u95ED WebSocket \u8FDE\u63A5, \u4EE3\u7801: ${code}, \u539F\u56E0: ${reason}`);
|
|
265
268
|
ws.close(code, reason);
|
|
266
269
|
}
|
|
267
270
|
\u83B7\u53D6\u672C\u5730\u5730\u5740() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import '@lsby/ts-log';
|
|
2
2
|
import 'node:http';
|
|
3
|
-
export { 服 as 服务器, 请 as 请求附加参数类型 } from '../interface-base-
|
|
3
|
+
export { 日 as 日志回调类型, 服 as 服务器, 请 as 请求附加参数类型 } from '../interface-base-gRngpxki.cjs';
|
|
4
4
|
import 'zod';
|
|
5
5
|
import '@lsby/ts-fp-data';
|
|
6
6
|
import 'express';
|
|
@@ -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-gRngpxki.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-gRngpxki.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 __, 直 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-gRngpxki.cjs';
|
|
3
3
|
import { 常用返回器 as _____ } from '../interface/interface-retuen.cjs';
|
|
4
4
|
import '@lsby/ts-fp-data';
|
|
5
5
|
import 'express';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Request, Response } from 'express';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { b as __, 接 as ______, a as ______$1, l as ____Base, 空 as ___, w as _______ } from '../interface-base-
|
|
3
|
+
import { b as __, 接 as ______, a as ______$1, l as ____Base, 空 as ___, w as _______ } from '../interface-base-gRngpxki.cjs';
|
|
4
4
|
import { 接口结果返回器 as _______$1 } from '../interface/interface-retuen.cjs';
|
|
5
5
|
import '@lsby/ts-fp-data';
|
|
6
6
|
import '../help/interior.cjs';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Request, Response } from 'express';
|
|
2
2
|
import { ReadStream } from 'node:fs';
|
|
3
3
|
import { z } from 'zod';
|
|
4
|
-
import { 接 as ______, a as ______$1, l as ____Base, 空 as ___, b as __, 直 as _______, q as __________, r as __________$1 } from '../interface-base-
|
|
4
|
+
import { 接 as ______, a as ______$1, l as ____Base, 空 as ___, b as __, 直 as _______, q as __________, r as __________$1 } from '../interface-base-gRngpxki.cjs';
|
|
5
5
|
import { 接口结果返回器 as _______$1 } from '../interface/interface-retuen.cjs';
|
|
6
6
|
import '@lsby/ts-fp-data';
|
|
7
7
|
import '../help/interior.cjs';
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import {
|
|
2
|
+
接口结果返回器
|
|
3
|
+
} from "./chunk-XBAKTT6S.js";
|
|
4
|
+
import {
|
|
5
|
+
接口
|
|
6
|
+
} from "./chunk-MDUWXEQ7.js";
|
|
7
|
+
import {
|
|
8
|
+
接口逻辑Base
|
|
9
|
+
} from "./chunk-E23EZWBE.js";
|
|
10
|
+
import {
|
|
11
|
+
接口结果转换器
|
|
12
|
+
} from "./chunk-DNJQGD5M.js";
|
|
13
|
+
|
|
14
|
+
// src/wrapper/express-compatible-wrapper.ts
|
|
15
|
+
import { Right } from "@lsby/ts-fp-data";
|
|
16
|
+
import { z } from "zod";
|
|
17
|
+
var Express\u517C\u5BB9\u63A5\u53E3\u5C01\u88C5 = class extends \u63A5\u53E3 {
|
|
18
|
+
constructor(\u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5, \u5904\u7406\u51FD\u6570) {
|
|
19
|
+
let \u903B\u8F91 = \u63A5\u53E3\u903B\u8F91Base.\u6784\u9020([], async () => {
|
|
20
|
+
return new Right({});
|
|
21
|
+
});
|
|
22
|
+
let \u8F6C\u6362\u5668 = new Express\u517C\u5BB9\u7ED3\u679C\u8F6C\u6362\u5668();
|
|
23
|
+
let \u8FD4\u56DE\u5668 = new Express\u517C\u5BB9\u8FD4\u56DE\u5668(\u5904\u7406\u51FD\u6570);
|
|
24
|
+
super(
|
|
25
|
+
\u8BF7\u6C42\u8DEF\u5F84,
|
|
26
|
+
\u8BF7\u6C42\u65B9\u6CD5,
|
|
27
|
+
\u903B\u8F91,
|
|
28
|
+
z.any(),
|
|
29
|
+
// 错误形式不做限制
|
|
30
|
+
z.any(),
|
|
31
|
+
// 正确形式不做限制
|
|
32
|
+
\u8F6C\u6362\u5668,
|
|
33
|
+
\u8FD4\u56DE\u5668
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
var Express\u517C\u5BB9\u7ED3\u679C\u8F6C\u6362\u5668 = class extends \u63A5\u53E3\u7ED3\u679C\u8F6C\u6362\u5668 {
|
|
38
|
+
\u5B9E\u73B0(\u6570\u636E) {
|
|
39
|
+
return \u6570\u636E;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
var Express\u517C\u5BB9\u8FD4\u56DE\u5668 = class extends \u63A5\u53E3\u7ED3\u679C\u8FD4\u56DE\u5668 {
|
|
43
|
+
constructor(\u5904\u7406\u51FD\u6570) {
|
|
44
|
+
super();
|
|
45
|
+
this.\u5904\u7406\u51FD\u6570 = \u5904\u7406\u51FD\u6570;
|
|
46
|
+
}
|
|
47
|
+
\u8FD4\u56DE(req, res, _\u7ED3\u679C) {
|
|
48
|
+
return this.\u5904\u7406\u51FD\u6570(req, res);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export {
|
|
53
|
+
Express兼容接口封装
|
|
54
|
+
};
|
|
@@ -12,8 +12,8 @@ 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
|
-
\
|
|
15
|
+
log;
|
|
16
|
+
\u65E5\u5FD7\u56DE\u8C03;
|
|
17
17
|
\u63A5\u53E3\u4EEC;
|
|
18
18
|
\u7AEF\u53E3;
|
|
19
19
|
\u9759\u6001\u8D44\u6E90\u8DEF\u5F84;
|
|
@@ -23,14 +23,17 @@ var \u670D\u52A1\u5668 = class {
|
|
|
23
23
|
this.\u7AEF\u53E3 = options.\u7AEF\u53E3;
|
|
24
24
|
this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84 = options.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84;
|
|
25
25
|
this.\u9ED8\u8BA4get\u6587\u4EF6\u8DEF\u5F84 = options.\u9ED8\u8BA4get\u6587\u4EF6\u8DEF\u5F84;
|
|
26
|
-
this.\
|
|
27
|
-
this
|
|
26
|
+
this.\u65E5\u5FD7\u56DE\u8C03 = options.\u65E5\u5FD7\u56DE\u8C03;
|
|
27
|
+
this.log = Global.getItem("log").then((a) => {
|
|
28
|
+
if (this.\u65E5\u5FD7\u56DE\u8C03 !== void 0) a.pipe(this.\u65E5\u5FD7\u56DE\u8C03);
|
|
29
|
+
return a;
|
|
30
|
+
});
|
|
28
31
|
}
|
|
29
32
|
async run() {
|
|
33
|
+
let log = await this.log;
|
|
30
34
|
let app = express();
|
|
31
|
-
let \u7CFB\u7EDFlog = await this.\u7CFB\u7EDFlog;
|
|
32
35
|
if (this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84 !== void 0) {
|
|
33
|
-
await
|
|
36
|
+
await log.debug(`\u8BBE\u7F6E\u9759\u6001\u8D44\u6E90\u8DEF\u5F84: ${this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84}`);
|
|
34
37
|
app.use(express.static(this.\u9759\u6001\u8D44\u6E90\u8DEF\u5F84));
|
|
35
38
|
}
|
|
36
39
|
app.use(this.\u5904\u7406\u8BF7\u6C42.bind(this));
|
|
@@ -40,17 +43,16 @@ var \u670D\u52A1\u5668 = class {
|
|
|
40
43
|
}
|
|
41
44
|
async \u5904\u7406\u8BF7\u6C42(req, res) {
|
|
42
45
|
let \u8BF7\u6C42id = short().new();
|
|
43
|
-
let
|
|
44
|
-
let \u63A5\u53E3log = (await this.\u63A5\u53E3log).extend(\u8BF7\u6C42id);
|
|
46
|
+
let log = (await this.log).extend(\u8BF7\u6C42id);
|
|
45
47
|
let \u5F00\u59CB\u65F6\u95F4 = Date.now();
|
|
46
48
|
try {
|
|
47
49
|
let { path: \u8BF7\u6C42\u8DEF\u5F84, method } = req;
|
|
48
50
|
\u8BF7\u6C42\u8DEF\u5F84 = decodeURIComponent(\u8BF7\u6C42\u8DEF\u5F84);
|
|
49
51
|
let \u8BF7\u6C42\u65B9\u6CD5 = method.toLowerCase();
|
|
50
|
-
await
|
|
52
|
+
await log.debug("\u6536\u5230\u8BF7\u6C42, \u8DEF\u5F84: %o, \u65B9\u6CD5: %o", \u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5);
|
|
51
53
|
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;
|
|
52
54
|
if (\u76EE\u6807\u63A5\u53E3 !== null) {
|
|
53
|
-
await this.\u5904\u7406\u63A5\u53E3\u903B\u8F91(req, res, \u76EE\u6807\u63A5\u53E3,
|
|
55
|
+
await this.\u5904\u7406\u63A5\u53E3\u903B\u8F91({ req, res, \u76EE\u6807\u63A5\u53E3, log, \u8BF7\u6C42id });
|
|
54
56
|
return;
|
|
55
57
|
}
|
|
56
58
|
if (this.\u9ED8\u8BA4get\u6587\u4EF6\u8DEF\u5F84 !== void 0 && \u8BF7\u6C42\u65B9\u6CD5 === "get") {
|
|
@@ -59,35 +61,36 @@ var \u670D\u52A1\u5668 = class {
|
|
|
59
61
|
res.send(\u9ED8\u8BA4\u6587\u4EF6\u5185\u5BB9);
|
|
60
62
|
return;
|
|
61
63
|
} catch (e) {
|
|
62
|
-
await
|
|
64
|
+
await log.error("\u8FD4\u56DE\u9ED8\u8BA4get\u6587\u4EF6\u5185\u5BB9\u5931\u8D25: %o", String(e));
|
|
63
65
|
}
|
|
64
66
|
}
|
|
65
|
-
await
|
|
67
|
+
await log.debug("\u6CA1\u6709\u547D\u4E2D\u4EFB\u4F55\u8D44\u6E90");
|
|
66
68
|
res.status(404).end();
|
|
67
69
|
} catch (error) {
|
|
68
|
-
await
|
|
70
|
+
await log.error(error);
|
|
69
71
|
res.status(500).send("\u670D\u52A1\u5668\u5185\u90E8\u9519\u8BEF");
|
|
70
72
|
} finally {
|
|
71
73
|
let \u8017\u65F6ms = Date.now() - \u5F00\u59CB\u65F6\u95F4;
|
|
72
|
-
await
|
|
74
|
+
await log.info("\u8BF7\u6C42\u5B8C\u6210, \u8017\u65F6: %o ms", \u8017\u65F6ms);
|
|
73
75
|
}
|
|
74
76
|
}
|
|
75
|
-
async \u5904\u7406\u63A5\u53E3\u903B\u8F91(
|
|
77
|
+
async \u5904\u7406\u63A5\u53E3\u903B\u8F91(opt) {
|
|
78
|
+
let { req, res, \u76EE\u6807\u63A5\u53E3, log, \u8BF7\u6C42id } = opt;
|
|
76
79
|
let \u63A5\u53E3\u903B\u8F91 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u903B\u8F91();
|
|
77
80
|
let \u7ED3\u679C\u8F6C\u6362\u5668 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u7ED3\u679C\u8F6C\u6362\u5668();
|
|
78
81
|
let \u7ED3\u679C\u8FD4\u56DE\u5668 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u7ED3\u679C\u8FD4\u56DE\u5668();
|
|
79
82
|
let \u603B\u5F00\u59CB = Date.now();
|
|
80
83
|
let \u5F00\u59CB = Date.now();
|
|
81
|
-
await
|
|
84
|
+
await log.debug("\u8C03\u7528\u63A5\u53E3\u903B\u8F91...");
|
|
82
85
|
let \u63D2\u4EF6\u4EEC = \u63A5\u53E3\u903B\u8F91.\u83B7\u5F97\u63D2\u4EF6\u4EEC();
|
|
83
|
-
await
|
|
84
|
-
let \u63D2\u4EF6\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F91.\u8BA1\u7B97\u63D2\u4EF6\u7ED3\u679C(req, res, { log
|
|
85
|
-
await
|
|
86
|
-
await
|
|
87
|
-
let \u63A5\u53E3\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F91.\u901A\u8FC7\u63D2\u4EF6\u7ED3\u679C\u8FD0\u884C(\u63D2\u4EF6\u7ED3\u679C, {}, { log
|
|
88
|
-
await
|
|
86
|
+
await log.debug("\u627E\u5230 %o \u4E2A \u63D2\u4EF6, \u51C6\u5907\u6267\u884C...", \u63D2\u4EF6\u4EEC.length);
|
|
87
|
+
let \u63D2\u4EF6\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F91.\u8BA1\u7B97\u63D2\u4EF6\u7ED3\u679C(req, res, { log, \u8BF7\u6C42id });
|
|
88
|
+
await log.debug("\u63D2\u4EF6 \u6267\u884C\u5B8C\u6BD5");
|
|
89
|
+
await log.debug("\u51C6\u5907\u6267\u884C\u63A5\u53E3\u5B9E\u73B0...");
|
|
90
|
+
let \u63A5\u53E3\u7ED3\u679C = await \u63A5\u53E3\u903B\u8F91.\u901A\u8FC7\u63D2\u4EF6\u7ED3\u679C\u8FD0\u884C(\u63D2\u4EF6\u7ED3\u679C, {}, { log, \u8BF7\u6C42id });
|
|
91
|
+
await log.debug("\u63A5\u53E3\u5B9E\u73B0\u6267\u884C\u5B8C\u6BD5");
|
|
89
92
|
let \u63A5\u53E3\u8017\u65F6 = Date.now() - \u5F00\u59CB;
|
|
90
|
-
await
|
|
93
|
+
await log.info("\u63A5\u53E3\u903B\u8F91\u6267\u884C\u5B8C\u6BD5, \u8017\u65F6: %o ms", \u63A5\u53E3\u8017\u65F6);
|
|
91
94
|
\u5F00\u59CB = Date.now();
|
|
92
95
|
let \u8F6C\u6362\u7ED3\u679C = \u7ED3\u679C\u8F6C\u6362\u5668.\u5B9E\u73B0(\u63A5\u53E3\u7ED3\u679C);
|
|
93
96
|
let \u9519\u8BEF\u7ED3\u679C = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0FZod().safeParse(\u8F6C\u6362\u7ED3\u679C);
|
|
@@ -99,59 +102,59 @@ var \u670D\u52A1\u5668 = class {
|
|
|
99
102
|
\u6700\u7EC8\u7ED3\u679C = \u6B63\u786E\u7ED3\u679C.data;
|
|
100
103
|
} else {
|
|
101
104
|
let \u7ED3\u679C\u5B57\u7B26\u4E32 = JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u8F6C\u6362\u7ED3\u679C));
|
|
102
|
-
await
|
|
103
|
-
await
|
|
104
|
-
await
|
|
105
|
+
await log.error(`\u8F6C\u6362\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C: ${\u7ED3\u679C\u5B57\u7B26\u4E32}`);
|
|
106
|
+
await log.error("\u5BF9\u4E8E\u9519\u8BEF\u7ED3\u679C: %o", \u9519\u8BEF\u7ED3\u679C.error);
|
|
107
|
+
await log.error("\u5BF9\u4E8E\u6B63\u786E\u7ED3\u679C: %o", \u6B63\u786E\u7ED3\u679C.error);
|
|
105
108
|
throw new Error(`\u8F6C\u6362\u7ED3\u679C\u65E0\u6CD5\u901A\u8FC7\u6821\u9A8C`);
|
|
106
109
|
}
|
|
107
110
|
let \u8F6C\u6362\u8017\u65F6 = Date.now() - \u5F00\u59CB;
|
|
108
|
-
await
|
|
109
|
-
await
|
|
111
|
+
await log.info("\u7ED3\u679C\u8F6C\u6362\u4E0E\u6821\u9A8C\u5B8C\u6210, \u8017\u65F6: %o ms", \u8F6C\u6362\u8017\u65F6);
|
|
112
|
+
await log.debug("\u6700\u7EC8\u7ED3\u679C: %o", JSON.stringify(\u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(\u6700\u7EC8\u7ED3\u679C)));
|
|
110
113
|
\u5F00\u59CB = Date.now();
|
|
111
114
|
await \u7ED3\u679C\u8FD4\u56DE\u5668.\u8FD4\u56DE(req, res, \u6700\u7EC8\u7ED3\u679C);
|
|
112
115
|
let \u8FD4\u56DE\u8017\u65F6 = Date.now() - \u5F00\u59CB;
|
|
113
|
-
await
|
|
116
|
+
await log.info("\u8FD4\u56DE\u903B\u8F91\u6267\u884C\u5B8C\u6BD5, \u8017\u65F6: %o ms", \u8FD4\u56DE\u8017\u65F6);
|
|
114
117
|
let \u603B\u8017\u65F6 = Date.now() - \u603B\u5F00\u59CB;
|
|
115
|
-
await
|
|
118
|
+
await log.info("\u63A5\u53E3\u5B8C\u6574\u6267\u884C\u8017\u65F6: %o ms", \u603B\u8017\u65F6);
|
|
116
119
|
}
|
|
117
120
|
async \u521D\u59CB\u5316WebSocket(server) {
|
|
121
|
+
let log = await this.log;
|
|
118
122
|
let wss = new WebSocketServer({ server });
|
|
119
|
-
let \u7CFB\u7EDFlog = await this.\u7CFB\u7EDFlog;
|
|
120
123
|
wss.on("listening", async () => {
|
|
121
|
-
await
|
|
124
|
+
await log.info("WebSocket \u670D\u52A1\u5668\u5DF2\u542F\u52A8\u5E76\u76D1\u542C");
|
|
122
125
|
});
|
|
123
126
|
wss.on("error", async (err) => {
|
|
124
|
-
await
|
|
127
|
+
await log.error("WebSocket \u670D\u52A1\u5668\u53D1\u751F\u9519\u8BEF: %o", err);
|
|
125
128
|
});
|
|
126
129
|
wss.on("connection", async (ws, req) => {
|
|
127
|
-
let \
|
|
128
|
-
await \
|
|
130
|
+
let \u8FDE\u63A5log = log.extend(short().new());
|
|
131
|
+
await \u8FDE\u63A5log.debug("\u6536\u5230 WebSocket \u8FDE\u63A5\u8BF7\u6C42: %o", req.url);
|
|
129
132
|
let \u5BA2\u6237\u7AEFid = req.url?.split("?id=")[1] ?? null;
|
|
130
133
|
if (\u5BA2\u6237\u7AEFid === null) {
|
|
131
|
-
await \
|
|
132
|
-
return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws, \
|
|
134
|
+
await \u8FDE\u63A5log.error("\u8FDE\u63A5\u8BF7\u6C42\u7F3A\u5C11\u5BA2\u6237\u7AEF ID");
|
|
135
|
+
return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws, \u8FDE\u63A5log, 4001, "\u7F3A\u5C11\u5BA2\u6237\u7AEF ID");
|
|
133
136
|
}
|
|
134
|
-
await \
|
|
137
|
+
await \u8FDE\u63A5log.debug("\u89E3\u6790\u5BA2\u6237\u7AEF ID: %s", \u5BA2\u6237\u7AEFid);
|
|
135
138
|
let WebSocket\u7BA1\u7406\u5668 = Global.getItemSync("WebSocket\u7BA1\u7406\u5668");
|
|
136
139
|
let \u8FDE\u63A5\u5DF2\u5B58\u5728 = WebSocket\u7BA1\u7406\u5668.\u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u5BA2\u6237\u7AEFid);
|
|
137
140
|
if (\u8FDE\u63A5\u5DF2\u5B58\u5728) {
|
|
138
|
-
await \
|
|
139
|
-
return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws, \
|
|
141
|
+
await \u8FDE\u63A5log.error("\u5BA2\u6237\u7AEF ID \u5DF2\u5B58\u5728: %s", \u5BA2\u6237\u7AEFid);
|
|
142
|
+
return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws, \u8FDE\u63A5log, 4002, "\u5BA2\u6237\u7AEF ID \u5DF2\u5B58\u5728");
|
|
140
143
|
}
|
|
141
144
|
WebSocket\u7BA1\u7406\u5668.\u589E\u52A0\u8FDE\u63A5(\u5BA2\u6237\u7AEFid, ws);
|
|
142
|
-
await \
|
|
145
|
+
await \u8FDE\u63A5log.info("WebSocket \u8FDE\u63A5\u5DF2\u5EFA\u7ACB, \u5BA2\u6237\u7AEF ID: %s", \u5BA2\u6237\u7AEFid);
|
|
143
146
|
ws.on("close", async () => {
|
|
144
|
-
await \
|
|
147
|
+
await \u8FDE\u63A5log.info("WebSocket \u8FDE\u63A5\u5173\u95ED: %s", \u5BA2\u6237\u7AEFid);
|
|
145
148
|
WebSocket\u7BA1\u7406\u5668.\u5220\u9664\u8FDE\u63A5(\u5BA2\u6237\u7AEFid);
|
|
146
149
|
});
|
|
147
150
|
ws.on("error", async (err) => {
|
|
148
|
-
await \
|
|
151
|
+
await \u8FDE\u63A5log.error("WebSocket \u51FA\u73B0\u9519\u8BEF, \u5BA2\u6237\u7AEF ID: %s, \u9519\u8BEF: %o", \u5BA2\u6237\u7AEFid, err);
|
|
149
152
|
WebSocket\u7BA1\u7406\u5668.\u5220\u9664\u8FDE\u63A5(\u5BA2\u6237\u7AEFid);
|
|
150
153
|
});
|
|
151
154
|
});
|
|
152
155
|
}
|
|
153
|
-
async \u5173\u95EDWebSocket\u8FDE\u63A5(ws,
|
|
154
|
-
await
|
|
156
|
+
async \u5173\u95EDWebSocket\u8FDE\u63A5(ws, log, code, reason) {
|
|
157
|
+
await log.debug(`\u5173\u95ED WebSocket \u8FDE\u63A5, \u4EE3\u7801: ${code}, \u539F\u56E0: ${reason}`);
|
|
155
158
|
ws.close(code, reason);
|
|
156
159
|
}
|
|
157
160
|
\u83B7\u53D6\u672C\u5730\u5730\u5740() {
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import {
|
|
2
|
+
接口结果返回器
|
|
3
|
+
} from "./chunk-XBAKTT6S.js";
|
|
4
|
+
import {
|
|
5
|
+
接口
|
|
6
|
+
} from "./chunk-MDUWXEQ7.js";
|
|
7
|
+
import {
|
|
8
|
+
直接形式转换器
|
|
9
|
+
} from "./chunk-DNJQGD5M.js";
|
|
10
|
+
|
|
11
|
+
// src/wrapper/file-download-wrapper.ts
|
|
12
|
+
import { createReadStream } from "fs";
|
|
13
|
+
import { z } from "zod";
|
|
14
|
+
var \u6587\u4EF6\u4E0B\u8F7D\u63A5\u53E3\u5C01\u88C5 = class extends \u63A5\u53E3 {
|
|
15
|
+
constructor(\u8BF7\u6C42\u8DEF\u5F84, \u8BF7\u6C42\u65B9\u6CD5, \u63A5\u53E3\u903B\u8F91, \u903B\u8F91\u9519\u8BEF\u7C7B\u578BZod, \u6587\u4EF6\u540D, MIME\u7C7B\u578B) {
|
|
16
|
+
let \u63A5\u53E3\u9519\u8BEF\u8F93\u51FA\u5F62\u5F0F = z.object({ status: z.literal("fail"), data: \u903B\u8F91\u9519\u8BEF\u7C7B\u578BZod });
|
|
17
|
+
let \u63A5\u53E3\u8F6C\u6362\u5668 = new \u76F4\u63A5\u5F62\u5F0F\u8F6C\u6362\u5668();
|
|
18
|
+
let \u8FD4\u56DE\u5668 = new \u6587\u4EF6\u4E0B\u8F7D\u8FD4\u56DE\u5668(\u6587\u4EF6\u540D, MIME\u7C7B\u578B);
|
|
19
|
+
super(
|
|
20
|
+
\u8BF7\u6C42\u8DEF\u5F84,
|
|
21
|
+
\u8BF7\u6C42\u65B9\u6CD5,
|
|
22
|
+
\u63A5\u53E3\u903B\u8F91,
|
|
23
|
+
\u63A5\u53E3\u9519\u8BEF\u8F93\u51FA\u5F62\u5F0F,
|
|
24
|
+
z.any(),
|
|
25
|
+
// 正确形式任意
|
|
26
|
+
\u63A5\u53E3\u8F6C\u6362\u5668,
|
|
27
|
+
\u8FD4\u56DE\u5668
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
var \u6587\u4EF6\u4E0B\u8F7D\u8FD4\u56DE\u5668 = class extends \u63A5\u53E3\u7ED3\u679C\u8FD4\u56DE\u5668 {
|
|
32
|
+
constructor(\u6587\u4EF6\u540D, MIME\u7C7B\u578B) {
|
|
33
|
+
super();
|
|
34
|
+
this.\u6587\u4EF6\u540D = \u6587\u4EF6\u540D;
|
|
35
|
+
this.MIME\u7C7B\u578B = MIME\u7C7B\u578B;
|
|
36
|
+
}
|
|
37
|
+
async \u8FD4\u56DE(req, res, \u7ED3\u679C) {
|
|
38
|
+
if (this.MIME\u7C7B\u578B !== void 0) {
|
|
39
|
+
res.setHeader("Content-Type", this.MIME\u7C7B\u578B);
|
|
40
|
+
}
|
|
41
|
+
if (this.\u6587\u4EF6\u540D !== void 0) {
|
|
42
|
+
let encodedFilename = encodeURIComponent(this.\u6587\u4EF6\u540D);
|
|
43
|
+
res.setHeader("Content-Disposition", `attachment; filename*=UTF-8''${encodedFilename}`);
|
|
44
|
+
}
|
|
45
|
+
if (Buffer.isBuffer(\u7ED3\u679C)) {
|
|
46
|
+
res.setHeader("Content-Length", \u7ED3\u679C.length);
|
|
47
|
+
res.send(\u7ED3\u679C);
|
|
48
|
+
} else if (typeof \u7ED3\u679C === "string") {
|
|
49
|
+
let \u6D41 = createReadStream(\u7ED3\u679C);
|
|
50
|
+
\u6D41.pipe(res);
|
|
51
|
+
} else if (typeof \u7ED3\u679C.pipe === "function") {
|
|
52
|
+
\u7ED3\u679C.pipe(res);
|
|
53
|
+
} else {
|
|
54
|
+
res.status(400).send("Invalid file data");
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export {
|
|
60
|
+
文件下载接口封装
|
|
61
|
+
};
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { 严格递归合并对象, 普通对象深合并, 构造元组, 构造对象 } from './help/help.js';
|
|
2
|
-
export { 任 as 任意接口, x as 任意接口结果转换器, n as 任意接口逻辑, y as 任意插件, 兼 as 兼容空对象, A as 取插件内部ts类型, 取 as 取插件内部类型, 可 as 可调用接口逻辑, 合 as 合并插件结果, 常 as 常用形式转换器, b as 接口, a as 接口方法类型, w as 接口结果转换器, 接 as 接口路径类型, m as 接口逻辑, l as 接口逻辑Base, j as 接口逻辑正确类型, i as 接口逻辑错误类型, k as 接口逻辑附加参数类型, 插 as 插件, z as 插件项类型, 服 as 服务器, 清 as 清理函数类型, 直 as 直接形式转换器, 空 as 空对象, c as 获得接口方法类型, f as 获得接口正确形式, g as 获得接口结果转换器类型, h as 获得接口结果返回器类型, 获 as 获得接口路径类型, s as 获得接口逻辑上游接口类型, o as 获得接口逻辑插件类型, t as 获得接口逻辑最后接口类型, r as 获得接口逻辑正确类型, d as 获得接口逻辑类型, q as 获得接口逻辑错误类型, p as 获得接口逻辑附加参数类型, e as 获得接口错误形式, 计 as 计算接口逻辑参数, v as 计算接口逻辑正确结果, u as 计算接口逻辑错误结果, 请 as 请求附加参数类型 } from './interface-base-
|
|
2
|
+
export { 任 as 任意接口, x as 任意接口结果转换器, n as 任意接口逻辑, y as 任意插件, 兼 as 兼容空对象, A as 取插件内部ts类型, 取 as 取插件内部类型, 可 as 可调用接口逻辑, 合 as 合并插件结果, 常 as 常用形式转换器, b as 接口, a as 接口方法类型, w as 接口结果转换器, 接 as 接口路径类型, m as 接口逻辑, l as 接口逻辑Base, j as 接口逻辑正确类型, i as 接口逻辑错误类型, k as 接口逻辑附加参数类型, 插 as 插件, z as 插件项类型, 日 as 日志回调类型, 服 as 服务器, 清 as 清理函数类型, 直 as 直接形式转换器, 空 as 空对象, c as 获得接口方法类型, f as 获得接口正确形式, g as 获得接口结果转换器类型, h as 获得接口结果返回器类型, 获 as 获得接口路径类型, s as 获得接口逻辑上游接口类型, o as 获得接口逻辑插件类型, t as 获得接口逻辑最后接口类型, r as 获得接口逻辑正确类型, d as 获得接口逻辑类型, q as 获得接口逻辑错误类型, p as 获得接口逻辑附加参数类型, e as 获得接口错误形式, 计 as 计算接口逻辑参数, v as 计算接口逻辑正确结果, u as 计算接口逻辑错误结果, 请 as 请求附加参数类型 } from './interface-base-DDfmN_Dg.js';
|
|
3
3
|
export { 任意接口结果返回器, 常用返回器, 接口结果返回器, 自定义返回器 } from './interface/interface-retuen.js';
|
|
4
4
|
export { 接口测试 } from './interface/interface-test.js';
|
|
5
5
|
export { 自定义数据插件 } from './plugin/extend/custom-data.js';
|
|
@@ -13,9 +13,12 @@ export { GetNetCoreExportTypeDefine, GetNetCoreExportTypeName, NetCoreExportType
|
|
|
13
13
|
export { 常用形式接口封装 } from './wrapper/common-wrapper.js';
|
|
14
14
|
export { 常用形式并自定义返回器接口封装 } from './wrapper/common-wrapper-return.js';
|
|
15
15
|
export { 常用直接形式接口封装 } from './wrapper/deferred-result-wrapper.js';
|
|
16
|
+
export { Express兼容接口封装 } from './wrapper/express-compatible-wrapper.js';
|
|
17
|
+
export { 文件下载接口封装, 文件数据类型 } from './wrapper/file-download-wrapper.js';
|
|
16
18
|
import 'zod';
|
|
17
19
|
import '@lsby/ts-fp-data';
|
|
18
20
|
import 'express';
|
|
19
21
|
import './help/interior.js';
|
|
20
22
|
import '@lsby/ts-log';
|
|
21
23
|
import 'node:http';
|
|
24
|
+
import 'node:fs';
|
package/dist/esm/index.js
CHANGED
|
@@ -19,6 +19,12 @@ import {
|
|
|
19
19
|
import {
|
|
20
20
|
常用直接形式接口封装
|
|
21
21
|
} from "./chunk-NB2QNDI2.js";
|
|
22
|
+
import {
|
|
23
|
+
Express兼容接口封装
|
|
24
|
+
} from "./chunk-NCYHKHIH.js";
|
|
25
|
+
import {
|
|
26
|
+
文件下载接口封装
|
|
27
|
+
} from "./chunk-XSYZ5A6R.js";
|
|
22
28
|
import {
|
|
23
29
|
接口测试
|
|
24
30
|
} from "./chunk-N7TPWCQ5.js";
|
|
@@ -27,7 +33,7 @@ import {
|
|
|
27
33
|
} from "./chunk-43GZE5YL.js";
|
|
28
34
|
import {
|
|
29
35
|
服务器
|
|
30
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-NRUNCIP7.js";
|
|
31
37
|
import {
|
|
32
38
|
EXPORT_TYPE
|
|
33
39
|
} from "./chunk-ZF7EC2OM.js";
|
|
@@ -64,6 +70,7 @@ import {
|
|
|
64
70
|
} from "./chunk-DNJQGD5M.js";
|
|
65
71
|
export {
|
|
66
72
|
EXPORT_TYPE,
|
|
73
|
+
Express\u517C\u5BB9\u63A5\u53E3\u5C01\u88C5,
|
|
67
74
|
GET\u53C2\u6570\u89E3\u6790\u63D2\u4EF6,
|
|
68
75
|
JSON\u89E3\u6790\u63D2\u4EF6,
|
|
69
76
|
WebSocket\u63D2\u4EF6,
|
|
@@ -79,6 +86,7 @@ export {
|
|
|
79
86
|
\u63A5\u53E3\u903B\u8F91,
|
|
80
87
|
\u63A5\u53E3\u903B\u8F91Base,
|
|
81
88
|
\u63D2\u4EF6,
|
|
89
|
+
\u6587\u4EF6\u4E0B\u8F7D\u63A5\u53E3\u5C01\u88C5,
|
|
82
90
|
\u666E\u901A\u5BF9\u8C61\u6DF1\u5408\u5E76,
|
|
83
91
|
\u670D\u52A1\u5668,
|
|
84
92
|
\u6784\u9020\u5143\u7EC4,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import 'zod';
|
|
2
|
-
export { 任 as 任意接口, b as 接口, a as 接口方法类型, 接 as 接口路径类型, c as 获得接口方法类型, f as 获得接口正确形式, g as 获得接口结果转换器类型, h as 获得接口结果返回器类型, 获 as 获得接口路径类型, d as 获得接口逻辑类型, e as 获得接口错误形式 } from '../interface-base-
|
|
2
|
+
export { 任 as 任意接口, b as 接口, a as 接口方法类型, 接 as 接口路径类型, c as 获得接口方法类型, f as 获得接口正确形式, g as 获得接口结果转换器类型, h as 获得接口结果返回器类型, 获 as 获得接口路径类型, d as 获得接口逻辑类型, e as 获得接口错误形式 } from '../interface-base-DDfmN_Dg.js';
|
|
3
3
|
import './interface-retuen.js';
|
|
4
4
|
import '@lsby/ts-fp-data';
|
|
5
5
|
import 'express';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import '@lsby/ts-fp-data';
|
|
2
2
|
import 'express';
|
|
3
3
|
import '../help/interior.js';
|
|
4
|
-
export { n as 任意接口逻辑, 兼 as 兼容空对象, 可 as 可调用接口逻辑, m as 接口逻辑, l as 接口逻辑Base, j as 接口逻辑正确类型, i as 接口逻辑错误类型, k as 接口逻辑附加参数类型, 清 as 清理函数类型, 空 as 空对象, s as 获得接口逻辑上游接口类型, o as 获得接口逻辑插件类型, t as 获得接口逻辑最后接口类型, r as 获得接口逻辑正确类型, q as 获得接口逻辑错误类型, p as 获得接口逻辑附加参数类型, 计 as 计算接口逻辑参数, v as 计算接口逻辑正确结果, u as 计算接口逻辑错误结果 } from '../interface-base-
|
|
4
|
+
export { n as 任意接口逻辑, 兼 as 兼容空对象, 可 as 可调用接口逻辑, m as 接口逻辑, l as 接口逻辑Base, j as 接口逻辑正确类型, i as 接口逻辑错误类型, k as 接口逻辑附加参数类型, 清 as 清理函数类型, 空 as 空对象, s as 获得接口逻辑上游接口类型, o as 获得接口逻辑插件类型, t as 获得接口逻辑最后接口类型, r as 获得接口逻辑正确类型, q as 获得接口逻辑错误类型, p as 获得接口逻辑附加参数类型, 计 as 计算接口逻辑参数, v as 计算接口逻辑正确结果, u as 计算接口逻辑错误结果 } from '../interface-base-DDfmN_Dg.js';
|
|
5
5
|
import 'zod';
|
|
6
6
|
import '@lsby/ts-log';
|
|
7
7
|
import 'node:http';
|