@lsby/net-core 0.3.28 → 0.3.29

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 (57) hide show
  1. package/dist/bin/gen-list/bin.cjs +27 -47
  2. package/dist/bin/gen-list/index.cjs +27 -47
  3. package/dist/bin/gen-test/bin.cjs +27 -33
  4. package/dist/bin/gen-test/index.cjs +27 -33
  5. package/dist/bin/gen-type/bin.cjs +39 -64
  6. package/dist/bin/gen-type/index.cjs +39 -64
  7. package/dist/cjs/action/action.cjs +20 -11
  8. package/dist/cjs/action/action.d.cts +18 -17
  9. package/dist/cjs/bin/gen-list/bin.cjs +27 -47
  10. package/dist/cjs/bin/gen-list/index.cjs +27 -47
  11. package/dist/cjs/bin/gen-test/bin.cjs +27 -33
  12. package/dist/cjs/bin/gen-test/index.cjs +27 -33
  13. package/dist/cjs/bin/gen-type/bin.cjs +39 -64
  14. package/dist/cjs/bin/gen-type/index.cjs +39 -64
  15. package/dist/cjs/index.cjs +46 -31
  16. package/dist/cjs/index.d.cts +3 -3
  17. package/dist/cjs/interface/extend/json-base.cjs +11 -134
  18. package/dist/cjs/interface/extend/json-base.d.cts +11 -7
  19. package/dist/cjs/interface/extend/json-wrap.cjs +12 -145
  20. package/dist/cjs/interface/extend/json-wrap.d.cts +13 -13
  21. package/dist/cjs/interface/interface-inst.cjs +1 -134
  22. package/dist/cjs/interface/interface-inst.d.cts +8 -11
  23. package/dist/cjs/interface/interface-test.cjs +4 -1
  24. package/dist/cjs/interface/interface-test.d.cts +5 -5
  25. package/dist/cjs/interface/interface-type.d.cts +2 -3
  26. package/dist/cjs/server/server.d.cts +3 -4
  27. package/dist/esm/action/action.d.ts +18 -17
  28. package/dist/esm/action/action.js +1 -1
  29. package/dist/esm/bin/gen-list/bin.js +1 -1
  30. package/dist/esm/bin/gen-list/index.js +1 -1
  31. package/dist/esm/bin/gen-test/bin.js +1 -1
  32. package/dist/esm/bin/gen-test/index.js +1 -1
  33. package/dist/esm/bin/gen-type/bin.js +1 -1
  34. package/dist/esm/bin/gen-type/index.js +1 -1
  35. package/dist/esm/{chunk-SFNQ5AWH.js → chunk-25X7QZ6T.js} +4 -1
  36. package/dist/esm/chunk-B55VVACL.js +29 -0
  37. package/dist/esm/{chunk-T3WICQWT.js → chunk-B6PEMS6O.js} +20 -11
  38. package/dist/esm/chunk-G4P3OAFL.js +7 -0
  39. package/dist/esm/{chunk-G73B4M36.js → chunk-MXNVJRJT.js} +27 -47
  40. package/dist/esm/{chunk-YRW76W44.js → chunk-PVTF4VYK.js} +9 -11
  41. package/dist/esm/{chunk-6QNJCAAV.js → chunk-SMAC5ZMF.js} +39 -64
  42. package/dist/esm/{chunk-GWWQPWGC.js → chunk-UABF4235.js} +27 -33
  43. package/dist/esm/index.d.ts +3 -3
  44. package/dist/esm/index.js +7 -7
  45. package/dist/esm/interface/extend/json-base.d.ts +11 -7
  46. package/dist/esm/interface/extend/json-base.js +2 -3
  47. package/dist/esm/interface/extend/json-wrap.d.ts +13 -13
  48. package/dist/esm/interface/extend/json-wrap.js +2 -3
  49. package/dist/esm/interface/interface-inst.d.ts +8 -11
  50. package/dist/esm/interface/interface-inst.js +1 -2
  51. package/dist/esm/interface/interface-test.d.ts +5 -5
  52. package/dist/esm/interface/interface-test.js +1 -1
  53. package/dist/esm/interface/interface-type.d.ts +2 -3
  54. package/dist/esm/server/server.d.ts +3 -4
  55. package/package.json +3 -3
  56. package/dist/esm/chunk-E7N7HVWO.js +0 -14
  57. package/dist/esm/chunk-FBFLXFIL.js +0 -21
@@ -34,25 +34,22 @@ var import_node_path = __toESM(require("path"), 1);
34
34
  var import_lodash = __toESM(require("lodash"), 1);
35
35
  var import_typescript = __toESM(require("typescript"), 1);
36
36
  var import_ts_log = require("@lsby/ts-log");
37
- function \u63D0\u53D6\u9876\u7EA7\u5BFC\u51FA\u7C7B\u8282\u70B9(\u6E90\u6587\u4EF6) {
38
- const \u7C7B\u8282\u70B9\u6570\u7EC4 = [];
39
- const visit = (\u8282\u70B9) => {
40
- if (import_typescript.default.isClassDeclaration(\u8282\u70B9) && import_typescript.default.getModifiers(\u8282\u70B9)?.some((modifier) => modifier.kind === import_typescript.default.SyntaxKind.ExportKeyword)) {
41
- \u7C7B\u8282\u70B9\u6570\u7EC4.push(\u8282\u70B9);
37
+ function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
38
+ for (const statement of \u6E90\u6587\u4EF6.statements) {
39
+ if (import_typescript.default.isExportAssignment(statement) && statement.isExportEquals === void 0) {
40
+ return true;
42
41
  }
43
- import_typescript.default.forEachChild(\u8282\u70B9, visit);
44
- };
45
- import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, visit);
46
- return \u7C7B\u8282\u70B9\u6570\u7EC4;
42
+ }
43
+ return false;
47
44
  }
48
45
  function \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(\u5B57\u7B26\u4E32) {
49
46
  return "_" + \u5B57\u7B26\u4E32.replace(/[ !\-!@#$%^&*()\[\]{}\\|;:'",.\/?]/g, "_");
50
47
  }
51
48
  function \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a) {
52
- return \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(import_node_path.default.relative(import_node_path.default.dirname(tsconfig\u8DEF\u5F84), a.\u6587\u4EF6.fileName) + "_" + a.\u7C7B\u8282\u70B9.name?.text);
49
+ return \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(import_node_path.default.relative(import_node_path.default.dirname(tsconfig\u8DEF\u5F84), a.fileName));
53
50
  }
54
51
  function \u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a) {
55
- return import_node_path.default.relative(import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84), a["\u6587\u4EF6"].fileName).replaceAll("\\", "/").replaceAll(".ts", "");
52
+ return import_node_path.default.relative(import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84), a.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
56
53
  }
57
54
  async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
58
55
  var log = new import_ts_log.Log("@lsby:net-core").extend("gen-list");
@@ -71,40 +68,25 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
71
68
  const \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
72
69
  await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
73
70
  var \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
74
- var \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
71
+ var \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
75
72
  var \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF62.fileName);
76
- return \u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84);
73
+ if (!\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84))
74
+ return false;
75
+ var \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF62);
76
+ if (!\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA)
77
+ return false;
78
+ return true;
77
79
  });
78
- await log.debug(`\u7B5B\u9009\u51FA ${\u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
79
- const \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC = \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.flatMap(
80
- (a) => \u63D0\u53D6\u9876\u7EA7\u5BFC\u51FA\u7C7B\u8282\u70B9(a).map((x) => ({
81
- \u6587\u4EF6: a,
82
- \u7C7B\u8282\u70B9: x
83
- }))
84
- );
85
- await log.debug(`\u63D0\u53D6\u5230 ${\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.length} \u4E2A\u7C7B\u8282\u70B9`);
86
- var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.map((a) => {
87
- var \u7C7B\u540D\u5B57 = a.\u7C7B\u8282\u70B9.name?.text;
80
+ await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
81
+ var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
88
82
  var \u4EE3\u7801 = [
89
- `import { \u63A5\u53E3\u7C7B\u578B } from '@lsby/net-core'`,
90
- `import {${\u7C7B\u540D\u5B57}} from "./${a.\u6587\u4EF6.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
91
- `
92
- type \u8BA1\u7B97\u7ED3\u679C =
93
- ReturnType<${\u7C7B\u540D\u5B57}['\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B']> extends \u63A5\u53E3\u7C7B\u578B<
94
- infer \u8DEF\u5F84,
95
- infer \u65B9\u6CD5,
96
- infer \u63D2\u4EF6\u4EEC,
97
- infer \u6B63\u786E\u7ED3\u679C\u7C7B\u578B,
98
- infer \u9519\u8BEF\u7ED3\u679C\u7C7B\u578B
99
- >
100
- ? \u8DEF\u5F84 extends string
101
- ? true
102
- : false
103
- : false
104
- `
83
+ `import { \u4EFB\u610F\u63A5\u53E3 } from '@lsby/net-core'`,
84
+ `import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
85
+ ``,
86
+ `type \u8BA1\u7B97\u7ED3\u679C = typeof \u5BFC\u5165 extends \u4EFB\u610F\u63A5\u53E3 ? true : false`
105
87
  ];
106
88
  return import_typescript.default.createSourceFile(
107
- a.\u6587\u4EF6.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
89
+ a.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
108
90
  \u4EE3\u7801.join("\n"),
109
91
  import_typescript.default.ScriptTarget.Latest
110
92
  );
@@ -137,17 +119,15 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
137
119
  });
138
120
  \u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
139
121
  }
140
- var \u6700\u7EC8\u7ED3\u679C = import_lodash.default.zip(\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC, \u68C0\u67E5\u7ED3\u679C).filter((a) => a[1] == true).map((a) => a[0]).filter((a) => a != null);
122
+ var \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);
141
123
  await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u5B9E\u73B0`);
142
124
  var \u6700\u7EC8\u4EE3\u7801 = [
143
- `import { \u6709\u6548\u7684\u63A5\u53E3 } from '@lsby/net-core'`,
125
+ `import { \u4EFB\u610F\u63A5\u53E3 } from '@lsby/net-core'`,
144
126
  "",
145
- ...\u6700\u7EC8\u7ED3\u679C.map(
146
- (a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from './${\u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a)}'`
147
- ),
127
+ ...\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)}'`),
148
128
  "",
149
- `export var interfaceList: \u6709\u6548\u7684\u63A5\u53E3[] = [`,
150
- ...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => ` new ${a}(),`),
129
+ `export var interfaceList: \u4EFB\u610F\u63A5\u53E3[] = [`,
130
+ ...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => ` ${a},`),
151
131
  `]`,
152
132
  ""
153
133
  ];
@@ -39,25 +39,22 @@ var import_node_path = __toESM(require("path"), 1);
39
39
  var import_lodash = __toESM(require("lodash"), 1);
40
40
  var import_typescript = __toESM(require("typescript"), 1);
41
41
  var import_ts_log = require("@lsby/ts-log");
42
- function \u63D0\u53D6\u9876\u7EA7\u5BFC\u51FA\u7C7B\u8282\u70B9(\u6E90\u6587\u4EF6) {
43
- const \u7C7B\u8282\u70B9\u6570\u7EC4 = [];
44
- const visit = (\u8282\u70B9) => {
45
- if (import_typescript.default.isClassDeclaration(\u8282\u70B9) && import_typescript.default.getModifiers(\u8282\u70B9)?.some((modifier) => modifier.kind === import_typescript.default.SyntaxKind.ExportKeyword)) {
46
- \u7C7B\u8282\u70B9\u6570\u7EC4.push(\u8282\u70B9);
42
+ function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
43
+ for (const statement of \u6E90\u6587\u4EF6.statements) {
44
+ if (import_typescript.default.isExportAssignment(statement) && statement.isExportEquals === void 0) {
45
+ return true;
47
46
  }
48
- import_typescript.default.forEachChild(\u8282\u70B9, visit);
49
- };
50
- import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, visit);
51
- return \u7C7B\u8282\u70B9\u6570\u7EC4;
47
+ }
48
+ return false;
52
49
  }
53
50
  function \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(\u5B57\u7B26\u4E32) {
54
51
  return "_" + \u5B57\u7B26\u4E32.replace(/[ !\-!@#$%^&*()\[\]{}\\|;:'",.\/?]/g, "_");
55
52
  }
56
53
  function \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a) {
57
- return \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(import_node_path.default.relative(import_node_path.default.dirname(tsconfig\u8DEF\u5F84), a.\u6587\u4EF6.fileName) + "_" + a.\u7C7B\u8282\u70B9.name?.text);
54
+ return \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(import_node_path.default.relative(import_node_path.default.dirname(tsconfig\u8DEF\u5F84), a.fileName));
58
55
  }
59
56
  function \u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a) {
60
- return import_node_path.default.relative(import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84), a["\u6587\u4EF6"].fileName).replaceAll("\\", "/").replaceAll(".ts", "");
57
+ return import_node_path.default.relative(import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84), a.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
61
58
  }
62
59
  async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
63
60
  var log = new import_ts_log.Log("@lsby:net-core").extend("gen-list");
@@ -76,40 +73,25 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
76
73
  const \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
77
74
  await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
78
75
  var \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
79
- var \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
76
+ var \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
80
77
  var \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF62.fileName);
81
- return \u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84);
78
+ if (!\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84))
79
+ return false;
80
+ var \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF62);
81
+ if (!\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA)
82
+ return false;
83
+ return true;
82
84
  });
83
- await log.debug(`\u7B5B\u9009\u51FA ${\u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
84
- const \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC = \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.flatMap(
85
- (a) => \u63D0\u53D6\u9876\u7EA7\u5BFC\u51FA\u7C7B\u8282\u70B9(a).map((x) => ({
86
- \u6587\u4EF6: a,
87
- \u7C7B\u8282\u70B9: x
88
- }))
89
- );
90
- await log.debug(`\u63D0\u53D6\u5230 ${\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.length} \u4E2A\u7C7B\u8282\u70B9`);
91
- var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.map((a) => {
92
- var \u7C7B\u540D\u5B57 = a.\u7C7B\u8282\u70B9.name?.text;
85
+ await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
86
+ var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
93
87
  var \u4EE3\u7801 = [
94
- `import { \u63A5\u53E3\u7C7B\u578B } from '@lsby/net-core'`,
95
- `import {${\u7C7B\u540D\u5B57}} from "./${a.\u6587\u4EF6.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
96
- `
97
- type \u8BA1\u7B97\u7ED3\u679C =
98
- ReturnType<${\u7C7B\u540D\u5B57}['\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B']> extends \u63A5\u53E3\u7C7B\u578B<
99
- infer \u8DEF\u5F84,
100
- infer \u65B9\u6CD5,
101
- infer \u63D2\u4EF6\u4EEC,
102
- infer \u6B63\u786E\u7ED3\u679C\u7C7B\u578B,
103
- infer \u9519\u8BEF\u7ED3\u679C\u7C7B\u578B
104
- >
105
- ? \u8DEF\u5F84 extends string
106
- ? true
107
- : false
108
- : false
109
- `
88
+ `import { \u4EFB\u610F\u63A5\u53E3 } from '@lsby/net-core'`,
89
+ `import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
90
+ ``,
91
+ `type \u8BA1\u7B97\u7ED3\u679C = typeof \u5BFC\u5165 extends \u4EFB\u610F\u63A5\u53E3 ? true : false`
110
92
  ];
111
93
  return import_typescript.default.createSourceFile(
112
- a.\u6587\u4EF6.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
94
+ a.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
113
95
  \u4EE3\u7801.join("\n"),
114
96
  import_typescript.default.ScriptTarget.Latest
115
97
  );
@@ -142,17 +124,15 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
142
124
  });
143
125
  \u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
144
126
  }
145
- var \u6700\u7EC8\u7ED3\u679C = import_lodash.default.zip(\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC, \u68C0\u67E5\u7ED3\u679C).filter((a) => a[1] == true).map((a) => a[0]).filter((a) => a != null);
127
+ var \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);
146
128
  await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u5B9E\u73B0`);
147
129
  var \u6700\u7EC8\u4EE3\u7801 = [
148
- `import { \u6709\u6548\u7684\u63A5\u53E3 } from '@lsby/net-core'`,
130
+ `import { \u4EFB\u610F\u63A5\u53E3 } from '@lsby/net-core'`,
149
131
  "",
150
- ...\u6700\u7EC8\u7ED3\u679C.map(
151
- (a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from './${\u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a)}'`
152
- ),
132
+ ...\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)}'`),
153
133
  "",
154
- `export var interfaceList: \u6709\u6548\u7684\u63A5\u53E3[] = [`,
155
- ...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => ` new ${a}(),`),
134
+ `export var interfaceList: \u4EFB\u610F\u63A5\u53E3[] = [`,
135
+ ...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => ` ${a},`),
156
136
  `]`,
157
137
  ""
158
138
  ];
@@ -34,25 +34,22 @@ var import_node_path = __toESM(require("path"), 1);
34
34
  var import_lodash = __toESM(require("lodash"), 1);
35
35
  var import_typescript = __toESM(require("typescript"), 1);
36
36
  var import_ts_log = require("@lsby/ts-log");
37
- function \u63D0\u53D6\u9876\u7EA7\u5BFC\u51FA\u7C7B\u8282\u70B9(\u6E90\u6587\u4EF6) {
38
- const \u7C7B\u8282\u70B9\u6570\u7EC4 = [];
39
- const visit = (\u8282\u70B9) => {
40
- if (import_typescript.default.isClassDeclaration(\u8282\u70B9) && import_typescript.default.getModifiers(\u8282\u70B9)?.some((modifier) => modifier.kind === import_typescript.default.SyntaxKind.ExportKeyword)) {
41
- \u7C7B\u8282\u70B9\u6570\u7EC4.push(\u8282\u70B9);
37
+ function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
38
+ for (const statement of \u6E90\u6587\u4EF6.statements) {
39
+ if (import_typescript.default.isExportAssignment(statement) && statement.isExportEquals === void 0) {
40
+ return true;
42
41
  }
43
- import_typescript.default.forEachChild(\u8282\u70B9, visit);
44
- };
45
- import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, visit);
46
- return \u7C7B\u8282\u70B9\u6570\u7EC4;
42
+ }
43
+ return false;
47
44
  }
48
45
  function \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(\u5B57\u7B26\u4E32) {
49
46
  return "_" + \u5B57\u7B26\u4E32.replace(/[ !\-!@#$%^&*()\[\]{}\\|;:'",.\/?]/g, "_");
50
47
  }
51
48
  function \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a) {
52
- return \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(import_node_path.default.relative(import_node_path.default.dirname(tsconfig\u8DEF\u5F84), a.\u6587\u4EF6.fileName) + "_" + a.\u7C7B\u8282\u70B9.name?.text);
49
+ return \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(import_node_path.default.relative(import_node_path.default.dirname(tsconfig\u8DEF\u5F84), a.fileName));
53
50
  }
54
51
  function \u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a) {
55
- return import_node_path.default.relative(import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84), a["\u6587\u4EF6"].fileName).replaceAll("\\", "/").replaceAll(".ts", "");
52
+ return import_node_path.default.relative(import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84), a.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
56
53
  }
57
54
  async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F) {
58
55
  var log = new import_ts_log.Log("@lsby:net-core").extend("gen-test");
@@ -72,28 +69,28 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
72
69
  const \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
73
70
  await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
74
71
  var \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
75
- var \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
72
+ var \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
76
73
  var \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF62.fileName);
74
+ if (!\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84))
75
+ return false;
76
+ var \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF62);
77
+ if (!\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA)
78
+ return false;
77
79
  var \u7B26\u5408\u8FC7\u6EE4\u8868\u8FBE\u5F0F = new RegExp(\u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F || ".*").test(\u6E90\u6587\u4EF6\u8DEF\u5F84);
78
- return \u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84) && \u7B26\u5408\u8FC7\u6EE4\u8868\u8FBE\u5F0F;
80
+ if (!\u7B26\u5408\u8FC7\u6EE4\u8868\u8FBE\u5F0F)
81
+ return false;
82
+ return true;
79
83
  });
80
- await log.debug(`\u7B5B\u9009\u51FA ${\u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
81
- const \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC = \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.flatMap(
82
- (a) => \u63D0\u53D6\u9876\u7EA7\u5BFC\u51FA\u7C7B\u8282\u70B9(a).map((x) => ({
83
- \u6587\u4EF6: a,
84
- \u7C7B\u8282\u70B9: x
85
- }))
86
- );
87
- await log.debug(`\u63D0\u53D6\u5230 ${\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.length} \u4E2A\u7C7B\u8282\u70B9`);
88
- var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.map((a) => {
89
- var \u7C7B\u540D\u5B57 = a.\u7C7B\u8282\u70B9.name?.text;
84
+ await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
85
+ var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
90
86
  var \u4EE3\u7801 = [
91
87
  `import { \u63A5\u53E3\u6D4B\u8BD5 } from '@lsby/net-core'`,
92
- `import {${\u7C7B\u540D\u5B57}} from "./${a.\u6587\u4EF6.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
93
- `type \u8BA1\u7B97\u7ED3\u679C = ${\u7C7B\u540D\u5B57} extends \u63A5\u53E3\u6D4B\u8BD5 ? true : false`
88
+ `import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
89
+ ``,
90
+ `type \u8BA1\u7B97\u7ED3\u679C = typeof \u5BFC\u5165 extends \u63A5\u53E3\u6D4B\u8BD5 ? true : false`
94
91
  ];
95
92
  return import_typescript.default.createSourceFile(
96
- a.\u6587\u4EF6.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
93
+ a.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
97
94
  \u4EE3\u7801.join("\n"),
98
95
  import_typescript.default.ScriptTarget.Latest
99
96
  );
@@ -126,24 +123,21 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
126
123
  });
127
124
  \u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
128
125
  }
129
- var \u6700\u7EC8\u7ED3\u679C = import_lodash.default.zip(\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC, \u68C0\u67E5\u7ED3\u679C).filter((a) => a[1] == true).map((a) => a[0]).filter((a) => a != null);
126
+ var \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);
130
127
  await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u6D4B\u8BD5\u7528\u4F8B`);
131
128
  var \u6700\u7EC8\u4EE3\u7801 = [
132
129
  "import { test } from 'vitest'",
133
130
  "import './unit-test-prefix'",
134
131
  "",
135
- ...\u6700\u7EC8\u7ED3\u679C.map(
136
- (a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from './${\u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a)}'`
137
- ),
132
+ ...\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)}'`),
138
133
  "",
139
- ...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => `test('${a}', async () => await new ${a}().\u8FD0\u884C())`),
134
+ ...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => `test('${a}', async () => await ${a}.\u8FD0\u884C())`),
140
135
  ""
141
136
  ];
142
137
  await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
143
138
  var \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
144
- if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939)) {
139
+ if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
145
140
  import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
146
- }
147
141
  import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
148
142
  await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
149
143
  }
@@ -39,25 +39,22 @@ var import_node_path = __toESM(require("path"), 1);
39
39
  var import_lodash = __toESM(require("lodash"), 1);
40
40
  var import_typescript = __toESM(require("typescript"), 1);
41
41
  var import_ts_log = require("@lsby/ts-log");
42
- function \u63D0\u53D6\u9876\u7EA7\u5BFC\u51FA\u7C7B\u8282\u70B9(\u6E90\u6587\u4EF6) {
43
- const \u7C7B\u8282\u70B9\u6570\u7EC4 = [];
44
- const visit = (\u8282\u70B9) => {
45
- if (import_typescript.default.isClassDeclaration(\u8282\u70B9) && import_typescript.default.getModifiers(\u8282\u70B9)?.some((modifier) => modifier.kind === import_typescript.default.SyntaxKind.ExportKeyword)) {
46
- \u7C7B\u8282\u70B9\u6570\u7EC4.push(\u8282\u70B9);
42
+ function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
43
+ for (const statement of \u6E90\u6587\u4EF6.statements) {
44
+ if (import_typescript.default.isExportAssignment(statement) && statement.isExportEquals === void 0) {
45
+ return true;
47
46
  }
48
- import_typescript.default.forEachChild(\u8282\u70B9, visit);
49
- };
50
- import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, visit);
51
- return \u7C7B\u8282\u70B9\u6570\u7EC4;
47
+ }
48
+ return false;
52
49
  }
53
50
  function \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(\u5B57\u7B26\u4E32) {
54
51
  return "_" + \u5B57\u7B26\u4E32.replace(/[ !\-!@#$%^&*()\[\]{}\\|;:'",.\/?]/g, "_");
55
52
  }
56
53
  function \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a) {
57
- return \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(import_node_path.default.relative(import_node_path.default.dirname(tsconfig\u8DEF\u5F84), a.\u6587\u4EF6.fileName) + "_" + a.\u7C7B\u8282\u70B9.name?.text);
54
+ return \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(import_node_path.default.relative(import_node_path.default.dirname(tsconfig\u8DEF\u5F84), a.fileName));
58
55
  }
59
56
  function \u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a) {
60
- return import_node_path.default.relative(import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84), a["\u6587\u4EF6"].fileName).replaceAll("\\", "/").replaceAll(".ts", "");
57
+ return import_node_path.default.relative(import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84), a.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
61
58
  }
62
59
  async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F) {
63
60
  var log = new import_ts_log.Log("@lsby:net-core").extend("gen-test");
@@ -77,28 +74,28 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
77
74
  const \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
78
75
  await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
79
76
  var \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
80
- var \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
77
+ var \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
81
78
  var \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF62.fileName);
79
+ if (!\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84))
80
+ return false;
81
+ var \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF62);
82
+ if (!\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA)
83
+ return false;
82
84
  var \u7B26\u5408\u8FC7\u6EE4\u8868\u8FBE\u5F0F = new RegExp(\u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F || ".*").test(\u6E90\u6587\u4EF6\u8DEF\u5F84);
83
- return \u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84) && \u7B26\u5408\u8FC7\u6EE4\u8868\u8FBE\u5F0F;
85
+ if (!\u7B26\u5408\u8FC7\u6EE4\u8868\u8FBE\u5F0F)
86
+ return false;
87
+ return true;
84
88
  });
85
- await log.debug(`\u7B5B\u9009\u51FA ${\u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
86
- const \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC = \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.flatMap(
87
- (a) => \u63D0\u53D6\u9876\u7EA7\u5BFC\u51FA\u7C7B\u8282\u70B9(a).map((x) => ({
88
- \u6587\u4EF6: a,
89
- \u7C7B\u8282\u70B9: x
90
- }))
91
- );
92
- await log.debug(`\u63D0\u53D6\u5230 ${\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.length} \u4E2A\u7C7B\u8282\u70B9`);
93
- var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.map((a) => {
94
- var \u7C7B\u540D\u5B57 = a.\u7C7B\u8282\u70B9.name?.text;
89
+ await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
90
+ var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
95
91
  var \u4EE3\u7801 = [
96
92
  `import { \u63A5\u53E3\u6D4B\u8BD5 } from '@lsby/net-core'`,
97
- `import {${\u7C7B\u540D\u5B57}} from "./${a.\u6587\u4EF6.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
98
- `type \u8BA1\u7B97\u7ED3\u679C = ${\u7C7B\u540D\u5B57} extends \u63A5\u53E3\u6D4B\u8BD5 ? true : false`
93
+ `import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
94
+ ``,
95
+ `type \u8BA1\u7B97\u7ED3\u679C = typeof \u5BFC\u5165 extends \u63A5\u53E3\u6D4B\u8BD5 ? true : false`
99
96
  ];
100
97
  return import_typescript.default.createSourceFile(
101
- a.\u6587\u4EF6.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
98
+ a.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
102
99
  \u4EE3\u7801.join("\n"),
103
100
  import_typescript.default.ScriptTarget.Latest
104
101
  );
@@ -131,24 +128,21 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
131
128
  });
132
129
  \u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
133
130
  }
134
- var \u6700\u7EC8\u7ED3\u679C = import_lodash.default.zip(\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC, \u68C0\u67E5\u7ED3\u679C).filter((a) => a[1] == true).map((a) => a[0]).filter((a) => a != null);
131
+ var \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);
135
132
  await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u6D4B\u8BD5\u7528\u4F8B`);
136
133
  var \u6700\u7EC8\u4EE3\u7801 = [
137
134
  "import { test } from 'vitest'",
138
135
  "import './unit-test-prefix'",
139
136
  "",
140
- ...\u6700\u7EC8\u7ED3\u679C.map(
141
- (a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from './${\u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a)}'`
142
- ),
137
+ ...\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)}'`),
143
138
  "",
144
- ...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => `test('${a}', async () => await new ${a}().\u8FD0\u884C())`),
139
+ ...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => `test('${a}', async () => await ${a}.\u8FD0\u884C())`),
145
140
  ""
146
141
  ];
147
142
  await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
148
143
  var \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
149
- if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939)) {
144
+ if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
150
145
  import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
151
- }
152
146
  import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
153
147
  await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
154
148
  }
@@ -131,23 +131,13 @@ var \u9644\u52A0\u4EE3\u7801 = [
131
131
  ];
132
132
 
133
133
  // src/bin/gen-type/index.ts
134
- function \u63D0\u53D6\u53D8\u91CF\u8282\u70B9(\u6E90\u6587\u4EF6) {
135
- const \u53D8\u91CF\u8282\u70B9\u6570\u7EC4 = [];
136
- const \u8BBF\u95EE\u8282\u70B9 = (\u8282\u70B9) => {
137
- if (import_typescript.default.isVariableStatement(\u8282\u70B9)) {
138
- \u8282\u70B9.declarationList.declarations.forEach((\u53D8\u91CF\u58F0\u660E) => {
139
- if (import_typescript.default.isVariableDeclaration(\u53D8\u91CF\u58F0\u660E)) {
140
- \u53D8\u91CF\u8282\u70B9\u6570\u7EC4.push(\u53D8\u91CF\u58F0\u660E);
141
- }
142
- });
134
+ function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
135
+ for (const statement of \u6E90\u6587\u4EF6.statements) {
136
+ if (import_typescript.default.isExportAssignment(statement) && statement.isExportEquals === void 0) {
137
+ return true;
143
138
  }
144
- import_typescript.default.forEachChild(\u8282\u70B9, \u8BBF\u95EE\u8282\u70B9);
145
- };
146
- import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, \u8BBF\u95EE\u8282\u70B9);
147
- return \u53D8\u91CF\u8282\u70B9\u6570\u7EC4;
148
- }
149
- function \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(\u5B57\u7B26\u4E32) {
150
- return "_" + \u5B57\u7B26\u4E32.replace(/[ !\-!@#$%^&*()\[\]{}\\|;:'",.\/?]/g, "_");
139
+ }
140
+ return false;
151
141
  }
152
142
  async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
153
143
  var log = new import_ts_log.Log("@lsby:net-core").extend("gen-type");
@@ -157,7 +147,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
157
147
  await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
158
148
  const tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
159
149
  if (tsconfig\u5185\u5BB9.error) {
160
- await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
150
+ await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json: " + tsconfig\u5185\u5BB9.error.messageText);
161
151
  throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
162
152
  }
163
153
  const \u89E3\u6790\u540E\u7684tsconfig = import_typescript.default.parseJsonConfigFileContent(tsconfig\u5185\u5BB9.config, import_typescript.default.sys, import_node_path.default.resolve(tsconfig\u8DEF\u5F84, ".."));
@@ -166,63 +156,50 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
166
156
  const \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
167
157
  await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
168
158
  var \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
169
- var \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
159
+ var \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
170
160
  var \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF62.fileName);
171
- return \u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84);
161
+ if (!\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84))
162
+ return false;
163
+ var \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF62);
164
+ if (!\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA)
165
+ return false;
166
+ return true;
172
167
  });
173
- await log.debug(`\u7B5B\u9009\u51FA ${\u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
174
- const \u76F8\u5173\u53D8\u91CF\u8282\u70B9\u4EEC = \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.flatMap(
175
- (a) => \u63D0\u53D6\u53D8\u91CF\u8282\u70B9(a).map((x) => ({
176
- \u6587\u4EF6: a,
177
- \u53D8\u91CF\u8282\u70B9: x,
178
- \u8BA1\u7B97\u8282\u70B9\u540D\u79F0: \u66FF\u6362\u975E\u6CD5\u5B57\u7B26((0, import_node_crypto.randomUUID)())
179
- }))
180
- );
181
- await log.debug(`\u63D0\u53D6\u5230 ${\u76F8\u5173\u53D8\u91CF\u8282\u70B9\u4EEC.length} \u4E2A\u53D8\u91CF\u8282\u70B9`);
182
- var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u53D8\u91CF\u8282\u70B9\u4EEC.map((a) => {
183
- var \u4EE3\u7801 = [];
184
- if (a.\u53D8\u91CF\u8282\u70B9.name.kind != import_typescript.default.SyntaxKind.Identifier) {
185
- \u4EE3\u7801 = [];
186
- } else {
187
- var \u53D8\u91CF\u540D\u79F0 = a.\u53D8\u91CF\u8282\u70B9.name.text;
188
- var netcore\u5F15\u5165 = a.\u8BA1\u7B97\u8282\u70B9\u540D\u79F0 + "netcore";
189
- var zod\u5F15\u5165 = a.\u8BA1\u7B97\u8282\u70B9\u540D\u79F0 + "zod";
190
- \u4EE3\u7801 = [
191
- a.\u6587\u4EF6.getFullText(),
192
- `import * as ${netcore\u5F15\u5165} from '@lsby/net-core'`,
193
- `import { z as ${zod\u5F15\u5165} } from 'zod'`,
194
- `
195
- type ${a.\u8BA1\u7B97\u8282\u70B9\u540D\u79F0} =
196
- typeof ${\u53D8\u91CF\u540D\u79F0} extends ${netcore\u5F15\u5165}.\u63A5\u53E3\u7C7B\u578B<infer Path, infer Method, infer PreApis, infer SuccessSchema, infer ErrorSchema>
168
+ await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
169
+ var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
170
+ var \u4EE3\u7801 = [
171
+ `import { \u63A5\u53E3\u7C7B\u578B, \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C } from '@lsby/net-core'`,
172
+ `import { z } from 'zod'`,
173
+ `import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
174
+ ``,
175
+ `
176
+ type \u8BA1\u7B97\u7ED3\u679C =
177
+ typeof \u5BFC\u5165 extends \u63A5\u53E3\u7C7B\u578B<infer Path, infer Method, infer PreApis, infer SuccessSchema, infer ErrorSchema>
197
178
  ? Path extends string
198
179
  ? {
199
180
  path: Path
200
181
  method: Method
201
- input: ${netcore\u5F15\u5165}.\u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C<PreApis>
202
- successOutput: ${zod\u5F15\u5165}.infer<SuccessSchema>
203
- errorOutput: ${zod\u5F15\u5165}.infer<ErrorSchema>
182
+ input: \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C<PreApis>
183
+ successOutput: z.infer<SuccessSchema>
184
+ errorOutput: z.infer<ErrorSchema>
204
185
  }
205
186
  : never
206
187
  : never
207
188
  `
208
- ];
209
- }
210
- return {
211
- ...a,
212
- \u6587\u4EF6: import_typescript.default.createSourceFile(
213
- a.\u6587\u4EF6.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
214
- \u4EE3\u7801.join("\n"),
215
- import_typescript.default.ScriptTarget.Latest
216
- )
217
- };
189
+ ];
190
+ return import_typescript.default.createSourceFile(
191
+ a.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
192
+ \u4EE3\u7801.join("\n"),
193
+ import_typescript.default.ScriptTarget.Latest
194
+ );
218
195
  });
219
196
  const \u65B0\u9879\u76EE = import_typescript.default.createProgram({
220
- rootNames: [...\u9879\u76EE.getSourceFiles().map((a) => a.fileName), ...\u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.map((a) => a.\u6587\u4EF6.fileName)],
197
+ rootNames: [...\u9879\u76EE.getSourceFiles().map((a) => a.fileName), ...\u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.map((a) => a.fileName)],
221
198
  options: \u89E3\u6790\u540E\u7684tsconfig.options,
222
199
  host: {
223
200
  ...\u9879\u76EE\u4E3B\u673A,
224
201
  getSourceFile: (filename) => {
225
- const \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.\u6587\u4EF6.fileName == filename)?.\u6587\u4EF6;
202
+ const \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName == filename);
226
203
  if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 != null)
227
204
  return \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6;
228
205
  return \u9879\u76EE.getSourceFile(filename);
@@ -233,19 +210,17 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
233
210
  var \u7C7B\u578B\u68C0\u67E5\u5668 = \u65B0\u9879\u76EE.getTypeChecker();
234
211
  var \u68C0\u67E5\u7ED3\u679C = [];
235
212
  for (var \u6E90\u6587\u4EF6 of \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC) {
236
- var \u7ED3\u679C = "";
237
- import_typescript.default.forEachChild(\u6E90\u6587\u4EF6.\u6587\u4EF6, (node) => {
238
- if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === \u6E90\u6587\u4EF6.\u8BA1\u7B97\u8282\u70B9\u540D\u79F0) {
213
+ import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (node) => {
214
+ if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "\u8BA1\u7B97\u7ED3\u679C") {
239
215
  const type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
240
- var \u6587\u672C\u7ED3\u679C = \u7C7B\u578B\u68C0\u67E5\u5668.typeToString(type);
241
- \u7ED3\u679C = \u6587\u672C\u7ED3\u679C;
216
+ \u68C0\u67E5\u7ED3\u679C.push(\u7C7B\u578B\u68C0\u67E5\u5668.typeToString(type));
242
217
  }
243
218
  });
244
- \u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
245
219
  }
246
220
  var \u6700\u7EC8\u7ED3\u679C = Array.from(new Set(\u68C0\u67E5\u7ED3\u679C.filter((a) => a != "any" && a != "never" && a != "unknown")));
247
221
  await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u7C7B\u578B`);
248
222
  var \u6700\u7EC8\u4EE3\u7801 = [`export type InterfaceType = [${\u6700\u7EC8\u7ED3\u679C.join(",")}]`, ...\u9644\u52A0\u4EE3\u7801];
223
+ await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
249
224
  var \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
250
225
  if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
251
226
  import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });