@lsby/net-core 0.3.44 → 0.4.0-beta.10

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 (180) hide show
  1. package/dist/bin/{gen-list → gen-api-list}/bin.cjs +22 -21
  2. package/dist/{cjs/bin/gen-list → bin/gen-api-list}/index.cjs +21 -20
  3. package/dist/{cjs/interface/interface-inst.cjs → bin/gen-api-type/addition.cjs} +7 -8
  4. package/dist/bin/gen-api-type/bin.cjs +196 -0
  5. package/dist/bin/gen-api-type/index.cjs +195 -0
  6. package/dist/bin/gen-table-list/bin.cjs +157 -0
  7. package/dist/bin/gen-table-list/index.cjs +156 -0
  8. package/dist/bin/gen-table-type/addition.cjs +64 -0
  9. package/dist/bin/gen-table-type/bin.cjs +219 -0
  10. package/dist/bin/gen-table-type/index.cjs +218 -0
  11. package/dist/bin/gen-test/bin.cjs +16 -15
  12. package/dist/bin/gen-test/index.cjs +15 -14
  13. package/dist/cjs/action/action.cjs +2 -2
  14. package/dist/cjs/bin/{gen-list → gen-api-list}/bin.cjs +22 -21
  15. package/dist/{bin/gen-list → cjs/bin/gen-api-list}/index.cjs +21 -20
  16. package/dist/cjs/bin/gen-api-type/addition.cjs +30 -0
  17. package/dist/cjs/bin/gen-api-type/bin.cjs +196 -0
  18. package/dist/cjs/bin/gen-api-type/index.cjs +195 -0
  19. package/dist/cjs/bin/gen-table-list/bin.cjs +157 -0
  20. package/dist/cjs/bin/gen-table-list/bin.d.cts +1 -0
  21. package/dist/cjs/bin/gen-table-list/index.cjs +156 -0
  22. package/dist/cjs/bin/gen-table-list/index.d.cts +3 -0
  23. package/dist/cjs/bin/gen-table-type/addition.cjs +64 -0
  24. package/dist/cjs/bin/gen-table-type/addition.d.cts +3 -0
  25. package/dist/cjs/bin/gen-table-type/bin.cjs +219 -0
  26. package/dist/cjs/bin/gen-table-type/bin.d.cts +1 -0
  27. package/dist/cjs/bin/gen-table-type/index.cjs +218 -0
  28. package/dist/cjs/bin/gen-table-type/index.d.cts +3 -0
  29. package/dist/cjs/bin/gen-test/bin.cjs +16 -15
  30. package/dist/cjs/bin/gen-test/index.cjs +15 -14
  31. package/dist/cjs/global/global.cjs +2 -2
  32. package/dist/cjs/global/ws.cjs +2 -2
  33. package/dist/cjs/index.cjs +322 -250
  34. package/dist/cjs/index.d.cts +9 -8
  35. package/dist/cjs/interface-api/interface-base.cjs +57 -0
  36. package/dist/cjs/interface-api/interface-base.d.cts +44 -0
  37. package/dist/cjs/interface-api/interface-logic.cjs +111 -0
  38. package/dist/cjs/interface-api/interface-logic.d.cts +61 -0
  39. package/dist/cjs/interface-api/interface-result.cjs +48 -0
  40. package/dist/cjs/interface-api/interface-result.d.cts +31 -0
  41. package/dist/cjs/{interface → interface-api}/interface-test.cjs +1 -1
  42. package/dist/cjs/interface-table/interface-table.cjs +35 -0
  43. package/dist/cjs/interface-table/interface-table.d.cts +97 -0
  44. package/dist/cjs/plugin/extend/chinese-path.d.cts +1 -1
  45. package/dist/cjs/plugin/extend/custom-data.cjs +2 -2
  46. package/dist/cjs/plugin/extend/custom-data.d.cts +1 -1
  47. package/dist/cjs/plugin/extend/json.cjs +7 -7
  48. package/dist/cjs/plugin/extend/json.d.cts +3 -5
  49. package/dist/cjs/plugin/extend/urlencoded.cjs +6 -6
  50. package/dist/cjs/plugin/extend/web-socket.cjs +9 -9
  51. package/dist/cjs/plugin/extend/web-socket.d.cts +2 -2
  52. package/dist/cjs/plugin/plug.d.cts +10 -5
  53. package/dist/cjs/server/server.cjs +204 -67
  54. package/dist/cjs/server/server.d.cts +19 -6
  55. package/dist/cjs/tools/tools.cjs +1 -1
  56. package/dist/cjs/tools/types.cjs +18 -0
  57. package/dist/cjs/tools/types.d.cts +5 -0
  58. package/dist/esm/action/action.js +1 -1
  59. package/dist/esm/bin/gen-api-list/bin.d.ts +1 -0
  60. package/dist/esm/bin/{gen-list → gen-api-list}/bin.js +4 -4
  61. package/dist/esm/bin/gen-api-list/index.d.ts +3 -0
  62. package/dist/esm/bin/{gen-list → gen-api-list}/index.js +1 -1
  63. package/dist/esm/bin/gen-api-type/addition.d.ts +3 -0
  64. package/dist/esm/bin/{gen-type → gen-api-type}/addition.js +1 -1
  65. package/dist/esm/bin/gen-api-type/bin.d.ts +1 -0
  66. package/dist/esm/bin/gen-api-type/bin.js +17 -0
  67. package/dist/esm/bin/gen-api-type/index.d.ts +3 -0
  68. package/dist/esm/bin/gen-api-type/index.js +7 -0
  69. package/dist/esm/bin/gen-table-list/bin.d.ts +1 -0
  70. package/dist/esm/bin/gen-table-list/bin.js +16 -0
  71. package/dist/esm/bin/gen-table-list/index.d.ts +3 -0
  72. package/dist/esm/bin/gen-table-list/index.js +6 -0
  73. package/dist/esm/bin/gen-table-type/addition.d.ts +3 -0
  74. package/dist/esm/bin/gen-table-type/addition.js +6 -0
  75. package/dist/esm/bin/gen-table-type/bin.d.ts +1 -0
  76. package/dist/esm/bin/gen-table-type/bin.js +17 -0
  77. package/dist/esm/bin/gen-table-type/index.d.ts +3 -0
  78. package/dist/esm/bin/gen-table-type/index.js +7 -0
  79. package/dist/esm/bin/gen-test/bin.js +2 -2
  80. package/dist/esm/bin/gen-test/index.js +1 -1
  81. package/dist/esm/{chunk-6AW5SSYA.js → chunk-2G4PSYTL.js} +5 -5
  82. package/dist/esm/{chunk-JX5MRJL6.js → chunk-43ZE4ZNH.js} +1 -1
  83. package/dist/esm/{chunk-5WR5VNYH.js → chunk-47ICFQXW.js} +2 -2
  84. package/dist/esm/chunk-4HFR4KRY.js +23 -0
  85. package/dist/esm/chunk-4T2MZJJ5.js +122 -0
  86. package/dist/esm/chunk-63YFVECY.js +11 -0
  87. package/dist/esm/chunk-7RPSQQZA.js +199 -0
  88. package/dist/esm/{chunk-WIZEBP6C.js → chunk-BC5MM5IX.js} +15 -14
  89. package/dist/esm/chunk-CPOABMEY.js +40 -0
  90. package/dist/esm/chunk-DAKGERGA.js +0 -0
  91. package/dist/esm/{chunk-BC6IISWS.js → chunk-DGDZQLIJ.js} +1 -1
  92. package/dist/esm/{chunk-EAVNASDB.js → chunk-FIQSBTYJ.js} +2 -2
  93. package/dist/esm/chunk-G45OAMTZ.js +149 -0
  94. package/dist/esm/{chunk-N7TPWCQ5.js → chunk-GLZWRYH6.js} +1 -1
  95. package/dist/esm/{chunk-PVE5VI5K.js → chunk-IGHJCQ2S.js} +1 -1
  96. package/dist/esm/chunk-JVDSGTFS.js +6 -0
  97. package/dist/esm/chunk-JXGP4GSQ.js +56 -0
  98. package/dist/esm/{chunk-GVIGQG5Y.js → chunk-LLLXAZBC.js} +6 -6
  99. package/dist/esm/chunk-RS244OBR.js +33 -0
  100. package/dist/esm/{chunk-F7TZXXFE.js → chunk-RUSBZSSK.js} +18 -17
  101. package/dist/esm/{chunk-64WWIZ43.js → chunk-UHOWN2M5.js} +67 -52
  102. package/dist/esm/{chunk-AVB7KPZC.js → chunk-XOR7HWL4.js} +8 -8
  103. package/dist/esm/global/global.js +2 -2
  104. package/dist/esm/global/ws.js +1 -1
  105. package/dist/esm/index.d.ts +9 -8
  106. package/dist/esm/index.js +33 -41
  107. package/dist/esm/interface-api/interface-base.d.ts +44 -0
  108. package/dist/esm/{interface/interface-inst.js → interface-api/interface-base.js} +1 -1
  109. package/dist/esm/interface-api/interface-logic.d.ts +61 -0
  110. package/dist/esm/interface-api/interface-logic.js +8 -0
  111. package/dist/esm/interface-api/interface-result.d.ts +31 -0
  112. package/dist/esm/interface-api/interface-result.js +8 -0
  113. package/dist/esm/{interface → interface-api}/interface-test.js +1 -1
  114. package/dist/esm/interface-table/interface-table.d.ts +97 -0
  115. package/dist/esm/interface-table/interface-table.js +6 -0
  116. package/dist/esm/plugin/extend/chinese-path.d.ts +1 -1
  117. package/dist/esm/plugin/extend/custom-data.d.ts +1 -1
  118. package/dist/esm/plugin/extend/custom-data.js +3 -3
  119. package/dist/esm/plugin/extend/json.d.ts +3 -5
  120. package/dist/esm/plugin/extend/json.js +4 -4
  121. package/dist/esm/plugin/extend/urlencoded.js +3 -3
  122. package/dist/esm/plugin/extend/web-socket.d.ts +2 -2
  123. package/dist/esm/plugin/extend/web-socket.js +3 -3
  124. package/dist/esm/plugin/plug.d.ts +10 -5
  125. package/dist/esm/server/server.d.ts +19 -6
  126. package/dist/esm/server/server.js +5 -3
  127. package/dist/esm/tools/tools.js +1 -1
  128. package/dist/esm/tools/types.d.ts +5 -0
  129. package/dist/esm/tools/types.js +1 -0
  130. package/package.json +18 -8
  131. package/dist/bin/gen-type/addition.cjs +0 -148
  132. package/dist/bin/gen-type/bin.cjs +0 -299
  133. package/dist/bin/gen-type/index.cjs +0 -298
  134. package/dist/cjs/bin/gen-type/addition.cjs +0 -148
  135. package/dist/cjs/bin/gen-type/bin.cjs +0 -299
  136. package/dist/cjs/bin/gen-type/index.cjs +0 -298
  137. package/dist/cjs/interface/extend/json-base.cjs +0 -141
  138. package/dist/cjs/interface/extend/json-base.d.cts +0 -18
  139. package/dist/cjs/interface/extend/json-wrap.cjs +0 -181
  140. package/dist/cjs/interface/extend/json-wrap.d.cts +0 -28
  141. package/dist/cjs/interface/interface-inst.d.cts +0 -16
  142. package/dist/cjs/interface/interface-type.cjs +0 -53
  143. package/dist/cjs/interface/interface-type.d.cts +0 -28
  144. package/dist/cjs/result/result.cjs +0 -138
  145. package/dist/cjs/result/result.d.cts +0 -34
  146. package/dist/esm/bin/gen-type/bin.js +0 -17
  147. package/dist/esm/bin/gen-type/index.js +0 -7
  148. package/dist/esm/chunk-4V2TOQZ2.js +0 -58
  149. package/dist/esm/chunk-FAW4GTXP.js +0 -29
  150. package/dist/esm/chunk-G4P3OAFL.js +0 -7
  151. package/dist/esm/chunk-KRQ6KUVY.js +0 -124
  152. package/dist/esm/chunk-SF5Z34AP.js +0 -29
  153. package/dist/esm/chunk-UUUCTDAN.js +0 -98
  154. package/dist/esm/chunk-WF7MUELD.js +0 -45
  155. package/dist/esm/interface/extend/json-base.d.ts +0 -18
  156. package/dist/esm/interface/extend/json-base.js +0 -11
  157. package/dist/esm/interface/extend/json-wrap.d.ts +0 -28
  158. package/dist/esm/interface/extend/json-wrap.js +0 -14
  159. package/dist/esm/interface/interface-inst.d.ts +0 -16
  160. package/dist/esm/interface/interface-type.d.ts +0 -28
  161. package/dist/esm/interface/interface-type.js +0 -6
  162. package/dist/esm/result/result.d.ts +0 -34
  163. package/dist/esm/result/result.js +0 -19
  164. /package/dist/bin/{gen-list → gen-api-list}/bin.d.cts +0 -0
  165. /package/dist/bin/{gen-list → gen-api-list}/index.d.cts +0 -0
  166. /package/dist/bin/{gen-type → gen-api-type}/addition.d.cts +0 -0
  167. /package/dist/bin/{gen-type → gen-api-type}/bin.d.cts +0 -0
  168. /package/dist/bin/{gen-type → gen-api-type}/index.d.cts +0 -0
  169. /package/dist/{cjs/bin/gen-list → bin/gen-table-list}/bin.d.cts +0 -0
  170. /package/dist/{cjs/bin/gen-list → bin/gen-table-list}/index.d.cts +0 -0
  171. /package/dist/{cjs/bin/gen-type → bin/gen-table-type}/addition.d.cts +0 -0
  172. /package/dist/{cjs/bin/gen-type → bin/gen-table-type}/bin.d.cts +0 -0
  173. /package/dist/{cjs/bin/gen-type → bin/gen-table-type}/index.d.cts +0 -0
  174. /package/dist/{esm/bin/gen-list/bin.d.ts → cjs/bin/gen-api-list/bin.d.cts} +0 -0
  175. /package/dist/{esm/bin/gen-list/index.d.ts → cjs/bin/gen-api-list/index.d.cts} +0 -0
  176. /package/dist/{esm/bin/gen-type/addition.d.ts → cjs/bin/gen-api-type/addition.d.cts} +0 -0
  177. /package/dist/{esm/bin/gen-type/bin.d.ts → cjs/bin/gen-api-type/bin.d.cts} +0 -0
  178. /package/dist/{esm/bin/gen-type/index.d.ts → cjs/bin/gen-api-type/index.d.cts} +0 -0
  179. /package/dist/cjs/{interface → interface-api}/interface-test.d.cts +0 -0
  180. /package/dist/esm/{interface → interface-api}/interface-test.d.ts +0 -0
@@ -23,20 +23,20 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
23
23
  mod
24
24
  ));
25
25
 
26
- // src/bin/gen-list/bin.ts
27
- var import_node_path2 = __toESM(require("path"), 1);
26
+ // src/bin/gen-api-list/bin.ts
28
27
  var import_commander = require("commander");
28
+ var import_node_path2 = __toESM(require("path"), 1);
29
29
 
30
- // src/bin/gen-list/index.ts
30
+ // src/bin/gen-api-list/index.ts
31
+ var import_ts_log = require("@lsby/ts-log");
32
+ var import_lodash = __toESM(require("lodash"), 1);
31
33
  var import_node_crypto = require("crypto");
32
34
  var import_node_fs = __toESM(require("fs"), 1);
33
35
  var import_node_path = __toESM(require("path"), 1);
34
- var import_lodash = __toESM(require("lodash"), 1);
35
36
  var import_typescript = __toESM(require("typescript"), 1);
36
- var import_ts_log = require("@lsby/ts-log");
37
37
  function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
38
38
  for (let statement of \u6E90\u6587\u4EF6.statements) {
39
- if (import_typescript.default.isExportAssignment(statement) && statement.isExportEquals === void 0) {
39
+ if (import_typescript.default.isExportAssignment(statement) && (statement.isExportEquals ?? null) === null) {
40
40
  return true;
41
41
  }
42
42
  }
@@ -52,14 +52,15 @@ function \u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F
52
52
  return import_node_path.default.relative(import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84), a.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
53
53
  }
54
54
  async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
55
- let log = new import_ts_log.Log("@lsby:net-core").extend("gen-list");
56
- await log.debug("\u5F00\u59CB\u751F\u6210\u63A5\u53E3\u5217\u8868...");
55
+ let log = new import_ts_log.Log("@lsby:net-core").extend("gen-api-list");
56
+ await log.debug("\u5F00\u59CB\u751F\u6210api\u63A5\u53E3\u5217\u8868...");
57
57
  await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
58
58
  await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
59
59
  await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
60
60
  let tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
61
- if (tsconfig\u5185\u5BB9.error) {
62
- await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json: " + tsconfig\u5185\u5BB9.error.messageText);
61
+ let tsconfig\u5185\u5BB9\u9519\u8BEF = tsconfig\u5185\u5BB9.error ?? null;
62
+ if (tsconfig\u5185\u5BB9\u9519\u8BEF !== null) {
63
+ await log.error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json: " + tsconfig\u5185\u5BB9\u9519\u8BEF.messageText);
63
64
  throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
64
65
  }
65
66
  let \u89E3\u6790\u540E\u7684tsconfig = import_typescript.default.parseJsonConfigFileContent(tsconfig\u5185\u5BB9.config, import_typescript.default.sys, import_node_path.default.resolve(tsconfig\u8DEF\u5F84, ".."));
@@ -70,10 +71,10 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
70
71
  let \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
71
72
  let \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF6) => {
72
73
  let \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF6.fileName);
73
- if (!\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84))
74
+ if (\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84) === false)
74
75
  return false;
75
76
  let \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6);
76
- if (!\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA)
77
+ if (\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA === false)
77
78
  return false;
78
79
  return true;
79
80
  });
@@ -97,8 +98,8 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
97
98
  host: {
98
99
  ...\u9879\u76EE\u4E3B\u673A,
99
100
  getSourceFile: (filename) => {
100
- let \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName == filename);
101
- if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 != null)
101
+ let \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName === filename) ?? null;
102
+ if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 !== null)
102
103
  return \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6;
103
104
  return \u9879\u76EE.getSourceFile(filename);
104
105
  }
@@ -113,35 +114,35 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
113
114
  if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "\u8BA1\u7B97\u7ED3\u679C") {
114
115
  let type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
115
116
  let \u6587\u672C\u7ED3\u679C = \u7C7B\u578B\u68C0\u67E5\u5668.typeToString(type);
116
- if (\u6587\u672C\u7ED3\u679C == "true")
117
+ if (\u6587\u672C\u7ED3\u679C === "true")
117
118
  \u7ED3\u679C = true;
118
119
  }
119
120
  });
120
121
  \u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
121
122
  }
122
- let \u6700\u7EC8\u7ED3\u679C = import_lodash.default.zip(\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC, \u68C0\u67E5\u7ED3\u679C).filter((a) => a[1] == true).map((a) => a[0]).filter((a) => a != null);
123
- await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u5B9E\u73B0`);
123
+ let \u6700\u7EC8\u7ED3\u679C = import_lodash.default.zip(\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC, \u68C0\u67E5\u7ED3\u679C).filter((a) => a[1] === true).map((a) => a[0] ?? null).filter((a) => a !== null);
124
+ await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2Aapi\u63A5\u53E3\u5B9E\u73B0`);
124
125
  let \u6700\u7EC8\u4EE3\u7801 = [
125
126
  `import { \u4EFB\u610F\u63A5\u53E3 } from '@lsby/net-core'`,
126
127
  "",
127
128
  ...\u6700\u7EC8\u7ED3\u679C.map((a) => `import ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)} from './${\u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a)}'`),
128
129
  "",
129
- `export let interfaceList: \u4EFB\u610F\u63A5\u53E3[] = [`,
130
+ `export let interfaceApiList: \u4EFB\u610F\u63A5\u53E3[] = [`,
130
131
  ...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => ` ${a},`),
131
132
  `]`,
132
133
  ""
133
134
  ];
134
135
  await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
135
136
  let \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
136
- if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
137
+ if (import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939) === false)
137
138
  import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
138
139
  import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
139
140
  await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
140
141
  }
141
142
 
142
- // src/bin/gen-list/bin.ts
143
+ // src/bin/gen-api-list/bin.ts
143
144
  var program = new import_commander.Command();
144
- program.name("\u751F\u6210\u6D4B\u8BD5\u6587\u4EF6").argument("<tsconfigPath>", "tsconfig\u6587\u4EF6\u8DEF\u5F84").argument("<interfaceFolderPath>", "\u63A5\u53E3\u6587\u4EF6\u5939\u8DEF\u5F84").argument("<outFilePath>", "\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84").action(async (tsconfigPath, interfaceFolderPath, outFilePath) => {
145
+ program.name("\u751F\u6210\u63A5\u53E3api\u6587\u4EF6\u5217\u8868").argument("<tsconfigPath>", "tsconfig\u6587\u4EF6\u8DEF\u5F84").argument("<interfaceFolderPath>", "\u63A5\u53E3\u6587\u4EF6\u5939\u8DEF\u5F84").argument("<outFilePath>", "\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84").action(async (tsconfigPath, interfaceFolderPath, outFilePath) => {
145
146
  let absoluteTsconfigPath = import_node_path2.default.resolve(tsconfigPath);
146
147
  let absoluteApiFolderPath = import_node_path2.default.resolve(interfaceFolderPath);
147
148
  let absoluteOutputPath = import_node_path2.default.resolve(outFilePath);
@@ -27,21 +27,21 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
 
30
- // src/bin/gen-list/index.ts
31
- var gen_list_exports = {};
32
- __export(gen_list_exports, {
30
+ // src/bin/gen-api-list/index.ts
31
+ var gen_api_list_exports = {};
32
+ __export(gen_api_list_exports, {
33
33
  main: () => main
34
34
  });
35
- module.exports = __toCommonJS(gen_list_exports);
35
+ module.exports = __toCommonJS(gen_api_list_exports);
36
+ var import_ts_log = require("@lsby/ts-log");
37
+ var import_lodash = __toESM(require("lodash"), 1);
36
38
  var import_node_crypto = require("crypto");
37
39
  var import_node_fs = __toESM(require("fs"), 1);
38
40
  var import_node_path = __toESM(require("path"), 1);
39
- var import_lodash = __toESM(require("lodash"), 1);
40
41
  var import_typescript = __toESM(require("typescript"), 1);
41
- var import_ts_log = require("@lsby/ts-log");
42
42
  function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
43
43
  for (let statement of \u6E90\u6587\u4EF6.statements) {
44
- if (import_typescript.default.isExportAssignment(statement) && statement.isExportEquals === void 0) {
44
+ if (import_typescript.default.isExportAssignment(statement) && (statement.isExportEquals ?? null) === null) {
45
45
  return true;
46
46
  }
47
47
  }
@@ -57,14 +57,15 @@ function \u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F
57
57
  return import_node_path.default.relative(import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84), a.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
58
58
  }
59
59
  async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
60
- let log = new import_ts_log.Log("@lsby:net-core").extend("gen-list");
61
- await log.debug("\u5F00\u59CB\u751F\u6210\u63A5\u53E3\u5217\u8868...");
60
+ let log = new import_ts_log.Log("@lsby:net-core").extend("gen-api-list");
61
+ await log.debug("\u5F00\u59CB\u751F\u6210api\u63A5\u53E3\u5217\u8868...");
62
62
  await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
63
63
  await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
64
64
  await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
65
65
  let tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
66
- if (tsconfig\u5185\u5BB9.error) {
67
- await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json: " + tsconfig\u5185\u5BB9.error.messageText);
66
+ let tsconfig\u5185\u5BB9\u9519\u8BEF = tsconfig\u5185\u5BB9.error ?? null;
67
+ if (tsconfig\u5185\u5BB9\u9519\u8BEF !== null) {
68
+ await log.error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json: " + tsconfig\u5185\u5BB9\u9519\u8BEF.messageText);
68
69
  throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
69
70
  }
70
71
  let \u89E3\u6790\u540E\u7684tsconfig = import_typescript.default.parseJsonConfigFileContent(tsconfig\u5185\u5BB9.config, import_typescript.default.sys, import_node_path.default.resolve(tsconfig\u8DEF\u5F84, ".."));
@@ -75,10 +76,10 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
75
76
  let \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
76
77
  let \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF6) => {
77
78
  let \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF6.fileName);
78
- if (!\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84))
79
+ if (\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84) === false)
79
80
  return false;
80
81
  let \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6);
81
- if (!\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA)
82
+ if (\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA === false)
82
83
  return false;
83
84
  return true;
84
85
  });
@@ -102,8 +103,8 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
102
103
  host: {
103
104
  ...\u9879\u76EE\u4E3B\u673A,
104
105
  getSourceFile: (filename) => {
105
- let \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName == filename);
106
- if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 != null)
106
+ let \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName === filename) ?? null;
107
+ if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 !== null)
107
108
  return \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6;
108
109
  return \u9879\u76EE.getSourceFile(filename);
109
110
  }
@@ -118,27 +119,27 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
118
119
  if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "\u8BA1\u7B97\u7ED3\u679C") {
119
120
  let type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
120
121
  let \u6587\u672C\u7ED3\u679C = \u7C7B\u578B\u68C0\u67E5\u5668.typeToString(type);
121
- if (\u6587\u672C\u7ED3\u679C == "true")
122
+ if (\u6587\u672C\u7ED3\u679C === "true")
122
123
  \u7ED3\u679C = true;
123
124
  }
124
125
  });
125
126
  \u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
126
127
  }
127
- let \u6700\u7EC8\u7ED3\u679C = import_lodash.default.zip(\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC, \u68C0\u67E5\u7ED3\u679C).filter((a) => a[1] == true).map((a) => a[0]).filter((a) => a != null);
128
- await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u5B9E\u73B0`);
128
+ let \u6700\u7EC8\u7ED3\u679C = import_lodash.default.zip(\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC, \u68C0\u67E5\u7ED3\u679C).filter((a) => a[1] === true).map((a) => a[0] ?? null).filter((a) => a !== null);
129
+ await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2Aapi\u63A5\u53E3\u5B9E\u73B0`);
129
130
  let \u6700\u7EC8\u4EE3\u7801 = [
130
131
  `import { \u4EFB\u610F\u63A5\u53E3 } from '@lsby/net-core'`,
131
132
  "",
132
133
  ...\u6700\u7EC8\u7ED3\u679C.map((a) => `import ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)} from './${\u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a)}'`),
133
134
  "",
134
- `export let interfaceList: \u4EFB\u610F\u63A5\u53E3[] = [`,
135
+ `export let interfaceApiList: \u4EFB\u610F\u63A5\u53E3[] = [`,
135
136
  ...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => ` ${a},`),
136
137
  `]`,
137
138
  ""
138
139
  ];
139
140
  await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
140
141
  let \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
141
- if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
142
+ if (import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939) === false)
142
143
  import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
143
144
  import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
144
145
  await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
@@ -17,15 +17,14 @@ var __copyProps = (to, from, except, desc) => {
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
 
20
- // src/interface/interface-inst.ts
21
- var interface_inst_exports = {};
22
- __export(interface_inst_exports, {
23
- \u63A5\u53E3: () => \u63A5\u53E3
20
+ // src/bin/gen-api-type/addition.ts
21
+ var addition_exports = {};
22
+ __export(addition_exports, {
23
+ \u9644\u52A0\u4EE3\u7801: () => \u9644\u52A0\u4EE3\u7801
24
24
  });
25
- module.exports = __toCommonJS(interface_inst_exports);
26
- var \u63A5\u53E3 = class {
27
- };
25
+ module.exports = __toCommonJS(addition_exports);
26
+ var \u9644\u52A0\u4EE3\u7801 = ``;
28
27
  // Annotate the CommonJS export names for ESM import in node:
29
28
  0 && (module.exports = {
30
- \u63A5\u53E3
29
+ \u9644\u52A0\u4EE3\u7801
31
30
  });
@@ -0,0 +1,196 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
18
+ // If the importer is in node compatibility mode or this is not an ESM
19
+ // file that has been converted to a CommonJS file using a Babel-
20
+ // compatible transform (i.e. "__esModule" has not been set), then set
21
+ // "default" to the CommonJS "module.exports" for node compatibility.
22
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
23
+ mod
24
+ ));
25
+
26
+ // src/bin/gen-api-type/bin.ts
27
+ var import_commander = require("commander");
28
+ var import_node_path2 = __toESM(require("path"), 1);
29
+
30
+ // src/bin/gen-api-type/index.ts
31
+ var import_ts_log = require("@lsby/ts-log");
32
+ var import_node_crypto = require("crypto");
33
+ var import_node_fs = __toESM(require("fs"), 1);
34
+ var import_node_path = __toESM(require("path"), 1);
35
+ var import_typescript = __toESM(require("typescript"), 1);
36
+
37
+ // src/bin/gen-api-type/addition.ts
38
+ var \u9644\u52A0\u4EE3\u7801 = ``;
39
+
40
+ // src/bin/gen-api-type/index.ts
41
+ function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
42
+ for (let statement of \u6E90\u6587\u4EF6.statements) {
43
+ if (import_typescript.default.isExportAssignment(statement) && (statement.isExportEquals ?? null) === null) {
44
+ return true;
45
+ }
46
+ }
47
+ return false;
48
+ }
49
+ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
50
+ let log = new import_ts_log.Log("@lsby:net-core").extend("gen-api-type");
51
+ await log.debug("\u5F00\u59CB\u751F\u6210\u7C7B\u578B...");
52
+ await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
53
+ await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
54
+ await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
55
+ let tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
56
+ let tsconfig\u5185\u5BB9\u9519\u8BEF = tsconfig\u5185\u5BB9.error ?? null;
57
+ if (tsconfig\u5185\u5BB9\u9519\u8BEF !== null) {
58
+ await log.error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json: " + tsconfig\u5185\u5BB9\u9519\u8BEF.messageText);
59
+ throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
60
+ }
61
+ let \u89E3\u6790\u540E\u7684tsconfig = import_typescript.default.parseJsonConfigFileContent(tsconfig\u5185\u5BB9.config, import_typescript.default.sys, import_node_path.default.resolve(tsconfig\u8DEF\u5F84, ".."));
62
+ await log.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
63
+ let \u9879\u76EE\u4E3B\u673A = import_typescript.default.createCompilerHost(\u89E3\u6790\u540E\u7684tsconfig.options);
64
+ let \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
65
+ await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
66
+ let \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
67
+ let \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF6) => {
68
+ let \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF6.fileName);
69
+ if (\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84) === false)
70
+ return false;
71
+ let \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6);
72
+ if (\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA === false)
73
+ return false;
74
+ return true;
75
+ });
76
+ await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
77
+ let \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
78
+ let \u4EE3\u7801 = `
79
+ import {
80
+ \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u7ED3\u679C,
81
+ \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C,
82
+ \u83B7\u5F97\u63A5\u53E3\u65B9\u6CD5\u7C7B\u578B,
83
+ \u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0F,
84
+ \u83B7\u5F97\u63A5\u53E3\u8DEF\u5F84\u7C7B\u578B,
85
+ \u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B,
86
+ \u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B,
87
+ \u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0F,
88
+ } from '@lsby/net-core'
89
+ import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}",
90
+
91
+ type jsonPath = \u83B7\u5F97\u63A5\u53E3\u8DEF\u5F84\u7C7B\u578B<typeof \u5BFC\u5165>
92
+ type jsonMethod = \u83B7\u5F97\u63A5\u53E3\u65B9\u6CD5\u7C7B\u578B<typeof \u5BFC\u5165>
93
+ type jsonInput = \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B<typeof \u5BFC\u5165>>>
94
+ type jsonErrorOutput = \u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0F<typeof \u5BFC\u5165>
95
+ type jsonSuccessOutput = \u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0F<typeof \u5BFC\u5165>
96
+
97
+ type JSON\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C = jsonPath extends infer _
98
+ ? jsonMethod extends infer _
99
+ ? jsonInput extends infer _
100
+ ? jsonErrorOutput extends infer _
101
+ ? jsonSuccessOutput extends infer _
102
+ ? {
103
+ path: jsonPath
104
+ method: jsonMethod
105
+ input: jsonInput
106
+ errorOutput: jsonErrorOutput
107
+ successOutput: jsonSuccessOutput
108
+ }
109
+ : never
110
+ : never
111
+ : never
112
+ : never
113
+ : never
114
+
115
+ type wsPath = \u83B7\u5F97\u63A5\u53E3\u8DEF\u5F84\u7C7B\u578B<typeof \u5BFC\u5165>
116
+ type wsData = \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u7ED3\u679C<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B<typeof \u5BFC\u5165>>>
117
+
118
+ type WS\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C = wsPath extends infer _
119
+ ? wsData extends infer _
120
+ ? wsData extends Record<string, never>
121
+ ? never
122
+ : {
123
+ path: wsPath
124
+ data: wsData
125
+ }
126
+ : never
127
+ : never
128
+ `;
129
+ return import_typescript.default.createSourceFile(a.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"), \u4EE3\u7801, import_typescript.default.ScriptTarget.Latest);
130
+ });
131
+ let \u65B0\u9879\u76EE = import_typescript.default.createProgram({
132
+ rootNames: [...\u9879\u76EE.getSourceFiles().map((a) => a.fileName), ...\u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.map((a) => a.fileName)],
133
+ options: \u89E3\u6790\u540E\u7684tsconfig.options,
134
+ host: {
135
+ ...\u9879\u76EE\u4E3B\u673A,
136
+ getSourceFile: (filename) => {
137
+ let \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName === filename) ?? null;
138
+ if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 !== null)
139
+ return \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6;
140
+ return \u9879\u76EE.getSourceFile(filename);
141
+ }
142
+ },
143
+ oldProgram: \u9879\u76EE
144
+ });
145
+ let \u7C7B\u578B\u68C0\u67E5\u5668 = \u65B0\u9879\u76EE.getTypeChecker();
146
+ let JSON\u7ED3\u679C = [];
147
+ let WS\u7ED3\u679C = [];
148
+ for (let \u6E90\u6587\u4EF6 of \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC) {
149
+ import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (node) => {
150
+ if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "JSON\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C") {
151
+ let type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
152
+ JSON\u7ED3\u679C.push(
153
+ \u7C7B\u578B\u68C0\u67E5\u5668.typeToString(
154
+ type,
155
+ void 0,
156
+ import_typescript.default.TypeFormatFlags.NoTruncation | import_typescript.default.TypeFormatFlags.NoTypeReduction | import_typescript.default.TypeFormatFlags.AllowUniqueESSymbolType | import_typescript.default.TypeFormatFlags.UseAliasDefinedOutsideCurrentScope
157
+ )
158
+ );
159
+ } else if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "WS\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C") {
160
+ let type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
161
+ WS\u7ED3\u679C.push(
162
+ \u7C7B\u578B\u68C0\u67E5\u5668.typeToString(
163
+ type,
164
+ void 0,
165
+ import_typescript.default.TypeFormatFlags.NoTruncation | import_typescript.default.TypeFormatFlags.NoTypeReduction | import_typescript.default.TypeFormatFlags.AllowUniqueESSymbolType | import_typescript.default.TypeFormatFlags.UseAliasDefinedOutsideCurrentScope
166
+ )
167
+ );
168
+ }
169
+ });
170
+ }
171
+ let \u6700\u7EC8\u7ED3\u679C_JSON = Array.from(new Set(JSON\u7ED3\u679C.filter((a) => a !== "any" && a !== "never" && a !== "unknown")));
172
+ await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C_JSON.length} \u4E2Ajson\u63A5\u53E3\u7C7B\u578B`);
173
+ let \u6700\u7EC8\u7ED3\u679C_WS = Array.from(new Set(WS\u7ED3\u679C.filter((a) => a !== "any" && a !== "never" && a !== "unknown")));
174
+ await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C_WS.length} \u4E2Aws\u63A5\u53E3\u7C7B\u578B`);
175
+ let \u6700\u7EC8\u4EE3\u7801 = [
176
+ `export type InterfaceType = [${\u6700\u7EC8\u7ED3\u679C_JSON.join(",")}]`,
177
+ `export type InterfaceWsType = [${\u6700\u7EC8\u7ED3\u679C_WS.join(",")}]`,
178
+ \u9644\u52A0\u4EE3\u7801
179
+ ];
180
+ await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
181
+ let \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
182
+ if (import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939) === false)
183
+ import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
184
+ import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
185
+ await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
186
+ }
187
+
188
+ // src/bin/gen-api-type/bin.ts
189
+ var program = new import_commander.Command();
190
+ program.name("\u751F\u6210api\u63A5\u53E3\u7C7B\u578B\u6587\u4EF6").argument("<tsconfigPath>", "tsconfig\u6587\u4EF6\u8DEF\u5F84").argument("<interfaceFolderPath>", "\u63A5\u53E3\u6587\u4EF6\u5939\u8DEF\u5F84").argument("<outFilePath>", "\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84").action(async (tsconfigPath, interfaceFolderPath, outputPath) => {
191
+ let absoluteTsconfigPath = import_node_path2.default.resolve(tsconfigPath);
192
+ let absoluteApiFolderPath = import_node_path2.default.resolve(interfaceFolderPath);
193
+ let absoluteOutputPath = import_node_path2.default.resolve(outputPath);
194
+ await main(absoluteTsconfigPath, absoluteApiFolderPath, absoluteOutputPath);
195
+ });
196
+ program.parse(process.argv);
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/bin/gen-api-type/index.ts
31
+ var gen_api_type_exports = {};
32
+ __export(gen_api_type_exports, {
33
+ main: () => main
34
+ });
35
+ module.exports = __toCommonJS(gen_api_type_exports);
36
+ var import_ts_log = require("@lsby/ts-log");
37
+ var import_node_crypto = require("crypto");
38
+ var import_node_fs = __toESM(require("fs"), 1);
39
+ var import_node_path = __toESM(require("path"), 1);
40
+ var import_typescript = __toESM(require("typescript"), 1);
41
+
42
+ // src/bin/gen-api-type/addition.ts
43
+ var \u9644\u52A0\u4EE3\u7801 = ``;
44
+
45
+ // src/bin/gen-api-type/index.ts
46
+ function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
47
+ for (let statement of \u6E90\u6587\u4EF6.statements) {
48
+ if (import_typescript.default.isExportAssignment(statement) && (statement.isExportEquals ?? null) === null) {
49
+ return true;
50
+ }
51
+ }
52
+ return false;
53
+ }
54
+ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
55
+ let log = new import_ts_log.Log("@lsby:net-core").extend("gen-api-type");
56
+ await log.debug("\u5F00\u59CB\u751F\u6210\u7C7B\u578B...");
57
+ await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
58
+ await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
59
+ await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
60
+ let tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
61
+ let tsconfig\u5185\u5BB9\u9519\u8BEF = tsconfig\u5185\u5BB9.error ?? null;
62
+ if (tsconfig\u5185\u5BB9\u9519\u8BEF !== null) {
63
+ await log.error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json: " + tsconfig\u5185\u5BB9\u9519\u8BEF.messageText);
64
+ throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
65
+ }
66
+ let \u89E3\u6790\u540E\u7684tsconfig = import_typescript.default.parseJsonConfigFileContent(tsconfig\u5185\u5BB9.config, import_typescript.default.sys, import_node_path.default.resolve(tsconfig\u8DEF\u5F84, ".."));
67
+ await log.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
68
+ let \u9879\u76EE\u4E3B\u673A = import_typescript.default.createCompilerHost(\u89E3\u6790\u540E\u7684tsconfig.options);
69
+ let \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
70
+ await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
71
+ let \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
72
+ let \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF6) => {
73
+ let \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF6.fileName);
74
+ if (\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84) === false)
75
+ return false;
76
+ let \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6);
77
+ if (\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA === false)
78
+ return false;
79
+ return true;
80
+ });
81
+ await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
82
+ let \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
83
+ let \u4EE3\u7801 = `
84
+ import {
85
+ \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u7ED3\u679C,
86
+ \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C,
87
+ \u83B7\u5F97\u63A5\u53E3\u65B9\u6CD5\u7C7B\u578B,
88
+ \u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0F,
89
+ \u83B7\u5F97\u63A5\u53E3\u8DEF\u5F84\u7C7B\u578B,
90
+ \u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B,
91
+ \u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B,
92
+ \u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0F,
93
+ } from '@lsby/net-core'
94
+ import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}",
95
+
96
+ type jsonPath = \u83B7\u5F97\u63A5\u53E3\u8DEF\u5F84\u7C7B\u578B<typeof \u5BFC\u5165>
97
+ type jsonMethod = \u83B7\u5F97\u63A5\u53E3\u65B9\u6CD5\u7C7B\u578B<typeof \u5BFC\u5165>
98
+ type jsonInput = \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B<typeof \u5BFC\u5165>>>
99
+ type jsonErrorOutput = \u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0F<typeof \u5BFC\u5165>
100
+ type jsonSuccessOutput = \u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0F<typeof \u5BFC\u5165>
101
+
102
+ type JSON\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C = jsonPath extends infer _
103
+ ? jsonMethod extends infer _
104
+ ? jsonInput extends infer _
105
+ ? jsonErrorOutput extends infer _
106
+ ? jsonSuccessOutput extends infer _
107
+ ? {
108
+ path: jsonPath
109
+ method: jsonMethod
110
+ input: jsonInput
111
+ errorOutput: jsonErrorOutput
112
+ successOutput: jsonSuccessOutput
113
+ }
114
+ : never
115
+ : never
116
+ : never
117
+ : never
118
+ : never
119
+
120
+ type wsPath = \u83B7\u5F97\u63A5\u53E3\u8DEF\u5F84\u7C7B\u578B<typeof \u5BFC\u5165>
121
+ type wsData = \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u7ED3\u679C<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B<typeof \u5BFC\u5165>>>
122
+
123
+ type WS\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C = wsPath extends infer _
124
+ ? wsData extends infer _
125
+ ? wsData extends Record<string, never>
126
+ ? never
127
+ : {
128
+ path: wsPath
129
+ data: wsData
130
+ }
131
+ : never
132
+ : never
133
+ `;
134
+ return import_typescript.default.createSourceFile(a.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"), \u4EE3\u7801, import_typescript.default.ScriptTarget.Latest);
135
+ });
136
+ let \u65B0\u9879\u76EE = import_typescript.default.createProgram({
137
+ rootNames: [...\u9879\u76EE.getSourceFiles().map((a) => a.fileName), ...\u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.map((a) => a.fileName)],
138
+ options: \u89E3\u6790\u540E\u7684tsconfig.options,
139
+ host: {
140
+ ...\u9879\u76EE\u4E3B\u673A,
141
+ getSourceFile: (filename) => {
142
+ let \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName === filename) ?? null;
143
+ if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 !== null)
144
+ return \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6;
145
+ return \u9879\u76EE.getSourceFile(filename);
146
+ }
147
+ },
148
+ oldProgram: \u9879\u76EE
149
+ });
150
+ let \u7C7B\u578B\u68C0\u67E5\u5668 = \u65B0\u9879\u76EE.getTypeChecker();
151
+ let JSON\u7ED3\u679C = [];
152
+ let WS\u7ED3\u679C = [];
153
+ for (let \u6E90\u6587\u4EF6 of \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC) {
154
+ import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (node) => {
155
+ if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "JSON\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C") {
156
+ let type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
157
+ JSON\u7ED3\u679C.push(
158
+ \u7C7B\u578B\u68C0\u67E5\u5668.typeToString(
159
+ type,
160
+ void 0,
161
+ import_typescript.default.TypeFormatFlags.NoTruncation | import_typescript.default.TypeFormatFlags.NoTypeReduction | import_typescript.default.TypeFormatFlags.AllowUniqueESSymbolType | import_typescript.default.TypeFormatFlags.UseAliasDefinedOutsideCurrentScope
162
+ )
163
+ );
164
+ } else if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "WS\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C") {
165
+ let type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
166
+ WS\u7ED3\u679C.push(
167
+ \u7C7B\u578B\u68C0\u67E5\u5668.typeToString(
168
+ type,
169
+ void 0,
170
+ import_typescript.default.TypeFormatFlags.NoTruncation | import_typescript.default.TypeFormatFlags.NoTypeReduction | import_typescript.default.TypeFormatFlags.AllowUniqueESSymbolType | import_typescript.default.TypeFormatFlags.UseAliasDefinedOutsideCurrentScope
171
+ )
172
+ );
173
+ }
174
+ });
175
+ }
176
+ let \u6700\u7EC8\u7ED3\u679C_JSON = Array.from(new Set(JSON\u7ED3\u679C.filter((a) => a !== "any" && a !== "never" && a !== "unknown")));
177
+ await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C_JSON.length} \u4E2Ajson\u63A5\u53E3\u7C7B\u578B`);
178
+ let \u6700\u7EC8\u7ED3\u679C_WS = Array.from(new Set(WS\u7ED3\u679C.filter((a) => a !== "any" && a !== "never" && a !== "unknown")));
179
+ await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C_WS.length} \u4E2Aws\u63A5\u53E3\u7C7B\u578B`);
180
+ let \u6700\u7EC8\u4EE3\u7801 = [
181
+ `export type InterfaceType = [${\u6700\u7EC8\u7ED3\u679C_JSON.join(",")}]`,
182
+ `export type InterfaceWsType = [${\u6700\u7EC8\u7ED3\u679C_WS.join(",")}]`,
183
+ \u9644\u52A0\u4EE3\u7801
184
+ ];
185
+ await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
186
+ let \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
187
+ if (import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939) === false)
188
+ import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
189
+ import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
190
+ await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
191
+ }
192
+ // Annotate the CommonJS export names for ESM import in node:
193
+ 0 && (module.exports = {
194
+ main
195
+ });