@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
@@ -0,0 +1,156 @@
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-table-list/index.ts
31
+ var gen_table_list_exports = {};
32
+ __export(gen_table_list_exports, {
33
+ main: () => main
34
+ });
35
+ module.exports = __toCommonJS(gen_table_list_exports);
36
+ var import_ts_log = require("@lsby/ts-log");
37
+ var import_lodash = __toESM(require("lodash"), 1);
38
+ var import_node_crypto = require("crypto");
39
+ var import_node_fs = __toESM(require("fs"), 1);
40
+ var import_node_path = __toESM(require("path"), 1);
41
+ var import_typescript = __toESM(require("typescript"), 1);
42
+ function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
43
+ let \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = false;
44
+ import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (\u8282\u70B9) => {
45
+ if (import_typescript.default.isExportDeclaration(\u8282\u70B9)) {
46
+ let \u8282\u70B9\u5BFC\u51FA = \u8282\u70B9.exportClause ?? null;
47
+ if (\u8282\u70B9\u5BFC\u51FA !== null && import_typescript.default.isDefaultClause(\u8282\u70B9\u5BFC\u51FA) || import_typescript.default.isExportAssignment(\u8282\u70B9)) {
48
+ \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = true;
49
+ }
50
+ } else if (import_typescript.default.isClassDeclaration(\u8282\u70B9) && (\u8282\u70B9.modifiers?.some((mod) => mod.kind === import_typescript.default.SyntaxKind.DefaultKeyword) ?? false)) {
51
+ \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = true;
52
+ }
53
+ });
54
+ return \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA;
55
+ }
56
+ function \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(\u5B57\u7B26\u4E32) {
57
+ return "_" + \u5B57\u7B26\u4E32.replace(/[ !\-!@#$%^&*()\[\]{}\\|;:'",.\/?]/g, "_");
58
+ }
59
+ function \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a) {
60
+ return \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(import_node_path.default.relative(import_node_path.default.dirname(tsconfig\u8DEF\u5F84), a.fileName));
61
+ }
62
+ function \u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a) {
63
+ return import_node_path.default.relative(import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84), a.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
64
+ }
65
+ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
66
+ let log = new import_ts_log.Log("@lsby:net-core").extend("gen-table-list");
67
+ await log.debug("\u5F00\u59CB\u751F\u6210\u63A5\u53E3\u5217\u8868...");
68
+ await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
69
+ await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
70
+ await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
71
+ let tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
72
+ let tsconfig\u5185\u5BB9\u9519\u8BEF = tsconfig\u5185\u5BB9.error ?? null;
73
+ if (tsconfig\u5185\u5BB9\u9519\u8BEF !== null) {
74
+ await log.error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json: " + tsconfig\u5185\u5BB9\u9519\u8BEF.messageText);
75
+ throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
76
+ }
77
+ 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, ".."));
78
+ await log.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
79
+ let \u9879\u76EE\u4E3B\u673A = import_typescript.default.createCompilerHost(\u89E3\u6790\u540E\u7684tsconfig.options);
80
+ let \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
81
+ await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
82
+ let \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
83
+ let \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF6) => {
84
+ let \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF6.fileName);
85
+ if (\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84) === false)
86
+ return false;
87
+ let \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6);
88
+ if (\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA === false)
89
+ return false;
90
+ return true;
91
+ });
92
+ await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
93
+ let \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
94
+ let \u4EE3\u7801 = [
95
+ `import { \u4EFB\u610F\u865A\u62DF\u8868 } from '@lsby/net-core'`,
96
+ `import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
97
+ ``,
98
+ `type \u8BA1\u7B97\u7ED3\u679C = \u5BFC\u5165 extends \u4EFB\u610F\u865A\u62DF\u8868 ? true : false`
99
+ ];
100
+ return import_typescript.default.createSourceFile(
101
+ a.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
102
+ \u4EE3\u7801.join("\n"),
103
+ import_typescript.default.ScriptTarget.Latest
104
+ );
105
+ });
106
+ let \u65B0\u9879\u76EE = import_typescript.default.createProgram({
107
+ rootNames: [...\u9879\u76EE.getSourceFiles().map((a) => a.fileName), ...\u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.map((a) => a.fileName)],
108
+ options: \u89E3\u6790\u540E\u7684tsconfig.options,
109
+ host: {
110
+ ...\u9879\u76EE\u4E3B\u673A,
111
+ getSourceFile: (filename) => {
112
+ let \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName === filename) ?? null;
113
+ if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 !== null)
114
+ return \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6;
115
+ return \u9879\u76EE.getSourceFile(filename);
116
+ }
117
+ },
118
+ oldProgram: \u9879\u76EE
119
+ });
120
+ let \u7C7B\u578B\u68C0\u67E5\u5668 = \u65B0\u9879\u76EE.getTypeChecker();
121
+ let \u68C0\u67E5\u7ED3\u679C = [];
122
+ for (let \u6E90\u6587\u4EF6 of \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC) {
123
+ let \u7ED3\u679C = false;
124
+ import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (node) => {
125
+ if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "\u8BA1\u7B97\u7ED3\u679C") {
126
+ let type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
127
+ let \u6587\u672C\u7ED3\u679C = \u7C7B\u578B\u68C0\u67E5\u5668.typeToString(type);
128
+ if (\u6587\u672C\u7ED3\u679C === "true")
129
+ \u7ED3\u679C = true;
130
+ }
131
+ });
132
+ \u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
133
+ }
134
+ 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);
135
+ await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u5B9E\u73B0`);
136
+ let \u6700\u7EC8\u4EE3\u7801 = [
137
+ `import { \u4EFB\u610F\u865A\u62DF\u8868 } from '@lsby/net-core'`,
138
+ "",
139
+ ...\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)}'`),
140
+ "",
141
+ `export let interfaceTableList: { new (\u6784\u9020\u53C2\u6570: any): \u4EFB\u610F\u865A\u62DF\u8868; \u8D44\u6E90\u8DEF\u5F84: string }[] = [`,
142
+ ...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => ` ${a},`),
143
+ `]`,
144
+ ""
145
+ ];
146
+ await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
147
+ let \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
148
+ if (import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939) === false)
149
+ import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
150
+ import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
151
+ await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
152
+ }
153
+ // Annotate the CommonJS export names for ESM import in node:
154
+ 0 && (module.exports = {
155
+ main
156
+ });
@@ -0,0 +1,3 @@
1
+ declare function main(tsconfig路径: string, 目标路径: string, 输出文件路径: string): Promise<void>;
2
+
3
+ export { main };
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/bin/gen-table-type/addition.ts
21
+ var addition_exports = {};
22
+ __export(addition_exports, {
23
+ \u9644\u52A0\u4EE3\u7801: () => \u9644\u52A0\u4EE3\u7801
24
+ });
25
+ module.exports = __toCommonJS(addition_exports);
26
+ var \u9644\u52A0\u4EE3\u7801 = `
27
+ export type \u662Fany<T> = 0 extends 1 & T ? true : false
28
+ export type \u6761\u4EF6<\u5217\u5B9A\u4E49> =
29
+ \u662Fany<\u5217\u5B9A\u4E49> extends true
30
+ ? any
31
+ :
32
+ | { [K in keyof \u5217\u5B9A\u4E49]: { \u5217: K; \u7B26\u53F7: '=' | '<>'; \u503C: \u5217\u5B9A\u4E49[K] } }[keyof \u5217\u5B9A\u4E49]
33
+ | { [K in keyof \u5217\u5B9A\u4E49]: { \u5217: K; \u7B26\u53F7: 'in' | 'not in'; \u503C: \u5217\u5B9A\u4E49[K][] } }[keyof \u5217\u5B9A\u4E49]
34
+ | { [K in keyof \u5217\u5B9A\u4E49]: { \u5217: K; \u7B26\u53F7: 'is' | 'is not'; \u503C: null } }[keyof \u5217\u5B9A\u4E49]
35
+ | {
36
+ [K in keyof \u5217\u5B9A\u4E49]: \u5217\u5B9A\u4E49[K] extends string ? { \u5217: K; \u7B26\u53F7: 'like' | 'not like'; \u503C: string } : never
37
+ }[keyof \u5217\u5B9A\u4E49]
38
+ | {
39
+ [K in keyof \u5217\u5B9A\u4E49]: \u5217\u5B9A\u4E49[K] extends number ? { \u5217: K; \u7B26\u53F7: '>' | '<' | '>=' | '<='; \u503C: number } : never
40
+ }[keyof \u5217\u5B9A\u4E49]
41
+ export type \u6761\u4EF6\u7EC4<\u5217\u5B9A\u4E49 extends object> = \u6761\u4EF6<\u5217\u5B9A\u4E49>[]
42
+ export type \u5206\u9875\u9009\u9879 = {
43
+ \u9875\u6570: number
44
+ \u5927\u5C0F: number
45
+ }
46
+ export type \u6392\u5E8F\u9009\u9879<\u5217\u540D\u79F0\u4EEC> = {
47
+ \u6392\u5E8F\u5217: \u5217\u540D\u79F0\u4EEC
48
+ \u6392\u5E8F\u6A21\u5F0F: '\u6B63\u5E8F' | '\u5012\u5E8F'
49
+ }
50
+ export type \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<A> = A extends '\u5B57\u7B26\u4E32'
51
+ ? string
52
+ : A extends '\u6570\u5B57'
53
+ ? number
54
+ : A extends '\u5E03\u5C14'
55
+ ? boolean
56
+ : never
57
+ export type \u7FFB\u8BD1\u5217\u63CF\u8FF0<\u5BF9\u8C61> = \u662Fany<\u5BF9\u8C61> extends true ? any : { [key in keyof \u5BF9\u8C61]: \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]> }
58
+ export type \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A<\u5BF9\u8C61> =
59
+ \u662Fany<\u5BF9\u8C61> extends true ? any : { [key in keyof \u5BF9\u8C61]: \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]> | undefined }
60
+ `;
61
+ // Annotate the CommonJS export names for ESM import in node:
62
+ 0 && (module.exports = {
63
+ \u9644\u52A0\u4EE3\u7801
64
+ });
@@ -0,0 +1,3 @@
1
+ declare let 附加代码: string;
2
+
3
+ export { 附加代码 };
@@ -0,0 +1,219 @@
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-table-type/bin.ts
27
+ var import_commander = require("commander");
28
+ var import_node_path2 = __toESM(require("path"), 1);
29
+
30
+ // src/bin/gen-table-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-table-type/addition.ts
38
+ var \u9644\u52A0\u4EE3\u7801 = `
39
+ export type \u662Fany<T> = 0 extends 1 & T ? true : false
40
+ export type \u6761\u4EF6<\u5217\u5B9A\u4E49> =
41
+ \u662Fany<\u5217\u5B9A\u4E49> extends true
42
+ ? any
43
+ :
44
+ | { [K in keyof \u5217\u5B9A\u4E49]: { \u5217: K; \u7B26\u53F7: '=' | '<>'; \u503C: \u5217\u5B9A\u4E49[K] } }[keyof \u5217\u5B9A\u4E49]
45
+ | { [K in keyof \u5217\u5B9A\u4E49]: { \u5217: K; \u7B26\u53F7: 'in' | 'not in'; \u503C: \u5217\u5B9A\u4E49[K][] } }[keyof \u5217\u5B9A\u4E49]
46
+ | { [K in keyof \u5217\u5B9A\u4E49]: { \u5217: K; \u7B26\u53F7: 'is' | 'is not'; \u503C: null } }[keyof \u5217\u5B9A\u4E49]
47
+ | {
48
+ [K in keyof \u5217\u5B9A\u4E49]: \u5217\u5B9A\u4E49[K] extends string ? { \u5217: K; \u7B26\u53F7: 'like' | 'not like'; \u503C: string } : never
49
+ }[keyof \u5217\u5B9A\u4E49]
50
+ | {
51
+ [K in keyof \u5217\u5B9A\u4E49]: \u5217\u5B9A\u4E49[K] extends number ? { \u5217: K; \u7B26\u53F7: '>' | '<' | '>=' | '<='; \u503C: number } : never
52
+ }[keyof \u5217\u5B9A\u4E49]
53
+ export type \u6761\u4EF6\u7EC4<\u5217\u5B9A\u4E49 extends object> = \u6761\u4EF6<\u5217\u5B9A\u4E49>[]
54
+ export type \u5206\u9875\u9009\u9879 = {
55
+ \u9875\u6570: number
56
+ \u5927\u5C0F: number
57
+ }
58
+ export type \u6392\u5E8F\u9009\u9879<\u5217\u540D\u79F0\u4EEC> = {
59
+ \u6392\u5E8F\u5217: \u5217\u540D\u79F0\u4EEC
60
+ \u6392\u5E8F\u6A21\u5F0F: '\u6B63\u5E8F' | '\u5012\u5E8F'
61
+ }
62
+ export type \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<A> = A extends '\u5B57\u7B26\u4E32'
63
+ ? string
64
+ : A extends '\u6570\u5B57'
65
+ ? number
66
+ : A extends '\u5E03\u5C14'
67
+ ? boolean
68
+ : never
69
+ export type \u7FFB\u8BD1\u5217\u63CF\u8FF0<\u5BF9\u8C61> = \u662Fany<\u5BF9\u8C61> extends true ? any : { [key in keyof \u5BF9\u8C61]: \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]> }
70
+ export type \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A<\u5BF9\u8C61> =
71
+ \u662Fany<\u5BF9\u8C61> extends true ? any : { [key in keyof \u5BF9\u8C61]: \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]> | undefined }
72
+ `;
73
+
74
+ // src/bin/gen-table-type/index.ts
75
+ function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
76
+ let \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = false;
77
+ import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (\u8282\u70B9) => {
78
+ if (import_typescript.default.isExportDeclaration(\u8282\u70B9)) {
79
+ let \u8282\u70B9\u5BFC\u51FA = \u8282\u70B9.exportClause ?? null;
80
+ if (\u8282\u70B9\u5BFC\u51FA !== null && import_typescript.default.isDefaultClause(\u8282\u70B9\u5BFC\u51FA) || import_typescript.default.isExportAssignment(\u8282\u70B9)) {
81
+ \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = true;
82
+ }
83
+ } else if (import_typescript.default.isClassDeclaration(\u8282\u70B9) && (\u8282\u70B9.modifiers?.some((mod) => mod.kind === import_typescript.default.SyntaxKind.DefaultKeyword) ?? false)) {
84
+ \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = true;
85
+ }
86
+ });
87
+ return \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA;
88
+ }
89
+ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
90
+ let log = new import_ts_log.Log("@lsby:net-core").extend("gen-table-type");
91
+ await log.debug("\u5F00\u59CB\u751F\u6210\u7C7B\u578B...");
92
+ await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
93
+ await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
94
+ await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
95
+ let tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
96
+ let tsconfig\u5185\u5BB9\u9519\u8BEF = tsconfig\u5185\u5BB9.error ?? null;
97
+ if (tsconfig\u5185\u5BB9\u9519\u8BEF !== null) {
98
+ await log.error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json: " + tsconfig\u5185\u5BB9\u9519\u8BEF.messageText);
99
+ throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
100
+ }
101
+ 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, ".."));
102
+ await log.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
103
+ let \u9879\u76EE\u4E3B\u673A = import_typescript.default.createCompilerHost(\u89E3\u6790\u540E\u7684tsconfig.options);
104
+ let \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
105
+ await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
106
+ let \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
107
+ let \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF6) => {
108
+ let \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF6.fileName);
109
+ if (\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84) === false)
110
+ return false;
111
+ let \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6);
112
+ if (\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA === false)
113
+ return false;
114
+ return true;
115
+ });
116
+ await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
117
+ let \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
118
+ let \u4EE3\u7801 = `
119
+ import { \u5206\u9875\u9009\u9879, \u6392\u5E8F\u9009\u9879, \u6761\u4EF6\u7EC4, \u7FFB\u8BD1\u5217\u63CF\u8FF0, \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A, \u865A\u62DF\u8868 } from '@lsby/net-core'
120
+ import { z } from 'zod'
121
+ import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}",
122
+
123
+ // \u8DEF\u5F84
124
+ type \u8DEF\u5F84 = (typeof \u5BFC\u5165)['\u8D44\u6E90\u8DEF\u5F84']
125
+
126
+ // \u5217
127
+ type \u5217\u63CF\u8FF0Zod = \u5BFC\u5165 extends \u865A\u62DF\u8868<any, infer X, any, any, any, any> ? X : never
128
+
129
+ // \u9519\u8BEF
130
+ type \u589E\u9519\u8BEF = \u5BFC\u5165 extends \u865A\u62DF\u8868<any, any, infer X, any, any, any> ? z.infer<X> : never
131
+ type \u5220\u9519\u8BEF = \u5BFC\u5165 extends \u865A\u62DF\u8868<any, any, any, infer X, any, any> ? z.infer<X> : never
132
+ type \u6539\u9519\u8BEF = \u5BFC\u5165 extends \u865A\u62DF\u8868<any, any, any, any, infer X, any> ? z.infer<X> : never
133
+ type \u67E5\u9519\u8BEF = \u5BFC\u5165 extends \u865A\u62DF\u8868<any, any, any, any, any, infer X> ? z.infer<X> : never
134
+
135
+ // \u6700\u7EC8\u8F93\u51FA
136
+ type \u6700\u7EC8\u8F93\u51FA = \u8DEF\u5F84 extends infer _
137
+ ? {
138
+ \u8DEF\u5F84: \u8DEF\u5F84
139
+
140
+ \u6784\u9020\u53C2\u6570: \u5BFC\u5165 extends \u865A\u62DF\u8868<infer X, any, any, any, any, any> ? \u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<X>> : never
141
+ \u5217\u7C7B\u578B: \u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>
142
+
143
+ \u589E\u53C2\u6570_\u6570\u636E\u4EEC: Partial<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>[]
144
+ \u5220\u53C2\u6570_\u7B5B\u9009\u6761\u4EF6: \u6761\u4EF6\u7EC4<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
145
+ \u6539\u53C2\u6570_\u65B0\u503C: Partial<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
146
+ \u6539\u53C2\u6570_\u7B5B\u9009\u6761\u4EF6: \u6761\u4EF6\u7EC4<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
147
+ \u67E5\u53C2\u6570_\u7B5B\u9009\u6761\u4EF6: \u6761\u4EF6\u7EC4<\u7FFB\u8BD1\u5217\u63CF\u8FF0<z.infer<\u5217\u63CF\u8FF0Zod>>>
148
+ \u67E5\u53C2\u6570_\u5206\u9875\u6761\u4EF6: \u5206\u9875\u9009\u9879
149
+ \u67E5\u53C2\u6570_\u6392\u5E8F\u6761\u4EF6: \u6392\u5E8F\u9009\u9879<z.infer<ReturnType<\u5217\u63CF\u8FF0Zod['keyof']>>>
150
+
151
+ \u589E\u539F\u59CB\u9519\u8BEF\u503C: \u589E\u9519\u8BEF
152
+ \u5220\u539F\u59CB\u9519\u8BEF\u503C: \u5220\u9519\u8BEF
153
+ \u6539\u539F\u59CB\u9519\u8BEF\u503C: \u6539\u9519\u8BEF
154
+ \u67E5\u539F\u59CB\u9519\u8BEF\u503C: \u67E5\u9519\u8BEF
155
+
156
+ \u589E\u539F\u59CB\u6B63\u786E\u503C: {}
157
+ \u5220\u539F\u59CB\u6B63\u786E\u503C: {}
158
+ \u6539\u539F\u59CB\u6B63\u786E\u503C: {}
159
+ \u67E5\u539F\u59CB\u6B63\u786E\u503C: \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A<z.infer<\u5217\u63CF\u8FF0Zod>>[]
160
+
161
+ \u589E\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u589E\u9519\u8BEF } | { status: 'success'; data:{} }
162
+ \u5220\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u5220\u9519\u8BEF } | { status: 'success'; data:{} }
163
+ \u6539\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u6539\u9519\u8BEF } | { status: 'success'; data:{} }
164
+ \u67E5\u5305\u88C5\u7ED3\u679C: { status: 'fail'; data: \u67E5\u9519\u8BEF } | { status: 'success'; data: \u7FFB\u8BD1\u5217\u63CF\u8FF0\u5E26\u7A7A<z.infer<\u5217\u63CF\u8FF0Zod>>[] }
165
+ }
166
+ : never
167
+ `;
168
+ return import_typescript.default.createSourceFile(a.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"), \u4EE3\u7801, import_typescript.default.ScriptTarget.Latest);
169
+ });
170
+ let \u65B0\u9879\u76EE = import_typescript.default.createProgram({
171
+ rootNames: [...\u9879\u76EE.getSourceFiles().map((a) => a.fileName), ...\u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.map((a) => a.fileName)],
172
+ options: \u89E3\u6790\u540E\u7684tsconfig.options,
173
+ host: {
174
+ ...\u9879\u76EE\u4E3B\u673A,
175
+ getSourceFile: (filename) => {
176
+ let \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName === filename) ?? null;
177
+ if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 !== null)
178
+ return \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6;
179
+ return \u9879\u76EE.getSourceFile(filename);
180
+ }
181
+ },
182
+ oldProgram: \u9879\u76EE
183
+ });
184
+ let \u7C7B\u578B\u68C0\u67E5\u5668 = \u65B0\u9879\u76EE.getTypeChecker();
185
+ let \u7ED3\u679C = [];
186
+ for (let \u6E90\u6587\u4EF6 of \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC) {
187
+ import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (node) => {
188
+ if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "\u6700\u7EC8\u8F93\u51FA") {
189
+ let type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
190
+ \u7ED3\u679C.push(
191
+ \u7C7B\u578B\u68C0\u67E5\u5668.typeToString(
192
+ type,
193
+ void 0,
194
+ import_typescript.default.TypeFormatFlags.NoTruncation | import_typescript.default.TypeFormatFlags.NoTypeReduction | import_typescript.default.TypeFormatFlags.AllowUniqueESSymbolType | import_typescript.default.TypeFormatFlags.UseAliasDefinedOutsideCurrentScope
195
+ )
196
+ );
197
+ }
198
+ });
199
+ }
200
+ let \u6700\u7EC8\u7ED3\u679C = Array.from(new Set(\u7ED3\u679C.filter((a) => a !== "any" && a !== "never" && a !== "unknown")));
201
+ await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u8868\u7C7B\u578B`);
202
+ let \u6700\u7EC8\u4EE3\u7801 = [`export type InterfaceTableType = [${\u6700\u7EC8\u7ED3\u679C.join(",")}]`, \u9644\u52A0\u4EE3\u7801];
203
+ await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
204
+ let \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
205
+ if (import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939) === false)
206
+ import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
207
+ import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
208
+ await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
209
+ }
210
+
211
+ // src/bin/gen-table-type/bin.ts
212
+ var program = new import_commander.Command();
213
+ program.name("\u751F\u6210\u8868\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) => {
214
+ let absoluteTsconfigPath = import_node_path2.default.resolve(tsconfigPath);
215
+ let absoluteApiFolderPath = import_node_path2.default.resolve(interfaceFolderPath);
216
+ let absoluteOutputPath = import_node_path2.default.resolve(outputPath);
217
+ await main(absoluteTsconfigPath, absoluteApiFolderPath, absoluteOutputPath);
218
+ });
219
+ program.parse(process.argv);
@@ -0,0 +1 @@
1
+ #!/usr/bin/env node