@lsby/net-core 0.3.27 → 0.3.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/gen-list/bin.cjs +27 -47
- package/dist/bin/gen-list/index.cjs +27 -47
- package/dist/bin/gen-test/bin.cjs +27 -33
- package/dist/bin/gen-test/index.cjs +27 -33
- package/dist/bin/gen-type/bin.cjs +39 -64
- package/dist/bin/gen-type/index.cjs +39 -64
- package/dist/cjs/action/action.cjs +42 -26
- package/dist/cjs/action/action.d.cts +40 -32
- package/dist/cjs/bin/gen-list/bin.cjs +27 -47
- package/dist/cjs/bin/gen-list/index.cjs +27 -47
- package/dist/cjs/bin/gen-test/bin.cjs +27 -33
- package/dist/cjs/bin/gen-test/index.cjs +27 -33
- package/dist/cjs/bin/gen-type/bin.cjs +39 -64
- package/dist/cjs/bin/gen-type/index.cjs +39 -64
- package/dist/cjs/index.cjs +68 -46
- package/dist/cjs/index.d.cts +3 -3
- package/dist/cjs/interface/extend/json-base.cjs +11 -127
- package/dist/cjs/interface/extend/json-base.d.cts +11 -7
- package/dist/cjs/interface/extend/json-wrap.cjs +12 -138
- package/dist/cjs/interface/extend/json-wrap.d.cts +13 -13
- package/dist/cjs/interface/interface-inst.cjs +1 -127
- package/dist/cjs/interface/interface-inst.d.cts +8 -11
- package/dist/cjs/interface/interface-test.cjs +4 -1
- package/dist/cjs/interface/interface-test.d.cts +5 -5
- package/dist/cjs/interface/interface-type.d.cts +2 -3
- package/dist/cjs/server/server.d.cts +3 -4
- package/dist/esm/action/action.d.ts +40 -32
- package/dist/esm/action/action.js +1 -1
- package/dist/esm/bin/gen-list/bin.js +1 -1
- package/dist/esm/bin/gen-list/index.js +1 -1
- package/dist/esm/bin/gen-test/bin.js +1 -1
- package/dist/esm/bin/gen-test/index.js +1 -1
- package/dist/esm/bin/gen-type/bin.js +1 -1
- package/dist/esm/bin/gen-type/index.js +1 -1
- package/dist/esm/{chunk-SFNQ5AWH.js → chunk-25X7QZ6T.js} +4 -1
- package/dist/esm/chunk-B55VVACL.js +29 -0
- package/dist/esm/{chunk-V3S5HDZD.js → chunk-B6PEMS6O.js} +42 -26
- package/dist/esm/chunk-G4P3OAFL.js +7 -0
- package/dist/esm/{chunk-L6B3BHT7.js → chunk-MXNVJRJT.js} +27 -47
- package/dist/esm/{chunk-DERN3VFQ.js → chunk-PVTF4VYK.js} +9 -11
- package/dist/esm/{chunk-6QNJCAAV.js → chunk-SMAC5ZMF.js} +39 -64
- package/dist/esm/{chunk-QXOTCD4X.js → chunk-UABF4235.js} +27 -33
- package/dist/esm/index.d.ts +3 -3
- package/dist/esm/index.js +7 -7
- package/dist/esm/interface/extend/json-base.d.ts +11 -7
- package/dist/esm/interface/extend/json-base.js +2 -3
- package/dist/esm/interface/extend/json-wrap.d.ts +13 -13
- package/dist/esm/interface/extend/json-wrap.js +2 -3
- package/dist/esm/interface/interface-inst.d.ts +8 -11
- package/dist/esm/interface/interface-inst.js +1 -2
- package/dist/esm/interface/interface-test.d.ts +5 -5
- package/dist/esm/interface/interface-test.js +1 -1
- package/dist/esm/interface/interface-type.d.ts +2 -3
- package/dist/esm/server/server.d.ts +3 -4
- package/package.json +3 -3
- package/dist/esm/chunk-535X7O4J.js +0 -21
- package/dist/esm/chunk-AY7GYJWL.js +0 -14
|
@@ -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 \
|
|
38
|
-
const \
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
52
|
+
return import_node_path.default.relative(import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84), a.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
|
|
56
53
|
}
|
|
57
54
|
async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
|
|
58
55
|
var log = new import_ts_log.Log("@lsby:net-core").extend("gen-list");
|
|
@@ -71,40 +68,25 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
71
68
|
const \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
|
|
72
69
|
await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
|
|
73
70
|
var \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
|
|
74
|
-
var \
|
|
71
|
+
var \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
|
|
75
72
|
var \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF62.fileName);
|
|
76
|
-
|
|
73
|
+
if (!\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84))
|
|
74
|
+
return false;
|
|
75
|
+
var \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF62);
|
|
76
|
+
if (!\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA)
|
|
77
|
+
return false;
|
|
78
|
+
return true;
|
|
77
79
|
});
|
|
78
|
-
await log.debug(`\u7B5B\u9009\u51FA ${\
|
|
79
|
-
|
|
80
|
-
(a) => \u63D0\u53D6\u9876\u7EA7\u5BFC\u51FA\u7C7B\u8282\u70B9(a).map((x) => ({
|
|
81
|
-
\u6587\u4EF6: a,
|
|
82
|
-
\u7C7B\u8282\u70B9: x
|
|
83
|
-
}))
|
|
84
|
-
);
|
|
85
|
-
await log.debug(`\u63D0\u53D6\u5230 ${\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.length} \u4E2A\u7C7B\u8282\u70B9`);
|
|
86
|
-
var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.map((a) => {
|
|
87
|
-
var \u7C7B\u540D\u5B57 = a.\u7C7B\u8282\u70B9.name?.text;
|
|
80
|
+
await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
|
|
81
|
+
var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
|
|
88
82
|
var \u4EE3\u7801 = [
|
|
89
|
-
`import { \u63A5\u53E3
|
|
90
|
-
`import
|
|
91
|
-
|
|
92
|
-
type \u8BA1\u7B97\u7ED3\u679C =
|
|
93
|
-
ReturnType<${\u7C7B\u540D\u5B57}['\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B']> extends \u63A5\u53E3\u7C7B\u578B<
|
|
94
|
-
infer \u8DEF\u5F84,
|
|
95
|
-
infer \u65B9\u6CD5,
|
|
96
|
-
infer \u63D2\u4EF6\u4EEC,
|
|
97
|
-
infer \u6B63\u786E\u7ED3\u679C\u7C7B\u578B,
|
|
98
|
-
infer \u9519\u8BEF\u7ED3\u679C\u7C7B\u578B
|
|
99
|
-
>
|
|
100
|
-
? \u8DEF\u5F84 extends string
|
|
101
|
-
? true
|
|
102
|
-
: false
|
|
103
|
-
: false
|
|
104
|
-
`
|
|
83
|
+
`import { \u4EFB\u610F\u63A5\u53E3 } from '@lsby/net-core'`,
|
|
84
|
+
`import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
|
|
85
|
+
``,
|
|
86
|
+
`type \u8BA1\u7B97\u7ED3\u679C = typeof \u5BFC\u5165 extends \u4EFB\u610F\u63A5\u53E3 ? true : false`
|
|
105
87
|
];
|
|
106
88
|
return import_typescript.default.createSourceFile(
|
|
107
|
-
a
|
|
89
|
+
a.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
|
|
108
90
|
\u4EE3\u7801.join("\n"),
|
|
109
91
|
import_typescript.default.ScriptTarget.Latest
|
|
110
92
|
);
|
|
@@ -137,17 +119,15 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
137
119
|
});
|
|
138
120
|
\u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
|
|
139
121
|
}
|
|
140
|
-
var \u6700\u7EC8\u7ED3\u679C = import_lodash.default.zip(\u76F8\u5173\
|
|
122
|
+
var \u6700\u7EC8\u7ED3\u679C = import_lodash.default.zip(\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC, \u68C0\u67E5\u7ED3\u679C).filter((a) => a[1] == true).map((a) => a[0]).filter((a) => a != null);
|
|
141
123
|
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u5B9E\u73B0`);
|
|
142
124
|
var \u6700\u7EC8\u4EE3\u7801 = [
|
|
143
|
-
`import { \
|
|
125
|
+
`import { \u4EFB\u610F\u63A5\u53E3 } from '@lsby/net-core'`,
|
|
144
126
|
"",
|
|
145
|
-
...\u6700\u7EC8\u7ED3\u679C.map(
|
|
146
|
-
(a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from '${\u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a)}'`
|
|
147
|
-
),
|
|
127
|
+
...\u6700\u7EC8\u7ED3\u679C.map((a) => `import ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)} from './${\u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a)}'`),
|
|
148
128
|
"",
|
|
149
|
-
`export var interfaceList: \
|
|
150
|
-
...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => `
|
|
129
|
+
`export var interfaceList: \u4EFB\u610F\u63A5\u53E3[] = [`,
|
|
130
|
+
...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => ` ${a},`),
|
|
151
131
|
`]`,
|
|
152
132
|
""
|
|
153
133
|
];
|
|
@@ -39,25 +39,22 @@ var import_node_path = __toESM(require("path"), 1);
|
|
|
39
39
|
var import_lodash = __toESM(require("lodash"), 1);
|
|
40
40
|
var import_typescript = __toESM(require("typescript"), 1);
|
|
41
41
|
var import_ts_log = require("@lsby/ts-log");
|
|
42
|
-
function \
|
|
43
|
-
const \
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
57
|
+
return import_node_path.default.relative(import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84), a.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
|
|
61
58
|
}
|
|
62
59
|
async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
|
|
63
60
|
var log = new import_ts_log.Log("@lsby:net-core").extend("gen-list");
|
|
@@ -76,40 +73,25 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
76
73
|
const \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
|
|
77
74
|
await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
|
|
78
75
|
var \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
|
|
79
|
-
var \
|
|
76
|
+
var \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF62) => {
|
|
80
77
|
var \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF62.fileName);
|
|
81
|
-
|
|
78
|
+
if (!\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84))
|
|
79
|
+
return false;
|
|
80
|
+
var \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF62);
|
|
81
|
+
if (!\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA)
|
|
82
|
+
return false;
|
|
83
|
+
return true;
|
|
82
84
|
});
|
|
83
|
-
await log.debug(`\u7B5B\u9009\u51FA ${\
|
|
84
|
-
|
|
85
|
-
(a) => \u63D0\u53D6\u9876\u7EA7\u5BFC\u51FA\u7C7B\u8282\u70B9(a).map((x) => ({
|
|
86
|
-
\u6587\u4EF6: a,
|
|
87
|
-
\u7C7B\u8282\u70B9: x
|
|
88
|
-
}))
|
|
89
|
-
);
|
|
90
|
-
await log.debug(`\u63D0\u53D6\u5230 ${\u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.length} \u4E2A\u7C7B\u8282\u70B9`);
|
|
91
|
-
var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u7C7B\u8282\u70B9\u4EEC.map((a) => {
|
|
92
|
-
var \u7C7B\u540D\u5B57 = a.\u7C7B\u8282\u70B9.name?.text;
|
|
85
|
+
await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
|
|
86
|
+
var \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
|
|
93
87
|
var \u4EE3\u7801 = [
|
|
94
|
-
`import { \u63A5\u53E3
|
|
95
|
-
`import
|
|
96
|
-
|
|
97
|
-
type \u8BA1\u7B97\u7ED3\u679C =
|
|
98
|
-
ReturnType<${\u7C7B\u540D\u5B57}['\u83B7\u5F97\u63A5\u53E3\u7C7B\u578B']> extends \u63A5\u53E3\u7C7B\u578B<
|
|
99
|
-
infer \u8DEF\u5F84,
|
|
100
|
-
infer \u65B9\u6CD5,
|
|
101
|
-
infer \u63D2\u4EF6\u4EEC,
|
|
102
|
-
infer \u6B63\u786E\u7ED3\u679C\u7C7B\u578B,
|
|
103
|
-
infer \u9519\u8BEF\u7ED3\u679C\u7C7B\u578B
|
|
104
|
-
>
|
|
105
|
-
? \u8DEF\u5F84 extends string
|
|
106
|
-
? true
|
|
107
|
-
: false
|
|
108
|
-
: false
|
|
109
|
-
`
|
|
88
|
+
`import { \u4EFB\u610F\u63A5\u53E3 } from '@lsby/net-core'`,
|
|
89
|
+
`import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
|
|
90
|
+
``,
|
|
91
|
+
`type \u8BA1\u7B97\u7ED3\u679C = typeof \u5BFC\u5165 extends \u4EFB\u610F\u63A5\u53E3 ? true : false`
|
|
110
92
|
];
|
|
111
93
|
return import_typescript.default.createSourceFile(
|
|
112
|
-
a
|
|
94
|
+
a.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
|
|
113
95
|
\u4EE3\u7801.join("\n"),
|
|
114
96
|
import_typescript.default.ScriptTarget.Latest
|
|
115
97
|
);
|
|
@@ -142,17 +124,15 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
142
124
|
});
|
|
143
125
|
\u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
|
|
144
126
|
}
|
|
145
|
-
var \u6700\u7EC8\u7ED3\u679C = import_lodash.default.zip(\u76F8\u5173\
|
|
127
|
+
var \u6700\u7EC8\u7ED3\u679C = import_lodash.default.zip(\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC, \u68C0\u67E5\u7ED3\u679C).filter((a) => a[1] == true).map((a) => a[0]).filter((a) => a != null);
|
|
146
128
|
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u5B9E\u73B0`);
|
|
147
129
|
var \u6700\u7EC8\u4EE3\u7801 = [
|
|
148
|
-
`import { \
|
|
130
|
+
`import { \u4EFB\u610F\u63A5\u53E3 } from '@lsby/net-core'`,
|
|
149
131
|
"",
|
|
150
|
-
...\u6700\u7EC8\u7ED3\u679C.map(
|
|
151
|
-
(a) => `import {${a.\u7C7B\u8282\u70B9.name?.text} as ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)}} from '${\u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a)}'`
|
|
152
|
-
),
|
|
132
|
+
...\u6700\u7EC8\u7ED3\u679C.map((a) => `import ${\u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)} from './${\u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a)}'`),
|
|
153
133
|
"",
|
|
154
|
-
`export var interfaceList: \
|
|
155
|
-
...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => `
|
|
134
|
+
`export var interfaceList: \u4EFB\u610F\u63A5\u53E3[] = [`,
|
|
135
|
+
...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => ` ${a},`),
|
|
156
136
|
`]`,
|
|
157
137
|
""
|
|
158
138
|
];
|
|
@@ -34,25 +34,22 @@ var import_node_path = __toESM(require("path"), 1);
|
|
|
34
34
|
var import_lodash = __toESM(require("lodash"), 1);
|
|
35
35
|
var import_typescript = __toESM(require("typescript"), 1);
|
|
36
36
|
var import_ts_log = require("@lsby/ts-log");
|
|
37
|
-
function \
|
|
38
|
-
const \
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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 \
|
|
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
|
-
|
|
80
|
+
if (!\u7B26\u5408\u8FC7\u6EE4\u8868\u8FBE\u5F0F)
|
|
81
|
+
return false;
|
|
82
|
+
return true;
|
|
79
83
|
});
|
|
80
|
-
await log.debug(`\u7B5B\u9009\u51FA ${\
|
|
81
|
-
|
|
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
|
|
93
|
-
|
|
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
|
|
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\
|
|
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
|
|
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 \
|
|
43
|
-
const \
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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 \
|
|
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
|
-
|
|
85
|
+
if (!\u7B26\u5408\u8FC7\u6EE4\u8868\u8FBE\u5F0F)
|
|
86
|
+
return false;
|
|
87
|
+
return true;
|
|
84
88
|
});
|
|
85
|
-
await log.debug(`\u7B5B\u9009\u51FA ${\
|
|
86
|
-
|
|
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
|
|
98
|
-
|
|
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
|
|
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\
|
|
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
|
|
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 \
|
|
135
|
-
const \
|
|
136
|
-
|
|
137
|
-
|
|
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
|
-
|
|
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 \
|
|
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
|
-
|
|
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 ${\
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
\
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
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:
|
|
202
|
-
successOutput:
|
|
203
|
-
errorOutput:
|
|
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
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
237
|
-
|
|
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
|
-
|
|
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 });
|