@lsby/net-core 0.3.41 → 0.3.42
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 +30 -12
- package/dist/cjs/index.d.cts +1 -1
- package/dist/cjs/plugin/extend/chinese-path.cjs +2 -2
- package/dist/cjs/plugin/extend/custom-data.cjs +2 -2
- package/dist/cjs/plugin/extend/json.cjs +4 -4
- package/dist/cjs/plugin/extend/urlencoded.cjs +41 -4
- package/dist/cjs/plugin/extend/urlencoded.d.cts +1 -0
- package/dist/cjs/plugin/extend/web-socket.cjs +19 -6
- package/dist/cjs/plugin/extend/web-socket.d.cts +1 -0
- package/dist/cjs/plugin/plug.cjs +2 -2
- package/dist/cjs/plugin/plug.d.cts +6 -3
- package/dist/cjs/server/server.cjs +3 -2
- package/dist/esm/{chunk-N4NY37XI.js → chunk-43GZE5YL.js} +2 -2
- package/dist/esm/{chunk-3PONWJ35.js → chunk-47T4ZLNQ.js} +1 -1
- package/dist/esm/{chunk-2MN4G2DG.js → chunk-FDDCLNUD.js} +1 -1
- package/dist/esm/{chunk-MUTTFLKG.js → chunk-GAC4ETIB.js} +18 -5
- package/dist/esm/{chunk-OOCVEPVP.js → chunk-M52TXG2M.js} +10 -3
- package/dist/esm/{chunk-VBFA32JO.js → chunk-M7QXZWBP.js} +3 -3
- package/dist/esm/{chunk-47GMSX5W.js → chunk-R3PAE6XG.js} +3 -2
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +9 -9
- package/dist/esm/plugin/extend/chinese-path.js +2 -2
- package/dist/esm/plugin/extend/custom-data.js +2 -2
- package/dist/esm/plugin/extend/json.js +2 -2
- package/dist/esm/plugin/extend/urlencoded.d.ts +1 -0
- package/dist/esm/plugin/extend/urlencoded.js +4 -2
- package/dist/esm/plugin/extend/web-socket.d.ts +1 -0
- package/dist/esm/plugin/extend/web-socket.js +2 -2
- package/dist/esm/plugin/plug.d.ts +6 -3
- package/dist/esm/plugin/plug.js +1 -1
- package/dist/esm/server/server.js +1 -1
- package/package.json +1 -1
package/dist/cjs/index.cjs
CHANGED
|
@@ -396,8 +396,8 @@ var \u63D2\u4EF6 = class {
|
|
|
396
396
|
\u83B7\u5F97\u7C7B\u578B() {
|
|
397
397
|
return this.\u7C7B\u578B;
|
|
398
398
|
}
|
|
399
|
-
\
|
|
400
|
-
return this.\u5B9E\u73B0;
|
|
399
|
+
\u8FD0\u884C(req, res, \u9644\u52A0\u53C2\u6570) {
|
|
400
|
+
return this.\u5B9E\u73B0(req, res, \u9644\u52A0\u53C2\u6570);
|
|
401
401
|
}
|
|
402
402
|
};
|
|
403
403
|
|
|
@@ -427,8 +427,8 @@ var import_express = __toESM(require("express"), 1);
|
|
|
427
427
|
var JSON\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
428
428
|
log = Global.getItem("log");
|
|
429
429
|
constructor(t, opt) {
|
|
430
|
-
super(t, async (req, res) => {
|
|
431
|
-
let log = (await this.log).extend("JSON\u89E3\u6790\u63D2\u4EF6");
|
|
430
|
+
super(t, async (req, res, \u9644\u52A0\u53C2\u6570) => {
|
|
431
|
+
let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("JSON\u89E3\u6790\u63D2\u4EF6");
|
|
432
432
|
await new Promise(
|
|
433
433
|
(pRes, _rej) => import_express.default.json(opt)(req, res, () => {
|
|
434
434
|
pRes(null);
|
|
@@ -450,16 +450,20 @@ var JSON\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
450
450
|
var import_node_util2 = require("util");
|
|
451
451
|
var import_express2 = __toESM(require("express"), 1);
|
|
452
452
|
var \u8868\u5355\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
453
|
+
log = Global.getItem("log");
|
|
453
454
|
constructor(t, opt) {
|
|
454
|
-
super(t, async (req, res) => {
|
|
455
|
+
super(t, async (req, res, \u9644\u52A0\u53C2\u6570) => {
|
|
456
|
+
let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("JSON\u89E3\u6790\u63D2\u4EF6");
|
|
455
457
|
await new Promise(
|
|
456
458
|
(pRes, _rej) => import_express2.default.urlencoded({ extended: true, ...opt })(req, res, () => {
|
|
457
459
|
pRes(null);
|
|
458
460
|
})
|
|
459
461
|
);
|
|
460
462
|
let parseResult = t.safeParse(req.body);
|
|
461
|
-
if (!parseResult.success)
|
|
463
|
+
if (!parseResult.success) {
|
|
464
|
+
await log.err("\u89E3\u6790url\u7F16\u7801\u6B63\u6587\u5931\u8D25: %O", parseResult.error);
|
|
462
465
|
throw new Error((0, import_node_util2.format)("\u89E3\u6790url\u7F16\u7801\u6B63\u6587\u5931\u8D25: %O", parseResult.error));
|
|
466
|
+
}
|
|
463
467
|
return parseResult.data;
|
|
464
468
|
});
|
|
465
469
|
}
|
|
@@ -468,6 +472,7 @@ var \u8868\u5355\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
468
472
|
// src/plugin/extend/web-socket.ts
|
|
469
473
|
var import_zod3 = require("zod");
|
|
470
474
|
var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
475
|
+
log = Global.getItem("log");
|
|
471
476
|
constructor(\u4FE1\u606F\u63CF\u8FF0) {
|
|
472
477
|
super(
|
|
473
478
|
import_zod3.z.object({
|
|
@@ -476,27 +481,39 @@ var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
476
481
|
\u5173\u95EDws\u8FDE\u63A5: import_zod3.z.function(import_zod3.z.tuple([]), import_zod3.z.promise(import_zod3.z.void()))
|
|
477
482
|
}).or(import_zod3.z.undefined())
|
|
478
483
|
}),
|
|
479
|
-
async (req, _res) => {
|
|
484
|
+
async (req, _res, \u9644\u52A0\u53C2\u6570) => {
|
|
485
|
+
let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("ws\u63D2\u4EF6");
|
|
480
486
|
let wsId = req.headers["ws-client-id"];
|
|
481
487
|
let WebSocket\u7BA1\u7406\u80052 = await Global.getItem("WebSocket\u7BA1\u7406\u8005");
|
|
482
488
|
let ws\u53E5\u67C4 = null;
|
|
483
|
-
|
|
489
|
+
await log.debug("\u68C0\u67E5 ws-client-id \u5934\u4FE1\u606F", { wsId });
|
|
490
|
+
if (typeof wsId == "string") {
|
|
491
|
+
await log.debug("\u5C1D\u8BD5\u83B7\u53D6 WebSocket \u53E5\u67C4", { wsId });
|
|
484
492
|
ws\u53E5\u67C4 = await WebSocket\u7BA1\u7406\u80052.\u83B7\u5F97\u53E5\u67C4(wsId);
|
|
485
|
-
|
|
493
|
+
}
|
|
494
|
+
if (!ws\u53E5\u67C4) {
|
|
495
|
+
await log.err("\u672A\u80FD\u83B7\u53D6\u5230\u6709\u6548\u7684 WebSocket \u53E5\u67C4");
|
|
486
496
|
return { ws\u64CD\u4F5C: void 0 };
|
|
497
|
+
}
|
|
487
498
|
let \u5B58\u5728\u7684ws\u53E5\u67C4 = ws\u53E5\u67C4;
|
|
499
|
+
await log.debug("WebSocket \u53E5\u67C4\u5DF2\u51C6\u5907\u597D", { wsId });
|
|
488
500
|
return {
|
|
489
501
|
ws\u64CD\u4F5C: {
|
|
490
502
|
async \u53D1\u9001ws\u4FE1\u606F(\u4FE1\u606F) {
|
|
503
|
+
await log.debug("\u53D1\u9001 WebSocket \u4FE1\u606F", { \u4FE1\u606F });
|
|
491
504
|
return new Promise((res, rej) => {
|
|
492
505
|
\u5B58\u5728\u7684ws\u53E5\u67C4.send(JSON.stringify(\u4FE1\u606F), (err) => {
|
|
493
|
-
if (err)
|
|
506
|
+
if (err) {
|
|
507
|
+
log.err("\u53D1\u9001 WebSocket \u4FE1\u606F\u5931\u8D25", { \u9519\u8BEF: err }).catch(console.error);
|
|
494
508
|
return rej(err);
|
|
509
|
+
}
|
|
510
|
+
log.info("WebSocket \u4FE1\u606F\u53D1\u9001\u6210\u529F", { \u4FE1\u606F }).catch(console.error);
|
|
495
511
|
return res();
|
|
496
512
|
});
|
|
497
513
|
});
|
|
498
514
|
},
|
|
499
515
|
async \u5173\u95EDws\u8FDE\u63A5() {
|
|
516
|
+
await log.debug("\u5173\u95ED WebSocket \u8FDE\u63A5");
|
|
500
517
|
\u5B58\u5728\u7684ws\u53E5\u67C4.close();
|
|
501
518
|
}
|
|
502
519
|
}
|
|
@@ -521,7 +538,8 @@ var \u670D\u52A1\u5668 = class {
|
|
|
521
538
|
async run() {
|
|
522
539
|
let app = (0, import_express3.default)();
|
|
523
540
|
app.use(async (req, res) => {
|
|
524
|
-
let
|
|
541
|
+
let \u8BF7\u6C42id = (0, import_short_uuid.default)().new();
|
|
542
|
+
let log = (await this.log).extend("\u8BF7\u6C42").extend(\u8BF7\u6C42id);
|
|
525
543
|
try {
|
|
526
544
|
let \u8BF7\u6C42\u8DEF\u5F84 = req.path;
|
|
527
545
|
let \u8BF7\u6C42\u65B9\u6CD5 = req.method.toLowerCase();
|
|
@@ -536,7 +554,7 @@ var \u670D\u52A1\u5668 = class {
|
|
|
536
554
|
let \u63A5\u53E3\u7C7B\u578B2 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B();
|
|
537
555
|
let \u63A5\u53E3\u63D2\u4EF6 = \u63A5\u53E3\u7C7B\u578B2.\u83B7\u5F97\u63D2\u4EF6\u4EEC();
|
|
538
556
|
await log.debug("\u627E\u5230 %o \u4E2A \u63D2\u4EF6, \u51C6\u5907\u6267\u884C...", \u63A5\u53E3\u63D2\u4EF6.length);
|
|
539
|
-
let \u63D2\u4EF6\u7ED3\u679C = (await Promise.all(\u63A5\u53E3\u63D2\u4EF6.map(async (\u63D2\u4EF62) => await (await \u63D2\u4EF62.run()).\
|
|
557
|
+
let \u63D2\u4EF6\u7ED3\u679C = (await Promise.all(\u63A5\u53E3\u63D2\u4EF6.map(async (\u63D2\u4EF62) => await (await \u63D2\u4EF62.run()).\u8FD0\u884C(req, res, { \u8BF7\u6C42id })))).reduce((s, a) => Object.assign(s, a), {});
|
|
540
558
|
await log.debug("\u63D2\u4EF6 \u6267\u884C\u5B8C\u6BD5");
|
|
541
559
|
await log.debug("\u51C6\u5907\u6267\u884C\u63A5\u53E3\u903B\u8F91...");
|
|
542
560
|
let \u63A5\u53E3\u7ED3\u679C = await \u76EE\u6807\u63A5\u53E3.\u63A5\u53E3\u5B9E\u73B0(\u63D2\u4EF6\u7ED3\u679C);
|
package/dist/cjs/index.d.cts
CHANGED
|
@@ -9,7 +9,7 @@ export { 自定义数据插件 } from './plugin/extend/custom-data.cjs';
|
|
|
9
9
|
export { JSON解析插件, 从接口类型获得JSON参数, 任意JSON解析插件, 任意JSON解析插件项, 合并JSON插件结果 } from './plugin/extend/json.cjs';
|
|
10
10
|
export { 表单解析插件 } from './plugin/extend/urlencoded.cjs';
|
|
11
11
|
export { WebSocket插件, 任意WS插件, 任意WS插件项, 取WS插件泛型, 取第一个WS插件结果 } from './plugin/extend/web-socket.cjs';
|
|
12
|
-
export { 任意插件, 包装插件项, 取Task插件内部类型, 取Task插件类型, 取插件内部ts类型, 合并插件结果, 插件,
|
|
12
|
+
export { 任意插件, 包装插件项, 取Task插件内部类型, 取Task插件类型, 取插件内部ts类型, 合并插件结果, 插件, 插件项类型, 附加参数类型 } from './plugin/plug.cjs';
|
|
13
13
|
export { 正确JSON结果, 正确结果, 正确自定义结果, 结果, 错误JSON结果, 错误结果 } from './result/result.cjs';
|
|
14
14
|
export { 服务器 } from './server/server.cjs';
|
|
15
15
|
import '@lsby/ts-fp-data';
|
|
@@ -35,8 +35,8 @@ var \u63D2\u4EF6 = class {
|
|
|
35
35
|
\u83B7\u5F97\u7C7B\u578B() {
|
|
36
36
|
return this.\u7C7B\u578B;
|
|
37
37
|
}
|
|
38
|
-
\
|
|
39
|
-
return this.\u5B9E\u73B0;
|
|
38
|
+
\u8FD0\u884C(req, res, \u9644\u52A0\u53C2\u6570) {
|
|
39
|
+
return this.\u5B9E\u73B0(req, res, \u9644\u52A0\u53C2\u6570);
|
|
40
40
|
}
|
|
41
41
|
};
|
|
42
42
|
|
|
@@ -33,8 +33,8 @@ var \u63D2\u4EF6 = class {
|
|
|
33
33
|
\u83B7\u5F97\u7C7B\u578B() {
|
|
34
34
|
return this.\u7C7B\u578B;
|
|
35
35
|
}
|
|
36
|
-
\
|
|
37
|
-
return this.\u5B9E\u73B0;
|
|
36
|
+
\u8FD0\u884C(req, res, \u9644\u52A0\u53C2\u6570) {
|
|
37
|
+
return this.\u5B9E\u73B0(req, res, \u9644\u52A0\u53C2\u6570);
|
|
38
38
|
}
|
|
39
39
|
};
|
|
40
40
|
|
|
@@ -101,8 +101,8 @@ var \u63D2\u4EF6 = class {
|
|
|
101
101
|
\u83B7\u5F97\u7C7B\u578B() {
|
|
102
102
|
return this.\u7C7B\u578B;
|
|
103
103
|
}
|
|
104
|
-
\
|
|
105
|
-
return this.\u5B9E\u73B0;
|
|
104
|
+
\u8FD0\u884C(req, res, \u9644\u52A0\u53C2\u6570) {
|
|
105
|
+
return this.\u5B9E\u73B0(req, res, \u9644\u52A0\u53C2\u6570);
|
|
106
106
|
}
|
|
107
107
|
};
|
|
108
108
|
|
|
@@ -110,8 +110,8 @@ var \u63D2\u4EF6 = class {
|
|
|
110
110
|
var JSON\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
111
111
|
log = Global.getItem("log");
|
|
112
112
|
constructor(t, opt) {
|
|
113
|
-
super(t, async (req, res) => {
|
|
114
|
-
let log = (await this.log).extend("JSON\u89E3\u6790\u63D2\u4EF6");
|
|
113
|
+
super(t, async (req, res, \u9644\u52A0\u53C2\u6570) => {
|
|
114
|
+
let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("JSON\u89E3\u6790\u63D2\u4EF6");
|
|
115
115
|
await new Promise(
|
|
116
116
|
(pRes, _rej) => import_express.default.json(opt)(req, res, () => {
|
|
117
117
|
pRes(null);
|
|
@@ -36,6 +36,39 @@ module.exports = __toCommonJS(urlencoded_exports);
|
|
|
36
36
|
var import_node_util = require("util");
|
|
37
37
|
var import_express = __toESM(require("express"), 1);
|
|
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
|
+
|
|
43
|
+
// src/global/ws.ts
|
|
44
|
+
var WebSocket\u7BA1\u7406\u8005 = class {
|
|
45
|
+
constructor(\u8FDE\u63A5\u8868) {
|
|
46
|
+
this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
|
|
47
|
+
}
|
|
48
|
+
async \u589E\u52A0\u8FDE\u63A5(\u8BF7\u6C42id, ws\u53E5\u67C4) {
|
|
49
|
+
this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] = ws\u53E5\u67C4;
|
|
50
|
+
}
|
|
51
|
+
async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u8BF7\u6C42id) {
|
|
52
|
+
return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] == null ? false : true;
|
|
53
|
+
}
|
|
54
|
+
async \u83B7\u5F97\u53E5\u67C4(\u8BF7\u6C42id) {
|
|
55
|
+
return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] || null;
|
|
56
|
+
}
|
|
57
|
+
async \u5220\u9664\u8FDE\u63A5(id) {
|
|
58
|
+
delete this.\u8FDE\u63A5\u8868[id];
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
// src/global/global.ts
|
|
63
|
+
var Global = new import_ts_global.GlobalService([
|
|
64
|
+
new import_ts_global.GlobalAsyncItem("log", async () => {
|
|
65
|
+
return new import_ts_log.Log("@lsby:net-core");
|
|
66
|
+
}),
|
|
67
|
+
new import_ts_global.GlobalAsyncItem("WebSocket\u7BA1\u7406\u8005", async () => {
|
|
68
|
+
return new WebSocket\u7BA1\u7406\u8005({});
|
|
69
|
+
})
|
|
70
|
+
]);
|
|
71
|
+
|
|
39
72
|
// src/plugin/plug.ts
|
|
40
73
|
var \u63D2\u4EF6 = class {
|
|
41
74
|
constructor(\u7C7B\u578B, \u5B9E\u73B0) {
|
|
@@ -45,23 +78,27 @@ var \u63D2\u4EF6 = class {
|
|
|
45
78
|
\u83B7\u5F97\u7C7B\u578B() {
|
|
46
79
|
return this.\u7C7B\u578B;
|
|
47
80
|
}
|
|
48
|
-
\
|
|
49
|
-
return this.\u5B9E\u73B0;
|
|
81
|
+
\u8FD0\u884C(req, res, \u9644\u52A0\u53C2\u6570) {
|
|
82
|
+
return this.\u5B9E\u73B0(req, res, \u9644\u52A0\u53C2\u6570);
|
|
50
83
|
}
|
|
51
84
|
};
|
|
52
85
|
|
|
53
86
|
// src/plugin/extend/urlencoded.ts
|
|
54
87
|
var \u8868\u5355\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
88
|
+
log = Global.getItem("log");
|
|
55
89
|
constructor(t, opt) {
|
|
56
|
-
super(t, async (req, res) => {
|
|
90
|
+
super(t, async (req, res, \u9644\u52A0\u53C2\u6570) => {
|
|
91
|
+
let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("JSON\u89E3\u6790\u63D2\u4EF6");
|
|
57
92
|
await new Promise(
|
|
58
93
|
(pRes, _rej) => import_express.default.urlencoded({ extended: true, ...opt })(req, res, () => {
|
|
59
94
|
pRes(null);
|
|
60
95
|
})
|
|
61
96
|
);
|
|
62
97
|
let parseResult = t.safeParse(req.body);
|
|
63
|
-
if (!parseResult.success)
|
|
98
|
+
if (!parseResult.success) {
|
|
99
|
+
await log.err("\u89E3\u6790url\u7F16\u7801\u6B63\u6587\u5931\u8D25: %O", parseResult.error);
|
|
64
100
|
throw new Error((0, import_node_util.format)("\u89E3\u6790url\u7F16\u7801\u6B63\u6587\u5931\u8D25: %O", parseResult.error));
|
|
101
|
+
}
|
|
65
102
|
return parseResult.data;
|
|
66
103
|
});
|
|
67
104
|
}
|
|
@@ -67,13 +67,14 @@ var \u63D2\u4EF6 = class {
|
|
|
67
67
|
\u83B7\u5F97\u7C7B\u578B() {
|
|
68
68
|
return this.\u7C7B\u578B;
|
|
69
69
|
}
|
|
70
|
-
\
|
|
71
|
-
return this.\u5B9E\u73B0;
|
|
70
|
+
\u8FD0\u884C(req, res, \u9644\u52A0\u53C2\u6570) {
|
|
71
|
+
return this.\u5B9E\u73B0(req, res, \u9644\u52A0\u53C2\u6570);
|
|
72
72
|
}
|
|
73
73
|
};
|
|
74
74
|
|
|
75
75
|
// src/plugin/extend/web-socket.ts
|
|
76
76
|
var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
77
|
+
log = Global.getItem("log");
|
|
77
78
|
constructor(\u4FE1\u606F\u63CF\u8FF0) {
|
|
78
79
|
super(
|
|
79
80
|
import_zod.z.object({
|
|
@@ -82,27 +83,39 @@ var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
82
83
|
\u5173\u95EDws\u8FDE\u63A5: import_zod.z.function(import_zod.z.tuple([]), import_zod.z.promise(import_zod.z.void()))
|
|
83
84
|
}).or(import_zod.z.undefined())
|
|
84
85
|
}),
|
|
85
|
-
async (req, _res) => {
|
|
86
|
+
async (req, _res, \u9644\u52A0\u53C2\u6570) => {
|
|
87
|
+
let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("ws\u63D2\u4EF6");
|
|
86
88
|
let wsId = req.headers["ws-client-id"];
|
|
87
89
|
let WebSocket\u7BA1\u7406\u80052 = await Global.getItem("WebSocket\u7BA1\u7406\u8005");
|
|
88
90
|
let ws\u53E5\u67C4 = null;
|
|
89
|
-
|
|
91
|
+
await log.debug("\u68C0\u67E5 ws-client-id \u5934\u4FE1\u606F", { wsId });
|
|
92
|
+
if (typeof wsId == "string") {
|
|
93
|
+
await log.debug("\u5C1D\u8BD5\u83B7\u53D6 WebSocket \u53E5\u67C4", { wsId });
|
|
90
94
|
ws\u53E5\u67C4 = await WebSocket\u7BA1\u7406\u80052.\u83B7\u5F97\u53E5\u67C4(wsId);
|
|
91
|
-
|
|
95
|
+
}
|
|
96
|
+
if (!ws\u53E5\u67C4) {
|
|
97
|
+
await log.err("\u672A\u80FD\u83B7\u53D6\u5230\u6709\u6548\u7684 WebSocket \u53E5\u67C4");
|
|
92
98
|
return { ws\u64CD\u4F5C: void 0 };
|
|
99
|
+
}
|
|
93
100
|
let \u5B58\u5728\u7684ws\u53E5\u67C4 = ws\u53E5\u67C4;
|
|
101
|
+
await log.debug("WebSocket \u53E5\u67C4\u5DF2\u51C6\u5907\u597D", { wsId });
|
|
94
102
|
return {
|
|
95
103
|
ws\u64CD\u4F5C: {
|
|
96
104
|
async \u53D1\u9001ws\u4FE1\u606F(\u4FE1\u606F) {
|
|
105
|
+
await log.debug("\u53D1\u9001 WebSocket \u4FE1\u606F", { \u4FE1\u606F });
|
|
97
106
|
return new Promise((res, rej) => {
|
|
98
107
|
\u5B58\u5728\u7684ws\u53E5\u67C4.send(JSON.stringify(\u4FE1\u606F), (err) => {
|
|
99
|
-
if (err)
|
|
108
|
+
if (err) {
|
|
109
|
+
log.err("\u53D1\u9001 WebSocket \u4FE1\u606F\u5931\u8D25", { \u9519\u8BEF: err }).catch(console.error);
|
|
100
110
|
return rej(err);
|
|
111
|
+
}
|
|
112
|
+
log.info("WebSocket \u4FE1\u606F\u53D1\u9001\u6210\u529F", { \u4FE1\u606F }).catch(console.error);
|
|
101
113
|
return res();
|
|
102
114
|
});
|
|
103
115
|
});
|
|
104
116
|
},
|
|
105
117
|
async \u5173\u95EDws\u8FDE\u63A5() {
|
|
118
|
+
await log.debug("\u5173\u95ED WebSocket \u8FDE\u63A5");
|
|
106
119
|
\u5B58\u5728\u7684ws\u53E5\u67C4.close();
|
|
107
120
|
}
|
|
108
121
|
}
|
package/dist/cjs/plugin/plug.cjs
CHANGED
|
@@ -31,8 +31,8 @@ var \u63D2\u4EF6 = class {
|
|
|
31
31
|
\u83B7\u5F97\u7C7B\u578B() {
|
|
32
32
|
return this.\u7C7B\u578B;
|
|
33
33
|
}
|
|
34
|
-
\
|
|
35
|
-
return this.\u5B9E\u73B0;
|
|
34
|
+
\u8FD0\u884C(req, res, \u9644\u52A0\u53C2\u6570) {
|
|
35
|
+
return this.\u5B9E\u73B0(req, res, \u9644\u52A0\u53C2\u6570);
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -2,13 +2,16 @@ import { Request, Response } from 'express';
|
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { Task } from '@lsby/ts-fp-data';
|
|
4
4
|
|
|
5
|
+
type 附加参数类型 = {
|
|
6
|
+
请求id: string;
|
|
7
|
+
};
|
|
5
8
|
declare class 插件<Obj extends z.AnyZodObject> {
|
|
6
9
|
private 类型;
|
|
7
10
|
private 实现;
|
|
8
11
|
protected readonly __类型保持符号?: Obj;
|
|
9
|
-
constructor(类型: Obj, 实现: (req: Request, res: Response) => Promise<z.infer<Obj>>);
|
|
12
|
+
constructor(类型: Obj, 实现: (req: Request, res: Response, 附加参数: 附加参数类型) => Promise<z.infer<Obj>>);
|
|
10
13
|
获得类型(): Obj;
|
|
11
|
-
|
|
14
|
+
运行(req: Request, res: Response, 附加参数: 附加参数类型): Promise<z.infer<Obj>>;
|
|
12
15
|
}
|
|
13
16
|
type 任意插件 = 插件<any>;
|
|
14
17
|
type 包装插件项<A> = Task<A>;
|
|
@@ -18,4 +21,4 @@ type 取Task插件类型<A> = A extends Task<infer x> ? x : never;
|
|
|
18
21
|
type 取插件内部ts类型<A> = A extends 插件<infer x> ? z.infer<x> : never;
|
|
19
22
|
type 合并插件结果<Arr extends Array<插件项类型>> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x extends infer 插件项 ? xs extends Array<插件项类型> ? z.infer<取Task插件内部类型<插件项>> & 合并插件结果<xs> : {} : {} : {};
|
|
20
23
|
|
|
21
|
-
export { type 任意插件, type 包装插件项, type 取Task插件内部类型, type 取Task插件类型, type 取插件内部ts类型, type 合并插件结果, 插件, type
|
|
24
|
+
export { type 任意插件, type 包装插件项, type 取Task插件内部类型, type 取Task插件类型, type 取插件内部ts类型, type 合并插件结果, 插件, type 插件项类型, type 附加参数类型 };
|
|
@@ -82,7 +82,8 @@ var \u670D\u52A1\u5668 = class {
|
|
|
82
82
|
async run() {
|
|
83
83
|
let app = (0, import_express.default)();
|
|
84
84
|
app.use(async (req, res) => {
|
|
85
|
-
let
|
|
85
|
+
let \u8BF7\u6C42id = (0, import_short_uuid.default)().new();
|
|
86
|
+
let log = (await this.log).extend("\u8BF7\u6C42").extend(\u8BF7\u6C42id);
|
|
86
87
|
try {
|
|
87
88
|
let \u8BF7\u6C42\u8DEF\u5F84 = req.path;
|
|
88
89
|
let \u8BF7\u6C42\u65B9\u6CD5 = req.method.toLowerCase();
|
|
@@ -97,7 +98,7 @@ var \u670D\u52A1\u5668 = class {
|
|
|
97
98
|
let \u63A5\u53E3\u7C7B\u578B = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B();
|
|
98
99
|
let \u63A5\u53E3\u63D2\u4EF6 = \u63A5\u53E3\u7C7B\u578B.\u83B7\u5F97\u63D2\u4EF6\u4EEC();
|
|
99
100
|
await log.debug("\u627E\u5230 %o \u4E2A \u63D2\u4EF6, \u51C6\u5907\u6267\u884C...", \u63A5\u53E3\u63D2\u4EF6.length);
|
|
100
|
-
let \u63D2\u4EF6\u7ED3\u679C = (await Promise.all(\u63A5\u53E3\u63D2\u4EF6.map(async (\u63D2\u4EF6) => await (await \u63D2\u4EF6.run()).\
|
|
101
|
+
let \u63D2\u4EF6\u7ED3\u679C = (await Promise.all(\u63A5\u53E3\u63D2\u4EF6.map(async (\u63D2\u4EF6) => await (await \u63D2\u4EF6.run()).\u8FD0\u884C(req, res, { \u8BF7\u6C42id })))).reduce((s, a) => Object.assign(s, a), {});
|
|
101
102
|
await log.debug("\u63D2\u4EF6 \u6267\u884C\u5B8C\u6BD5");
|
|
102
103
|
await log.debug("\u51C6\u5907\u6267\u884C\u63A5\u53E3\u903B\u8F91...");
|
|
103
104
|
let \u63A5\u53E3\u7ED3\u679C = await \u76EE\u6807\u63A5\u53E3.\u63A5\u53E3\u5B9E\u73B0(\u63D2\u4EF6\u7ED3\u679C);
|
|
@@ -7,8 +7,8 @@ var \u63D2\u4EF6 = class {
|
|
|
7
7
|
\u83B7\u5F97\u7C7B\u578B() {
|
|
8
8
|
return this.\u7C7B\u578B;
|
|
9
9
|
}
|
|
10
|
-
\
|
|
11
|
-
return this.\u5B9E\u73B0;
|
|
10
|
+
\u8FD0\u884C(req, res, \u9644\u52A0\u53C2\u6570) {
|
|
11
|
+
return this.\u5B9E\u73B0(req, res, \u9644\u52A0\u53C2\u6570);
|
|
12
12
|
}
|
|
13
13
|
};
|
|
14
14
|
|
|
@@ -3,11 +3,12 @@ import {
|
|
|
3
3
|
} from "./chunk-BC6IISWS.js";
|
|
4
4
|
import {
|
|
5
5
|
插件
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-43GZE5YL.js";
|
|
7
7
|
|
|
8
8
|
// src/plugin/extend/web-socket.ts
|
|
9
9
|
import { z } from "zod";
|
|
10
10
|
var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
11
|
+
log = Global.getItem("log");
|
|
11
12
|
constructor(\u4FE1\u606F\u63CF\u8FF0) {
|
|
12
13
|
super(
|
|
13
14
|
z.object({
|
|
@@ -16,27 +17,39 @@ var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
|
16
17
|
\u5173\u95EDws\u8FDE\u63A5: z.function(z.tuple([]), z.promise(z.void()))
|
|
17
18
|
}).or(z.undefined())
|
|
18
19
|
}),
|
|
19
|
-
async (req, _res) => {
|
|
20
|
+
async (req, _res, \u9644\u52A0\u53C2\u6570) => {
|
|
21
|
+
let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("ws\u63D2\u4EF6");
|
|
20
22
|
let wsId = req.headers["ws-client-id"];
|
|
21
23
|
let WebSocket\u7BA1\u7406\u8005 = await Global.getItem("WebSocket\u7BA1\u7406\u8005");
|
|
22
24
|
let ws\u53E5\u67C4 = null;
|
|
23
|
-
|
|
25
|
+
await log.debug("\u68C0\u67E5 ws-client-id \u5934\u4FE1\u606F", { wsId });
|
|
26
|
+
if (typeof wsId == "string") {
|
|
27
|
+
await log.debug("\u5C1D\u8BD5\u83B7\u53D6 WebSocket \u53E5\u67C4", { wsId });
|
|
24
28
|
ws\u53E5\u67C4 = await WebSocket\u7BA1\u7406\u8005.\u83B7\u5F97\u53E5\u67C4(wsId);
|
|
25
|
-
|
|
29
|
+
}
|
|
30
|
+
if (!ws\u53E5\u67C4) {
|
|
31
|
+
await log.err("\u672A\u80FD\u83B7\u53D6\u5230\u6709\u6548\u7684 WebSocket \u53E5\u67C4");
|
|
26
32
|
return { ws\u64CD\u4F5C: void 0 };
|
|
33
|
+
}
|
|
27
34
|
let \u5B58\u5728\u7684ws\u53E5\u67C4 = ws\u53E5\u67C4;
|
|
35
|
+
await log.debug("WebSocket \u53E5\u67C4\u5DF2\u51C6\u5907\u597D", { wsId });
|
|
28
36
|
return {
|
|
29
37
|
ws\u64CD\u4F5C: {
|
|
30
38
|
async \u53D1\u9001ws\u4FE1\u606F(\u4FE1\u606F) {
|
|
39
|
+
await log.debug("\u53D1\u9001 WebSocket \u4FE1\u606F", { \u4FE1\u606F });
|
|
31
40
|
return new Promise((res, rej) => {
|
|
32
41
|
\u5B58\u5728\u7684ws\u53E5\u67C4.send(JSON.stringify(\u4FE1\u606F), (err) => {
|
|
33
|
-
if (err)
|
|
42
|
+
if (err) {
|
|
43
|
+
log.err("\u53D1\u9001 WebSocket \u4FE1\u606F\u5931\u8D25", { \u9519\u8BEF: err }).catch(console.error);
|
|
34
44
|
return rej(err);
|
|
45
|
+
}
|
|
46
|
+
log.info("WebSocket \u4FE1\u606F\u53D1\u9001\u6210\u529F", { \u4FE1\u606F }).catch(console.error);
|
|
35
47
|
return res();
|
|
36
48
|
});
|
|
37
49
|
});
|
|
38
50
|
},
|
|
39
51
|
async \u5173\u95EDws\u8FDE\u63A5() {
|
|
52
|
+
await log.debug("\u5173\u95ED WebSocket \u8FDE\u63A5");
|
|
40
53
|
\u5B58\u5728\u7684ws\u53E5\u67C4.close();
|
|
41
54
|
}
|
|
42
55
|
}
|
|
@@ -1,21 +1,28 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Global
|
|
3
|
+
} from "./chunk-BC6IISWS.js";
|
|
1
4
|
import {
|
|
2
5
|
插件
|
|
3
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-43GZE5YL.js";
|
|
4
7
|
|
|
5
8
|
// src/plugin/extend/urlencoded.ts
|
|
6
9
|
import { format } from "node:util";
|
|
7
10
|
import express from "express";
|
|
8
11
|
var \u8868\u5355\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
12
|
+
log = Global.getItem("log");
|
|
9
13
|
constructor(t, opt) {
|
|
10
|
-
super(t, async (req, res) => {
|
|
14
|
+
super(t, async (req, res, \u9644\u52A0\u53C2\u6570) => {
|
|
15
|
+
let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("JSON\u89E3\u6790\u63D2\u4EF6");
|
|
11
16
|
await new Promise(
|
|
12
17
|
(pRes, _rej) => express.urlencoded({ extended: true, ...opt })(req, res, () => {
|
|
13
18
|
pRes(null);
|
|
14
19
|
})
|
|
15
20
|
);
|
|
16
21
|
let parseResult = t.safeParse(req.body);
|
|
17
|
-
if (!parseResult.success)
|
|
22
|
+
if (!parseResult.success) {
|
|
23
|
+
await log.err("\u89E3\u6790url\u7F16\u7801\u6B63\u6587\u5931\u8D25: %O", parseResult.error);
|
|
18
24
|
throw new Error(format("\u89E3\u6790url\u7F16\u7801\u6B63\u6587\u5931\u8D25: %O", parseResult.error));
|
|
25
|
+
}
|
|
19
26
|
return parseResult.data;
|
|
20
27
|
});
|
|
21
28
|
}
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk-BC6IISWS.js";
|
|
7
7
|
import {
|
|
8
8
|
插件
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-43GZE5YL.js";
|
|
10
10
|
|
|
11
11
|
// src/plugin/extend/json.ts
|
|
12
12
|
import { format } from "node:util";
|
|
@@ -14,8 +14,8 @@ import express from "express";
|
|
|
14
14
|
var JSON\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
|
|
15
15
|
log = Global.getItem("log");
|
|
16
16
|
constructor(t, opt) {
|
|
17
|
-
super(t, async (req, res) => {
|
|
18
|
-
let log = (await this.log).extend("JSON\u89E3\u6790\u63D2\u4EF6");
|
|
17
|
+
super(t, async (req, res, \u9644\u52A0\u53C2\u6570) => {
|
|
18
|
+
let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("JSON\u89E3\u6790\u63D2\u4EF6");
|
|
19
19
|
await new Promise(
|
|
20
20
|
(pRes, _rej) => express.json(opt)(req, res, () => {
|
|
21
21
|
pRes(null);
|
|
@@ -17,7 +17,8 @@ var \u670D\u52A1\u5668 = class {
|
|
|
17
17
|
async run() {
|
|
18
18
|
let app = express();
|
|
19
19
|
app.use(async (req, res) => {
|
|
20
|
-
let
|
|
20
|
+
let \u8BF7\u6C42id = short().new();
|
|
21
|
+
let log = (await this.log).extend("\u8BF7\u6C42").extend(\u8BF7\u6C42id);
|
|
21
22
|
try {
|
|
22
23
|
let \u8BF7\u6C42\u8DEF\u5F84 = req.path;
|
|
23
24
|
let \u8BF7\u6C42\u65B9\u6CD5 = req.method.toLowerCase();
|
|
@@ -32,7 +33,7 @@ var \u670D\u52A1\u5668 = class {
|
|
|
32
33
|
let \u63A5\u53E3\u7C7B\u578B = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B();
|
|
33
34
|
let \u63A5\u53E3\u63D2\u4EF6 = \u63A5\u53E3\u7C7B\u578B.\u83B7\u5F97\u63D2\u4EF6\u4EEC();
|
|
34
35
|
await log.debug("\u627E\u5230 %o \u4E2A \u63D2\u4EF6, \u51C6\u5907\u6267\u884C...", \u63A5\u53E3\u63D2\u4EF6.length);
|
|
35
|
-
let \u63D2\u4EF6\u7ED3\u679C = (await Promise.all(\u63A5\u53E3\u63D2\u4EF6.map(async (\u63D2\u4EF6) => await (await \u63D2\u4EF6.run()).\
|
|
36
|
+
let \u63D2\u4EF6\u7ED3\u679C = (await Promise.all(\u63A5\u53E3\u63D2\u4EF6.map(async (\u63D2\u4EF6) => await (await \u63D2\u4EF6.run()).\u8FD0\u884C(req, res, { \u8BF7\u6C42id })))).reduce((s, a) => Object.assign(s, a), {});
|
|
36
37
|
await log.debug("\u63D2\u4EF6 \u6267\u884C\u5B8C\u6BD5");
|
|
37
38
|
await log.debug("\u51C6\u5907\u6267\u884C\u63A5\u53E3\u903B\u8F91...");
|
|
38
39
|
let \u63A5\u53E3\u7ED3\u679C = await \u76EE\u6807\u63A5\u53E3.\u63A5\u53E3\u5B9E\u73B0(\u63D2\u4EF6\u7ED3\u679C);
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export { 自定义数据插件 } from './plugin/extend/custom-data.js';
|
|
|
9
9
|
export { JSON解析插件, 从接口类型获得JSON参数, 任意JSON解析插件, 任意JSON解析插件项, 合并JSON插件结果 } from './plugin/extend/json.js';
|
|
10
10
|
export { 表单解析插件 } from './plugin/extend/urlencoded.js';
|
|
11
11
|
export { WebSocket插件, 任意WS插件, 任意WS插件项, 取WS插件泛型, 取第一个WS插件结果 } from './plugin/extend/web-socket.js';
|
|
12
|
-
export { 任意插件, 包装插件项, 取Task插件内部类型, 取Task插件类型, 取插件内部ts类型, 合并插件结果, 插件,
|
|
12
|
+
export { 任意插件, 包装插件项, 取Task插件内部类型, 取Task插件类型, 取插件内部ts类型, 合并插件结果, 插件, 插件项类型, 附加参数类型 } from './plugin/plug.js';
|
|
13
13
|
export { 正确JSON结果, 正确结果, 正确自定义结果, 结果, 错误JSON结果, 错误结果 } from './result/result.js';
|
|
14
14
|
export { 服务器 } from './server/server.js';
|
|
15
15
|
import '@lsby/ts-fp-data';
|
package/dist/esm/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
WebSocket插件
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-GAC4ETIB.js";
|
|
4
4
|
import {
|
|
5
5
|
JSON接口
|
|
6
6
|
} from "./chunk-PVCULVI3.js";
|
|
@@ -10,19 +10,16 @@ import {
|
|
|
10
10
|
} from "./chunk-BVLGIDYF.js";
|
|
11
11
|
import {
|
|
12
12
|
中文路径支持插件
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-47T4ZLNQ.js";
|
|
14
14
|
import {
|
|
15
15
|
自定义数据插件
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-FDDCLNUD.js";
|
|
17
17
|
import {
|
|
18
18
|
JSON解析插件
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-M7QXZWBP.js";
|
|
20
20
|
import {
|
|
21
21
|
表单解析插件
|
|
22
|
-
} from "./chunk-
|
|
23
|
-
import {
|
|
24
|
-
服务器
|
|
25
|
-
} from "./chunk-47GMSX5W.js";
|
|
22
|
+
} from "./chunk-M52TXG2M.js";
|
|
26
23
|
import {
|
|
27
24
|
正确JSON结果,
|
|
28
25
|
正确结果,
|
|
@@ -31,6 +28,9 @@ import {
|
|
|
31
28
|
错误JSON结果,
|
|
32
29
|
错误结果
|
|
33
30
|
} from "./chunk-F6MKRRVF.js";
|
|
31
|
+
import {
|
|
32
|
+
服务器
|
|
33
|
+
} from "./chunk-R3PAE6XG.js";
|
|
34
34
|
import "./chunk-PVE5VI5K.js";
|
|
35
35
|
import {
|
|
36
36
|
业务行为
|
|
@@ -48,7 +48,7 @@ import {
|
|
|
48
48
|
} from "./chunk-SF5Z34AP.js";
|
|
49
49
|
import {
|
|
50
50
|
插件
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-43GZE5YL.js";
|
|
52
52
|
export {
|
|
53
53
|
JSON\u63A5\u53E3,
|
|
54
54
|
JSON\u72B6\u6001\u63A5\u53E3,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
JSON解析插件
|
|
3
|
-
} from "../../chunk-
|
|
3
|
+
} from "../../chunk-M7QXZWBP.js";
|
|
4
4
|
import "../../chunk-PVE5VI5K.js";
|
|
5
5
|
import "../../chunk-BC6IISWS.js";
|
|
6
6
|
import "../../chunk-EAVNASDB.js";
|
|
7
|
-
import "../../chunk-
|
|
7
|
+
import "../../chunk-43GZE5YL.js";
|
|
8
8
|
export {
|
|
9
9
|
JSON\u89E3\u6790\u63D2\u4EF6
|
|
10
10
|
};
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
表单解析插件
|
|
3
|
-
} from "../../chunk-
|
|
4
|
-
import "../../chunk-
|
|
3
|
+
} from "../../chunk-M52TXG2M.js";
|
|
4
|
+
import "../../chunk-BC6IISWS.js";
|
|
5
|
+
import "../../chunk-EAVNASDB.js";
|
|
6
|
+
import "../../chunk-43GZE5YL.js";
|
|
5
7
|
export {
|
|
6
8
|
\u8868\u5355\u89E3\u6790\u63D2\u4EF6
|
|
7
9
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
WebSocket插件
|
|
3
|
-
} from "../../chunk-
|
|
3
|
+
} from "../../chunk-GAC4ETIB.js";
|
|
4
4
|
import "../../chunk-BC6IISWS.js";
|
|
5
5
|
import "../../chunk-EAVNASDB.js";
|
|
6
|
-
import "../../chunk-
|
|
6
|
+
import "../../chunk-43GZE5YL.js";
|
|
7
7
|
export {
|
|
8
8
|
WebSocket\u63D2\u4EF6
|
|
9
9
|
};
|
|
@@ -2,13 +2,16 @@ import { Request, Response } from 'express';
|
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { Task } from '@lsby/ts-fp-data';
|
|
4
4
|
|
|
5
|
+
type 附加参数类型 = {
|
|
6
|
+
请求id: string;
|
|
7
|
+
};
|
|
5
8
|
declare class 插件<Obj extends z.AnyZodObject> {
|
|
6
9
|
private 类型;
|
|
7
10
|
private 实现;
|
|
8
11
|
protected readonly __类型保持符号?: Obj;
|
|
9
|
-
constructor(类型: Obj, 实现: (req: Request, res: Response) => Promise<z.infer<Obj>>);
|
|
12
|
+
constructor(类型: Obj, 实现: (req: Request, res: Response, 附加参数: 附加参数类型) => Promise<z.infer<Obj>>);
|
|
10
13
|
获得类型(): Obj;
|
|
11
|
-
|
|
14
|
+
运行(req: Request, res: Response, 附加参数: 附加参数类型): Promise<z.infer<Obj>>;
|
|
12
15
|
}
|
|
13
16
|
type 任意插件 = 插件<any>;
|
|
14
17
|
type 包装插件项<A> = Task<A>;
|
|
@@ -18,4 +21,4 @@ type 取Task插件类型<A> = A extends Task<infer x> ? x : never;
|
|
|
18
21
|
type 取插件内部ts类型<A> = A extends 插件<infer x> ? z.infer<x> : never;
|
|
19
22
|
type 合并插件结果<Arr extends Array<插件项类型>> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x extends infer 插件项 ? xs extends Array<插件项类型> ? z.infer<取Task插件内部类型<插件项>> & 合并插件结果<xs> : {} : {} : {};
|
|
20
23
|
|
|
21
|
-
export { type 任意插件, type 包装插件项, type 取Task插件内部类型, type 取Task插件类型, type 取插件内部ts类型, type 合并插件结果, 插件, type
|
|
24
|
+
export { type 任意插件, type 包装插件项, type 取Task插件内部类型, type 取Task插件类型, type 取插件内部ts类型, type 合并插件结果, 插件, type 插件项类型, type 附加参数类型 };
|
package/dist/esm/plugin/plug.js
CHANGED