@lsby/net-core 0.3.23 → 0.3.25

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 (47) hide show
  1. package/dist/bin/gen-list/bin.cjs +13 -4
  2. package/dist/bin/gen-list/index.cjs +13 -4
  3. package/dist/bin/gen-test/bin.cjs +18 -6
  4. package/dist/bin/gen-test/index.cjs +18 -6
  5. package/dist/bin/gen-type/addition.cjs +123 -0
  6. package/dist/bin/gen-type/addition.d.cts +3 -0
  7. package/dist/bin/gen-type/bin.cjs +112 -100
  8. package/dist/bin/gen-type/index.cjs +112 -100
  9. package/dist/cjs/bin/gen-list/bin.cjs +13 -4
  10. package/dist/cjs/bin/gen-list/index.cjs +13 -4
  11. package/dist/cjs/bin/gen-test/bin.cjs +18 -6
  12. package/dist/cjs/bin/gen-test/index.cjs +18 -6
  13. package/dist/cjs/bin/gen-type/addition.cjs +123 -0
  14. package/dist/cjs/bin/gen-type/addition.d.cts +3 -0
  15. package/dist/cjs/bin/gen-type/bin.cjs +112 -100
  16. package/dist/cjs/bin/gen-type/index.cjs +112 -100
  17. package/dist/cjs/index.cjs +10 -7
  18. package/dist/cjs/interface/extend/json-base.cjs +8 -5
  19. package/dist/cjs/interface/extend/json-base.d.cts +4 -4
  20. package/dist/cjs/interface/extend/json-wrap.cjs +5 -2
  21. package/dist/cjs/interface/extend/json-wrap.d.cts +4 -4
  22. package/dist/cjs/interface/interface-inst.cjs +3 -0
  23. package/dist/cjs/interface/interface-inst.d.cts +2 -1
  24. package/dist/esm/bin/gen-list/bin.js +1 -1
  25. package/dist/esm/bin/gen-list/index.js +1 -1
  26. package/dist/esm/bin/gen-test/bin.js +1 -1
  27. package/dist/esm/bin/gen-test/index.js +1 -1
  28. package/dist/esm/bin/gen-type/addition.d.ts +3 -0
  29. package/dist/esm/bin/gen-type/addition.js +6 -0
  30. package/dist/esm/bin/gen-type/bin.js +2 -1
  31. package/dist/esm/bin/gen-type/index.js +2 -1
  32. package/dist/esm/{chunk-TMRT3MBS.js → chunk-33UG5J6F.js} +13 -4
  33. package/dist/esm/{chunk-IZ623QVE.js → chunk-5FTVDMDL.js} +3 -0
  34. package/dist/esm/{chunk-MMAAGHJW.js → chunk-LA44GRGO.js} +18 -100
  35. package/dist/esm/{chunk-3WT6TRYJ.js → chunk-QX7F45LO.js} +7 -7
  36. package/dist/esm/{chunk-B5W4H32C.js → chunk-QXOTCD4X.js} +18 -6
  37. package/dist/esm/chunk-TW4ZMOLY.js +99 -0
  38. package/dist/esm/chunk-URPOOM7V.js +21 -0
  39. package/dist/esm/index.js +14 -14
  40. package/dist/esm/interface/extend/json-base.d.ts +4 -4
  41. package/dist/esm/interface/extend/json-base.js +3 -3
  42. package/dist/esm/interface/extend/json-wrap.d.ts +4 -4
  43. package/dist/esm/interface/extend/json-wrap.js +3 -3
  44. package/dist/esm/interface/interface-inst.d.ts +2 -1
  45. package/dist/esm/interface/interface-inst.js +1 -1
  46. package/package.json +1 -1
  47. package/dist/esm/chunk-P6ML63XI.js +0 -21
@@ -38,6 +38,104 @@ var import_node_fs = __toESM(require("fs"), 1);
38
38
  var import_node_path = __toESM(require("path"), 1);
39
39
  var import_typescript = __toESM(require("typescript"), 1);
40
40
  var import_ts_log = require("@lsby/ts-log");
41
+
42
+ // src/bin/gen-type/addition.ts
43
+ var \u9644\u52A0\u4EE3\u7801 = [
44
+ "",
45
+ `type \u5143\u7EC4\u8F6C\u8054\u5408<T> = T extends any[] ? T[number] : never`,
46
+ "",
47
+ `type \u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<A = InterfaceType> = A extends []`,
48
+ ` ? []`,
49
+ ` : A extends [infer x, ...infer xs]`,
50
+ ` ? 'path' extends keyof x`,
51
+ ` ? [x['path'], ...\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<xs>]`,
52
+ ` : never`,
53
+ ` : never`,
54
+ `type Get\u63A5\u53E3\u8DEF\u5F84\u4EEC<A = InterfaceType> = A extends []`,
55
+ ` ? []`,
56
+ ` : A extends [infer x, ...infer xs]`,
57
+ ` ? 'method' extends keyof x`,
58
+ ` ? x['method'] extends 'get'`,
59
+ ` ? 'path' extends keyof x`,
60
+ ` ? [x['path'], ...\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<xs>]`,
61
+ ` : never`,
62
+ ` : never`,
63
+ ` : never`,
64
+ ` : never`,
65
+ `type Post\u63A5\u53E3\u8DEF\u5F84\u4EEC<A = InterfaceType> = A extends []`,
66
+ ` ? []`,
67
+ ` : A extends [infer x, ...infer xs]`,
68
+ ` ? 'method' extends keyof x`,
69
+ ` ? x['method'] extends 'post'`,
70
+ ` ? 'path' extends keyof x`,
71
+ ` ? [x['path'], ...\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<xs>]`,
72
+ ` : never`,
73
+ ` : never`,
74
+ ` : never`,
75
+ ` : never`,
76
+ ``,
77
+ `type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, A = InterfaceType> = A extends []`,
78
+ ` ? []`,
79
+ ` : A extends [infer x, ...infer xs]`,
80
+ ` ? 'path' extends keyof x`,
81
+ ` ? x['path'] extends Path`,
82
+ ` ? 'input' extends keyof x`,
83
+ ` ? x['input']`,
84
+ ` : never`,
85
+ ` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, xs>`,
86
+ ` : never`,
87
+ ` : never`,
88
+ `type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<Path, A = InterfaceType> = A extends []`,
89
+ ` ? []`,
90
+ ` : A extends [infer x, ...infer xs]`,
91
+ ` ? 'path' extends keyof x`,
92
+ ` ? x['path'] extends Path`,
93
+ ` ? 'method' extends keyof x`,
94
+ ` ? x['method']`,
95
+ ` : never`,
96
+ ` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<Path, xs>`,
97
+ ` : never`,
98
+ ` : never`,
99
+ `type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<Path, A = InterfaceType> = A extends []`,
100
+ ` ? []`,
101
+ ` : A extends [infer x, ...infer xs]`,
102
+ ` ? 'path' extends keyof x`,
103
+ ` ? x['path'] extends Path`,
104
+ ` ? 'successOutput' extends keyof x`,
105
+ ` ? x['successOutput']`,
106
+ ` : never`,
107
+ ` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<Path, xs>`,
108
+ ` : never`,
109
+ ` : never`,
110
+ `type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<Path, A = InterfaceType> = A extends []`,
111
+ ` ? []`,
112
+ ` : A extends [infer x, ...infer xs]`,
113
+ ` ? 'path' extends keyof x`,
114
+ ` ? x['path'] extends Path`,
115
+ ` ? 'errorOutput' extends keyof x`,
116
+ ` ? x['errorOutput']`,
117
+ ` : never`,
118
+ ` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<Path, xs>`,
119
+ ` : never`,
120
+ ` : never`,
121
+ ``,
122
+ `export type \u8BF7\u6C42\u540E\u7AEF\u51FD\u6570\u7C7B\u578B = <\u8DEF\u5F84 extends \u5143\u7EC4\u8F6C\u8054\u5408<\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC>>(`,
123
+ ` \u8DEF\u5F84: \u8DEF\u5F84,`,
124
+ ` \u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,`,
125
+ ` \u65B9\u6CD5: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<\u8DEF\u5F84>,`,
126
+ `) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>`,
127
+ `export type Get\u8BF7\u6C42\u540E\u7AEF\u51FD\u6570\u7C7B\u578B = <\u8DEF\u5F84 extends \u5143\u7EC4\u8F6C\u8054\u5408<Get\u63A5\u53E3\u8DEF\u5F84\u4EEC>>(`,
128
+ ` \u8DEF\u5F84: \u8DEF\u5F84,`,
129
+ ` \u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,`,
130
+ `) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>`,
131
+ `export type Post\u8BF7\u6C42\u540E\u7AEF\u51FD\u6570\u7C7B\u578B = <\u8DEF\u5F84 extends \u5143\u7EC4\u8F6C\u8054\u5408<Post\u63A5\u53E3\u8DEF\u5F84\u4EEC>>(`,
132
+ ` \u8DEF\u5F84: \u8DEF\u5F84,`,
133
+ ` \u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,`,
134
+ `) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>`,
135
+ ""
136
+ ];
137
+
138
+ // src/bin/gen-type/index.ts
41
139
  function \u63D0\u53D6\u53D8\u91CF\u8282\u70B9(\u6E90\u6587\u4EF6) {
42
140
  const \u53D8\u91CF\u8282\u70B9\u6570\u7EC4 = [];
43
141
  const \u8BBF\u95EE\u8282\u70B9 = (\u8282\u70B9) => {
@@ -57,22 +155,27 @@ function \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(\u5B57\u7B26\u4E32) {
57
155
  return "_" + \u5B57\u7B26\u4E32.replace(/[ !\-!@#$%^&*()\[\]{}\\|;:'",.\/?]/g, "_");
58
156
  }
59
157
  async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
60
- var \u65E5\u5FD7 = new import_ts_log.Log("@lsby:net-core").extend("gen-type");
61
- await \u65E5\u5FD7.debug("\u51C6\u5907\u751F\u6210\u63A5\u53E3\u7C7B\u578B...");
158
+ var log = new import_ts_log.Log("@lsby:net-core").extend("gen-type");
159
+ await log.debug("\u5F00\u59CB\u751F\u6210\u7C7B\u578B...");
160
+ await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
161
+ await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
162
+ await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
62
163
  const tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
63
164
  if (tsconfig\u5185\u5BB9.error) {
165
+ await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
64
166
  throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
65
167
  }
66
168
  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, ".."));
67
- await \u65E5\u5FD7.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
169
+ await log.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
68
170
  const \u9879\u76EE\u4E3B\u673A = import_typescript.default.createCompilerHost(\u89E3\u6790\u540E\u7684tsconfig.options);
69
171
  const \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
70
- await \u65E5\u5FD7.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
172
+ await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
71
173
  var \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
72
174
  var \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
73
175
  var \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF62.fileName);
74
176
  return \u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84);
75
177
  });
178
+ await log.debug(`\u7B5B\u9009\u51FA ${\u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
76
179
  const \u76F8\u5173\u53D8\u91CF\u8282\u70B9\u4EEC = \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.flatMap(
77
180
  (a) => \u63D0\u53D6\u53D8\u91CF\u8282\u70B9(a).map((x) => ({
78
181
  \u6587\u4EF6: a,
@@ -80,6 +183,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
80
183
  \u8BA1\u7B97\u8282\u70B9\u540D\u79F0: \u66FF\u6362\u975E\u6CD5\u5B57\u7B26((0, import_node_crypto.randomUUID)())
81
184
  }))
82
185
  );
186
+ await log.debug(`\u63D0\u53D6\u5230 ${\u76F8\u5173\u53D8\u91CF\u8282\u70B9\u4EEC.length} \u4E2A\u53D8\u91CF\u8282\u70B9`);
83
187
  var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u53D8\u91CF\u8282\u70B9\u4EEC.map((a) => {
84
188
  var \u4EE3\u7801 = [];
85
189
  if (a.\u53D8\u91CF\u8282\u70B9.name.kind != import_typescript.default.SyntaxKind.Identifier) {
@@ -141,106 +245,14 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
141
245
  });
142
246
  \u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
143
247
  }
144
- var \u6700\u7EC8\u7ED3\u679C = Array.from(new Set(\u68C0\u67E5\u7ED3\u679C.filter((a) => a != "any")));
145
- var \u6700\u7EC8\u4EE3\u7801 = [
146
- `export type InterfaceType = [${\u6700\u7EC8\u7ED3\u679C.join(",")}]`,
147
- "",
148
- `type \u5143\u7EC4\u8F6C\u8054\u5408<T> = T extends any[] ? T[number] : never`,
149
- "",
150
- `type \u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<A = InterfaceType> = A extends []`,
151
- ` ? []`,
152
- ` : A extends [infer x, ...infer xs]`,
153
- ` ? 'path' extends keyof x`,
154
- ` ? [x['path'], ...\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<xs>]`,
155
- ` : never`,
156
- ` : never`,
157
- `type Get\u63A5\u53E3\u8DEF\u5F84\u4EEC<A = InterfaceType> = A extends []`,
158
- ` ? []`,
159
- ` : A extends [infer x, ...infer xs]`,
160
- ` ? 'method' extends keyof x`,
161
- ` ? x['method'] extends 'get'`,
162
- ` ? 'path' extends keyof x`,
163
- ` ? [x['path'], ...\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<xs>]`,
164
- ` : never`,
165
- ` : never`,
166
- ` : never`,
167
- ` : never`,
168
- `type Post\u63A5\u53E3\u8DEF\u5F84\u4EEC<A = InterfaceType> = A extends []`,
169
- ` ? []`,
170
- ` : A extends [infer x, ...infer xs]`,
171
- ` ? 'method' extends keyof x`,
172
- ` ? x['method'] extends 'post'`,
173
- ` ? 'path' extends keyof x`,
174
- ` ? [x['path'], ...\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<xs>]`,
175
- ` : never`,
176
- ` : never`,
177
- ` : never`,
178
- ` : never`,
179
- ``,
180
- `type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, A = InterfaceType> = A extends []`,
181
- ` ? []`,
182
- ` : A extends [infer x, ...infer xs]`,
183
- ` ? 'path' extends keyof x`,
184
- ` ? x['path'] extends Path`,
185
- ` ? 'input' extends keyof x`,
186
- ` ? x['input']`,
187
- ` : never`,
188
- ` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, xs>`,
189
- ` : never`,
190
- ` : never`,
191
- `type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<Path, A = InterfaceType> = A extends []`,
192
- ` ? []`,
193
- ` : A extends [infer x, ...infer xs]`,
194
- ` ? 'path' extends keyof x`,
195
- ` ? x['path'] extends Path`,
196
- ` ? 'method' extends keyof x`,
197
- ` ? x['method']`,
198
- ` : never`,
199
- ` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<Path, xs>`,
200
- ` : never`,
201
- ` : never`,
202
- `type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<Path, A = InterfaceType> = A extends []`,
203
- ` ? []`,
204
- ` : A extends [infer x, ...infer xs]`,
205
- ` ? 'path' extends keyof x`,
206
- ` ? x['path'] extends Path`,
207
- ` ? 'successOutput' extends keyof x`,
208
- ` ? x['successOutput']`,
209
- ` : never`,
210
- ` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<Path, xs>`,
211
- ` : never`,
212
- ` : never`,
213
- `type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<Path, A = InterfaceType> = A extends []`,
214
- ` ? []`,
215
- ` : A extends [infer x, ...infer xs]`,
216
- ` ? 'path' extends keyof x`,
217
- ` ? x['path'] extends Path`,
218
- ` ? 'errorOutput' extends keyof x`,
219
- ` ? x['errorOutput']`,
220
- ` : never`,
221
- ` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<Path, xs>`,
222
- ` : never`,
223
- ` : never`,
224
- ``,
225
- `export type \u8BF7\u6C42\u540E\u7AEF\u51FD\u6570\u7C7B\u578B = <\u8DEF\u5F84 extends \u5143\u7EC4\u8F6C\u8054\u5408<\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC>>(`,
226
- ` \u8DEF\u5F84: \u8DEF\u5F84,`,
227
- ` \u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,`,
228
- ` \u65B9\u6CD5: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<\u8DEF\u5F84>,`,
229
- `) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>`,
230
- `export type Get\u8BF7\u6C42\u540E\u7AEF\u51FD\u6570\u7C7B\u578B = <\u8DEF\u5F84 extends \u5143\u7EC4\u8F6C\u8054\u5408<Get\u63A5\u53E3\u8DEF\u5F84\u4EEC>>(`,
231
- ` \u8DEF\u5F84: \u8DEF\u5F84,`,
232
- ` \u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,`,
233
- `) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>`,
234
- `export type Post\u8BF7\u6C42\u540E\u7AEF\u51FD\u6570\u7C7B\u578B = <\u8DEF\u5F84 extends \u5143\u7EC4\u8F6C\u8054\u5408<Post\u63A5\u53E3\u8DEF\u5F84\u4EEC>>(`,
235
- ` \u8DEF\u5F84: \u8DEF\u5F84,`,
236
- ` \u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,`,
237
- `) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>`,
238
- ""
239
- ];
248
+ var \u6700\u7EC8\u7ED3\u679C = Array.from(new Set(\u68C0\u67E5\u7ED3\u679C.filter((a) => a != "any" && a != "never")));
249
+ await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u7C7B\u578B`);
250
+ var \u6700\u7EC8\u4EE3\u7801 = [`export type InterfaceType = [${\u6700\u7EC8\u7ED3\u679C.join(",")}]`, ...\u9644\u52A0\u4EE3\u7801];
240
251
  var \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
241
252
  if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
242
253
  import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
243
254
  import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
255
+ await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
244
256
  }
245
257
  // Annotate the CommonJS export names for ESM import in node:
246
258
  0 && (module.exports = {
@@ -55,28 +55,34 @@ function \u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F
55
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", "");
56
56
  }
57
57
  async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
58
- var \u65E5\u5FD7 = new import_ts_log.Log("@lsby:net-core").extend("gen-list");
59
- await \u65E5\u5FD7.debug("\u51C6\u5907\u751F\u6210\u63A5\u53E3\u5217\u8868...");
58
+ var log = new import_ts_log.Log("@lsby:net-core").extend("gen-list");
59
+ await log.debug("\u5F00\u59CB\u751F\u6210\u63A5\u53E3\u5217\u8868...");
60
+ await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
61
+ await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
62
+ await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
60
63
  const tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
61
64
  if (tsconfig\u5185\u5BB9.error) {
65
+ await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json: " + tsconfig\u5185\u5BB9.error.messageText);
62
66
  throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
63
67
  }
64
68
  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, ".."));
65
- await \u65E5\u5FD7.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
69
+ await log.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
66
70
  const \u9879\u76EE\u4E3B\u673A = import_typescript.default.createCompilerHost(\u89E3\u6790\u540E\u7684tsconfig.options);
67
71
  const \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
68
- await \u65E5\u5FD7.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
72
+ await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
69
73
  var \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
70
74
  var \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
71
75
  var \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF62.fileName);
72
76
  return \u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84);
73
77
  });
78
+ await log.debug(`\u7B5B\u9009\u51FA ${\u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
74
79
  const \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC = \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.flatMap(
75
80
  (a) => \u63D0\u53D6\u9876\u7EA7\u5BFC\u51FA\u7C7B\u8282\u70B9(a).map((x) => ({
76
81
  \u6587\u4EF6: a,
77
82
  \u7C7B\u8282\u70B9: x
78
83
  }))
79
84
  );
85
+ await log.debug(`\u63D0\u53D6\u5230 ${\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.length} \u4E2A\u7C7B\u8282\u70B9`);
80
86
  var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.map((a) => {
81
87
  var \u7C7B\u540D\u5B57 = a.\u7C7B\u8282\u70B9.name?.text;
82
88
  var \u4EE3\u7801 = [
@@ -119,6 +125,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
119
125
  \u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
120
126
  }
121
127
  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);
128
+ await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u5B9E\u73B0`);
122
129
  var \u6700\u7EC8\u4EE3\u7801 = [
123
130
  `import { \u4EFB\u610F\u63A5\u53E3 } from '@lsby/net-core'`,
124
131
  "",
@@ -131,10 +138,12 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
131
138
  `]`,
132
139
  ""
133
140
  ];
141
+ await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
134
142
  var \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
135
143
  if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
136
144
  import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
137
145
  import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
146
+ await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
138
147
  }
139
148
 
140
149
  // src/bin/gen-list/bin.ts
@@ -60,28 +60,34 @@ function \u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F
60
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", "");
61
61
  }
62
62
  async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
63
- var \u65E5\u5FD7 = new import_ts_log.Log("@lsby:net-core").extend("gen-list");
64
- await \u65E5\u5FD7.debug("\u51C6\u5907\u751F\u6210\u63A5\u53E3\u5217\u8868...");
63
+ var log = new import_ts_log.Log("@lsby:net-core").extend("gen-list");
64
+ await log.debug("\u5F00\u59CB\u751F\u6210\u63A5\u53E3\u5217\u8868...");
65
+ await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
66
+ await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
67
+ await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
65
68
  const tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
66
69
  if (tsconfig\u5185\u5BB9.error) {
70
+ await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json: " + tsconfig\u5185\u5BB9.error.messageText);
67
71
  throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
68
72
  }
69
73
  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, ".."));
70
- await \u65E5\u5FD7.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
74
+ await log.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
71
75
  const \u9879\u76EE\u4E3B\u673A = import_typescript.default.createCompilerHost(\u89E3\u6790\u540E\u7684tsconfig.options);
72
76
  const \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
73
- await \u65E5\u5FD7.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
77
+ await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
74
78
  var \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
75
79
  var \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
76
80
  var \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF62.fileName);
77
81
  return \u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84);
78
82
  });
83
+ await log.debug(`\u7B5B\u9009\u51FA ${\u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
79
84
  const \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC = \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.flatMap(
80
85
  (a) => \u63D0\u53D6\u9876\u7EA7\u5BFC\u51FA\u7C7B\u8282\u70B9(a).map((x) => ({
81
86
  \u6587\u4EF6: a,
82
87
  \u7C7B\u8282\u70B9: x
83
88
  }))
84
89
  );
90
+ await log.debug(`\u63D0\u53D6\u5230 ${\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.length} \u4E2A\u7C7B\u8282\u70B9`);
85
91
  var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.map((a) => {
86
92
  var \u7C7B\u540D\u5B57 = a.\u7C7B\u8282\u70B9.name?.text;
87
93
  var \u4EE3\u7801 = [
@@ -124,6 +130,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
124
130
  \u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
125
131
  }
126
132
  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);
133
+ await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u5B9E\u73B0`);
127
134
  var \u6700\u7EC8\u4EE3\u7801 = [
128
135
  `import { \u4EFB\u610F\u63A5\u53E3 } from '@lsby/net-core'`,
129
136
  "",
@@ -136,10 +143,12 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
136
143
  `]`,
137
144
  ""
138
145
  ];
146
+ await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
139
147
  var \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
140
148
  if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
141
149
  import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
142
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}`);
143
152
  }
144
153
  // Annotate the CommonJS export names for ESM import in node:
145
154
  0 && (module.exports = {
@@ -55,28 +55,36 @@ function \u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F
55
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", "");
56
56
  }
57
57
  async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F) {
58
- var \u65E5\u5FD7 = new import_ts_log.Log("@lsby:net-core").extend("gen-test");
59
- await \u65E5\u5FD7.debug("\u51C6\u5907\u751F\u6210\u63A5\u53E3\u6D4B\u8BD5...");
58
+ var log = new import_ts_log.Log("@lsby:net-core").extend("gen-test");
59
+ await log.debug("\u5F00\u59CB\u751F\u6210\u6D4B\u8BD5...");
60
+ await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
61
+ await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
62
+ await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
63
+ await log.debug(`\u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F: ${\u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F}`);
60
64
  const tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
61
65
  if (tsconfig\u5185\u5BB9.error) {
66
+ await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json", tsconfig\u5185\u5BB9.error);
62
67
  throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
63
68
  }
64
69
  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, ".."));
65
- await \u65E5\u5FD7.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
70
+ await log.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
66
71
  const \u9879\u76EE\u4E3B\u673A = import_typescript.default.createCompilerHost(\u89E3\u6790\u540E\u7684tsconfig.options);
67
72
  const \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
68
- await \u65E5\u5FD7.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
73
+ await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
69
74
  var \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
70
75
  var \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
71
76
  var \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF62.fileName);
72
- return \u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84) && new RegExp(\u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F || ".*").test(\u6E90\u6587\u4EF6\u8DEF\u5F84);
77
+ 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;
73
79
  });
80
+ await log.debug(`\u7B5B\u9009\u51FA ${\u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
74
81
  const \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC = \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.flatMap(
75
82
  (a) => \u63D0\u53D6\u9876\u7EA7\u5BFC\u51FA\u7C7B\u8282\u70B9(a).map((x) => ({
76
83
  \u6587\u4EF6: a,
77
84
  \u7C7B\u8282\u70B9: x
78
85
  }))
79
86
  );
87
+ await log.debug(`\u63D0\u53D6\u5230 ${\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.length} \u4E2A\u7C7B\u8282\u70B9`);
80
88
  var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.map((a) => {
81
89
  var \u7C7B\u540D\u5B57 = a.\u7C7B\u8282\u70B9.name?.text;
82
90
  var \u4EE3\u7801 = [
@@ -119,6 +127,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
119
127
  \u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
120
128
  }
121
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);
130
+ await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u6D4B\u8BD5\u7528\u4F8B`);
122
131
  var \u6700\u7EC8\u4EE3\u7801 = [
123
132
  "import { test } from 'vitest'",
124
133
  "import './unit-test-prefix'",
@@ -130,10 +139,13 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
130
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())`),
131
140
  ""
132
141
  ];
142
+ await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
133
143
  var \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
134
- if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
144
+ if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939)) {
135
145
  import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
146
+ }
136
147
  import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
148
+ await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
137
149
  }
138
150
 
139
151
  // src/bin/gen-test/bin.ts
@@ -60,28 +60,36 @@ function \u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F
60
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", "");
61
61
  }
62
62
  async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F) {
63
- var \u65E5\u5FD7 = new import_ts_log.Log("@lsby:net-core").extend("gen-test");
64
- await \u65E5\u5FD7.debug("\u51C6\u5907\u751F\u6210\u63A5\u53E3\u6D4B\u8BD5...");
63
+ var log = new import_ts_log.Log("@lsby:net-core").extend("gen-test");
64
+ await log.debug("\u5F00\u59CB\u751F\u6210\u6D4B\u8BD5...");
65
+ await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
66
+ await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
67
+ await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
68
+ await log.debug(`\u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F: ${\u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F}`);
65
69
  const tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
66
70
  if (tsconfig\u5185\u5BB9.error) {
71
+ await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json", tsconfig\u5185\u5BB9.error);
67
72
  throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
68
73
  }
69
74
  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, ".."));
70
- await \u65E5\u5FD7.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
75
+ await log.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
71
76
  const \u9879\u76EE\u4E3B\u673A = import_typescript.default.createCompilerHost(\u89E3\u6790\u540E\u7684tsconfig.options);
72
77
  const \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
73
- await \u65E5\u5FD7.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
78
+ await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
74
79
  var \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
75
80
  var \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
76
81
  var \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF62.fileName);
77
- return \u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84) && new RegExp(\u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F || ".*").test(\u6E90\u6587\u4EF6\u8DEF\u5F84);
82
+ 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;
78
84
  });
85
+ await log.debug(`\u7B5B\u9009\u51FA ${\u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
79
86
  const \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC = \u6240\u6709\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.flatMap(
80
87
  (a) => \u63D0\u53D6\u9876\u7EA7\u5BFC\u51FA\u7C7B\u8282\u70B9(a).map((x) => ({
81
88
  \u6587\u4EF6: a,
82
89
  \u7C7B\u8282\u70B9: x
83
90
  }))
84
91
  );
92
+ await log.debug(`\u63D0\u53D6\u5230 ${\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.length} \u4E2A\u7C7B\u8282\u70B9`);
85
93
  var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.map((a) => {
86
94
  var \u7C7B\u540D\u5B57 = a.\u7C7B\u8282\u70B9.name?.text;
87
95
  var \u4EE3\u7801 = [
@@ -124,6 +132,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
124
132
  \u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
125
133
  }
126
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);
135
+ await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u6D4B\u8BD5\u7528\u4F8B`);
127
136
  var \u6700\u7EC8\u4EE3\u7801 = [
128
137
  "import { test } from 'vitest'",
129
138
  "import './unit-test-prefix'",
@@ -135,10 +144,13 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
135
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())`),
136
145
  ""
137
146
  ];
147
+ await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
138
148
  var \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
139
- if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
149
+ if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939)) {
140
150
  import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
151
+ }
141
152
  import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
153
+ await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
142
154
  }
143
155
  // Annotate the CommonJS export names for ESM import in node:
144
156
  0 && (module.exports = {
@@ -0,0 +1,123 @@
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-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
+ "",
28
+ `type \u5143\u7EC4\u8F6C\u8054\u5408<T> = T extends any[] ? T[number] : never`,
29
+ "",
30
+ `type \u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<A = InterfaceType> = A extends []`,
31
+ ` ? []`,
32
+ ` : A extends [infer x, ...infer xs]`,
33
+ ` ? 'path' extends keyof x`,
34
+ ` ? [x['path'], ...\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<xs>]`,
35
+ ` : never`,
36
+ ` : never`,
37
+ `type Get\u63A5\u53E3\u8DEF\u5F84\u4EEC<A = InterfaceType> = A extends []`,
38
+ ` ? []`,
39
+ ` : A extends [infer x, ...infer xs]`,
40
+ ` ? 'method' extends keyof x`,
41
+ ` ? x['method'] extends 'get'`,
42
+ ` ? 'path' extends keyof x`,
43
+ ` ? [x['path'], ...\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<xs>]`,
44
+ ` : never`,
45
+ ` : never`,
46
+ ` : never`,
47
+ ` : never`,
48
+ `type Post\u63A5\u53E3\u8DEF\u5F84\u4EEC<A = InterfaceType> = A extends []`,
49
+ ` ? []`,
50
+ ` : A extends [infer x, ...infer xs]`,
51
+ ` ? 'method' extends keyof x`,
52
+ ` ? x['method'] extends 'post'`,
53
+ ` ? 'path' extends keyof x`,
54
+ ` ? [x['path'], ...\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<xs>]`,
55
+ ` : never`,
56
+ ` : never`,
57
+ ` : never`,
58
+ ` : never`,
59
+ ``,
60
+ `type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, A = InterfaceType> = A extends []`,
61
+ ` ? []`,
62
+ ` : A extends [infer x, ...infer xs]`,
63
+ ` ? 'path' extends keyof x`,
64
+ ` ? x['path'] extends Path`,
65
+ ` ? 'input' extends keyof x`,
66
+ ` ? x['input']`,
67
+ ` : never`,
68
+ ` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, xs>`,
69
+ ` : never`,
70
+ ` : never`,
71
+ `type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<Path, A = InterfaceType> = A extends []`,
72
+ ` ? []`,
73
+ ` : A extends [infer x, ...infer xs]`,
74
+ ` ? 'path' extends keyof x`,
75
+ ` ? x['path'] extends Path`,
76
+ ` ? 'method' extends keyof x`,
77
+ ` ? x['method']`,
78
+ ` : never`,
79
+ ` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<Path, xs>`,
80
+ ` : never`,
81
+ ` : never`,
82
+ `type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<Path, A = InterfaceType> = A extends []`,
83
+ ` ? []`,
84
+ ` : A extends [infer x, ...infer xs]`,
85
+ ` ? 'path' extends keyof x`,
86
+ ` ? x['path'] extends Path`,
87
+ ` ? 'successOutput' extends keyof x`,
88
+ ` ? x['successOutput']`,
89
+ ` : never`,
90
+ ` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<Path, xs>`,
91
+ ` : never`,
92
+ ` : never`,
93
+ `type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<Path, A = InterfaceType> = A extends []`,
94
+ ` ? []`,
95
+ ` : A extends [infer x, ...infer xs]`,
96
+ ` ? 'path' extends keyof x`,
97
+ ` ? x['path'] extends Path`,
98
+ ` ? 'errorOutput' extends keyof x`,
99
+ ` ? x['errorOutput']`,
100
+ ` : never`,
101
+ ` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<Path, xs>`,
102
+ ` : never`,
103
+ ` : never`,
104
+ ``,
105
+ `export type \u8BF7\u6C42\u540E\u7AEF\u51FD\u6570\u7C7B\u578B = <\u8DEF\u5F84 extends \u5143\u7EC4\u8F6C\u8054\u5408<\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC>>(`,
106
+ ` \u8DEF\u5F84: \u8DEF\u5F84,`,
107
+ ` \u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,`,
108
+ ` \u65B9\u6CD5: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<\u8DEF\u5F84>,`,
109
+ `) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>`,
110
+ `export type Get\u8BF7\u6C42\u540E\u7AEF\u51FD\u6570\u7C7B\u578B = <\u8DEF\u5F84 extends \u5143\u7EC4\u8F6C\u8054\u5408<Get\u63A5\u53E3\u8DEF\u5F84\u4EEC>>(`,
111
+ ` \u8DEF\u5F84: \u8DEF\u5F84,`,
112
+ ` \u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,`,
113
+ `) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>`,
114
+ `export type Post\u8BF7\u6C42\u540E\u7AEF\u51FD\u6570\u7C7B\u578B = <\u8DEF\u5F84 extends \u5143\u7EC4\u8F6C\u8054\u5408<Post\u63A5\u53E3\u8DEF\u5F84\u4EEC>>(`,
115
+ ` \u8DEF\u5F84: \u8DEF\u5F84,`,
116
+ ` \u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,`,
117
+ `) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>`,
118
+ ""
119
+ ];
120
+ // Annotate the CommonJS export names for ESM import in node:
121
+ 0 && (module.exports = {
122
+ \u9644\u52A0\u4EE3\u7801
123
+ });
@@ -0,0 +1,3 @@
1
+ declare var 附加代码: string[];
2
+
3
+ export { 附加代码 };