@lsby/net-core 0.3.40 → 0.3.42
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 -27
- package/dist/bin/gen-list/index.cjs +24 -24
- package/dist/bin/gen-test/bin.cjs +27 -27
- package/dist/bin/gen-test/index.cjs +24 -24
- package/dist/bin/gen-type/addition.d.cts +1 -1
- package/dist/bin/gen-type/bin.cjs +27 -27
- package/dist/bin/gen-type/index.cjs +24 -24
- package/dist/cjs/action/action.cjs +9 -9
- package/dist/cjs/bin/gen-list/bin.cjs +27 -27
- package/dist/cjs/bin/gen-list/index.cjs +24 -24
- package/dist/cjs/bin/gen-test/bin.cjs +27 -27
- package/dist/cjs/bin/gen-test/index.cjs +24 -24
- package/dist/cjs/bin/gen-type/addition.d.cts +1 -1
- package/dist/cjs/bin/gen-type/bin.cjs +27 -27
- package/dist/cjs/bin/gen-type/index.cjs +24 -24
- package/dist/cjs/global/global.d.cts +1 -1
- package/dist/cjs/index.cjs +70 -52
- package/dist/cjs/index.d.cts +1 -1
- package/dist/cjs/interface/extend/json-base.cjs +6 -6
- package/dist/cjs/interface/extend/json-wrap.cjs +6 -6
- package/dist/cjs/interface/interface-test.cjs +1 -1
- package/dist/cjs/plugin/extend/chinese-path.cjs +4 -4
- package/dist/cjs/plugin/extend/chinese-path.d.cts +1 -1
- package/dist/cjs/plugin/extend/custom-data.cjs +2 -2
- package/dist/cjs/plugin/extend/json.cjs +8 -8
- package/dist/cjs/plugin/extend/urlencoded.cjs +42 -5
- package/dist/cjs/plugin/extend/urlencoded.d.cts +1 -0
- package/dist/cjs/plugin/extend/web-socket.cjs +23 -10
- package/dist/cjs/plugin/extend/web-socket.d.cts +1 -0
- package/dist/cjs/plugin/plug.cjs +2 -2
- package/dist/cjs/plugin/plug.d.cts +6 -3
- package/dist/cjs/result/result.cjs +5 -5
- package/dist/cjs/server/server.cjs +18 -17
- package/dist/cjs/tools/tools.cjs +3 -3
- package/dist/esm/action/action.js +1 -1
- package/dist/esm/bin/gen-list/bin.js +4 -4
- package/dist/esm/bin/gen-list/index.js +1 -1
- package/dist/esm/bin/gen-test/bin.js +4 -4
- package/dist/esm/bin/gen-test/index.js +1 -1
- package/dist/esm/bin/gen-type/addition.d.ts +1 -1
- package/dist/esm/bin/gen-type/bin.js +4 -4
- package/dist/esm/bin/gen-type/index.js +1 -1
- package/dist/esm/{chunk-N4NY37XI.js → chunk-43GZE5YL.js} +2 -2
- package/dist/esm/{chunk-KW3M3VXP.js → chunk-47T4ZLNQ.js} +3 -3
- package/dist/esm/{chunk-B6PEMS6O.js → chunk-5WR5VNYH.js} +9 -9
- package/dist/esm/{chunk-3DVNMDUP.js → chunk-64WWIZ43.js} +24 -24
- package/dist/esm/{chunk-EDWEBXKF.js → chunk-BVLGIDYF.js} +2 -2
- package/dist/esm/{chunk-PKE7OYIU.js → chunk-F6MKRRVF.js} +3 -3
- package/dist/esm/{chunk-MXNVJRJT.js → chunk-F7TZXXFE.js} +24 -24
- package/dist/esm/{chunk-2MN4G2DG.js → chunk-FDDCLNUD.js} +1 -1
- package/dist/esm/chunk-GAC4ETIB.js +64 -0
- package/dist/esm/{chunk-KZPZVZ2B.js → chunk-M52TXG2M.js} +11 -4
- package/dist/esm/{chunk-QQG5MY3H.js → chunk-M7QXZWBP.js} +5 -5
- package/dist/esm/{chunk-25X7QZ6T.js → chunk-N7TPWCQ5.js} +1 -1
- package/dist/esm/{chunk-43FMPMYJ.js → chunk-PVCULVI3.js} +2 -2
- package/dist/esm/{chunk-ES4NZ4EM.js → chunk-PVE5VI5K.js} +3 -3
- package/dist/esm/{chunk-BEJF4KW3.js → chunk-R3PAE6XG.js} +18 -17
- package/dist/esm/{chunk-UABF4235.js → chunk-WIZEBP6C.js} +24 -24
- package/dist/esm/global/global.d.ts +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +13 -13
- package/dist/esm/interface/extend/json-base.js +3 -3
- package/dist/esm/interface/extend/json-wrap.js +3 -3
- package/dist/esm/interface/interface-test.js +1 -1
- package/dist/esm/plugin/extend/chinese-path.d.ts +1 -1
- package/dist/esm/plugin/extend/chinese-path.js +2 -2
- package/dist/esm/plugin/extend/custom-data.js +2 -2
- package/dist/esm/plugin/extend/json.js +3 -3
- package/dist/esm/plugin/extend/urlencoded.d.ts +1 -0
- package/dist/esm/plugin/extend/urlencoded.js +4 -2
- package/dist/esm/plugin/extend/web-socket.d.ts +1 -0
- package/dist/esm/plugin/extend/web-socket.js +2 -2
- package/dist/esm/plugin/plug.d.ts +6 -3
- package/dist/esm/plugin/plug.js +1 -1
- package/dist/esm/result/result.js +2 -2
- package/dist/esm/server/server.js +1 -1
- package/dist/esm/tools/tools.js +1 -1
- package/package.json +2 -2
- package/dist/esm/chunk-6IXXYBXG.js +0 -51
|
@@ -35,7 +35,7 @@ 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
37
|
function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
|
|
38
|
-
for (
|
|
38
|
+
for (let statement of \u6E90\u6587\u4EF6.statements) {
|
|
39
39
|
if (import_typescript.default.isExportAssignment(statement) && statement.isExportEquals === void 0) {
|
|
40
40
|
return true;
|
|
41
41
|
}
|
|
@@ -52,34 +52,34 @@ function \u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F
|
|
|
52
52
|
return import_node_path.default.relative(import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84), a.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
|
|
53
53
|
}
|
|
54
54
|
async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
|
|
55
|
-
|
|
55
|
+
let log = new import_ts_log.Log("@lsby:net-core").extend("gen-list");
|
|
56
56
|
await log.debug("\u5F00\u59CB\u751F\u6210\u63A5\u53E3\u5217\u8868...");
|
|
57
57
|
await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
|
|
58
58
|
await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
|
|
59
59
|
await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
|
|
60
|
-
|
|
60
|
+
let tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
|
|
61
61
|
if (tsconfig\u5185\u5BB9.error) {
|
|
62
62
|
await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json: " + tsconfig\u5185\u5BB9.error.messageText);
|
|
63
63
|
throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
|
|
64
64
|
}
|
|
65
|
-
|
|
65
|
+
let \u89E3\u6790\u540E\u7684tsconfig = import_typescript.default.parseJsonConfigFileContent(tsconfig\u5185\u5BB9.config, import_typescript.default.sys, import_node_path.default.resolve(tsconfig\u8DEF\u5F84, ".."));
|
|
66
66
|
await log.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
let \u9879\u76EE\u4E3B\u673A = import_typescript.default.createCompilerHost(\u89E3\u6790\u540E\u7684tsconfig.options);
|
|
68
|
+
let \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
|
|
69
69
|
await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
let \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
|
|
71
|
+
let \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF6) => {
|
|
72
|
+
let \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF6.fileName);
|
|
73
73
|
if (!\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84))
|
|
74
74
|
return false;
|
|
75
|
-
|
|
75
|
+
let \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6);
|
|
76
76
|
if (!\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA)
|
|
77
77
|
return false;
|
|
78
78
|
return true;
|
|
79
79
|
});
|
|
80
80
|
await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
let \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
|
|
82
|
+
let \u4EE3\u7801 = [
|
|
83
83
|
`import { \u4EFB\u610F\u63A5\u53E3 } from '@lsby/net-core'`,
|
|
84
84
|
`import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
|
|
85
85
|
``,
|
|
@@ -91,13 +91,13 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
91
91
|
import_typescript.default.ScriptTarget.Latest
|
|
92
92
|
);
|
|
93
93
|
});
|
|
94
|
-
|
|
94
|
+
let \u65B0\u9879\u76EE = import_typescript.default.createProgram({
|
|
95
95
|
rootNames: [...\u9879\u76EE.getSourceFiles().map((a) => a.fileName), ...\u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.map((a) => a.fileName)],
|
|
96
96
|
options: \u89E3\u6790\u540E\u7684tsconfig.options,
|
|
97
97
|
host: {
|
|
98
98
|
...\u9879\u76EE\u4E3B\u673A,
|
|
99
99
|
getSourceFile: (filename) => {
|
|
100
|
-
|
|
100
|
+
let \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName == filename);
|
|
101
101
|
if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 != null)
|
|
102
102
|
return \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6;
|
|
103
103
|
return \u9879\u76EE.getSourceFile(filename);
|
|
@@ -105,34 +105,34 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
105
105
|
},
|
|
106
106
|
oldProgram: \u9879\u76EE
|
|
107
107
|
});
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
for (
|
|
111
|
-
|
|
108
|
+
let \u7C7B\u578B\u68C0\u67E5\u5668 = \u65B0\u9879\u76EE.getTypeChecker();
|
|
109
|
+
let \u68C0\u67E5\u7ED3\u679C = [];
|
|
110
|
+
for (let \u6E90\u6587\u4EF6 of \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC) {
|
|
111
|
+
let \u7ED3\u679C = false;
|
|
112
112
|
import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (node) => {
|
|
113
113
|
if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "\u8BA1\u7B97\u7ED3\u679C") {
|
|
114
|
-
|
|
115
|
-
|
|
114
|
+
let type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
|
|
115
|
+
let \u6587\u672C\u7ED3\u679C = \u7C7B\u578B\u68C0\u67E5\u5668.typeToString(type);
|
|
116
116
|
if (\u6587\u672C\u7ED3\u679C == "true")
|
|
117
117
|
\u7ED3\u679C = true;
|
|
118
118
|
}
|
|
119
119
|
});
|
|
120
120
|
\u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
|
|
121
121
|
}
|
|
122
|
-
|
|
122
|
+
let \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);
|
|
123
123
|
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u5B9E\u73B0`);
|
|
124
|
-
|
|
124
|
+
let \u6700\u7EC8\u4EE3\u7801 = [
|
|
125
125
|
`import { \u4EFB\u610F\u63A5\u53E3 } from '@lsby/net-core'`,
|
|
126
126
|
"",
|
|
127
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)}'`),
|
|
128
128
|
"",
|
|
129
|
-
`export
|
|
129
|
+
`export let interfaceList: \u4EFB\u610F\u63A5\u53E3[] = [`,
|
|
130
130
|
...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => ` ${a},`),
|
|
131
131
|
`]`,
|
|
132
132
|
""
|
|
133
133
|
];
|
|
134
134
|
await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
|
|
135
|
-
|
|
135
|
+
let \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
|
|
136
136
|
if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
|
|
137
137
|
import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
|
|
138
138
|
import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
|
|
@@ -142,9 +142,9 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
142
142
|
// src/bin/gen-list/bin.ts
|
|
143
143
|
var program = new import_commander.Command();
|
|
144
144
|
program.name("\u751F\u6210\u6D4B\u8BD5\u6587\u4EF6").argument("<tsconfigPath>", "tsconfig\u6587\u4EF6\u8DEF\u5F84").argument("<interfaceFolderPath>", "\u63A5\u53E3\u6587\u4EF6\u5939\u8DEF\u5F84").argument("<outFilePath>", "\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84").action(async (tsconfigPath, interfaceFolderPath, outFilePath) => {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
145
|
+
let absoluteTsconfigPath = import_node_path2.default.resolve(tsconfigPath);
|
|
146
|
+
let absoluteApiFolderPath = import_node_path2.default.resolve(interfaceFolderPath);
|
|
147
|
+
let absoluteOutputPath = import_node_path2.default.resolve(outFilePath);
|
|
148
148
|
await main(absoluteTsconfigPath, absoluteApiFolderPath, absoluteOutputPath);
|
|
149
149
|
});
|
|
150
150
|
program.parse(process.argv);
|
|
@@ -40,7 +40,7 @@ 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
42
|
function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
|
|
43
|
-
for (
|
|
43
|
+
for (let statement of \u6E90\u6587\u4EF6.statements) {
|
|
44
44
|
if (import_typescript.default.isExportAssignment(statement) && statement.isExportEquals === void 0) {
|
|
45
45
|
return true;
|
|
46
46
|
}
|
|
@@ -57,34 +57,34 @@ function \u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F
|
|
|
57
57
|
return import_node_path.default.relative(import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84), a.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
|
|
58
58
|
}
|
|
59
59
|
async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
|
|
60
|
-
|
|
60
|
+
let log = new import_ts_log.Log("@lsby:net-core").extend("gen-list");
|
|
61
61
|
await log.debug("\u5F00\u59CB\u751F\u6210\u63A5\u53E3\u5217\u8868...");
|
|
62
62
|
await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
|
|
63
63
|
await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
|
|
64
64
|
await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
|
|
65
|
-
|
|
65
|
+
let tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
|
|
66
66
|
if (tsconfig\u5185\u5BB9.error) {
|
|
67
67
|
await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json: " + tsconfig\u5185\u5BB9.error.messageText);
|
|
68
68
|
throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
|
|
69
69
|
}
|
|
70
|
-
|
|
70
|
+
let \u89E3\u6790\u540E\u7684tsconfig = import_typescript.default.parseJsonConfigFileContent(tsconfig\u5185\u5BB9.config, import_typescript.default.sys, import_node_path.default.resolve(tsconfig\u8DEF\u5F84, ".."));
|
|
71
71
|
await log.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
let \u9879\u76EE\u4E3B\u673A = import_typescript.default.createCompilerHost(\u89E3\u6790\u540E\u7684tsconfig.options);
|
|
73
|
+
let \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
|
|
74
74
|
await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
let \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
|
|
76
|
+
let \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF6) => {
|
|
77
|
+
let \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF6.fileName);
|
|
78
78
|
if (!\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84))
|
|
79
79
|
return false;
|
|
80
|
-
|
|
80
|
+
let \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6);
|
|
81
81
|
if (!\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA)
|
|
82
82
|
return false;
|
|
83
83
|
return true;
|
|
84
84
|
});
|
|
85
85
|
await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
let \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
|
|
87
|
+
let \u4EE3\u7801 = [
|
|
88
88
|
`import { \u4EFB\u610F\u63A5\u53E3 } from '@lsby/net-core'`,
|
|
89
89
|
`import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
|
|
90
90
|
``,
|
|
@@ -96,13 +96,13 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
96
96
|
import_typescript.default.ScriptTarget.Latest
|
|
97
97
|
);
|
|
98
98
|
});
|
|
99
|
-
|
|
99
|
+
let \u65B0\u9879\u76EE = import_typescript.default.createProgram({
|
|
100
100
|
rootNames: [...\u9879\u76EE.getSourceFiles().map((a) => a.fileName), ...\u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.map((a) => a.fileName)],
|
|
101
101
|
options: \u89E3\u6790\u540E\u7684tsconfig.options,
|
|
102
102
|
host: {
|
|
103
103
|
...\u9879\u76EE\u4E3B\u673A,
|
|
104
104
|
getSourceFile: (filename) => {
|
|
105
|
-
|
|
105
|
+
let \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName == filename);
|
|
106
106
|
if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 != null)
|
|
107
107
|
return \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6;
|
|
108
108
|
return \u9879\u76EE.getSourceFile(filename);
|
|
@@ -110,34 +110,34 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
110
110
|
},
|
|
111
111
|
oldProgram: \u9879\u76EE
|
|
112
112
|
});
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
for (
|
|
116
|
-
|
|
113
|
+
let \u7C7B\u578B\u68C0\u67E5\u5668 = \u65B0\u9879\u76EE.getTypeChecker();
|
|
114
|
+
let \u68C0\u67E5\u7ED3\u679C = [];
|
|
115
|
+
for (let \u6E90\u6587\u4EF6 of \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC) {
|
|
116
|
+
let \u7ED3\u679C = false;
|
|
117
117
|
import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (node) => {
|
|
118
118
|
if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "\u8BA1\u7B97\u7ED3\u679C") {
|
|
119
|
-
|
|
120
|
-
|
|
119
|
+
let type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
|
|
120
|
+
let \u6587\u672C\u7ED3\u679C = \u7C7B\u578B\u68C0\u67E5\u5668.typeToString(type);
|
|
121
121
|
if (\u6587\u672C\u7ED3\u679C == "true")
|
|
122
122
|
\u7ED3\u679C = true;
|
|
123
123
|
}
|
|
124
124
|
});
|
|
125
125
|
\u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
|
|
126
126
|
}
|
|
127
|
-
|
|
127
|
+
let \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);
|
|
128
128
|
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u5B9E\u73B0`);
|
|
129
|
-
|
|
129
|
+
let \u6700\u7EC8\u4EE3\u7801 = [
|
|
130
130
|
`import { \u4EFB\u610F\u63A5\u53E3 } from '@lsby/net-core'`,
|
|
131
131
|
"",
|
|
132
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)}'`),
|
|
133
133
|
"",
|
|
134
|
-
`export
|
|
134
|
+
`export let interfaceList: \u4EFB\u610F\u63A5\u53E3[] = [`,
|
|
135
135
|
...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => ` ${a},`),
|
|
136
136
|
`]`,
|
|
137
137
|
""
|
|
138
138
|
];
|
|
139
139
|
await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
|
|
140
|
-
|
|
140
|
+
let \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
|
|
141
141
|
if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
|
|
142
142
|
import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
|
|
143
143
|
import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
|
|
@@ -35,7 +35,7 @@ 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
37
|
function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
|
|
38
|
-
for (
|
|
38
|
+
for (let statement of \u6E90\u6587\u4EF6.statements) {
|
|
39
39
|
if (import_typescript.default.isExportAssignment(statement) && statement.isExportEquals === void 0) {
|
|
40
40
|
return true;
|
|
41
41
|
}
|
|
@@ -52,38 +52,38 @@ function \u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F
|
|
|
52
52
|
return import_node_path.default.relative(import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84), a.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
|
|
53
53
|
}
|
|
54
54
|
async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F) {
|
|
55
|
-
|
|
55
|
+
let log = new import_ts_log.Log("@lsby:net-core").extend("gen-test");
|
|
56
56
|
await log.debug("\u5F00\u59CB\u751F\u6210\u6D4B\u8BD5...");
|
|
57
57
|
await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
|
|
58
58
|
await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
|
|
59
59
|
await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
|
|
60
60
|
await log.debug(`\u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F: ${\u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F}`);
|
|
61
|
-
|
|
61
|
+
let tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
|
|
62
62
|
if (tsconfig\u5185\u5BB9.error) {
|
|
63
63
|
await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json", tsconfig\u5185\u5BB9.error);
|
|
64
64
|
throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
|
|
65
65
|
}
|
|
66
|
-
|
|
66
|
+
let \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
67
|
await log.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
let \u9879\u76EE\u4E3B\u673A = import_typescript.default.createCompilerHost(\u89E3\u6790\u540E\u7684tsconfig.options);
|
|
69
|
+
let \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
|
|
70
70
|
await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
let \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
|
|
72
|
+
let \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF6) => {
|
|
73
|
+
let \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF6.fileName);
|
|
74
74
|
if (!\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84))
|
|
75
75
|
return false;
|
|
76
|
-
|
|
76
|
+
let \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6);
|
|
77
77
|
if (!\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA)
|
|
78
78
|
return false;
|
|
79
|
-
|
|
79
|
+
let \u7B26\u5408\u8FC7\u6EE4\u8868\u8FBE\u5F0F = new RegExp(\u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F || ".*").test(\u6E90\u6587\u4EF6\u8DEF\u5F84);
|
|
80
80
|
if (!\u7B26\u5408\u8FC7\u6EE4\u8868\u8FBE\u5F0F)
|
|
81
81
|
return false;
|
|
82
82
|
return true;
|
|
83
83
|
});
|
|
84
84
|
await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
let \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
|
|
86
|
+
let \u4EE3\u7801 = [
|
|
87
87
|
`import { \u63A5\u53E3\u6D4B\u8BD5 } from '@lsby/net-core'`,
|
|
88
88
|
`import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
|
|
89
89
|
``,
|
|
@@ -95,13 +95,13 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
95
95
|
import_typescript.default.ScriptTarget.Latest
|
|
96
96
|
);
|
|
97
97
|
});
|
|
98
|
-
|
|
98
|
+
let \u65B0\u9879\u76EE = import_typescript.default.createProgram({
|
|
99
99
|
rootNames: [...\u9879\u76EE.getSourceFiles().map((a) => a.fileName), ...\u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.map((a) => a.fileName)],
|
|
100
100
|
options: \u89E3\u6790\u540E\u7684tsconfig.options,
|
|
101
101
|
host: {
|
|
102
102
|
...\u9879\u76EE\u4E3B\u673A,
|
|
103
103
|
getSourceFile: (filename) => {
|
|
104
|
-
|
|
104
|
+
let \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName == filename);
|
|
105
105
|
if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 != null)
|
|
106
106
|
return \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6;
|
|
107
107
|
return \u9879\u76EE.getSourceFile(filename);
|
|
@@ -109,23 +109,23 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
109
109
|
},
|
|
110
110
|
oldProgram: \u9879\u76EE
|
|
111
111
|
});
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
for (
|
|
115
|
-
|
|
112
|
+
let \u7C7B\u578B\u68C0\u67E5\u5668 = \u65B0\u9879\u76EE.getTypeChecker();
|
|
113
|
+
let \u68C0\u67E5\u7ED3\u679C = [];
|
|
114
|
+
for (let \u6E90\u6587\u4EF6 of \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC) {
|
|
115
|
+
let \u7ED3\u679C = false;
|
|
116
116
|
import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (node) => {
|
|
117
117
|
if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "\u8BA1\u7B97\u7ED3\u679C") {
|
|
118
|
-
|
|
119
|
-
|
|
118
|
+
let type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
|
|
119
|
+
let \u6587\u672C\u7ED3\u679C = \u7C7B\u578B\u68C0\u67E5\u5668.typeToString(type);
|
|
120
120
|
if (\u6587\u672C\u7ED3\u679C == "true")
|
|
121
121
|
\u7ED3\u679C = true;
|
|
122
122
|
}
|
|
123
123
|
});
|
|
124
124
|
\u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
|
|
125
125
|
}
|
|
126
|
-
|
|
126
|
+
let \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);
|
|
127
127
|
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u6D4B\u8BD5\u7528\u4F8B`);
|
|
128
|
-
|
|
128
|
+
let \u6700\u7EC8\u4EE3\u7801 = [
|
|
129
129
|
"import { test } from 'vitest'",
|
|
130
130
|
"import './unit-test-prefix'",
|
|
131
131
|
"",
|
|
@@ -135,7 +135,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
135
135
|
""
|
|
136
136
|
];
|
|
137
137
|
await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
|
|
138
|
-
|
|
138
|
+
let \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
|
|
139
139
|
if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
|
|
140
140
|
import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
|
|
141
141
|
import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
|
|
@@ -145,9 +145,9 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
145
145
|
// src/bin/gen-test/bin.ts
|
|
146
146
|
var program = new import_commander.Command();
|
|
147
147
|
program.name("\u751F\u6210\u6D4B\u8BD5\u6587\u4EF6").argument("<tsconfigPath>", "tsconfig\u6587\u4EF6\u8DEF\u5F84").argument("<interfaceFolderPath>", "\u63A5\u53E3\u6587\u4EF6\u5939\u8DEF\u5F84").argument("<outFilePath>", "\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84").argument("<filter>", "\u8FC7\u6EE4\u5668(\u6B63\u5219)").action(async (tsconfigPath, interfaceFolderPath, outFilePath, filter) => {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
148
|
+
let absoluteTsconfigPath = import_node_path2.default.resolve(tsconfigPath);
|
|
149
|
+
let absoluteApiFolderPath = import_node_path2.default.resolve(interfaceFolderPath);
|
|
150
|
+
let absoluteOutputPath = import_node_path2.default.resolve(outFilePath);
|
|
151
151
|
await main(absoluteTsconfigPath, absoluteApiFolderPath, absoluteOutputPath, filter);
|
|
152
152
|
});
|
|
153
153
|
program.parse(process.argv);
|
|
@@ -40,7 +40,7 @@ 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
42
|
function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
|
|
43
|
-
for (
|
|
43
|
+
for (let statement of \u6E90\u6587\u4EF6.statements) {
|
|
44
44
|
if (import_typescript.default.isExportAssignment(statement) && statement.isExportEquals === void 0) {
|
|
45
45
|
return true;
|
|
46
46
|
}
|
|
@@ -57,38 +57,38 @@ function \u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F
|
|
|
57
57
|
return import_node_path.default.relative(import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84), a.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
|
|
58
58
|
}
|
|
59
59
|
async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F) {
|
|
60
|
-
|
|
60
|
+
let log = new import_ts_log.Log("@lsby:net-core").extend("gen-test");
|
|
61
61
|
await log.debug("\u5F00\u59CB\u751F\u6210\u6D4B\u8BD5...");
|
|
62
62
|
await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
|
|
63
63
|
await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
|
|
64
64
|
await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
|
|
65
65
|
await log.debug(`\u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F: ${\u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F}`);
|
|
66
|
-
|
|
66
|
+
let tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
|
|
67
67
|
if (tsconfig\u5185\u5BB9.error) {
|
|
68
68
|
await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json", tsconfig\u5185\u5BB9.error);
|
|
69
69
|
throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
|
|
70
70
|
}
|
|
71
|
-
|
|
71
|
+
let \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
72
|
await log.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
let \u9879\u76EE\u4E3B\u673A = import_typescript.default.createCompilerHost(\u89E3\u6790\u540E\u7684tsconfig.options);
|
|
74
|
+
let \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
|
|
75
75
|
await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
let \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
|
|
77
|
+
let \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF6) => {
|
|
78
|
+
let \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF6.fileName);
|
|
79
79
|
if (!\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84))
|
|
80
80
|
return false;
|
|
81
|
-
|
|
81
|
+
let \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6);
|
|
82
82
|
if (!\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA)
|
|
83
83
|
return false;
|
|
84
|
-
|
|
84
|
+
let \u7B26\u5408\u8FC7\u6EE4\u8868\u8FBE\u5F0F = new RegExp(\u6587\u4EF6\u8FC7\u6EE4\u8868\u8FBE\u5F0F || ".*").test(\u6E90\u6587\u4EF6\u8DEF\u5F84);
|
|
85
85
|
if (!\u7B26\u5408\u8FC7\u6EE4\u8868\u8FBE\u5F0F)
|
|
86
86
|
return false;
|
|
87
87
|
return true;
|
|
88
88
|
});
|
|
89
89
|
await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
let \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
|
|
91
|
+
let \u4EE3\u7801 = [
|
|
92
92
|
`import { \u63A5\u53E3\u6D4B\u8BD5 } from '@lsby/net-core'`,
|
|
93
93
|
`import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
|
|
94
94
|
``,
|
|
@@ -100,13 +100,13 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
100
100
|
import_typescript.default.ScriptTarget.Latest
|
|
101
101
|
);
|
|
102
102
|
});
|
|
103
|
-
|
|
103
|
+
let \u65B0\u9879\u76EE = import_typescript.default.createProgram({
|
|
104
104
|
rootNames: [...\u9879\u76EE.getSourceFiles().map((a) => a.fileName), ...\u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.map((a) => a.fileName)],
|
|
105
105
|
options: \u89E3\u6790\u540E\u7684tsconfig.options,
|
|
106
106
|
host: {
|
|
107
107
|
...\u9879\u76EE\u4E3B\u673A,
|
|
108
108
|
getSourceFile: (filename) => {
|
|
109
|
-
|
|
109
|
+
let \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName == filename);
|
|
110
110
|
if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 != null)
|
|
111
111
|
return \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6;
|
|
112
112
|
return \u9879\u76EE.getSourceFile(filename);
|
|
@@ -114,23 +114,23 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
114
114
|
},
|
|
115
115
|
oldProgram: \u9879\u76EE
|
|
116
116
|
});
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
for (
|
|
120
|
-
|
|
117
|
+
let \u7C7B\u578B\u68C0\u67E5\u5668 = \u65B0\u9879\u76EE.getTypeChecker();
|
|
118
|
+
let \u68C0\u67E5\u7ED3\u679C = [];
|
|
119
|
+
for (let \u6E90\u6587\u4EF6 of \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC) {
|
|
120
|
+
let \u7ED3\u679C = false;
|
|
121
121
|
import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (node) => {
|
|
122
122
|
if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "\u8BA1\u7B97\u7ED3\u679C") {
|
|
123
|
-
|
|
124
|
-
|
|
123
|
+
let type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
|
|
124
|
+
let \u6587\u672C\u7ED3\u679C = \u7C7B\u578B\u68C0\u67E5\u5668.typeToString(type);
|
|
125
125
|
if (\u6587\u672C\u7ED3\u679C == "true")
|
|
126
126
|
\u7ED3\u679C = true;
|
|
127
127
|
}
|
|
128
128
|
});
|
|
129
129
|
\u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
|
|
130
130
|
}
|
|
131
|
-
|
|
131
|
+
let \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);
|
|
132
132
|
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u6D4B\u8BD5\u7528\u4F8B`);
|
|
133
|
-
|
|
133
|
+
let \u6700\u7EC8\u4EE3\u7801 = [
|
|
134
134
|
"import { test } from 'vitest'",
|
|
135
135
|
"import './unit-test-prefix'",
|
|
136
136
|
"",
|
|
@@ -140,7 +140,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
140
140
|
""
|
|
141
141
|
];
|
|
142
142
|
await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
|
|
143
|
-
|
|
143
|
+
let \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
|
|
144
144
|
if (!import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939))
|
|
145
145
|
import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
|
|
146
146
|
import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
|