@lsby/net-core 0.3.41 → 0.3.43

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.
Files changed (46) hide show
  1. package/dist/cjs/index.cjs +41 -18
  2. package/dist/cjs/index.d.cts +1 -1
  3. package/dist/cjs/interface/extend/json-base.cjs +4 -4
  4. package/dist/cjs/interface/extend/json-wrap.cjs +4 -4
  5. package/dist/cjs/plugin/extend/chinese-path.cjs +2 -2
  6. package/dist/cjs/plugin/extend/custom-data.cjs +41 -3
  7. package/dist/cjs/plugin/extend/custom-data.d.cts +1 -0
  8. package/dist/cjs/plugin/extend/json.cjs +4 -4
  9. package/dist/cjs/plugin/extend/urlencoded.cjs +41 -4
  10. package/dist/cjs/plugin/extend/urlencoded.d.cts +1 -0
  11. package/dist/cjs/plugin/extend/web-socket.cjs +19 -6
  12. package/dist/cjs/plugin/extend/web-socket.d.cts +1 -0
  13. package/dist/cjs/plugin/plug.cjs +2 -2
  14. package/dist/cjs/plugin/plug.d.cts +6 -3
  15. package/dist/cjs/result/result.cjs +4 -4
  16. package/dist/cjs/result/result.d.cts +6 -3
  17. package/dist/cjs/server/server.cjs +4 -3
  18. package/dist/esm/{chunk-MUTTFLKG.js → chunk-24WMTMT6.js} +20 -7
  19. package/dist/esm/{chunk-N4NY37XI.js → chunk-43GZE5YL.js} +2 -2
  20. package/dist/esm/{chunk-3PONWJ35.js → chunk-47T4ZLNQ.js} +1 -1
  21. package/dist/esm/{chunk-F6MKRRVF.js → chunk-4V2TOQZ2.js} +4 -4
  22. package/dist/esm/{chunk-47GMSX5W.js → chunk-5MFTZ5T3.js} +4 -3
  23. package/dist/esm/{chunk-OOCVEPVP.js → chunk-6AW5SSYA.js} +10 -3
  24. package/dist/esm/{chunk-PVCULVI3.js → chunk-FAW4GTXP.js} +4 -4
  25. package/dist/esm/{chunk-VBFA32JO.js → chunk-GVIGQG5Y.js} +5 -5
  26. package/dist/esm/chunk-JX5MRJL6.js +22 -0
  27. package/dist/esm/{chunk-BVLGIDYF.js → chunk-WF7MUELD.js} +4 -4
  28. package/dist/esm/index.d.ts +1 -1
  29. package/dist/esm/index.js +21 -21
  30. package/dist/esm/interface/extend/json-base.js +3 -3
  31. package/dist/esm/interface/extend/json-wrap.js +4 -4
  32. package/dist/esm/plugin/extend/chinese-path.js +2 -2
  33. package/dist/esm/plugin/extend/custom-data.d.ts +1 -0
  34. package/dist/esm/plugin/extend/custom-data.js +4 -2
  35. package/dist/esm/plugin/extend/json.js +2 -2
  36. package/dist/esm/plugin/extend/urlencoded.d.ts +1 -0
  37. package/dist/esm/plugin/extend/urlencoded.js +4 -2
  38. package/dist/esm/plugin/extend/web-socket.d.ts +1 -0
  39. package/dist/esm/plugin/extend/web-socket.js +2 -2
  40. package/dist/esm/plugin/plug.d.ts +6 -3
  41. package/dist/esm/plugin/plug.js +1 -1
  42. package/dist/esm/result/result.d.ts +6 -3
  43. package/dist/esm/result/result.js +1 -1
  44. package/dist/esm/server/server.js +1 -1
  45. package/package.json +1 -1
  46. package/dist/esm/chunk-2MN4G2DG.js +0 -14
@@ -258,8 +258,8 @@ var \u6B63\u786EJSON\u7ED3\u679C = class extends \u6B63\u786E\u7ED3\u679C {
258
258
  this.data = data;
259
259
  }
260
260
  log = Global.getItem("log");
261
- async run(req, res) {
262
- let log = (await this.log).extend("\u6B63\u786EJSON\u7ED3\u679C");
261
+ async run(req, res, \u9644\u52A0\u53C2\u6570) {
262
+ let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("\u6B63\u786EJSON\u7ED3\u679C");
263
263
  await log.debug("\u8FD4\u56DE\u6570\u636E: %o", \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(this.data));
264
264
  res.send(this.data);
265
265
  }
@@ -282,8 +282,8 @@ var \u9519\u8BEFJSON\u7ED3\u679C = class extends \u9519\u8BEF\u7ED3\u679C {
282
282
  this.data = data;
283
283
  }
284
284
  log = Global.getItem("log");
285
- async run(req, res) {
286
- let log = (await this.log).extend("\u9519\u8BEFJSON\u7ED3\u679C");
285
+ async run(req, res, \u9644\u52A0\u53C2\u6570) {
286
+ let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("\u9519\u8BEFJSON\u7ED3\u679C");
287
287
  await log.debug("\u8FD4\u56DE\u6570\u636E: %o", \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(this.data));
288
288
  res.send(this.data);
289
289
  }
@@ -396,8 +396,8 @@ var \u63D2\u4EF6 = class {
396
396
  \u83B7\u5F97\u7C7B\u578B() {
397
397
  return this.\u7C7B\u578B;
398
398
  }
399
- \u83B7\u5F97\u5B9E\u73B0() {
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
 
@@ -416,8 +416,13 @@ var \u4E2D\u6587\u8DEF\u5F84\u652F\u6301\u63D2\u4EF6 = class extends \u63D2\u4EF
416
416
 
417
417
  // src/plugin/extend/custom-data.ts
418
418
  var \u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
419
+ log = Global.getItem("log");
419
420
  constructor(t, data) {
420
- super(t, async () => data);
421
+ super(t, async (_res, _req, \u9644\u52A0\u53C2\u6570) => {
422
+ let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("\u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6");
423
+ await log.debug("\u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6\u8FD0\u884C, \u7ED3\u679C: %o", data);
424
+ return data;
425
+ });
421
426
  }
422
427
  };
423
428
 
@@ -427,8 +432,8 @@ var import_express = __toESM(require("express"), 1);
427
432
  var JSON\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
428
433
  log = Global.getItem("log");
429
434
  constructor(t, opt) {
430
- super(t, async (req, res) => {
431
- let log = (await this.log).extend("JSON\u89E3\u6790\u63D2\u4EF6");
435
+ super(t, async (req, res, \u9644\u52A0\u53C2\u6570) => {
436
+ let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("JSON\u89E3\u6790\u63D2\u4EF6");
432
437
  await new Promise(
433
438
  (pRes, _rej) => import_express.default.json(opt)(req, res, () => {
434
439
  pRes(null);
@@ -450,16 +455,20 @@ var JSON\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
450
455
  var import_node_util2 = require("util");
451
456
  var import_express2 = __toESM(require("express"), 1);
452
457
  var \u8868\u5355\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
458
+ log = Global.getItem("log");
453
459
  constructor(t, opt) {
454
- super(t, async (req, res) => {
460
+ super(t, async (req, res, \u9644\u52A0\u53C2\u6570) => {
461
+ let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("JSON\u89E3\u6790\u63D2\u4EF6");
455
462
  await new Promise(
456
463
  (pRes, _rej) => import_express2.default.urlencoded({ extended: true, ...opt })(req, res, () => {
457
464
  pRes(null);
458
465
  })
459
466
  );
460
467
  let parseResult = t.safeParse(req.body);
461
- if (!parseResult.success)
468
+ if (!parseResult.success) {
469
+ await log.err("\u89E3\u6790url\u7F16\u7801\u6B63\u6587\u5931\u8D25: %O", parseResult.error);
462
470
  throw new Error((0, import_node_util2.format)("\u89E3\u6790url\u7F16\u7801\u6B63\u6587\u5931\u8D25: %O", parseResult.error));
471
+ }
463
472
  return parseResult.data;
464
473
  });
465
474
  }
@@ -468,6 +477,7 @@ var \u8868\u5355\u89E3\u6790\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
468
477
  // src/plugin/extend/web-socket.ts
469
478
  var import_zod3 = require("zod");
470
479
  var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
480
+ log = Global.getItem("log");
471
481
  constructor(\u4FE1\u606F\u63CF\u8FF0) {
472
482
  super(
473
483
  import_zod3.z.object({
@@ -476,27 +486,39 @@ var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
476
486
  \u5173\u95EDws\u8FDE\u63A5: import_zod3.z.function(import_zod3.z.tuple([]), import_zod3.z.promise(import_zod3.z.void()))
477
487
  }).or(import_zod3.z.undefined())
478
488
  }),
479
- async (req, _res) => {
489
+ async (req, _res, \u9644\u52A0\u53C2\u6570) => {
490
+ let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("ws\u63D2\u4EF6");
480
491
  let wsId = req.headers["ws-client-id"];
481
492
  let WebSocket\u7BA1\u7406\u80052 = await Global.getItem("WebSocket\u7BA1\u7406\u8005");
482
493
  let ws\u53E5\u67C4 = null;
483
- if (typeof wsId == "string")
494
+ await log.debug("\u68C0\u67E5 ws-client-id \u5934\u4FE1\u606F", { wsId });
495
+ if (typeof wsId == "string") {
496
+ await log.debug("\u5C1D\u8BD5\u83B7\u53D6 WebSocket \u53E5\u67C4", { wsId });
484
497
  ws\u53E5\u67C4 = await WebSocket\u7BA1\u7406\u80052.\u83B7\u5F97\u53E5\u67C4(wsId);
485
- if (!ws\u53E5\u67C4)
498
+ }
499
+ if (!ws\u53E5\u67C4) {
500
+ await log.err("\u672A\u80FD\u83B7\u53D6\u5230\u6709\u6548\u7684 WebSocket \u53E5\u67C4");
486
501
  return { ws\u64CD\u4F5C: void 0 };
502
+ }
487
503
  let \u5B58\u5728\u7684ws\u53E5\u67C4 = ws\u53E5\u67C4;
504
+ await log.debug("WebSocket \u53E5\u67C4\u5DF2\u51C6\u5907\u597D", { wsId });
488
505
  return {
489
506
  ws\u64CD\u4F5C: {
490
507
  async \u53D1\u9001ws\u4FE1\u606F(\u4FE1\u606F) {
508
+ await log.debug("\u53D1\u9001 WebSocket \u4FE1\u606F", { \u4FE1\u606F });
491
509
  return new Promise((res, rej) => {
492
510
  \u5B58\u5728\u7684ws\u53E5\u67C4.send(JSON.stringify(\u4FE1\u606F), (err) => {
493
- if (err)
511
+ if (err) {
512
+ log.err("\u53D1\u9001 WebSocket \u4FE1\u606F\u5931\u8D25", { \u9519\u8BEF: err }).catch(console.error);
494
513
  return rej(err);
514
+ }
515
+ log.info("WebSocket \u4FE1\u606F\u53D1\u9001\u6210\u529F", { \u4FE1\u606F }).catch(console.error);
495
516
  return res();
496
517
  });
497
518
  });
498
519
  },
499
520
  async \u5173\u95EDws\u8FDE\u63A5() {
521
+ await log.debug("\u5173\u95ED WebSocket \u8FDE\u63A5");
500
522
  \u5B58\u5728\u7684ws\u53E5\u67C4.close();
501
523
  }
502
524
  }
@@ -521,7 +543,8 @@ var \u670D\u52A1\u5668 = class {
521
543
  async run() {
522
544
  let app = (0, import_express3.default)();
523
545
  app.use(async (req, res) => {
524
- let log = (await this.log).extend("\u8BF7\u6C42").extend((0, import_short_uuid.default)().new());
546
+ let \u8BF7\u6C42id = (0, import_short_uuid.default)().new();
547
+ let log = (await this.log).extend(\u8BF7\u6C42id).extend("\u63A7\u5236\u5668");
525
548
  try {
526
549
  let \u8BF7\u6C42\u8DEF\u5F84 = req.path;
527
550
  let \u8BF7\u6C42\u65B9\u6CD5 = req.method.toLowerCase();
@@ -536,13 +559,13 @@ var \u670D\u52A1\u5668 = class {
536
559
  let \u63A5\u53E3\u7C7B\u578B2 = \u76EE\u6807\u63A5\u53E3.\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B();
537
560
  let \u63A5\u53E3\u63D2\u4EF6 = \u63A5\u53E3\u7C7B\u578B2.\u83B7\u5F97\u63D2\u4EF6\u4EEC();
538
561
  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()).\u83B7\u5F97\u5B9E\u73B0()(req, res)))).reduce((s, a) => Object.assign(s, a), {});
562
+ 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
563
  await log.debug("\u63D2\u4EF6 \u6267\u884C\u5B8C\u6BD5");
541
564
  await log.debug("\u51C6\u5907\u6267\u884C\u63A5\u53E3\u903B\u8F91...");
542
565
  let \u63A5\u53E3\u7ED3\u679C = await \u76EE\u6807\u63A5\u53E3.\u63A5\u53E3\u5B9E\u73B0(\u63D2\u4EF6\u7ED3\u679C);
543
566
  await log.debug("\u63A5\u53E3\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
544
567
  await log.debug("\u51C6\u5907\u6267\u884C\u8FD4\u56DE\u903B\u8F91...");
545
- await \u63A5\u53E3\u7ED3\u679C.run(req, res);
568
+ await \u63A5\u53E3\u7ED3\u679C.run(req, res, { \u8BF7\u6C42id });
546
569
  await log.debug("\u8FD4\u56DE\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
547
570
  return;
548
571
  }
@@ -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类型, 合并插件结果, 插件, 插件项类型 } from './plugin/plug.cjs';
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';
@@ -92,8 +92,8 @@ var \u6B63\u786EJSON\u7ED3\u679C = class extends \u6B63\u786E\u7ED3\u679C {
92
92
  this.data = data;
93
93
  }
94
94
  log = Global.getItem("log");
95
- async run(req, res) {
96
- let log = (await this.log).extend("\u6B63\u786EJSON\u7ED3\u679C");
95
+ async run(req, res, \u9644\u52A0\u53C2\u6570) {
96
+ let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("\u6B63\u786EJSON\u7ED3\u679C");
97
97
  await log.debug("\u8FD4\u56DE\u6570\u636E: %o", \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(this.data));
98
98
  res.send(this.data);
99
99
  }
@@ -107,8 +107,8 @@ var \u9519\u8BEFJSON\u7ED3\u679C = class extends \u9519\u8BEF\u7ED3\u679C {
107
107
  this.data = data;
108
108
  }
109
109
  log = Global.getItem("log");
110
- async run(req, res) {
111
- let log = (await this.log).extend("\u9519\u8BEFJSON\u7ED3\u679C");
110
+ async run(req, res, \u9644\u52A0\u53C2\u6570) {
111
+ let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("\u9519\u8BEFJSON\u7ED3\u679C");
112
112
  await log.debug("\u8FD4\u56DE\u6570\u636E: %o", \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(this.data));
113
113
  res.send(this.data);
114
114
  }
@@ -94,8 +94,8 @@ var \u6B63\u786EJSON\u7ED3\u679C = class extends \u6B63\u786E\u7ED3\u679C {
94
94
  this.data = data;
95
95
  }
96
96
  log = Global.getItem("log");
97
- async run(req, res) {
98
- let log = (await this.log).extend("\u6B63\u786EJSON\u7ED3\u679C");
97
+ async run(req, res, \u9644\u52A0\u53C2\u6570) {
98
+ let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("\u6B63\u786EJSON\u7ED3\u679C");
99
99
  await log.debug("\u8FD4\u56DE\u6570\u636E: %o", \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(this.data));
100
100
  res.send(this.data);
101
101
  }
@@ -109,8 +109,8 @@ var \u9519\u8BEFJSON\u7ED3\u679C = class extends \u9519\u8BEF\u7ED3\u679C {
109
109
  this.data = data;
110
110
  }
111
111
  log = Global.getItem("log");
112
- async run(req, res) {
113
- let log = (await this.log).extend("\u9519\u8BEFJSON\u7ED3\u679C");
112
+ async run(req, res, \u9644\u52A0\u53C2\u6570) {
113
+ let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("\u9519\u8BEFJSON\u7ED3\u679C");
114
114
  await log.debug("\u8FD4\u56DE\u6570\u636E: %o", \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(this.data));
115
115
  res.send(this.data);
116
116
  }
@@ -35,8 +35,8 @@ var \u63D2\u4EF6 = class {
35
35
  \u83B7\u5F97\u7C7B\u578B() {
36
36
  return this.\u7C7B\u578B;
37
37
  }
38
- \u83B7\u5F97\u5B9E\u73B0() {
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
 
@@ -24,6 +24,39 @@ __export(custom_data_exports, {
24
24
  });
25
25
  module.exports = __toCommonJS(custom_data_exports);
26
26
 
27
+ // src/global/global.ts
28
+ var import_ts_global = require("@lsby/ts-global");
29
+ var import_ts_log = require("@lsby/ts-log");
30
+
31
+ // src/global/ws.ts
32
+ var WebSocket\u7BA1\u7406\u8005 = class {
33
+ constructor(\u8FDE\u63A5\u8868) {
34
+ this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
35
+ }
36
+ async \u589E\u52A0\u8FDE\u63A5(\u8BF7\u6C42id, ws\u53E5\u67C4) {
37
+ this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] = ws\u53E5\u67C4;
38
+ }
39
+ async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u8BF7\u6C42id) {
40
+ return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] == null ? false : true;
41
+ }
42
+ async \u83B7\u5F97\u53E5\u67C4(\u8BF7\u6C42id) {
43
+ return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] || null;
44
+ }
45
+ async \u5220\u9664\u8FDE\u63A5(id) {
46
+ delete this.\u8FDE\u63A5\u8868[id];
47
+ }
48
+ };
49
+
50
+ // src/global/global.ts
51
+ var Global = new import_ts_global.GlobalService([
52
+ new import_ts_global.GlobalAsyncItem("log", async () => {
53
+ return new import_ts_log.Log("@lsby:net-core");
54
+ }),
55
+ new import_ts_global.GlobalAsyncItem("WebSocket\u7BA1\u7406\u8005", async () => {
56
+ return new WebSocket\u7BA1\u7406\u8005({});
57
+ })
58
+ ]);
59
+
27
60
  // src/plugin/plug.ts
28
61
  var \u63D2\u4EF6 = class {
29
62
  constructor(\u7C7B\u578B, \u5B9E\u73B0) {
@@ -33,15 +66,20 @@ var \u63D2\u4EF6 = class {
33
66
  \u83B7\u5F97\u7C7B\u578B() {
34
67
  return this.\u7C7B\u578B;
35
68
  }
36
- \u83B7\u5F97\u5B9E\u73B0() {
37
- return this.\u5B9E\u73B0;
69
+ \u8FD0\u884C(req, res, \u9644\u52A0\u53C2\u6570) {
70
+ return this.\u5B9E\u73B0(req, res, \u9644\u52A0\u53C2\u6570);
38
71
  }
39
72
  };
40
73
 
41
74
  // src/plugin/extend/custom-data.ts
42
75
  var \u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
76
+ log = Global.getItem("log");
43
77
  constructor(t, data) {
44
- super(t, async () => data);
78
+ super(t, async (_res, _req, \u9644\u52A0\u53C2\u6570) => {
79
+ let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("\u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6");
80
+ await log.debug("\u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6\u8FD0\u884C, \u7ED3\u679C: %o", data);
81
+ return data;
82
+ });
45
83
  }
46
84
  };
47
85
  // Annotate the CommonJS export names for ESM import in node:
@@ -4,6 +4,7 @@ import 'express';
4
4
  import '@lsby/ts-fp-data';
5
5
 
6
6
  declare class 自定义数据插件<Data extends z.AnyZodObject> extends __<Data> {
7
+ private log;
7
8
  constructor(t: Data, data: z.infer<Data>);
8
9
  }
9
10
 
@@ -101,8 +101,8 @@ var \u63D2\u4EF6 = class {
101
101
  \u83B7\u5F97\u7C7B\u578B() {
102
102
  return this.\u7C7B\u578B;
103
103
  }
104
- \u83B7\u5F97\u5B9E\u73B0() {
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
- \u83B7\u5F97\u5B9E\u73B0() {
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
  }
@@ -4,6 +4,7 @@ import { 插件 as __ } from '../plug.cjs';
4
4
  import '@lsby/ts-fp-data';
5
5
 
6
6
  declare class 表单解析插件<Result extends z.AnyZodObject> extends __<Result> {
7
+ private log;
7
8
  constructor(t: Result, opt: Parameters<typeof express.urlencoded>[0]);
8
9
  }
9
10
 
@@ -67,13 +67,14 @@ var \u63D2\u4EF6 = class {
67
67
  \u83B7\u5F97\u7C7B\u578B() {
68
68
  return this.\u7C7B\u578B;
69
69
  }
70
- \u83B7\u5F97\u5B9E\u73B0() {
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
- if (typeof wsId == "string")
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
- if (!ws\u53E5\u67C4)
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
  }
@@ -12,6 +12,7 @@ declare class WebSocket插件<信息 extends z.AnyZodObject> extends __<z.ZodObj
12
12
  z.ZodUndefined
13
13
  ]>;
14
14
  }>> {
15
+ private log;
15
16
  constructor(信息描述: 信息);
16
17
  }
17
18
  type 任意WS插件 = WebSocket插件<any>;
@@ -31,8 +31,8 @@ var \u63D2\u4EF6 = class {
31
31
  \u83B7\u5F97\u7C7B\u578B() {
32
32
  return this.\u7C7B\u578B;
33
33
  }
34
- \u83B7\u5F97\u5B9E\u73B0() {
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
- 获得实现(): (req: Request, res: Response) => Promise<z.infer<Obj>>;
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 附加参数类型 };
@@ -97,8 +97,8 @@ var \u6B63\u786EJSON\u7ED3\u679C = class extends \u6B63\u786E\u7ED3\u679C {
97
97
  this.data = data;
98
98
  }
99
99
  log = Global.getItem("log");
100
- async run(req, res) {
101
- let log = (await this.log).extend("\u6B63\u786EJSON\u7ED3\u679C");
100
+ async run(req, res, \u9644\u52A0\u53C2\u6570) {
101
+ let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("\u6B63\u786EJSON\u7ED3\u679C");
102
102
  await log.debug("\u8FD4\u56DE\u6570\u636E: %o", \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(this.data));
103
103
  res.send(this.data);
104
104
  }
@@ -121,8 +121,8 @@ var \u9519\u8BEFJSON\u7ED3\u679C = class extends \u9519\u8BEF\u7ED3\u679C {
121
121
  this.data = data;
122
122
  }
123
123
  log = Global.getItem("log");
124
- async run(req, res) {
125
- let log = (await this.log).extend("\u9519\u8BEFJSON\u7ED3\u679C");
124
+ async run(req, res, \u9644\u52A0\u53C2\u6570) {
125
+ let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("\u9519\u8BEFJSON\u7ED3\u679C");
126
126
  await log.debug("\u8FD4\u56DE\u6570\u636E: %o", \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(this.data));
127
127
  res.send(this.data);
128
128
  }
@@ -1,8 +1,11 @@
1
1
  import { Request, Response } from 'express';
2
+ import { 附加参数类型 as ______ } from '../plugin/plug.cjs';
3
+ import 'zod';
4
+ import '@lsby/ts-fp-data';
2
5
 
3
6
  declare abstract class 结果<T> {
4
7
  protected readonly __类型保持符号?: T;
5
- abstract run(req: Request, res: Response): Promise<void>;
8
+ abstract run(req: Request, res: Response, 附加参数: ______): Promise<void>;
6
9
  }
7
10
  declare abstract class 正确结果<T> extends 结果<T> {
8
11
  private 正确结果烙印;
@@ -11,7 +14,7 @@ declare class 正确JSON结果<Data extends Record<string, unknown>> extends 正
11
14
  private data;
12
15
  private log;
13
16
  constructor(data: Data);
14
- run(req: Request, res: Response): Promise<void>;
17
+ run(req: Request, res: Response, 附加参数: ______): Promise<void>;
15
18
  }
16
19
  declare class 正确自定义结果 extends 正确结果<unknown> {
17
20
  private customHandler;
@@ -25,7 +28,7 @@ declare class 错误JSON结果<Data> extends 错误结果<Data> {
25
28
  private data;
26
29
  private log;
27
30
  constructor(data: Data);
28
- run(req: Request, res: Response): Promise<void>;
31
+ run(req: Request, res: Response, 附加参数: ______): Promise<void>;
29
32
  }
30
33
 
31
34
  export { 正确JSON结果, 正确结果, 正确自定义结果, 结果, 错误JSON结果, 错误结果 };
@@ -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 log = (await this.log).extend("\u8BF7\u6C42").extend((0, import_short_uuid.default)().new());
85
+ let \u8BF7\u6C42id = (0, import_short_uuid.default)().new();
86
+ let log = (await this.log).extend(\u8BF7\u6C42id).extend("\u63A7\u5236\u5668");
86
87
  try {
87
88
  let \u8BF7\u6C42\u8DEF\u5F84 = req.path;
88
89
  let \u8BF7\u6C42\u65B9\u6CD5 = req.method.toLowerCase();
@@ -97,13 +98,13 @@ 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()).\u83B7\u5F97\u5B9E\u73B0()(req, res)))).reduce((s, a) => Object.assign(s, a), {});
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);
104
105
  await log.debug("\u63A5\u53E3\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
105
106
  await log.debug("\u51C6\u5907\u6267\u884C\u8FD4\u56DE\u903B\u8F91...");
106
- await \u63A5\u53E3\u7ED3\u679C.run(req, res);
107
+ await \u63A5\u53E3\u7ED3\u679C.run(req, res, { \u8BF7\u6C42id });
107
108
  await log.debug("\u8FD4\u56DE\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
108
109
  return;
109
110
  }
@@ -1,13 +1,14 @@
1
+ import {
2
+ 插件
3
+ } from "./chunk-43GZE5YL.js";
1
4
  import {
2
5
  Global
3
6
  } from "./chunk-BC6IISWS.js";
4
- import {
5
- 插件
6
- } from "./chunk-N4NY37XI.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
- if (typeof wsId == "string")
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
- if (!ws\u53E5\u67C4)
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
  }
@@ -7,8 +7,8 @@ var \u63D2\u4EF6 = class {
7
7
  \u83B7\u5F97\u7C7B\u578B() {
8
8
  return this.\u7C7B\u578B;
9
9
  }
10
- \u83B7\u5F97\u5B9E\u73B0() {
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
 
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  插件
3
- } from "./chunk-N4NY37XI.js";
3
+ } from "./chunk-43GZE5YL.js";
4
4
 
5
5
  // src/plugin/extend/chinese-path.ts
6
6
  import { URL } from "node:url";
@@ -17,8 +17,8 @@ var \u6B63\u786EJSON\u7ED3\u679C = class extends \u6B63\u786E\u7ED3\u679C {
17
17
  this.data = data;
18
18
  }
19
19
  log = Global.getItem("log");
20
- async run(req, res) {
21
- let log = (await this.log).extend("\u6B63\u786EJSON\u7ED3\u679C");
20
+ async run(req, res, \u9644\u52A0\u53C2\u6570) {
21
+ let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("\u6B63\u786EJSON\u7ED3\u679C");
22
22
  await log.debug("\u8FD4\u56DE\u6570\u636E: %o", \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(this.data));
23
23
  res.send(this.data);
24
24
  }
@@ -41,8 +41,8 @@ var \u9519\u8BEFJSON\u7ED3\u679C = class extends \u9519\u8BEF\u7ED3\u679C {
41
41
  this.data = data;
42
42
  }
43
43
  log = Global.getItem("log");
44
- async run(req, res) {
45
- let log = (await this.log).extend("\u9519\u8BEFJSON\u7ED3\u679C");
44
+ async run(req, res, \u9644\u52A0\u53C2\u6570) {
45
+ let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("\u9519\u8BEFJSON\u7ED3\u679C");
46
46
  await log.debug("\u8FD4\u56DE\u6570\u636E: %o", \u9012\u5F52\u622A\u65AD\u5B57\u7B26\u4E32(this.data));
47
47
  res.send(this.data);
48
48
  }
@@ -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 log = (await this.log).extend("\u8BF7\u6C42").extend(short().new());
20
+ let \u8BF7\u6C42id = short().new();
21
+ let log = (await this.log).extend(\u8BF7\u6C42id).extend("\u63A7\u5236\u5668");
21
22
  try {
22
23
  let \u8BF7\u6C42\u8DEF\u5F84 = req.path;
23
24
  let \u8BF7\u6C42\u65B9\u6CD5 = req.method.toLowerCase();
@@ -32,13 +33,13 @@ 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()).\u83B7\u5F97\u5B9E\u73B0()(req, res)))).reduce((s, a) => Object.assign(s, a), {});
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);
39
40
  await log.debug("\u63A5\u53E3\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
40
41
  await log.debug("\u51C6\u5907\u6267\u884C\u8FD4\u56DE\u903B\u8F91...");
41
- await \u63A5\u53E3\u7ED3\u679C.run(req, res);
42
+ await \u63A5\u53E3\u7ED3\u679C.run(req, res, { \u8BF7\u6C42id });
42
43
  await log.debug("\u8FD4\u56DE\u903B\u8F91\u6267\u884C\u5B8C\u6BD5");
43
44
  return;
44
45
  }
@@ -1,21 +1,28 @@
1
1
  import {
2
2
  插件
3
- } from "./chunk-N4NY37XI.js";
3
+ } from "./chunk-43GZE5YL.js";
4
+ import {
5
+ Global
6
+ } from "./chunk-BC6IISWS.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
  }
@@ -1,10 +1,10 @@
1
- import {
2
- 正确JSON结果,
3
- 错误JSON结果
4
- } from "./chunk-F6MKRRVF.js";
5
1
  import {
6
2
  接口
7
3
  } from "./chunk-G4P3OAFL.js";
4
+ import {
5
+ 正确JSON结果,
6
+ 错误JSON结果
7
+ } from "./chunk-4V2TOQZ2.js";
8
8
 
9
9
  // src/interface/extend/json-base.ts
10
10
  var JSON\u63A5\u53E3 = class extends \u63A5\u53E3 {
@@ -1,12 +1,12 @@
1
+ import {
2
+ 插件
3
+ } from "./chunk-43GZE5YL.js";
1
4
  import {
2
5
  递归截断字符串
3
6
  } from "./chunk-PVE5VI5K.js";
4
7
  import {
5
8
  Global
6
9
  } from "./chunk-BC6IISWS.js";
7
- import {
8
- 插件
9
- } from "./chunk-N4NY37XI.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);
@@ -0,0 +1,22 @@
1
+ import {
2
+ 插件
3
+ } from "./chunk-43GZE5YL.js";
4
+ import {
5
+ Global
6
+ } from "./chunk-BC6IISWS.js";
7
+
8
+ // src/plugin/extend/custom-data.ts
9
+ var \u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
10
+ log = Global.getItem("log");
11
+ constructor(t, data) {
12
+ super(t, async (_res, _req, \u9644\u52A0\u53C2\u6570) => {
13
+ let log = (await this.log).extend(\u9644\u52A0\u53C2\u6570.\u8BF7\u6C42id).extend("\u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6");
14
+ await log.debug("\u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6\u8FD0\u884C, \u7ED3\u679C: %o", data);
15
+ return data;
16
+ });
17
+ }
18
+ };
19
+
20
+ export {
21
+ 自定义数据插件
22
+ };
@@ -1,13 +1,13 @@
1
- import {
2
- 正确JSON结果,
3
- 错误JSON结果
4
- } from "./chunk-F6MKRRVF.js";
5
1
  import {
6
2
  接口
7
3
  } from "./chunk-G4P3OAFL.js";
8
4
  import {
9
5
  接口类型
10
6
  } from "./chunk-SF5Z34AP.js";
7
+ import {
8
+ 正确JSON结果,
9
+ 错误JSON结果
10
+ } from "./chunk-4V2TOQZ2.js";
11
11
 
12
12
  // src/interface/extend/json-wrap.ts
13
13
  import { z } from "zod";
@@ -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类型, 合并插件结果, 插件, 插件项类型 } from './plugin/plug.js';
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,42 +1,34 @@
1
1
  import {
2
2
  WebSocket插件
3
- } from "./chunk-MUTTFLKG.js";
3
+ } from "./chunk-24WMTMT6.js";
4
4
  import {
5
5
  JSON接口
6
- } from "./chunk-PVCULVI3.js";
6
+ } from "./chunk-FAW4GTXP.js";
7
7
  import {
8
8
  JSON状态接口,
9
9
  JSON状态接口类型
10
- } from "./chunk-BVLGIDYF.js";
10
+ } from "./chunk-WF7MUELD.js";
11
11
  import {
12
12
  中文路径支持插件
13
- } from "./chunk-3PONWJ35.js";
13
+ } from "./chunk-47T4ZLNQ.js";
14
14
  import {
15
15
  自定义数据插件
16
- } from "./chunk-2MN4G2DG.js";
16
+ } from "./chunk-JX5MRJL6.js";
17
17
  import {
18
18
  JSON解析插件
19
- } from "./chunk-VBFA32JO.js";
19
+ } from "./chunk-GVIGQG5Y.js";
20
20
  import {
21
21
  表单解析插件
22
- } from "./chunk-OOCVEPVP.js";
22
+ } from "./chunk-6AW5SSYA.js";
23
23
  import {
24
- 服务器
25
- } from "./chunk-47GMSX5W.js";
24
+ 插件
25
+ } from "./chunk-43GZE5YL.js";
26
26
  import {
27
- 正确JSON结果,
28
- 正确结果,
29
- 正确自定义结果,
30
- 结果,
31
- 错误JSON结果,
32
- 错误结果
33
- } from "./chunk-F6MKRRVF.js";
34
- import "./chunk-PVE5VI5K.js";
27
+ 服务器
28
+ } from "./chunk-5MFTZ5T3.js";
35
29
  import {
36
30
  业务行为
37
31
  } from "./chunk-5WR5VNYH.js";
38
- import "./chunk-BC6IISWS.js";
39
- import "./chunk-EAVNASDB.js";
40
32
  import {
41
33
  接口
42
34
  } from "./chunk-G4P3OAFL.js";
@@ -47,8 +39,16 @@ import {
47
39
  接口类型
48
40
  } from "./chunk-SF5Z34AP.js";
49
41
  import {
50
- 插件
51
- } from "./chunk-N4NY37XI.js";
42
+ 正确JSON结果,
43
+ 正确结果,
44
+ 正确自定义结果,
45
+ 结果,
46
+ 错误JSON结果,
47
+ 错误结果
48
+ } from "./chunk-4V2TOQZ2.js";
49
+ import "./chunk-PVE5VI5K.js";
50
+ import "./chunk-BC6IISWS.js";
51
+ import "./chunk-EAVNASDB.js";
52
52
  export {
53
53
  JSON\u63A5\u53E3,
54
54
  JSON\u72B6\u6001\u63A5\u53E3,
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  JSON接口
3
- } from "../../chunk-PVCULVI3.js";
4
- import "../../chunk-F6MKRRVF.js";
3
+ } from "../../chunk-FAW4GTXP.js";
4
+ import "../../chunk-G4P3OAFL.js";
5
+ import "../../chunk-4V2TOQZ2.js";
5
6
  import "../../chunk-PVE5VI5K.js";
6
7
  import "../../chunk-BC6IISWS.js";
7
8
  import "../../chunk-EAVNASDB.js";
8
- import "../../chunk-G4P3OAFL.js";
9
9
  export {
10
10
  JSON\u63A5\u53E3
11
11
  };
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  JSON状态接口,
3
3
  JSON状态接口类型
4
- } from "../../chunk-BVLGIDYF.js";
5
- import "../../chunk-F6MKRRVF.js";
4
+ } from "../../chunk-WF7MUELD.js";
5
+ import "../../chunk-G4P3OAFL.js";
6
+ import "../../chunk-SF5Z34AP.js";
7
+ import "../../chunk-4V2TOQZ2.js";
6
8
  import "../../chunk-PVE5VI5K.js";
7
9
  import "../../chunk-BC6IISWS.js";
8
10
  import "../../chunk-EAVNASDB.js";
9
- import "../../chunk-G4P3OAFL.js";
10
- import "../../chunk-SF5Z34AP.js";
11
11
  export {
12
12
  JSON\u72B6\u6001\u63A5\u53E3,
13
13
  JSON\u72B6\u6001\u63A5\u53E3\u7C7B\u578B
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  中文路径支持插件
3
- } from "../../chunk-3PONWJ35.js";
4
- import "../../chunk-N4NY37XI.js";
3
+ } from "../../chunk-47T4ZLNQ.js";
4
+ import "../../chunk-43GZE5YL.js";
5
5
  export {
6
6
  \u4E2D\u6587\u8DEF\u5F84\u652F\u6301\u63D2\u4EF6
7
7
  };
@@ -4,6 +4,7 @@ import 'express';
4
4
  import '@lsby/ts-fp-data';
5
5
 
6
6
  declare class 自定义数据插件<Data extends z.AnyZodObject> extends __<Data> {
7
+ private log;
7
8
  constructor(t: Data, data: z.infer<Data>);
8
9
  }
9
10
 
@@ -1,7 +1,9 @@
1
1
  import {
2
2
  自定义数据插件
3
- } from "../../chunk-2MN4G2DG.js";
4
- import "../../chunk-N4NY37XI.js";
3
+ } from "../../chunk-JX5MRJL6.js";
4
+ import "../../chunk-43GZE5YL.js";
5
+ import "../../chunk-BC6IISWS.js";
6
+ import "../../chunk-EAVNASDB.js";
5
7
  export {
6
8
  \u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6
7
9
  };
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  JSON解析插件
3
- } from "../../chunk-VBFA32JO.js";
3
+ } from "../../chunk-GVIGQG5Y.js";
4
+ import "../../chunk-43GZE5YL.js";
4
5
  import "../../chunk-PVE5VI5K.js";
5
6
  import "../../chunk-BC6IISWS.js";
6
7
  import "../../chunk-EAVNASDB.js";
7
- import "../../chunk-N4NY37XI.js";
8
8
  export {
9
9
  JSON\u89E3\u6790\u63D2\u4EF6
10
10
  };
@@ -4,6 +4,7 @@ import { 插件 as __ } from '../plug.js';
4
4
  import '@lsby/ts-fp-data';
5
5
 
6
6
  declare class 表单解析插件<Result extends z.AnyZodObject> extends __<Result> {
7
+ private log;
7
8
  constructor(t: Result, opt: Parameters<typeof express.urlencoded>[0]);
8
9
  }
9
10
 
@@ -1,7 +1,9 @@
1
1
  import {
2
2
  表单解析插件
3
- } from "../../chunk-OOCVEPVP.js";
4
- import "../../chunk-N4NY37XI.js";
3
+ } from "../../chunk-6AW5SSYA.js";
4
+ import "../../chunk-43GZE5YL.js";
5
+ import "../../chunk-BC6IISWS.js";
6
+ import "../../chunk-EAVNASDB.js";
5
7
  export {
6
8
  \u8868\u5355\u89E3\u6790\u63D2\u4EF6
7
9
  };
@@ -12,6 +12,7 @@ declare class WebSocket插件<信息 extends z.AnyZodObject> extends __<z.ZodObj
12
12
  z.ZodUndefined
13
13
  ]>;
14
14
  }>> {
15
+ private log;
15
16
  constructor(信息描述: 信息);
16
17
  }
17
18
  type 任意WS插件 = WebSocket插件<any>;
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  WebSocket插件
3
- } from "../../chunk-MUTTFLKG.js";
3
+ } from "../../chunk-24WMTMT6.js";
4
+ import "../../chunk-43GZE5YL.js";
4
5
  import "../../chunk-BC6IISWS.js";
5
6
  import "../../chunk-EAVNASDB.js";
6
- import "../../chunk-N4NY37XI.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
- 获得实现(): (req: Request, res: Response) => Promise<z.infer<Obj>>;
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 附加参数类型 };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  插件
3
- } from "../chunk-N4NY37XI.js";
3
+ } from "../chunk-43GZE5YL.js";
4
4
  export {
5
5
  \u63D2\u4EF6
6
6
  };
@@ -1,8 +1,11 @@
1
1
  import { Request, Response } from 'express';
2
+ import { 附加参数类型 as ______ } from '../plugin/plug.js';
3
+ import 'zod';
4
+ import '@lsby/ts-fp-data';
2
5
 
3
6
  declare abstract class 结果<T> {
4
7
  protected readonly __类型保持符号?: T;
5
- abstract run(req: Request, res: Response): Promise<void>;
8
+ abstract run(req: Request, res: Response, 附加参数: ______): Promise<void>;
6
9
  }
7
10
  declare abstract class 正确结果<T> extends 结果<T> {
8
11
  private 正确结果烙印;
@@ -11,7 +14,7 @@ declare class 正确JSON结果<Data extends Record<string, unknown>> extends 正
11
14
  private data;
12
15
  private log;
13
16
  constructor(data: Data);
14
- run(req: Request, res: Response): Promise<void>;
17
+ run(req: Request, res: Response, 附加参数: ______): Promise<void>;
15
18
  }
16
19
  declare class 正确自定义结果 extends 正确结果<unknown> {
17
20
  private customHandler;
@@ -25,7 +28,7 @@ declare class 错误JSON结果<Data> extends 错误结果<Data> {
25
28
  private data;
26
29
  private log;
27
30
  constructor(data: Data);
28
- run(req: Request, res: Response): Promise<void>;
31
+ run(req: Request, res: Response, 附加参数: ______): Promise<void>;
29
32
  }
30
33
 
31
34
  export { 正确JSON结果, 正确结果, 正确自定义结果, 结果, 错误JSON结果, 错误结果 };
@@ -5,7 +5,7 @@ import {
5
5
  结果,
6
6
  错误JSON结果,
7
7
  错误结果
8
- } from "../chunk-F6MKRRVF.js";
8
+ } from "../chunk-4V2TOQZ2.js";
9
9
  import "../chunk-PVE5VI5K.js";
10
10
  import "../chunk-BC6IISWS.js";
11
11
  import "../chunk-EAVNASDB.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  服务器
3
- } from "../chunk-47GMSX5W.js";
3
+ } from "../chunk-5MFTZ5T3.js";
4
4
  import "../chunk-BC6IISWS.js";
5
5
  import "../chunk-EAVNASDB.js";
6
6
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lsby/net-core",
3
- "version": "0.3.41",
3
+ "version": "0.3.43",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "require": "./dist/cjs/index.cjs",
@@ -1,14 +0,0 @@
1
- import {
2
- 插件
3
- } from "./chunk-N4NY37XI.js";
4
-
5
- // src/plugin/extend/custom-data.ts
6
- var \u81EA\u5B9A\u4E49\u6570\u636E\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
7
- constructor(t, data) {
8
- super(t, async () => data);
9
- }
10
- };
11
-
12
- export {
13
- 自定义数据插件
14
- };