@lsby/net-core 0.3.28 → 0.3.30

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 +19 -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 +19 -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, \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 });
@@ -136,23 +136,13 @@ var \u9644\u52A0\u4EE3\u7801 = [
136
136
  ];
137
137
 
138
138
  // src/bin/gen-type/index.ts
139
- function \u63D0\u53D6\u53D8\u91CF\u8282\u70B9(\u6E90\u6587\u4EF6) {
140
- const \u53D8\u91CF\u8282\u70B9\u6570\u7EC4 = [];
141
- const \u8BBF\u95EE\u8282\u70B9 = (\u8282\u70B9) => {
142
- if (import_typescript.default.isVariableStatement(\u8282\u70B9)) {
143
- \u8282\u70B9.declarationList.declarations.forEach((\u53D8\u91CF\u58F0\u660E) => {
144
- if (import_typescript.default.isVariableDeclaration(\u53D8\u91CF\u58F0\u660E)) {
145
- \u53D8\u91CF\u8282\u70B9\u6570\u7EC4.push(\u53D8\u91CF\u58F0\u660E);
146
- }
147
- });
139
+ function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
140
+ for (const statement of \u6E90\u6587\u4EF6.statements) {
141
+ if (import_typescript.default.isExportAssignment(statement) && statement.isExportEquals === void 0) {
142
+ return true;
148
143
  }
149
- import_typescript.default.forEachChild(\u8282\u70B9, \u8BBF\u95EE\u8282\u70B9);
150
- };
151
- import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, \u8BBF\u95EE\u8282\u70B9);
152
- return \u53D8\u91CF\u8282\u70B9\u6570\u7EC4;
153
- }
154
- function \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(\u5B57\u7B26\u4E32) {
155
- return "_" + \u5B57\u7B26\u4E32.replace(/[ !\-!@#$%^&*()\[\]{}\\|;:'",.\/?]/g, "_");
144
+ }
145
+ return false;
156
146
  }
157
147
  async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
158
148
  var log = new import_ts_log.Log("@lsby:net-core").extend("gen-type");
@@ -162,7 +152,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
162
152
  await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
163
153
  const tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
164
154
  if (tsconfig\u5185\u5BB9.error) {
165
- await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
155
+ await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json: " + tsconfig\u5185\u5BB9.error.messageText);
166
156
  throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
167
157
  }
168
158
  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, ".."));
@@ -171,63 +161,50 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
171
161
  const \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
172
162
  await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
173
163
  var \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
174
- var \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
164
+ var \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
175
165
  var \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF62.fileName);
176
- return \u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84);
166
+ if (!\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84))
167
+ return false;
168
+ var \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF62);
169
+ if (!\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA)
170
+ return false;
171
+ return true;
177
172
  });
178
- await log.debug(`\u7B5B\u9009\u51FA ${\u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
179
- const \u76F8\u5173\u53D8\u91CF\u8282\u70B9\u4EEC = \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.flatMap(
180
- (a) => \u63D0\u53D6\u53D8\u91CF\u8282\u70B9(a).map((x) => ({
181
- \u6587\u4EF6: a,
182
- \u53D8\u91CF\u8282\u70B9: x,
183
- \u8BA1\u7B97\u8282\u70B9\u540D\u79F0: \u66FF\u6362\u975E\u6CD5\u5B57\u7B26((0, import_node_crypto.randomUUID)())
184
- }))
185
- );
186
- await log.debug(`\u63D0\u53D6\u5230 ${\u76F8\u5173\u53D8\u91CF\u8282\u70B9\u4EEC.length} \u4E2A\u53D8\u91CF\u8282\u70B9`);
187
- var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u53D8\u91CF\u8282\u70B9\u4EEC.map((a) => {
188
- var \u4EE3\u7801 = [];
189
- if (a.\u53D8\u91CF\u8282\u70B9.name.kind != import_typescript.default.SyntaxKind.Identifier) {
190
- \u4EE3\u7801 = [];
191
- } else {
192
- var \u53D8\u91CF\u540D\u79F0 = a.\u53D8\u91CF\u8282\u70B9.name.text;
193
- var netcore\u5F15\u5165 = a.\u8BA1\u7B97\u8282\u70B9\u540D\u79F0 + "netcore";
194
- var zod\u5F15\u5165 = a.\u8BA1\u7B97\u8282\u70B9\u540D\u79F0 + "zod";
195
- \u4EE3\u7801 = [
196
- a.\u6587\u4EF6.getFullText(),
197
- `import * as ${netcore\u5F15\u5165} from '@lsby/net-core'`,
198
- `import { z as ${zod\u5F15\u5165} } from 'zod'`,
199
- `
200
- type ${a.\u8BA1\u7B97\u8282\u70B9\u540D\u79F0} =
201
- typeof ${\u53D8\u91CF\u540D\u79F0} extends ${netcore\u5F15\u5165}.\u63A5\u53E3\u7C7B\u578B<infer Path, infer Method, infer PreApis, infer SuccessSchema, infer ErrorSchema>
173
+ await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
174
+ var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
175
+ var \u4EE3\u7801 = [
176
+ `import { \u63A5\u53E3\u7C7B\u578B, \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C } from '@lsby/net-core'`,
177
+ `import { z } from 'zod'`,
178
+ `import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
179
+ ``,
180
+ `
181
+ type \u8BA1\u7B97\u7ED3\u679C =
182
+ typeof \u5BFC\u5165 extends \u63A5\u53E3\u7C7B\u578B<infer Path, infer Method, infer PreApis, infer SuccessSchema, infer ErrorSchema>
202
183
  ? Path extends string
203
184
  ? {
204
185
  path: Path
205
186
  method: Method
206
- input: ${netcore\u5F15\u5165}.\u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C<PreApis>
207
- successOutput: ${zod\u5F15\u5165}.infer<SuccessSchema>
208
- errorOutput: ${zod\u5F15\u5165}.infer<ErrorSchema>
187
+ input: \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C<PreApis>
188
+ successOutput: z.infer<SuccessSchema>
189
+ errorOutput: z.infer<ErrorSchema>
209
190
  }
210
191
  : never
211
192
  : never
212
193
  `
213
- ];
214
- }
215
- return {
216
- ...a,
217
- \u6587\u4EF6: import_typescript.default.createSourceFile(
218
- a.\u6587\u4EF6.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
219
- \u4EE3\u7801.join("\n"),
220
- import_typescript.default.ScriptTarget.Latest
221
- )
222
- };
194
+ ];
195
+ return import_typescript.default.createSourceFile(
196
+ a.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
197
+ \u4EE3\u7801.join("\n"),
198
+ import_typescript.default.ScriptTarget.Latest
199
+ );
223
200
  });
224
201
  const \u65B0\u9879\u76EE = import_typescript.default.createProgram({
225
- rootNames: [...\u9879\u76EE.getSourceFiles().map((a) => a.fileName), ...\u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.map((a) => a.\u6587\u4EF6.fileName)],
202
+ rootNames: [...\u9879\u76EE.getSourceFiles().map((a) => a.fileName), ...\u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.map((a) => a.fileName)],
226
203
  options: \u89E3\u6790\u540E\u7684tsconfig.options,
227
204
  host: {
228
205
  ...\u9879\u76EE\u4E3B\u673A,
229
206
  getSourceFile: (filename) => {
230
- 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;
207
+ const \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName == filename);
231
208
  if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 != null)
232
209
  return \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6;
233
210
  return \u9879\u76EE.getSourceFile(filename);
@@ -238,19 +215,17 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
238
215
  var \u7C7B\u578B\u68C0\u67E5\u5668 = \u65B0\u9879\u76EE.getTypeChecker();
239
216
  var \u68C0\u67E5\u7ED3\u679C = [];
240
217
  for (var \u6E90\u6587\u4EF6 of \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC) {
241
- var \u7ED3\u679C = "";
242
- import_typescript.default.forEachChild(\u6E90\u6587\u4EF6.\u6587\u4EF6, (node) => {
243
- if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === \u6E90\u6587\u4EF6.\u8BA1\u7B97\u8282\u70B9\u540D\u79F0) {
218
+ import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (node) => {
219
+ if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "\u8BA1\u7B97\u7ED3\u679C") {
244
220
  const type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
245
- var \u6587\u672C\u7ED3\u679C = \u7C7B\u578B\u68C0\u67E5\u5668.typeToString(type);
246
- \u7ED3\u679C = \u6587\u672C\u7ED3\u679C;
221
+ \u68C0\u67E5\u7ED3\u679C.push(\u7C7B\u578B\u68C0\u67E5\u5668.typeToString(type));
247
222
  }
248
223
  });
249
- \u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
250
224
  }
251
225
  var \u6700\u7EC8\u7ED3\u679C = Array.from(new Set(\u68C0\u67E5\u7ED3\u679C.filter((a) => a != "any" && a != "never" && a != "unknown")));
252
226
  await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u7C7B\u578B`);
253
227
  var \u6700\u7EC8\u4EE3\u7801 = [`export type InterfaceType = [${\u6700\u7EC8\u7ED3\u679C.join(",")}]`, ...\u9644\u52A0\u4EE3\u7801];
228
+ await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
254
229
  var \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
255
230
  if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
256
231
  import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });