@lsby/net-core 0.3.22 → 0.3.24

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 (141) hide show
  1. package/dist/bin/gen-list/bin.cjs +99 -44
  2. package/dist/bin/gen-list/index.cjs +99 -44
  3. package/dist/bin/gen-list/index.d.cts +1 -1
  4. package/dist/bin/gen-test/bin.cjs +98 -50
  5. package/dist/bin/gen-test/index.cjs +98 -50
  6. package/dist/bin/gen-test/index.d.cts +1 -1
  7. package/dist/bin/gen-type/addition.cjs +123 -0
  8. package/dist/bin/gen-type/addition.d.cts +3 -0
  9. package/dist/bin/gen-type/bin.cjs +195 -180
  10. package/dist/bin/gen-type/index.cjs +195 -180
  11. package/dist/bin/gen-type/index.d.cts +1 -1
  12. package/dist/cjs/{interface/action → action}/action.cjs +1 -1
  13. package/dist/cjs/bin/gen-list/bin.cjs +99 -44
  14. package/dist/cjs/bin/gen-list/index.cjs +99 -44
  15. package/dist/cjs/bin/gen-list/index.d.cts +1 -1
  16. package/dist/cjs/bin/gen-test/bin.cjs +98 -50
  17. package/dist/cjs/bin/gen-test/index.cjs +98 -50
  18. package/dist/cjs/bin/gen-test/index.d.cts +1 -1
  19. package/dist/cjs/bin/gen-type/addition.cjs +123 -0
  20. package/dist/cjs/bin/gen-type/addition.d.cts +3 -0
  21. package/dist/cjs/bin/gen-type/bin.cjs +195 -180
  22. package/dist/cjs/bin/gen-type/index.cjs +195 -180
  23. package/dist/cjs/bin/gen-type/index.d.cts +1 -1
  24. package/dist/cjs/index.cjs +70 -127
  25. package/dist/cjs/index.d.cts +12 -15
  26. package/dist/cjs/{extend/api-json-base.cjs → interface/extend/json-base.cjs} +61 -58
  27. package/dist/cjs/interface/extend/json-base.d.cts +14 -0
  28. package/dist/cjs/{extend/api-json-wrap.cjs → interface/extend/json-wrap.cjs} +83 -76
  29. package/dist/cjs/interface/extend/json-wrap.d.cts +26 -0
  30. package/dist/cjs/interface/{inst/interface-abstract.cjs → interface-inst.cjs} +12 -9
  31. package/dist/cjs/interface/interface-inst.d.cts +19 -0
  32. package/dist/cjs/{test/test-abstract.cjs → interface/interface-test.cjs} +7 -7
  33. package/dist/{esm/test/test-abstract.d.ts → cjs/interface/interface-test.d.cts} +2 -2
  34. package/dist/cjs/interface/{type/interface-type.cjs → interface-type.cjs} +2 -9
  35. package/dist/cjs/interface/interface-type.d.cts +28 -0
  36. package/dist/cjs/plugin/{chinese-path.cjs → extend/chinese-path.cjs} +3 -3
  37. package/dist/cjs/plugin/{chinese-path.d.cts → extend/chinese-path.d.cts} +1 -1
  38. package/dist/cjs/plugin/{custom-data.cjs → extend/custom-data.cjs} +3 -3
  39. package/dist/cjs/plugin/{custom-data.d.cts → extend/custom-data.d.cts} +1 -1
  40. package/dist/cjs/plugin/{json.cjs → extend/json.cjs} +4 -4
  41. package/dist/cjs/plugin/{json.d.cts → extend/json.d.cts} +2 -2
  42. package/dist/cjs/plugin/{urlencoded.cjs → extend/urlencoded.cjs} +4 -4
  43. package/dist/cjs/plugin/{urlencoded.d.cts → extend/urlencoded.d.cts} +1 -1
  44. package/dist/cjs/{interface → plugin}/plug.cjs +1 -1
  45. package/dist/cjs/server/server.d.cts +5 -5
  46. package/dist/esm/{interface/action → action}/action.js +1 -1
  47. package/dist/esm/bin/gen-list/bin.js +1 -1
  48. package/dist/esm/bin/gen-list/index.d.ts +1 -1
  49. package/dist/esm/bin/gen-list/index.js +1 -1
  50. package/dist/esm/bin/gen-test/bin.js +1 -1
  51. package/dist/esm/bin/gen-test/index.d.ts +1 -1
  52. package/dist/esm/bin/gen-test/index.js +1 -1
  53. package/dist/esm/bin/gen-type/addition.d.ts +3 -0
  54. package/dist/esm/bin/gen-type/addition.js +6 -0
  55. package/dist/esm/bin/gen-type/bin.js +2 -2
  56. package/dist/esm/bin/gen-type/index.d.ts +1 -1
  57. package/dist/esm/bin/gen-type/index.js +2 -2
  58. package/dist/esm/chunk-23ZZISJE.js +132 -0
  59. package/dist/esm/{chunk-P6PGPAMW.js → chunk-2MN4G2DG.js} +2 -2
  60. package/dist/esm/chunk-5FTVDMDL.js +14 -0
  61. package/dist/esm/chunk-GVXASHTI.js +122 -0
  62. package/dist/esm/chunk-HVJE7YDW.js +124 -0
  63. package/dist/esm/{chunk-XG4VZZOX.js → chunk-KW3M3VXP.js} +2 -2
  64. package/dist/esm/{chunk-KSZE2DTR.js → chunk-N4NY37XI.js} +1 -1
  65. package/dist/esm/{chunk-VJ4ORZR3.js → chunk-P4TLIJX4.js} +5 -5
  66. package/dist/esm/chunk-QX7F45LO.js +37 -0
  67. package/dist/esm/{chunk-CMHISRDG.js → chunk-SF5Z34AP.js} +2 -7
  68. package/dist/esm/{chunk-XRV64MDF.js → chunk-SFNQ5AWH.js} +3 -3
  69. package/dist/esm/chunk-TW4ZMOLY.js +99 -0
  70. package/dist/esm/chunk-URPOOM7V.js +21 -0
  71. package/dist/esm/{chunk-N7G2H6GB.js → chunk-V3S5HDZD.js} +1 -1
  72. package/dist/esm/{chunk-5UUMGDDD.js → chunk-XTHURYQM.js} +3 -3
  73. package/dist/esm/index.d.ts +12 -15
  74. package/dist/esm/index.js +28 -42
  75. package/dist/esm/interface/extend/json-base.d.ts +14 -0
  76. package/dist/esm/interface/extend/json-base.js +10 -0
  77. package/dist/esm/interface/extend/json-wrap.d.ts +26 -0
  78. package/dist/esm/interface/extend/json-wrap.js +13 -0
  79. package/dist/esm/interface/interface-inst.d.ts +19 -0
  80. package/dist/esm/interface/interface-inst.js +7 -0
  81. package/dist/{cjs/test/test-abstract.d.cts → esm/interface/interface-test.d.ts} +2 -2
  82. package/dist/esm/interface/interface-test.js +6 -0
  83. package/dist/esm/interface/interface-type.d.ts +28 -0
  84. package/dist/esm/interface/interface-type.js +6 -0
  85. package/dist/esm/plugin/{chinese-path.d.ts → extend/chinese-path.d.ts} +1 -1
  86. package/dist/esm/plugin/{chinese-path.js → extend/chinese-path.js} +2 -2
  87. package/dist/esm/plugin/{custom-data.d.ts → extend/custom-data.d.ts} +1 -1
  88. package/dist/esm/plugin/{custom-data.js → extend/custom-data.js} +2 -2
  89. package/dist/esm/plugin/{json.d.ts → extend/json.d.ts} +2 -2
  90. package/dist/esm/plugin/extend/json.js +8 -0
  91. package/dist/esm/plugin/{urlencoded.d.ts → extend/urlencoded.d.ts} +1 -1
  92. package/dist/esm/plugin/{urlencoded.js → extend/urlencoded.js} +2 -2
  93. package/dist/esm/{interface → plugin}/plug.js +1 -1
  94. package/dist/esm/server/server.d.ts +5 -5
  95. package/package.json +4 -2
  96. package/dist/bin/gen-type/calc-code.cjs +0 -53
  97. package/dist/bin/gen-type/calc-code.d.cts +0 -3
  98. package/dist/cjs/bin/gen-type/calc-code.cjs +0 -53
  99. package/dist/cjs/bin/gen-type/calc-code.d.cts +0 -3
  100. package/dist/cjs/extend/api-json-base.d.cts +0 -14
  101. package/dist/cjs/extend/api-json-wrap.d.cts +0 -55
  102. package/dist/cjs/interface/inst/interface-abstract.d.cts +0 -18
  103. package/dist/cjs/interface/inst/interface.cjs +0 -167
  104. package/dist/cjs/interface/inst/interface.d.cts +0 -18
  105. package/dist/cjs/interface/type/interface-type-abstract.cjs +0 -31
  106. package/dist/cjs/interface/type/interface-type-abstract.d.cts +0 -21
  107. package/dist/cjs/interface/type/interface-type.d.cts +0 -22
  108. package/dist/cjs/test/test.cjs +0 -60
  109. package/dist/cjs/test/test.d.cts +0 -19
  110. package/dist/esm/bin/gen-type/calc-code.d.ts +0 -3
  111. package/dist/esm/bin/gen-type/calc-code.js +0 -6
  112. package/dist/esm/chunk-34QVQSKM.js +0 -20
  113. package/dist/esm/chunk-4KSHDKSP.js +0 -11
  114. package/dist/esm/chunk-CSZNLNB5.js +0 -76
  115. package/dist/esm/chunk-DMQXYTFQ.js +0 -7
  116. package/dist/esm/chunk-DQX4L6GK.js +0 -187
  117. package/dist/esm/chunk-FLIKJZGI.js +0 -29
  118. package/dist/esm/chunk-LSG6UGUR.js +0 -54
  119. package/dist/esm/chunk-PIYVLQLM.js +0 -27
  120. package/dist/esm/chunk-S7GRYORG.js +0 -21
  121. package/dist/esm/chunk-YYOST4AX.js +0 -67
  122. package/dist/esm/extend/api-json-base.d.ts +0 -14
  123. package/dist/esm/extend/api-json-base.js +0 -10
  124. package/dist/esm/extend/api-json-wrap.d.ts +0 -55
  125. package/dist/esm/extend/api-json-wrap.js +0 -15
  126. package/dist/esm/interface/inst/interface-abstract.d.ts +0 -18
  127. package/dist/esm/interface/inst/interface-abstract.js +0 -7
  128. package/dist/esm/interface/inst/interface.d.ts +0 -18
  129. package/dist/esm/interface/inst/interface.js +0 -8
  130. package/dist/esm/interface/type/interface-type-abstract.d.ts +0 -21
  131. package/dist/esm/interface/type/interface-type-abstract.js +0 -6
  132. package/dist/esm/interface/type/interface-type.d.ts +0 -22
  133. package/dist/esm/interface/type/interface-type.js +0 -7
  134. package/dist/esm/plugin/json.js +0 -8
  135. package/dist/esm/test/test-abstract.js +0 -6
  136. package/dist/esm/test/test.d.ts +0 -19
  137. package/dist/esm/test/test.js +0 -7
  138. /package/dist/cjs/{interface/action → action}/action.d.cts +0 -0
  139. /package/dist/cjs/{interface → plugin}/plug.d.cts +0 -0
  140. /package/dist/esm/{interface/action → action}/action.d.ts +0 -0
  141. /package/dist/esm/{interface → plugin}/plug.d.ts +0 -0
@@ -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 { 附加代码 };
@@ -34,205 +34,220 @@ var import_node_path = __toESM(require("path"), 1);
34
34
  var import_typescript = __toESM(require("typescript"), 1);
35
35
  var import_ts_log = require("@lsby/ts-log");
36
36
 
37
- // src/bin/gen-type/calc-code.ts
38
- var calcCode = `
39
- import type { z } from 'zod'
40
- import type { \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C, \u63A5\u53E3\u7C7B\u578B\u62BD\u8C61\u7C7B } from '@lsby/net-core'
41
- import exportedApiSchema from './type'
42
-
43
- type Api =
44
- typeof exportedApiSchema extends \u63A5\u53E3\u7C7B\u578B\u62BD\u8C61\u7C7B<
45
- infer Path,
46
- infer Method,
47
- infer PreApis,
48
- infer SuccessSchema,
49
- infer ErrorSchema
50
- >
51
- ? {
52
- path: Path
53
- method: Method
54
- input: \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C<PreApis>
55
- successOutput: z.infer<SuccessSchema>
56
- errorOutput: z.infer<ErrorSchema>
57
- }
58
- : never
59
-
60
- export default Api
61
- `;
37
+ // src/bin/gen-type/addition.ts
38
+ var \u9644\u52A0\u4EE3\u7801 = [
39
+ "",
40
+ `type \u5143\u7EC4\u8F6C\u8054\u5408<T> = T extends any[] ? T[number] : never`,
41
+ "",
42
+ `type \u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<A = InterfaceType> = A extends []`,
43
+ ` ? []`,
44
+ ` : A extends [infer x, ...infer xs]`,
45
+ ` ? 'path' extends keyof x`,
46
+ ` ? [x['path'], ...\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<xs>]`,
47
+ ` : never`,
48
+ ` : never`,
49
+ `type Get\u63A5\u53E3\u8DEF\u5F84\u4EEC<A = InterfaceType> = A extends []`,
50
+ ` ? []`,
51
+ ` : A extends [infer x, ...infer xs]`,
52
+ ` ? 'method' extends keyof x`,
53
+ ` ? x['method'] extends 'get'`,
54
+ ` ? 'path' extends keyof x`,
55
+ ` ? [x['path'], ...\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<xs>]`,
56
+ ` : never`,
57
+ ` : never`,
58
+ ` : never`,
59
+ ` : never`,
60
+ `type Post\u63A5\u53E3\u8DEF\u5F84\u4EEC<A = InterfaceType> = A extends []`,
61
+ ` ? []`,
62
+ ` : A extends [infer x, ...infer xs]`,
63
+ ` ? 'method' extends keyof x`,
64
+ ` ? x['method'] extends 'post'`,
65
+ ` ? 'path' extends keyof x`,
66
+ ` ? [x['path'], ...\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<xs>]`,
67
+ ` : never`,
68
+ ` : never`,
69
+ ` : never`,
70
+ ` : never`,
71
+ ``,
72
+ `type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, A = InterfaceType> = A extends []`,
73
+ ` ? []`,
74
+ ` : A extends [infer x, ...infer xs]`,
75
+ ` ? 'path' extends keyof x`,
76
+ ` ? x['path'] extends Path`,
77
+ ` ? 'input' extends keyof x`,
78
+ ` ? x['input']`,
79
+ ` : never`,
80
+ ` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, xs>`,
81
+ ` : never`,
82
+ ` : never`,
83
+ `type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<Path, A = InterfaceType> = A extends []`,
84
+ ` ? []`,
85
+ ` : A extends [infer x, ...infer xs]`,
86
+ ` ? 'path' extends keyof x`,
87
+ ` ? x['path'] extends Path`,
88
+ ` ? 'method' extends keyof x`,
89
+ ` ? x['method']`,
90
+ ` : never`,
91
+ ` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<Path, xs>`,
92
+ ` : never`,
93
+ ` : never`,
94
+ `type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<Path, A = InterfaceType> = A extends []`,
95
+ ` ? []`,
96
+ ` : A extends [infer x, ...infer xs]`,
97
+ ` ? 'path' extends keyof x`,
98
+ ` ? x['path'] extends Path`,
99
+ ` ? 'successOutput' extends keyof x`,
100
+ ` ? x['successOutput']`,
101
+ ` : never`,
102
+ ` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<Path, xs>`,
103
+ ` : never`,
104
+ ` : never`,
105
+ `type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<Path, A = InterfaceType> = A extends []`,
106
+ ` ? []`,
107
+ ` : A extends [infer x, ...infer xs]`,
108
+ ` ? 'path' extends keyof x`,
109
+ ` ? x['path'] extends Path`,
110
+ ` ? 'errorOutput' extends keyof x`,
111
+ ` ? x['errorOutput']`,
112
+ ` : never`,
113
+ ` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<Path, xs>`,
114
+ ` : never`,
115
+ ` : never`,
116
+ ``,
117
+ `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>>(`,
118
+ ` \u8DEF\u5F84: \u8DEF\u5F84,`,
119
+ ` \u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,`,
120
+ ` \u65B9\u6CD5: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<\u8DEF\u5F84>,`,
121
+ `) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>`,
122
+ `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>>(`,
123
+ ` \u8DEF\u5F84: \u8DEF\u5F84,`,
124
+ ` \u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,`,
125
+ `) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>`,
126
+ `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>>(`,
127
+ ` \u8DEF\u5F84: \u8DEF\u5F84,`,
128
+ ` \u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,`,
129
+ `) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>`,
130
+ ""
131
+ ];
62
132
 
63
133
  // src/bin/gen-type/index.ts
64
- async function main(tsconfigPath, apiFolderPath, outputPath) {
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
+ });
143
+ }
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, "_");
151
+ }
152
+ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
65
153
  var log = new import_ts_log.Log("@lsby:net-core").extend("gen-type");
66
- await log.debug("\u51C6\u5907\u751F\u6210\u7C7B\u578B\u6587\u4EF6...");
67
- const tsconfigJson = import_typescript.default.parseConfigFileTextToJson(tsconfigPath, import_node_fs.default.readFileSync(tsconfigPath, "utf8"));
68
- if (tsconfigJson.error) {
154
+ await log.debug("\u5F00\u59CB\u751F\u6210\u7C7B\u578B...");
155
+ await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
156
+ await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
157
+ await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
158
+ const tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
159
+ if (tsconfig\u5185\u5BB9.error) {
160
+ await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
69
161
  throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
70
162
  }
71
- const parsedTsconfig = import_typescript.default.parseJsonConfigFileContent(tsconfigJson.config, import_typescript.default.sys, import_node_path.default.resolve(tsconfigPath, ".."));
163
+ 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, ".."));
72
164
  await log.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
73
- const projectHost = import_typescript.default.createCompilerHost(parsedTsconfig.options);
74
- const project = import_typescript.default.createProgram(parsedTsconfig.fileNames, parsedTsconfig.options, projectHost);
165
+ const \u9879\u76EE\u4E3B\u673A = import_typescript.default.createCompilerHost(\u89E3\u6790\u540E\u7684tsconfig.options);
166
+ const \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
75
167
  await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
76
- const allSourceFiles = project.getSourceFiles();
77
- const apiSourceFiles = allSourceFiles.filter((sourceFile) => {
78
- return new RegExp(`${apiFolderPath.replaceAll("\\", "\\\\")}.*type.ts`).test(import_node_path.default.resolve(sourceFile.fileName));
168
+ 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) => {
170
+ 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);
79
172
  });
80
- await log.debug("\u627E\u5230 %o \u4E2A\u63A5\u53E3...", apiSourceFiles.length);
81
- const apiTypeCalcFileNames = apiSourceFiles.map(
82
- (sourceFile) => sourceFile.fileName.replace("type.ts", `type-calculate-${(0, import_node_crypto.randomUUID)()}.ts`)
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
+ }))
83
180
  );
84
- const apiTypeCalcFiles = apiTypeCalcFileNames.map((filename) => {
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} = typeof ${\u53D8\u91CF\u540D\u79F0} extends ${netcore\u5F15\u5165}.\u63A5\u53E3\u7C7B\u578B<infer Path, infer Method, infer PreApis, infer SuccessSchema, infer ErrorSchema>
196
+ ? {
197
+ path: Path
198
+ method: Method
199
+ input: ${netcore\u5F15\u5165}.\u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C<PreApis>
200
+ successOutput: ${zod\u5F15\u5165}.infer<SuccessSchema>
201
+ errorOutput: ${zod\u5F15\u5165}.infer<ErrorSchema>
202
+ }
203
+ : never
204
+ `
205
+ ];
206
+ }
85
207
  return {
86
- name: filename,
87
- sourceFile: import_typescript.default.createSourceFile(filename, calcCode, import_typescript.default.ScriptTarget.Latest)
208
+ ...a,
209
+ \u6587\u4EF6: import_typescript.default.createSourceFile(
210
+ a.\u6587\u4EF6.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
211
+ \u4EE3\u7801.join("\n"),
212
+ import_typescript.default.ScriptTarget.Latest
213
+ )
88
214
  };
89
215
  });
90
- await log.debug("\u6210\u529F\u751F\u6210\u865A\u62DF\u8BA1\u7B97\u6587\u4EF6...");
91
- const newProject = import_typescript.default.createProgram({
92
- rootNames: [...parsedTsconfig.fileNames, ...apiTypeCalcFileNames],
93
- options: parsedTsconfig.options,
216
+ const \u65B0\u9879\u76EE = import_typescript.default.createProgram({
217
+ rootNames: [...\u9879\u76EE.getSourceFiles().map((a) => a.fileName), ...\u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.map((a) => a.\u6587\u4EF6.fileName)],
218
+ options: \u89E3\u6790\u540E\u7684tsconfig.options,
94
219
  host: {
95
- ...projectHost,
220
+ ...\u9879\u76EE\u4E3B\u673A,
96
221
  getSourceFile: (filename) => {
97
- const apiTypeCalcSourceFile = apiTypeCalcFiles.find(
98
- (apiTypeCalcSourceFile2) => apiTypeCalcSourceFile2.name === filename
99
- );
100
- if (apiTypeCalcSourceFile !== void 0) {
101
- return apiTypeCalcSourceFile.sourceFile;
102
- }
103
- return project.getSourceFile(filename);
222
+ 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;
223
+ if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 != null)
224
+ return \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6;
225
+ return \u9879\u76EE.getSourceFile(filename);
104
226
  }
105
227
  },
106
- oldProgram: project
228
+ oldProgram: \u9879\u76EE
107
229
  });
108
- await log.debug("\u6210\u529F\u751F\u6210\u865A\u62DF\u9879\u76EE...");
109
- const check = newProject.getTypeChecker();
110
- await log.debug("\u6210\u529F\u751F\u6210\u865A\u62DF\u9879\u76EE\u7C7B\u578B\u68C0\u67E5\u5668...");
111
- const result = [];
112
- for (var index = 0; index < apiSourceFiles.length; index++) {
113
- var apiSourceFile = apiSourceFiles[index];
114
- if (apiSourceFile == null)
115
- throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
116
- await log.info(`\u5904\u7406\uFF08${index + 1} / ${apiSourceFiles.length}\uFF09\uFF1A${apiSourceFile.fileName}`);
117
- const apiCalcSourceFile = apiTypeCalcFiles[index]?.sourceFile;
118
- if (apiCalcSourceFile === void 0) {
119
- throw new Error("\u975E\u9884\u671F\u7684\u6570\u7EC4\u8D8A\u754C");
120
- }
121
- for (const node of apiCalcSourceFile.statements) {
122
- if (import_typescript.default.isExportAssignment(node) && node.isExportEquals === void 0) {
123
- const apiType = check.getTypeAtLocation(node.expression);
124
- const typeString = check.typeToString(
125
- apiType,
126
- void 0,
127
- import_typescript.default.TypeFormatFlags.NoTruncation | import_typescript.default.TypeFormatFlags.AllowUniqueESSymbolType | import_typescript.default.TypeFormatFlags.UseAliasDefinedOutsideCurrentScope
128
- );
129
- result.push(typeString);
230
+ var \u7C7B\u578B\u68C0\u67E5\u5668 = \u65B0\u9879\u76EE.getTypeChecker();
231
+ var \u68C0\u67E5\u7ED3\u679C = [];
232
+ for (var \u6E90\u6587\u4EF6 of \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC) {
233
+ var \u7ED3\u679C = "";
234
+ import_typescript.default.forEachChild(\u6E90\u6587\u4EF6.\u6587\u4EF6, (node) => {
235
+ if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === \u6E90\u6587\u4EF6.\u8BA1\u7B97\u8282\u70B9\u540D\u79F0) {
236
+ const type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
237
+ var \u6587\u672C\u7ED3\u679C = \u7C7B\u578B\u68C0\u67E5\u5668.typeToString(type);
238
+ \u7ED3\u679C = \u6587\u672C\u7ED3\u679C;
130
239
  }
131
- }
132
- }
133
- await log.debug("\u6210\u529F\u5904\u7406\u6240\u6709\u63A5\u53E3...");
134
- const outputPathAbs = import_node_path.default.resolve(outputPath);
135
- var outDir = import_node_path.default.dirname(outputPathAbs);
136
- if (!(0, import_node_fs.existsSync)(outDir)) {
137
- (0, import_node_fs.mkdirSync)(outDir, { recursive: true });
240
+ });
241
+ \u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
138
242
  }
139
- var code = [
140
- `export type InterfaceType = [${result.join(",")}]`,
141
- "",
142
- `type \u5143\u7EC4\u8F6C\u8054\u5408<T> = T extends any[] ? T[number] : never`,
143
- "",
144
- `type \u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<A = InterfaceType> = A extends []`,
145
- ` ? []`,
146
- ` : A extends [infer x, ...infer xs]`,
147
- ` ? 'path' extends keyof x`,
148
- ` ? [x['path'], ...\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<xs>]`,
149
- ` : never`,
150
- ` : never`,
151
- `type Get\u63A5\u53E3\u8DEF\u5F84\u4EEC<A = InterfaceType> = A extends []`,
152
- ` ? []`,
153
- ` : A extends [infer x, ...infer xs]`,
154
- ` ? 'method' extends keyof x`,
155
- ` ? x['method'] extends 'get'`,
156
- ` ? 'path' extends keyof x`,
157
- ` ? [x['path'], ...\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<xs>]`,
158
- ` : never`,
159
- ` : never`,
160
- ` : never`,
161
- ` : never`,
162
- `type Post\u63A5\u53E3\u8DEF\u5F84\u4EEC<A = InterfaceType> = A extends []`,
163
- ` ? []`,
164
- ` : A extends [infer x, ...infer xs]`,
165
- ` ? 'method' extends keyof x`,
166
- ` ? x['method'] extends 'post'`,
167
- ` ? 'path' extends keyof x`,
168
- ` ? [x['path'], ...\u6240\u6709\u63A5\u53E3\u8DEF\u5F84\u4EEC<xs>]`,
169
- ` : never`,
170
- ` : never`,
171
- ` : never`,
172
- ` : never`,
173
- ``,
174
- `type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, A = InterfaceType> = A extends []`,
175
- ` ? []`,
176
- ` : A extends [infer x, ...infer xs]`,
177
- ` ? 'path' extends keyof x`,
178
- ` ? x['path'] extends Path`,
179
- ` ? 'input' extends keyof x`,
180
- ` ? x['input']`,
181
- ` : never`,
182
- ` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<Path, xs>`,
183
- ` : never`,
184
- ` : never`,
185
- `type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<Path, A = InterfaceType> = A extends []`,
186
- ` ? []`,
187
- ` : A extends [infer x, ...infer xs]`,
188
- ` ? 'path' extends keyof x`,
189
- ` ? x['path'] extends Path`,
190
- ` ? 'method' extends keyof x`,
191
- ` ? x['method']`,
192
- ` : never`,
193
- ` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<Path, xs>`,
194
- ` : never`,
195
- ` : never`,
196
- `type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<Path, A = InterfaceType> = A extends []`,
197
- ` ? []`,
198
- ` : A extends [infer x, ...infer xs]`,
199
- ` ? 'path' extends keyof x`,
200
- ` ? x['path'] extends Path`,
201
- ` ? 'successOutput' extends keyof x`,
202
- ` ? x['successOutput']`,
203
- ` : never`,
204
- ` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<Path, xs>`,
205
- ` : never`,
206
- ` : never`,
207
- `type \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<Path, A = InterfaceType> = A extends []`,
208
- ` ? []`,
209
- ` : A extends [infer x, ...infer xs]`,
210
- ` ? 'path' extends keyof x`,
211
- ` ? x['path'] extends Path`,
212
- ` ? 'errorOutput' extends keyof x`,
213
- ` ? x['errorOutput']`,
214
- ` : never`,
215
- ` : \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<Path, xs>`,
216
- ` : never`,
217
- ` : never`,
218
- ``,
219
- `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>>(`,
220
- ` \u8DEF\u5F84: \u8DEF\u5F84,`,
221
- ` \u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,`,
222
- ` \u65B9\u6CD5: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u65B9\u6CD5<\u8DEF\u5F84>,`,
223
- `) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>`,
224
- `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>>(`,
225
- ` \u8DEF\u5F84: \u8DEF\u5F84,`,
226
- ` \u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,`,
227
- `) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>`,
228
- `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>>(`,
229
- ` \u8DEF\u5F84: \u8DEF\u5F84,`,
230
- ` \u53C2\u6570: \u4ECE\u8DEF\u5F84\u83B7\u5F97\u53C2\u6570<\u8DEF\u5F84>,`,
231
- `) => Promise<\u4ECE\u8DEF\u5F84\u83B7\u5F97\u6B63\u786E\u8FD4\u56DE<\u8DEF\u5F84> | \u4ECE\u8DEF\u5F84\u83B7\u5F97\u9519\u8BEF\u8FD4\u56DE<\u8DEF\u5F84>>`,
232
- ""
233
- ];
234
- import_node_fs.default.writeFileSync(outputPathAbs, code.join("\n"));
235
- await log.debug("\u751F\u6210\u6210\u529F\uFF1A%o", outputPathAbs);
243
+ var \u6700\u7EC8\u7ED3\u679C = Array.from(new Set(\u68C0\u67E5\u7ED3\u679C.filter((a) => a != "any")));
244
+ await log.debug(`\u6700\u7EC8\u7B5B\u9009\u5230 ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u7C7B\u578B`);
245
+ var \u6700\u7EC8\u4EE3\u7801 = [`export type InterfaceType = [${\u6700\u7EC8\u7ED3\u679C.join(",")}]`, ...\u9644\u52A0\u4EE3\u7801];
246
+ var \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
247
+ if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
248
+ import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
249
+ import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
250
+ await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
236
251
  }
237
252
 
238
253
  // src/bin/gen-type/bin.ts