@lsby/net-core 0.4.0-beta.9 → 0.4.0

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 (52) hide show
  1. package/dist/bin/gen-table-type/addition.cjs +62 -3
  2. package/dist/bin/gen-table-type/bin.cjs +67 -9
  3. package/dist/bin/gen-table-type/index.cjs +67 -9
  4. package/dist/cjs/bin/gen-table-type/addition.cjs +62 -3
  5. package/dist/cjs/bin/gen-table-type/bin.cjs +67 -9
  6. package/dist/cjs/bin/gen-table-type/index.cjs +67 -9
  7. package/dist/cjs/global/global.cjs +15 -6
  8. package/dist/cjs/global/ws.cjs +15 -6
  9. package/dist/cjs/global/ws.d.cts +7 -5
  10. package/dist/cjs/index.cjs +46 -18
  11. package/dist/cjs/index.d.cts +1 -1
  12. package/dist/cjs/interface-api/interface-logic.cjs +15 -6
  13. package/dist/cjs/interface-table/interface-table.cjs +12 -0
  14. package/dist/cjs/interface-table/interface-table.d.cts +47 -10
  15. package/dist/cjs/plugin/extend/custom-data.cjs +15 -6
  16. package/dist/cjs/plugin/extend/json.cjs +15 -6
  17. package/dist/cjs/plugin/extend/urlencoded.cjs +15 -6
  18. package/dist/cjs/plugin/extend/web-socket.cjs +28 -12
  19. package/dist/cjs/plugin/extend/web-socket.d.cts +2 -1
  20. package/dist/cjs/server/server.cjs +21 -12
  21. package/dist/esm/bin/gen-table-type/addition.js +1 -1
  22. package/dist/esm/bin/gen-table-type/bin.js +2 -2
  23. package/dist/esm/bin/gen-table-type/index.js +2 -2
  24. package/dist/esm/{chunk-DGDZQLIJ.js → chunk-6OUBMR67.js} +1 -1
  25. package/dist/esm/{chunk-LLLXAZBC.js → chunk-7BWGQYV4.js} +1 -1
  26. package/dist/esm/chunk-7SYNHJKU.js +31 -0
  27. package/dist/esm/chunk-GN24MVWF.js +23 -0
  28. package/dist/esm/{chunk-2G4PSYTL.js → chunk-GXEQYEJ4.js} +1 -1
  29. package/dist/esm/{chunk-VSMO652U.js → chunk-HSGHMDHC.js} +6 -7
  30. package/dist/esm/{chunk-7RPSQQZA.js → chunk-JVIKC22S.js} +7 -7
  31. package/dist/esm/{chunk-43ZE4ZNH.js → chunk-LM4VEBKS.js} +1 -1
  32. package/dist/esm/{chunk-XOR7HWL4.js → chunk-NDNOPR5R.js} +14 -7
  33. package/dist/esm/{chunk-JXGP4GSQ.js → chunk-TELFIRYE.js} +1 -1
  34. package/dist/esm/chunk-V3CNI7QV.js +99 -0
  35. package/dist/esm/global/global.js +2 -2
  36. package/dist/esm/global/ws.d.ts +7 -5
  37. package/dist/esm/global/ws.js +1 -1
  38. package/dist/esm/index.d.ts +1 -1
  39. package/dist/esm/index.js +9 -9
  40. package/dist/esm/interface-api/interface-logic.js +3 -3
  41. package/dist/esm/interface-table/interface-table.d.ts +47 -10
  42. package/dist/esm/interface-table/interface-table.js +1 -1
  43. package/dist/esm/plugin/extend/custom-data.js +3 -3
  44. package/dist/esm/plugin/extend/json.js +3 -3
  45. package/dist/esm/plugin/extend/urlencoded.js +3 -3
  46. package/dist/esm/plugin/extend/web-socket.d.ts +2 -1
  47. package/dist/esm/plugin/extend/web-socket.js +3 -3
  48. package/dist/esm/server/server.js +3 -3
  49. package/package.json +2 -2
  50. package/dist/esm/chunk-63YFVECY.js +0 -11
  51. package/dist/esm/chunk-CPOABMEY.js +0 -40
  52. package/dist/esm/chunk-FIQSBTYJ.js +0 -22
@@ -27,17 +27,26 @@ var WebSocket\u7BA1\u7406\u8005 = class {
27
27
  constructor(\u8FDE\u63A5\u8868) {
28
28
  this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
29
29
  }
30
- async \u589E\u52A0\u8FDE\u63A5(\u8BF7\u6C42id, ws\u53E5\u67C4) {
31
- this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] = ws\u53E5\u67C4;
30
+ \u6E05\u7406\u51FD\u6570\u8868 = {};
31
+ async \u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
32
+ this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
32
33
  }
33
- async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u8BF7\u6C42id) {
34
- return this.\u8FDE\u63A5\u8868.hasOwnProperty(\u8BF7\u6C42id) ? true : false;
34
+ async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(id) {
35
+ return this.\u8FDE\u63A5\u8868.hasOwnProperty(id) ? true : false;
35
36
  }
36
- async \u83B7\u5F97\u53E5\u67C4(\u8BF7\u6C42id) {
37
- return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] ?? null;
37
+ async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(id, \u6E05\u7406\u51FD\u6570) {
38
+ if (this.\u8FDE\u63A5\u8868.hasOwnProperty(id) === false)
39
+ return;
40
+ this.\u6E05\u7406\u51FD\u6570\u8868[id] = \u6E05\u7406\u51FD\u6570;
41
+ }
42
+ async \u83B7\u5F97\u53E5\u67C4(id) {
43
+ return this.\u8FDE\u63A5\u8868[id] ?? null;
38
44
  }
39
45
  async \u5220\u9664\u8FDE\u63A5(id) {
46
+ let \u6E05\u7406\u51FD\u6570 = this.\u6E05\u7406\u51FD\u6570\u8868[id];
47
+ await \u6E05\u7406\u51FD\u6570?.();
40
48
  delete this.\u8FDE\u63A5\u8868[id];
49
+ delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
41
50
  }
42
51
  };
43
52
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,12 +1,14 @@
1
1
  import { WebSocket } from 'ws';
2
2
 
3
- type 请求id = string;
3
+ type id = string;
4
4
  declare class WebSocket管理者 {
5
5
  private 连接表;
6
- constructor(连接表: Record<请求id, WebSocket | null>);
7
- 增加连接(请求id: 请求id, ws句柄: WebSocket): Promise<void>;
8
- 查询连接存在(请求id: string): Promise<boolean>;
9
- 获得句柄(请求id: 请求id): Promise<WebSocket | null>;
6
+ private 清理函数表;
7
+ constructor(连接表: Record<id, WebSocket | null>);
8
+ 增加连接(id: id, ws句柄: WebSocket): Promise<void>;
9
+ 查询连接存在(id: string): Promise<boolean>;
10
+ 设置清理函数(id: string, 清理函数: () => Promise<void>): Promise<void>;
11
+ 获得句柄(id: id): Promise<WebSocket | null>;
10
12
  删除连接(id: string): Promise<void>;
11
13
  }
12
14
 
@@ -225,17 +225,26 @@ var WebSocket\u7BA1\u7406\u8005 = class {
225
225
  constructor(\u8FDE\u63A5\u8868) {
226
226
  this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
227
227
  }
228
- async \u589E\u52A0\u8FDE\u63A5(\u8BF7\u6C42id, ws\u53E5\u67C4) {
229
- this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] = ws\u53E5\u67C4;
228
+ \u6E05\u7406\u51FD\u6570\u8868 = {};
229
+ async \u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
230
+ this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
230
231
  }
231
- async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u8BF7\u6C42id) {
232
- return this.\u8FDE\u63A5\u8868.hasOwnProperty(\u8BF7\u6C42id) ? true : false;
232
+ async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(id) {
233
+ return this.\u8FDE\u63A5\u8868.hasOwnProperty(id) ? true : false;
233
234
  }
234
- async \u83B7\u5F97\u53E5\u67C4(\u8BF7\u6C42id) {
235
- return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] ?? null;
235
+ async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(id, \u6E05\u7406\u51FD\u6570) {
236
+ if (this.\u8FDE\u63A5\u8868.hasOwnProperty(id) === false)
237
+ return;
238
+ this.\u6E05\u7406\u51FD\u6570\u8868[id] = \u6E05\u7406\u51FD\u6570;
239
+ }
240
+ async \u83B7\u5F97\u53E5\u67C4(id) {
241
+ return this.\u8FDE\u63A5\u8868[id] ?? null;
236
242
  }
237
243
  async \u5220\u9664\u8FDE\u63A5(id) {
244
+ let \u6E05\u7406\u51FD\u6570 = this.\u6E05\u7406\u51FD\u6570\u8868[id];
245
+ await \u6E05\u7406\u51FD\u6570?.();
238
246
  delete this.\u8FDE\u63A5\u8868[id];
247
+ delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
239
248
  }
240
249
  };
241
250
 
@@ -337,6 +346,18 @@ var \u865A\u62DF\u8868 = class {
337
346
  this.\u6784\u9020\u53C2\u6570 = \u6784\u9020\u53C2\u6570;
338
347
  }
339
348
  static \u8D44\u6E90\u8DEF\u5F84;
349
+ \u8C03\u7528\u589E(body) {
350
+ return this.\u589E(body.value);
351
+ }
352
+ \u8C03\u7528\u5220(body) {
353
+ return this.\u5220(body.where);
354
+ }
355
+ \u8C03\u7528\u6539(body) {
356
+ return this.\u6539(body.value, body.where);
357
+ }
358
+ \u8C03\u7528\u67E5(body) {
359
+ return this.\u67E5(body.where, body.page, body.sort);
360
+ }
340
361
  };
341
362
 
342
363
  // src/plugin/extend/chinese-path.ts
@@ -464,7 +485,8 @@ var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
464
485
  import_zod2.z.object({
465
486
  ws\u64CD\u4F5C: import_zod2.z.object({
466
487
  \u53D1\u9001ws\u4FE1\u606F: import_zod2.z.function(import_zod2.z.tuple([\u4FE1\u606F\u63CF\u8FF0]), import_zod2.z.promise(import_zod2.z.void())),
467
- \u5173\u95EDws\u8FDE\u63A5: import_zod2.z.function(import_zod2.z.tuple([]), import_zod2.z.promise(import_zod2.z.void()))
488
+ \u5173\u95EDws\u8FDE\u63A5: import_zod2.z.function(import_zod2.z.tuple([]), import_zod2.z.promise(import_zod2.z.void())),
489
+ \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570: import_zod2.z.function(import_zod2.z.tuple([import_zod2.z.function(import_zod2.z.tuple([]), import_zod2.z.promise(import_zod2.z.void()))]), import_zod2.z.promise(import_zod2.z.void()))
468
490
  }).or(import_zod2.z.null())
469
491
  }),
470
492
  async (req, _res, \u9644\u52A0\u53C2\u6570) => {
@@ -473,10 +495,13 @@ var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
473
495
  let WebSocket\u7BA1\u7406\u80052 = await Global.getItem("WebSocket\u7BA1\u7406\u8005");
474
496
  let ws\u53E5\u67C4 = null;
475
497
  await log.debug("\u68C0\u67E5 ws-client-id \u5934\u4FE1\u606F", { wsId });
476
- if (typeof wsId === "string") {
477
- await log.debug("\u5C1D\u8BD5\u83B7\u53D6 WebSocket \u53E5\u67C4");
478
- ws\u53E5\u67C4 = await WebSocket\u7BA1\u7406\u80052.\u83B7\u5F97\u53E5\u67C4(wsId);
498
+ if (typeof wsId !== "string") {
499
+ await log.error("\u672A\u80FD\u83B7\u53D6\u5230\u6709\u6548\u7684 WebSocket Id");
500
+ return { ws\u64CD\u4F5C: null };
479
501
  }
502
+ let \u5B58\u5728\u7684wsId = wsId;
503
+ await log.debug("\u5C1D\u8BD5\u83B7\u53D6 WebSocket \u53E5\u67C4");
504
+ ws\u53E5\u67C4 = await WebSocket\u7BA1\u7406\u80052.\u83B7\u5F97\u53E5\u67C4(\u5B58\u5728\u7684wsId);
480
505
  if (ws\u53E5\u67C4 === null) {
481
506
  await log.error("\u672A\u80FD\u83B7\u53D6\u5230\u6709\u6548\u7684 WebSocket \u53E5\u67C4");
482
507
  return { ws\u64CD\u4F5C: null };
@@ -486,11 +511,11 @@ var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
486
511
  return {
487
512
  ws\u64CD\u4F5C: {
488
513
  async \u53D1\u9001ws\u4FE1\u606F(\u4FE1\u606F) {
489
- await log.debug("\u53D1\u9001 WebSocket \u4FE1\u606F", { \u4FE1\u606F });
514
+ await log.debug("\u53D1\u9001 WebSocket \u4FE1\u606F: %O", \u4FE1\u606F);
490
515
  return new Promise((res, rej) => {
491
516
  \u5B58\u5728\u7684ws\u53E5\u67C4.send(JSON.stringify(\u4FE1\u606F), (err) => {
492
517
  if ((err ?? null) !== null) {
493
- log.error("\u53D1\u9001 WebSocket \u4FE1\u606F\u5931\u8D25", { \u9519\u8BEF: err }).catch(console.error);
518
+ log.error("\u53D1\u9001 WebSocket \u4FE1\u606F\u5931\u8D25: %O", err).catch(console.error);
494
519
  return rej(err);
495
520
  }
496
521
  log.debug("WebSocket \u4FE1\u606F\u53D1\u9001\u6210\u529F").catch(console.error);
@@ -501,6 +526,9 @@ var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
501
526
  async \u5173\u95EDws\u8FDE\u63A5() {
502
527
  await log.debug("\u5173\u95ED WebSocket \u8FDE\u63A5");
503
528
  \u5B58\u5728\u7684ws\u53E5\u67C4.close();
529
+ },
530
+ async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(\u6E05\u7406\u51FD\u6570) {
531
+ await WebSocket\u7BA1\u7406\u80052.\u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(\u5B58\u5728\u7684wsId, \u6E05\u7406\u51FD\u6570);
504
532
  }
505
533
  }
506
534
  };
@@ -610,22 +638,22 @@ var \u670D\u52A1\u5668 = class {
610
638
  switch (\u865A\u62DF\u8868\u64CD\u4F5C) {
611
639
  case "add": {
612
640
  await log.debug("\u8C03\u7528\u903B\u8F91: \u589E");
613
- \u7ED3\u679C = await \u865A\u62DF\u8868\u5B9E\u4F8B.\u589E(req.body?.["value"]);
641
+ \u7ED3\u679C = await \u865A\u62DF\u8868\u5B9E\u4F8B.\u8C03\u7528\u589E(req.body);
614
642
  break;
615
643
  }
616
644
  case "del": {
617
645
  await log.debug("\u8C03\u7528\u903B\u8F91: \u5220");
618
- \u7ED3\u679C = await \u865A\u62DF\u8868\u5B9E\u4F8B.\u5220(req.body?.["where"]);
646
+ \u7ED3\u679C = await \u865A\u62DF\u8868\u5B9E\u4F8B.\u8C03\u7528\u5220(req.body);
619
647
  break;
620
648
  }
621
649
  case "set": {
622
650
  await log.debug("\u8C03\u7528\u903B\u8F91: \u6539");
623
- \u7ED3\u679C = await \u865A\u62DF\u8868\u5B9E\u4F8B.\u6539(req.body?.["value"], req.body?.["where"]);
651
+ \u7ED3\u679C = await \u865A\u62DF\u8868\u5B9E\u4F8B.\u8C03\u7528\u6539(req.body);
624
652
  break;
625
653
  }
626
654
  case "get": {
627
655
  await log.debug("\u8C03\u7528\u903B\u8F91: \u67E5");
628
- \u7ED3\u679C = await \u865A\u62DF\u8868\u5B9E\u4F8B.\u67E5(req.body?.["where"], req.body?.["page"], req.body?.["sort"]);
656
+ \u7ED3\u679C = await \u865A\u62DF\u8868\u5B9E\u4F8B.\u8C03\u7528\u67E5(req.body);
629
657
  break;
630
658
  }
631
659
  default: {
@@ -661,8 +689,8 @@ var \u670D\u52A1\u5668 = class {
661
689
  }
662
690
  await log.debug("\u89E3\u6790\u5BA2\u6237\u7AEF ID: %s", \u5BA2\u6237\u7AEFid);
663
691
  let WebSocket\u7BA1\u7406\u80052 = await Global.getItem("WebSocket\u7BA1\u7406\u8005");
664
- let \u662F\u5426\u5DF2\u5B58\u5728 = await WebSocket\u7BA1\u7406\u80052.\u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u5BA2\u6237\u7AEFid);
665
- if (\u662F\u5426\u5DF2\u5B58\u5728) {
692
+ let \u8FDE\u63A5\u5DF2\u5B58\u5728 = await WebSocket\u7BA1\u7406\u80052.\u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u5BA2\u6237\u7AEFid);
693
+ if (\u8FDE\u63A5\u5DF2\u5B58\u5728) {
666
694
  await log.error("\u5BA2\u6237\u7AEF ID \u5DF2\u5B58\u5728: %s", \u5BA2\u6237\u7AEFid);
667
695
  return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws, log, 4002, "\u5BA2\u6237\u7AEF ID \u5DF2\u5B58\u5728");
668
696
  }
@@ -3,7 +3,7 @@ export { 任意接口, 接口, 接口方法类型, 接口路径类型, 获得接
3
3
  export { 任意接口逻辑, 可调用接口逻辑, 接口逻辑, 接口逻辑正确类型, 接口逻辑错误类型, 接口逻辑附加参数类型, 获得接口逻辑插件类型, 获得接口逻辑正确类型, 获得接口逻辑错误类型, 获得接口逻辑附加参数类型 } from './interface-api/interface-logic.cjs';
4
4
  export { 任意接口结果转换器, 常用形式转换器, 接口结果转换器 } from './interface-api/interface-result.cjs';
5
5
  export { 接口测试 } from './interface-api/interface-test.cjs';
6
- export { 任意虚拟表, 分页选项, 排序选项, 是any, 条件, 条件组, 翻译列描述, 翻译列描述带空, 翻译自定义类型, 虚拟表 } from './interface-table/interface-table.cjs';
6
+ export { 任意虚拟表, 分页选项, 排序选项, 是any, 未定义对象转可选对象, 条件, 条件组, 翻译修改值列描述, 翻译列描述, 翻译插入列描述, 翻译查询列描述, 翻译自定义类型, 虚拟表 } from './interface-table/interface-table.cjs';
7
7
  export { 中文路径支持插件 } from './plugin/extend/chinese-path.cjs';
8
8
  export { 自定义数据插件 } from './plugin/extend/custom-data.cjs';
9
9
  export { JSON解析插件, 任意JSON解析插件, 任意JSON解析插件项, 合并JSON插件结果 } from './plugin/extend/json.cjs';
@@ -33,17 +33,26 @@ var WebSocket\u7BA1\u7406\u8005 = class {
33
33
  constructor(\u8FDE\u63A5\u8868) {
34
34
  this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
35
35
  }
36
- async \u589E\u52A0\u8FDE\u63A5(\u8BF7\u6C42id, ws\u53E5\u67C4) {
37
- this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] = ws\u53E5\u67C4;
36
+ \u6E05\u7406\u51FD\u6570\u8868 = {};
37
+ async \u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
38
+ this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
38
39
  }
39
- async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u8BF7\u6C42id) {
40
- return this.\u8FDE\u63A5\u8868.hasOwnProperty(\u8BF7\u6C42id) ? true : false;
40
+ async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(id) {
41
+ return this.\u8FDE\u63A5\u8868.hasOwnProperty(id) ? true : false;
41
42
  }
42
- async \u83B7\u5F97\u53E5\u67C4(\u8BF7\u6C42id) {
43
- return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] ?? null;
43
+ async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(id, \u6E05\u7406\u51FD\u6570) {
44
+ if (this.\u8FDE\u63A5\u8868.hasOwnProperty(id) === false)
45
+ return;
46
+ this.\u6E05\u7406\u51FD\u6570\u8868[id] = \u6E05\u7406\u51FD\u6570;
47
+ }
48
+ async \u83B7\u5F97\u53E5\u67C4(id) {
49
+ return this.\u8FDE\u63A5\u8868[id] ?? null;
44
50
  }
45
51
  async \u5220\u9664\u8FDE\u63A5(id) {
52
+ let \u6E05\u7406\u51FD\u6570 = this.\u6E05\u7406\u51FD\u6570\u8868[id];
53
+ await \u6E05\u7406\u51FD\u6570?.();
46
54
  delete this.\u8FDE\u63A5\u8868[id];
55
+ delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
47
56
  }
48
57
  };
49
58
 
@@ -28,6 +28,18 @@ var \u865A\u62DF\u8868 = class {
28
28
  this.\u6784\u9020\u53C2\u6570 = \u6784\u9020\u53C2\u6570;
29
29
  }
30
30
  static \u8D44\u6E90\u8DEF\u5F84;
31
+ \u8C03\u7528\u589E(body) {
32
+ return this.\u589E(body.value);
33
+ }
34
+ \u8C03\u7528\u5220(body) {
35
+ return this.\u5220(body.where);
36
+ }
37
+ \u8C03\u7528\u6539(body) {
38
+ return this.\u6539(body.value, body.where);
39
+ }
40
+ \u8C03\u7528\u67E5(body) {
41
+ return this.\u67E5(body.where, body.page, body.sort);
42
+ }
31
43
  };
32
44
  // Annotate the CommonJS export names for ESM import in node:
33
45
  0 && (module.exports = {
@@ -47,11 +47,29 @@ type 排序选项<列名称们> = {
47
47
  };
48
48
  type 翻译自定义类型<A> = A extends '字符串' ? string : A extends '数字' ? number : A extends '布尔' ? boolean : never;
49
49
  type 翻译列描述<对象> = 是any<对象> extends true ? any : {
50
- [key in keyof 对象]: 翻译自定义类型<对象[key]>;
50
+ [key in keyof 对象]: '类型' extends keyof 对象[key] ? 翻译自定义类型<对象[key]['类型']> : never;
51
51
  };
52
- type 翻译列描述带空<对象> = 是any<对象> extends true ? any : {
53
- [key in keyof 对象]: 翻译自定义类型<对象[key]> | undefined;
52
+ type 翻译查询列描述<对象> = 是any<对象> extends true ? any : {
53
+ [key in keyof 对象]: '类型' extends keyof 对象[key] ? '可空' extends keyof 对象[key] ? 对象[key]['可空'] extends 'false' ? 翻译自定义类型<对象[key]['类型']> : 翻译自定义类型<对象[key]['类型']> | null : never : never;
54
54
  };
55
+ type 翻译插入列描述<对象> = 是any<对象> extends true ? any : 归约数组对象<联合转元组<未定义对象转可选对象<{
56
+ [key in keyof 对象]: '类型' extends keyof 对象[key] ? '可选' extends keyof 对象[key] ? 对象[key]['可选'] extends 'false' ? 翻译自定义类型<对象[key]['类型']> : 翻译自定义类型<对象[key]['类型']> | undefined : never : never;
57
+ }>>>;
58
+ type 翻译修改值列描述<对象> = 是any<对象> extends true ? any : 归约数组对象<联合转元组<未定义对象转可选对象<{
59
+ [key in keyof 对象]: '类型' extends keyof 对象[key] ? '可空' extends keyof 对象[key] ? 对象[key]['可空'] extends 'false' ? 翻译自定义类型<对象[key]['类型']> : 翻译自定义类型<对象[key]['类型']> | null : never : never;
60
+ }>>>;
61
+ type 未定义对象转可选对象<X> = {
62
+ [key in keyof X]: undefined extends X[key] ? {
63
+ [k in key]?: X[key];
64
+ } : {
65
+ [k in key]: X[key];
66
+ };
67
+ }[keyof X];
68
+ type 归约数组对象<Arr> = Arr extends [] ? {} : Arr extends [infer x, ...infer xs] ? x & 归约数组对象<xs> : never;
69
+ type 联合转换成函数<X> = X extends any ? (a: (x: any) => X) => any : never;
70
+ type 函数转换成与<X> = (X extends any ? X : never) extends (a: infer A) => any ? A : never;
71
+ type 取最后一个<X> = 函数转换成与<联合转换成函数<X>> extends (x: any) => infer A ? A : never;
72
+ type 联合转元组<X> = [X] extends [never] ? [] : 取最后一个<X> extends infer Last ? [...联合转元组<Exclude<X, Last>>, Last] : never;
55
73
  /**
56
74
  * # 虚拟表
57
75
  *
@@ -82,16 +100,35 @@ type 翻译列描述带空<对象> = 是any<对象> extends true ? any : {
82
100
  *
83
101
  * 这样, 我们就将原来一个一个离散的过程式接口, 改成了对象式的虚拟表.
84
102
  */
85
- declare abstract class 虚拟表<构造参数类型 extends z.AnyZodObject, 列类型 extends z.ZodObject<Record<string, z.ZodLiteral<'字符串'> | z.ZodLiteral<'数字'> | z.ZodLiteral<'布尔'>>>, 增错误 extends z.ZodEnum<[string, ...string[]]> | z.ZodNever, 删错误 extends z.ZodEnum<[string, ...string[]]> | z.ZodNever, 改错误 extends z.ZodEnum<[string, ...string[]]> | z.ZodNever, 查错误 extends z.ZodEnum<[string, ...string[]]> | z.ZodNever> {
103
+ declare abstract class 虚拟表<构造参数类型 extends z.AnyZodObject, 列形状 extends z.ZodObject<Record<string, z.ZodObject<{
104
+ 类型: z.ZodLiteral<'字符串'> | z.ZodLiteral<'数字'> | z.ZodLiteral<'布尔'>;
105
+ 可选: z.ZodLiteral<'true'> | z.ZodLiteral<'false'>;
106
+ 可空: z.ZodLiteral<'true'> | z.ZodLiteral<'false'>;
107
+ }>>>, 增错误 extends z.ZodEnum<[string, ...string[]]> | z.ZodNever, 删错误 extends z.ZodEnum<[string, ...string[]]> | z.ZodNever, 改错误 extends z.ZodEnum<[string, ...string[]]> | z.ZodNever, 查错误 extends z.ZodEnum<[string, ...string[]]> | z.ZodNever> {
86
108
  protected 构造参数: z.infer<构造参数类型>;
87
109
  static 资源路径: string;
88
- protected readonly __类型保持符号?: [构造参数类型, 列类型, 增错误, 删错误, 改错误, 查错误];
110
+ protected readonly __类型保持符号?: [构造参数类型, 列形状, 增错误, 删错误, 改错误, 查错误];
89
111
  constructor(构造参数: z.infer<构造参数类型>);
90
- abstract 增(数据们: Partial<z.infer<列类型>>[]): Promise<____<_____[], {}, z.infer<增错误>, {}>>;
91
- abstract 删(筛选条件: 条件组<翻译列描述<z.infer<列类型>>>): Promise<____<_____[], {}, z.infer<删错误>, {}>>;
92
- abstract 改(新值: Partial<z.infer<列类型>>, 筛选条件: 条件组<翻译列描述<z.infer<列类型>>>): Promise<____<_____[], {}, z.infer<改错误>, {}>>;
93
- abstract 查(筛选条件?: 条件组<翻译列描述<z.infer<列类型>>>, 分页条件?: 分页选项, 排序条件?: 排序选项<keyof z.infer<列类型>>): Promise<____<_____[], {}, z.infer<查错误>, 翻译列描述带空<z.infer<列类型>>[]>>;
112
+ abstract 增(数据们: 翻译插入列描述<z.infer<列形状>>[]): Promise<____<_____[], {}, z.infer<增错误>, {}>>;
113
+ abstract 删(筛选条件: 条件组<翻译列描述<z.infer<列形状>>>): Promise<____<_____[], {}, z.infer<删错误>, {}>>;
114
+ abstract 改(新值: Partial<z.infer<列形状>>, 筛选条件: 条件组<翻译列描述<z.infer<列形状>>>): Promise<____<_____[], {}, z.infer<改错误>, {}>>;
115
+ abstract 查(筛选条件?: 条件组<翻译列描述<z.infer<列形状>>>, 分页条件?: 分页选项, 排序条件?: 排序选项<keyof z.infer<列形状>>): Promise<____<_____[], {}, z.infer<查错误>, 翻译查询列描述<z.infer<列形状>>[]>>;
116
+ 调用增(body: {
117
+ value: 翻译插入列描述<z.infer<列形状>>[];
118
+ }): Promise<____<_____[], {}, z.infer<增错误>, {}>>;
119
+ 调用删(body: {
120
+ where: 条件组<翻译列描述<z.infer<列形状>>>;
121
+ }): Promise<____<_____[], {}, z.infer<删错误>, {}>>;
122
+ 调用改(body: {
123
+ value: Partial<z.infer<列形状>>;
124
+ where: 条件组<翻译列描述<z.infer<列形状>>>;
125
+ }): Promise<____<_____[], {}, z.infer<改错误>, {}>>;
126
+ 调用查(body: {
127
+ where?: 条件组<翻译列描述<z.infer<列形状>>>;
128
+ page?: 分页选项;
129
+ sort?: 排序选项<keyof z.infer<列形状>>;
130
+ }): Promise<____<_____[], {}, z.infer<查错误>, 翻译查询列描述<z.infer<列形状>>[]>>;
94
131
  }
95
132
  type 任意虚拟表 = 虚拟表<any, any, any, any, any, any>;
96
133
 
97
- export { type 任意虚拟表, type 分页选项, type 排序选项, type 是any, type 条件, type 条件组, type 翻译列描述, type 翻译列描述带空, type 翻译自定义类型, 虚拟表 };
134
+ export { type 任意虚拟表, type 分页选项, type 排序选项, type 是any, type 未定义对象转可选对象, type 条件, type 条件组, type 翻译修改值列描述, type 翻译列描述, type 翻译插入列描述, type 翻译查询列描述, type 翻译自定义类型, 虚拟表 };
@@ -33,17 +33,26 @@ var WebSocket\u7BA1\u7406\u8005 = class {
33
33
  constructor(\u8FDE\u63A5\u8868) {
34
34
  this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
35
35
  }
36
- async \u589E\u52A0\u8FDE\u63A5(\u8BF7\u6C42id, ws\u53E5\u67C4) {
37
- this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] = ws\u53E5\u67C4;
36
+ \u6E05\u7406\u51FD\u6570\u8868 = {};
37
+ async \u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
38
+ this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
38
39
  }
39
- async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u8BF7\u6C42id) {
40
- return this.\u8FDE\u63A5\u8868.hasOwnProperty(\u8BF7\u6C42id) ? true : false;
40
+ async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(id) {
41
+ return this.\u8FDE\u63A5\u8868.hasOwnProperty(id) ? true : false;
41
42
  }
42
- async \u83B7\u5F97\u53E5\u67C4(\u8BF7\u6C42id) {
43
- return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] ?? null;
43
+ async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(id, \u6E05\u7406\u51FD\u6570) {
44
+ if (this.\u8FDE\u63A5\u8868.hasOwnProperty(id) === false)
45
+ return;
46
+ this.\u6E05\u7406\u51FD\u6570\u8868[id] = \u6E05\u7406\u51FD\u6570;
47
+ }
48
+ async \u83B7\u5F97\u53E5\u67C4(id) {
49
+ return this.\u8FDE\u63A5\u8868[id] ?? null;
44
50
  }
45
51
  async \u5220\u9664\u8FDE\u63A5(id) {
52
+ let \u6E05\u7406\u51FD\u6570 = this.\u6E05\u7406\u51FD\u6570\u8868[id];
53
+ await \u6E05\u7406\u51FD\u6570?.();
46
54
  delete this.\u8FDE\u63A5\u8868[id];
55
+ delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
47
56
  }
48
57
  };
49
58
 
@@ -45,17 +45,26 @@ var WebSocket\u7BA1\u7406\u8005 = class {
45
45
  constructor(\u8FDE\u63A5\u8868) {
46
46
  this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
47
47
  }
48
- async \u589E\u52A0\u8FDE\u63A5(\u8BF7\u6C42id, ws\u53E5\u67C4) {
49
- this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] = ws\u53E5\u67C4;
48
+ \u6E05\u7406\u51FD\u6570\u8868 = {};
49
+ async \u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
50
+ this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
50
51
  }
51
- async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u8BF7\u6C42id) {
52
- return this.\u8FDE\u63A5\u8868.hasOwnProperty(\u8BF7\u6C42id) ? true : false;
52
+ async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(id) {
53
+ return this.\u8FDE\u63A5\u8868.hasOwnProperty(id) ? true : false;
53
54
  }
54
- async \u83B7\u5F97\u53E5\u67C4(\u8BF7\u6C42id) {
55
- return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] ?? null;
55
+ async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(id, \u6E05\u7406\u51FD\u6570) {
56
+ if (this.\u8FDE\u63A5\u8868.hasOwnProperty(id) === false)
57
+ return;
58
+ this.\u6E05\u7406\u51FD\u6570\u8868[id] = \u6E05\u7406\u51FD\u6570;
59
+ }
60
+ async \u83B7\u5F97\u53E5\u67C4(id) {
61
+ return this.\u8FDE\u63A5\u8868[id] ?? null;
56
62
  }
57
63
  async \u5220\u9664\u8FDE\u63A5(id) {
64
+ let \u6E05\u7406\u51FD\u6570 = this.\u6E05\u7406\u51FD\u6570\u8868[id];
65
+ await \u6E05\u7406\u51FD\u6570?.();
58
66
  delete this.\u8FDE\u63A5\u8868[id];
67
+ delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
59
68
  }
60
69
  };
61
70
 
@@ -45,17 +45,26 @@ var WebSocket\u7BA1\u7406\u8005 = class {
45
45
  constructor(\u8FDE\u63A5\u8868) {
46
46
  this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
47
47
  }
48
- async \u589E\u52A0\u8FDE\u63A5(\u8BF7\u6C42id, ws\u53E5\u67C4) {
49
- this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] = ws\u53E5\u67C4;
48
+ \u6E05\u7406\u51FD\u6570\u8868 = {};
49
+ async \u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
50
+ this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
50
51
  }
51
- async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u8BF7\u6C42id) {
52
- return this.\u8FDE\u63A5\u8868.hasOwnProperty(\u8BF7\u6C42id) ? true : false;
52
+ async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(id) {
53
+ return this.\u8FDE\u63A5\u8868.hasOwnProperty(id) ? true : false;
53
54
  }
54
- async \u83B7\u5F97\u53E5\u67C4(\u8BF7\u6C42id) {
55
- return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] ?? null;
55
+ async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(id, \u6E05\u7406\u51FD\u6570) {
56
+ if (this.\u8FDE\u63A5\u8868.hasOwnProperty(id) === false)
57
+ return;
58
+ this.\u6E05\u7406\u51FD\u6570\u8868[id] = \u6E05\u7406\u51FD\u6570;
59
+ }
60
+ async \u83B7\u5F97\u53E5\u67C4(id) {
61
+ return this.\u8FDE\u63A5\u8868[id] ?? null;
56
62
  }
57
63
  async \u5220\u9664\u8FDE\u63A5(id) {
64
+ let \u6E05\u7406\u51FD\u6570 = this.\u6E05\u7406\u51FD\u6570\u8868[id];
65
+ await \u6E05\u7406\u51FD\u6570?.();
58
66
  delete this.\u8FDE\u63A5\u8868[id];
67
+ delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
59
68
  }
60
69
  };
61
70
 
@@ -34,17 +34,26 @@ var WebSocket\u7BA1\u7406\u8005 = class {
34
34
  constructor(\u8FDE\u63A5\u8868) {
35
35
  this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
36
36
  }
37
- async \u589E\u52A0\u8FDE\u63A5(\u8BF7\u6C42id, ws\u53E5\u67C4) {
38
- this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] = ws\u53E5\u67C4;
37
+ \u6E05\u7406\u51FD\u6570\u8868 = {};
38
+ async \u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
39
+ this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
39
40
  }
40
- async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u8BF7\u6C42id) {
41
- return this.\u8FDE\u63A5\u8868.hasOwnProperty(\u8BF7\u6C42id) ? true : false;
41
+ async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(id) {
42
+ return this.\u8FDE\u63A5\u8868.hasOwnProperty(id) ? true : false;
42
43
  }
43
- async \u83B7\u5F97\u53E5\u67C4(\u8BF7\u6C42id) {
44
- return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] ?? null;
44
+ async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(id, \u6E05\u7406\u51FD\u6570) {
45
+ if (this.\u8FDE\u63A5\u8868.hasOwnProperty(id) === false)
46
+ return;
47
+ this.\u6E05\u7406\u51FD\u6570\u8868[id] = \u6E05\u7406\u51FD\u6570;
48
+ }
49
+ async \u83B7\u5F97\u53E5\u67C4(id) {
50
+ return this.\u8FDE\u63A5\u8868[id] ?? null;
45
51
  }
46
52
  async \u5220\u9664\u8FDE\u63A5(id) {
53
+ let \u6E05\u7406\u51FD\u6570 = this.\u6E05\u7406\u51FD\u6570\u8868[id];
54
+ await \u6E05\u7406\u51FD\u6570?.();
47
55
  delete this.\u8FDE\u63A5\u8868[id];
56
+ delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
48
57
  }
49
58
  };
50
59
 
@@ -80,7 +89,8 @@ var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
80
89
  import_zod.z.object({
81
90
  ws\u64CD\u4F5C: import_zod.z.object({
82
91
  \u53D1\u9001ws\u4FE1\u606F: import_zod.z.function(import_zod.z.tuple([\u4FE1\u606F\u63CF\u8FF0]), import_zod.z.promise(import_zod.z.void())),
83
- \u5173\u95EDws\u8FDE\u63A5: import_zod.z.function(import_zod.z.tuple([]), import_zod.z.promise(import_zod.z.void()))
92
+ \u5173\u95EDws\u8FDE\u63A5: import_zod.z.function(import_zod.z.tuple([]), import_zod.z.promise(import_zod.z.void())),
93
+ \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570: import_zod.z.function(import_zod.z.tuple([import_zod.z.function(import_zod.z.tuple([]), import_zod.z.promise(import_zod.z.void()))]), import_zod.z.promise(import_zod.z.void()))
84
94
  }).or(import_zod.z.null())
85
95
  }),
86
96
  async (req, _res, \u9644\u52A0\u53C2\u6570) => {
@@ -89,10 +99,13 @@ var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
89
99
  let WebSocket\u7BA1\u7406\u80052 = await Global.getItem("WebSocket\u7BA1\u7406\u8005");
90
100
  let ws\u53E5\u67C4 = null;
91
101
  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");
94
- ws\u53E5\u67C4 = await WebSocket\u7BA1\u7406\u80052.\u83B7\u5F97\u53E5\u67C4(wsId);
102
+ if (typeof wsId !== "string") {
103
+ await log.error("\u672A\u80FD\u83B7\u53D6\u5230\u6709\u6548\u7684 WebSocket Id");
104
+ return { ws\u64CD\u4F5C: null };
95
105
  }
106
+ let \u5B58\u5728\u7684wsId = wsId;
107
+ await log.debug("\u5C1D\u8BD5\u83B7\u53D6 WebSocket \u53E5\u67C4");
108
+ ws\u53E5\u67C4 = await WebSocket\u7BA1\u7406\u80052.\u83B7\u5F97\u53E5\u67C4(\u5B58\u5728\u7684wsId);
96
109
  if (ws\u53E5\u67C4 === null) {
97
110
  await log.error("\u672A\u80FD\u83B7\u53D6\u5230\u6709\u6548\u7684 WebSocket \u53E5\u67C4");
98
111
  return { ws\u64CD\u4F5C: null };
@@ -102,11 +115,11 @@ var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
102
115
  return {
103
116
  ws\u64CD\u4F5C: {
104
117
  async \u53D1\u9001ws\u4FE1\u606F(\u4FE1\u606F) {
105
- await log.debug("\u53D1\u9001 WebSocket \u4FE1\u606F", { \u4FE1\u606F });
118
+ await log.debug("\u53D1\u9001 WebSocket \u4FE1\u606F: %O", \u4FE1\u606F);
106
119
  return new Promise((res, rej) => {
107
120
  \u5B58\u5728\u7684ws\u53E5\u67C4.send(JSON.stringify(\u4FE1\u606F), (err) => {
108
121
  if ((err ?? null) !== null) {
109
- log.error("\u53D1\u9001 WebSocket \u4FE1\u606F\u5931\u8D25", { \u9519\u8BEF: err }).catch(console.error);
122
+ log.error("\u53D1\u9001 WebSocket \u4FE1\u606F\u5931\u8D25: %O", err).catch(console.error);
110
123
  return rej(err);
111
124
  }
112
125
  log.debug("WebSocket \u4FE1\u606F\u53D1\u9001\u6210\u529F").catch(console.error);
@@ -117,6 +130,9 @@ var WebSocket\u63D2\u4EF6 = class extends \u63D2\u4EF6 {
117
130
  async \u5173\u95EDws\u8FDE\u63A5() {
118
131
  await log.debug("\u5173\u95ED WebSocket \u8FDE\u63A5");
119
132
  \u5B58\u5728\u7684ws\u53E5\u67C4.close();
133
+ },
134
+ async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(\u6E05\u7406\u51FD\u6570) {
135
+ await WebSocket\u7BA1\u7406\u80052.\u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(\u5B58\u5728\u7684wsId, \u6E05\u7406\u51FD\u6570);
120
136
  }
121
137
  }
122
138
  };
@@ -3,11 +3,12 @@ import { 插件 as __, 包装插件项 as _____, 插件项类型 as _____$1, 取
3
3
  import '@lsby/ts-fp-data';
4
4
  import 'express';
5
5
 
6
- declare class WebSocket插件<信息 extends z.AnyZodObject> extends __<z.ZodObject<{
6
+ declare class WebSocket插件<信息 extends z.AnyZodObject | z.ZodUnion<any>> extends __<z.ZodObject<{
7
7
  ws操作: z.ZodUnion<[
8
8
  z.ZodObject<{
9
9
  发送ws信息: z.ZodFunction<z.ZodTuple<[信息], null>, z.ZodPromise<z.ZodVoid>>;
10
10
  关闭ws连接: z.ZodFunction<z.ZodTuple<[], null>, z.ZodPromise<z.ZodVoid>>;
11
+ 设置清理函数: z.ZodFunction<z.ZodTuple<[z.ZodFunction<z.ZodTuple<[], null>, z.ZodPromise<z.ZodVoid>>], null>, z.ZodPromise<z.ZodVoid>>;
11
12
  }>,
12
13
  z.ZodNull
13
14
  ]>;
@@ -47,17 +47,26 @@ var WebSocket\u7BA1\u7406\u8005 = class {
47
47
  constructor(\u8FDE\u63A5\u8868) {
48
48
  this.\u8FDE\u63A5\u8868 = \u8FDE\u63A5\u8868;
49
49
  }
50
- async \u589E\u52A0\u8FDE\u63A5(\u8BF7\u6C42id, ws\u53E5\u67C4) {
51
- this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] = ws\u53E5\u67C4;
50
+ \u6E05\u7406\u51FD\u6570\u8868 = {};
51
+ async \u589E\u52A0\u8FDE\u63A5(id, ws\u53E5\u67C4) {
52
+ this.\u8FDE\u63A5\u8868[id] = ws\u53E5\u67C4;
52
53
  }
53
- async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u8BF7\u6C42id) {
54
- return this.\u8FDE\u63A5\u8868.hasOwnProperty(\u8BF7\u6C42id) ? true : false;
54
+ async \u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(id) {
55
+ return this.\u8FDE\u63A5\u8868.hasOwnProperty(id) ? true : false;
55
56
  }
56
- async \u83B7\u5F97\u53E5\u67C4(\u8BF7\u6C42id) {
57
- return this.\u8FDE\u63A5\u8868[\u8BF7\u6C42id] ?? null;
57
+ async \u8BBE\u7F6E\u6E05\u7406\u51FD\u6570(id, \u6E05\u7406\u51FD\u6570) {
58
+ if (this.\u8FDE\u63A5\u8868.hasOwnProperty(id) === false)
59
+ return;
60
+ this.\u6E05\u7406\u51FD\u6570\u8868[id] = \u6E05\u7406\u51FD\u6570;
61
+ }
62
+ async \u83B7\u5F97\u53E5\u67C4(id) {
63
+ return this.\u8FDE\u63A5\u8868[id] ?? null;
58
64
  }
59
65
  async \u5220\u9664\u8FDE\u63A5(id) {
66
+ let \u6E05\u7406\u51FD\u6570 = this.\u6E05\u7406\u51FD\u6570\u8868[id];
67
+ await \u6E05\u7406\u51FD\u6570?.();
60
68
  delete this.\u8FDE\u63A5\u8868[id];
69
+ delete this.\u6E05\u7406\u51FD\u6570\u8868[id];
61
70
  }
62
71
  };
63
72
 
@@ -210,22 +219,22 @@ var \u670D\u52A1\u5668 = class {
210
219
  switch (\u865A\u62DF\u8868\u64CD\u4F5C) {
211
220
  case "add": {
212
221
  await log.debug("\u8C03\u7528\u903B\u8F91: \u589E");
213
- \u7ED3\u679C = await \u865A\u62DF\u8868\u5B9E\u4F8B.\u589E(req.body?.["value"]);
222
+ \u7ED3\u679C = await \u865A\u62DF\u8868\u5B9E\u4F8B.\u8C03\u7528\u589E(req.body);
214
223
  break;
215
224
  }
216
225
  case "del": {
217
226
  await log.debug("\u8C03\u7528\u903B\u8F91: \u5220");
218
- \u7ED3\u679C = await \u865A\u62DF\u8868\u5B9E\u4F8B.\u5220(req.body?.["where"]);
227
+ \u7ED3\u679C = await \u865A\u62DF\u8868\u5B9E\u4F8B.\u8C03\u7528\u5220(req.body);
219
228
  break;
220
229
  }
221
230
  case "set": {
222
231
  await log.debug("\u8C03\u7528\u903B\u8F91: \u6539");
223
- \u7ED3\u679C = await \u865A\u62DF\u8868\u5B9E\u4F8B.\u6539(req.body?.["value"], req.body?.["where"]);
232
+ \u7ED3\u679C = await \u865A\u62DF\u8868\u5B9E\u4F8B.\u8C03\u7528\u6539(req.body);
224
233
  break;
225
234
  }
226
235
  case "get": {
227
236
  await log.debug("\u8C03\u7528\u903B\u8F91: \u67E5");
228
- \u7ED3\u679C = await \u865A\u62DF\u8868\u5B9E\u4F8B.\u67E5(req.body?.["where"], req.body?.["page"], req.body?.["sort"]);
237
+ \u7ED3\u679C = await \u865A\u62DF\u8868\u5B9E\u4F8B.\u8C03\u7528\u67E5(req.body);
229
238
  break;
230
239
  }
231
240
  default: {
@@ -261,8 +270,8 @@ var \u670D\u52A1\u5668 = class {
261
270
  }
262
271
  await log.debug("\u89E3\u6790\u5BA2\u6237\u7AEF ID: %s", \u5BA2\u6237\u7AEFid);
263
272
  let WebSocket\u7BA1\u7406\u80052 = await Global.getItem("WebSocket\u7BA1\u7406\u8005");
264
- let \u662F\u5426\u5DF2\u5B58\u5728 = await WebSocket\u7BA1\u7406\u80052.\u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u5BA2\u6237\u7AEFid);
265
- if (\u662F\u5426\u5DF2\u5B58\u5728) {
273
+ let \u8FDE\u63A5\u5DF2\u5B58\u5728 = await WebSocket\u7BA1\u7406\u80052.\u67E5\u8BE2\u8FDE\u63A5\u5B58\u5728(\u5BA2\u6237\u7AEFid);
274
+ if (\u8FDE\u63A5\u5DF2\u5B58\u5728) {
266
275
  await log.error("\u5BA2\u6237\u7AEF ID \u5DF2\u5B58\u5728: %s", \u5BA2\u6237\u7AEFid);
267
276
  return this.\u5173\u95EDWebSocket\u8FDE\u63A5(ws, log, 4002, "\u5BA2\u6237\u7AEF ID \u5DF2\u5B58\u5728");
268
277
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  附加代码
3
- } from "../../chunk-CPOABMEY.js";
3
+ } from "../../chunk-V3CNI7QV.js";
4
4
  export {
5
5
  \u9644\u52A0\u4EE3\u7801
6
6
  };
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  main
4
- } from "../../chunk-VSMO652U.js";
5
- import "../../chunk-CPOABMEY.js";
4
+ } from "../../chunk-HSGHMDHC.js";
5
+ import "../../chunk-V3CNI7QV.js";
6
6
 
7
7
  // src/bin/gen-table-type/bin.ts
8
8
  import { Command } from "commander";