@lsby/net-core 0.4.0-beta.2 → 0.4.0-beta.3
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 +15 -14
- package/dist/bin/gen-list/index.cjs +13 -12
- package/dist/bin/gen-table-list/bin.cjs +157 -0
- package/dist/bin/gen-table-list/bin.d.cts +1 -0
- package/dist/bin/gen-table-list/index.cjs +156 -0
- package/dist/bin/gen-table-list/index.d.cts +3 -0
- package/dist/bin/gen-table-type/addition.cjs +58 -0
- package/dist/bin/gen-table-type/addition.d.cts +3 -0
- package/dist/bin/gen-table-type/bin.cjs +208 -0
- package/dist/bin/gen-table-type/bin.d.cts +1 -0
- package/dist/bin/gen-table-type/index.cjs +207 -0
- package/dist/bin/gen-table-type/index.d.cts +3 -0
- package/dist/bin/gen-test/bin.cjs +16 -15
- package/dist/bin/gen-test/index.cjs +15 -14
- package/dist/bin/gen-type/bin.cjs +13 -12
- package/dist/bin/gen-type/index.cjs +12 -11
- package/dist/cjs/action/action.cjs +2 -2
- package/dist/cjs/bin/gen-list/bin.cjs +15 -14
- package/dist/cjs/bin/gen-list/index.cjs +13 -12
- package/dist/cjs/bin/gen-table-list/bin.cjs +157 -0
- package/dist/cjs/bin/gen-table-list/bin.d.cts +1 -0
- package/dist/cjs/bin/gen-table-list/index.cjs +156 -0
- package/dist/cjs/bin/gen-table-list/index.d.cts +3 -0
- package/dist/cjs/bin/gen-table-type/addition.cjs +58 -0
- package/dist/cjs/bin/gen-table-type/addition.d.cts +3 -0
- package/dist/cjs/bin/gen-table-type/bin.cjs +208 -0
- package/dist/cjs/bin/gen-table-type/bin.d.cts +1 -0
- package/dist/cjs/bin/gen-table-type/index.cjs +207 -0
- package/dist/cjs/bin/gen-table-type/index.d.cts +3 -0
- package/dist/cjs/bin/gen-test/bin.cjs +16 -15
- package/dist/cjs/bin/gen-test/index.cjs +15 -14
- package/dist/cjs/bin/gen-type/bin.cjs +13 -12
- package/dist/cjs/bin/gen-type/index.cjs +12 -11
- package/dist/cjs/global/global.cjs +2 -2
- package/dist/cjs/global/ws.cjs +2 -2
- package/dist/cjs/index.cjs +227 -87
- package/dist/cjs/index.d.cts +3 -2
- package/dist/cjs/interface/interface-base.d.cts +4 -4
- package/dist/cjs/interface/interface-logic.cjs +16 -10
- package/dist/cjs/interface/interface-logic.d.cts +34 -15
- package/dist/cjs/interface/interface-result.d.cts +2 -2
- package/dist/cjs/interface-table/interface-table.cjs +59 -0
- package/dist/cjs/interface-table/interface-table.d.cts +95 -0
- 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/custom-data.d.cts +1 -1
- package/dist/cjs/plugin/extend/json.cjs +5 -5
- package/dist/cjs/plugin/extend/urlencoded.cjs +4 -4
- package/dist/cjs/plugin/extend/web-socket.cjs +7 -7
- package/dist/cjs/plugin/extend/web-socket.d.cts +2 -2
- package/dist/cjs/plugin/plug.d.cts +1 -1
- package/dist/cjs/server/server.cjs +187 -68
- package/dist/cjs/server/server.d.cts +15 -2
- package/dist/cjs/tools/tools.cjs +1 -1
- package/dist/esm/action/action.js +1 -1
- package/dist/esm/bin/gen-list/bin.js +3 -3
- package/dist/esm/bin/gen-list/index.js +1 -1
- package/dist/esm/bin/gen-table-list/bin.d.ts +1 -0
- package/dist/esm/bin/gen-table-list/bin.js +16 -0
- package/dist/esm/bin/gen-table-list/index.d.ts +3 -0
- package/dist/esm/bin/gen-table-list/index.js +6 -0
- package/dist/esm/bin/gen-table-type/addition.d.ts +3 -0
- package/dist/esm/bin/gen-table-type/addition.js +6 -0
- package/dist/esm/bin/gen-table-type/bin.d.ts +1 -0
- package/dist/esm/bin/gen-table-type/bin.js +17 -0
- package/dist/esm/bin/gen-table-type/index.d.ts +3 -0
- package/dist/esm/bin/gen-table-type/index.js +7 -0
- package/dist/esm/bin/gen-test/bin.js +2 -2
- package/dist/esm/bin/gen-test/index.js +1 -1
- package/dist/esm/bin/gen-type/bin.js +2 -2
- package/dist/esm/bin/gen-type/index.js +1 -1
- package/dist/esm/{chunk-F7TZXXFE.js → chunk-2QVSQMI7.js} +13 -12
- package/dist/esm/{chunk-JX5MRJL6.js → chunk-43ZE4ZNH.js} +1 -1
- package/dist/esm/{chunk-5WR5VNYH.js → chunk-47ICFQXW.js} +2 -2
- package/dist/esm/{chunk-6AW5SSYA.js → chunk-6Y4UXWIN.js} +3 -3
- package/dist/esm/{chunk-GVIGQG5Y.js → chunk-7Y3YE4M5.js} +4 -4
- package/dist/esm/chunk-AAZFVBDH.js +144 -0
- package/dist/esm/chunk-CSKAQDJA.js +204 -0
- package/dist/esm/{chunk-AVB7KPZC.js → chunk-CSOONB3X.js} +6 -6
- package/dist/esm/{chunk-BC6IISWS.js → chunk-DGDZQLIJ.js} +1 -1
- package/dist/esm/{chunk-BOCS6H24.js → chunk-ELSBYQPF.js} +12 -11
- package/dist/esm/{chunk-EAVNASDB.js → chunk-FIQSBTYJ.js} +2 -2
- package/dist/esm/{chunk-PVE5VI5K.js → chunk-IGHJCQ2S.js} +1 -1
- package/dist/esm/chunk-IY26L2UM.js +122 -0
- package/dist/esm/{chunk-EZ7OJFSQ.js → chunk-QGSMHYVT.js} +15 -9
- package/dist/esm/chunk-RG6U5R37.js +34 -0
- package/dist/esm/chunk-XICLHBEA.js +34 -0
- package/dist/esm/{chunk-WIZEBP6C.js → chunk-YATLUSDZ.js} +15 -14
- package/dist/esm/global/global.js +2 -2
- package/dist/esm/global/ws.js +1 -1
- package/dist/esm/index.d.ts +3 -2
- package/dist/esm/index.js +16 -10
- package/dist/esm/interface/interface-base.d.ts +4 -4
- package/dist/esm/interface/interface-logic.d.ts +34 -15
- package/dist/esm/interface/interface-logic.js +3 -3
- package/dist/esm/interface/interface-result.d.ts +2 -2
- package/dist/esm/interface-table/interface-table.d.ts +95 -0
- package/dist/esm/interface-table/interface-table.js +8 -0
- package/dist/esm/plugin/extend/chinese-path.d.ts +1 -1
- package/dist/esm/plugin/extend/custom-data.d.ts +1 -1
- package/dist/esm/plugin/extend/custom-data.js +3 -3
- package/dist/esm/plugin/extend/json.js +4 -4
- package/dist/esm/plugin/extend/urlencoded.js +3 -3
- package/dist/esm/plugin/extend/web-socket.d.ts +2 -2
- package/dist/esm/plugin/extend/web-socket.js +3 -3
- package/dist/esm/plugin/plug.d.ts +1 -1
- package/dist/esm/server/server.d.ts +15 -2
- package/dist/esm/server/server.js +5 -4
- package/dist/esm/tools/tools.js +1 -1
- package/package.json +14 -4
- package/dist/esm/chunk-3ERQ6GCK.js +0 -101
|
@@ -24,19 +24,19 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
24
24
|
));
|
|
25
25
|
|
|
26
26
|
// src/bin/gen-list/bin.ts
|
|
27
|
-
var import_node_path2 = __toESM(require("path"), 1);
|
|
28
27
|
var import_commander = require("commander");
|
|
28
|
+
var import_node_path2 = __toESM(require("path"), 1);
|
|
29
29
|
|
|
30
30
|
// src/bin/gen-list/index.ts
|
|
31
|
+
var import_ts_log = require("@lsby/ts-log");
|
|
32
|
+
var import_lodash = __toESM(require("lodash"), 1);
|
|
31
33
|
var import_node_crypto = require("crypto");
|
|
32
34
|
var import_node_fs = __toESM(require("fs"), 1);
|
|
33
35
|
var import_node_path = __toESM(require("path"), 1);
|
|
34
|
-
var import_lodash = __toESM(require("lodash"), 1);
|
|
35
36
|
var import_typescript = __toESM(require("typescript"), 1);
|
|
36
|
-
var import_ts_log = require("@lsby/ts-log");
|
|
37
37
|
function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
|
|
38
38
|
for (let statement of \u6E90\u6587\u4EF6.statements) {
|
|
39
|
-
if (import_typescript.default.isExportAssignment(statement) && statement.isExportEquals ===
|
|
39
|
+
if (import_typescript.default.isExportAssignment(statement) && (statement.isExportEquals ?? null) === null) {
|
|
40
40
|
return true;
|
|
41
41
|
}
|
|
42
42
|
}
|
|
@@ -58,8 +58,9 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
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
|
-
|
|
62
|
-
|
|
61
|
+
let tsconfig\u5185\u5BB9\u9519\u8BEF = tsconfig\u5185\u5BB9.error ?? null;
|
|
62
|
+
if (tsconfig\u5185\u5BB9\u9519\u8BEF !== null) {
|
|
63
|
+
await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json: " + tsconfig\u5185\u5BB9\u9519\u8BEF.messageText);
|
|
63
64
|
throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
|
|
64
65
|
}
|
|
65
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, ".."));
|
|
@@ -70,10 +71,10 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
70
71
|
let \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
|
|
71
72
|
let \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF6) => {
|
|
72
73
|
let \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF6.fileName);
|
|
73
|
-
if (
|
|
74
|
+
if (\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84) === false)
|
|
74
75
|
return false;
|
|
75
76
|
let \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6);
|
|
76
|
-
if (
|
|
77
|
+
if (\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA === false)
|
|
77
78
|
return false;
|
|
78
79
|
return true;
|
|
79
80
|
});
|
|
@@ -97,8 +98,8 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
97
98
|
host: {
|
|
98
99
|
...\u9879\u76EE\u4E3B\u673A,
|
|
99
100
|
getSourceFile: (filename) => {
|
|
100
|
-
let \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName
|
|
101
|
-
if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6
|
|
101
|
+
let \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName === filename) ?? null;
|
|
102
|
+
if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 !== null)
|
|
102
103
|
return \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6;
|
|
103
104
|
return \u9879\u76EE.getSourceFile(filename);
|
|
104
105
|
}
|
|
@@ -113,13 +114,13 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
113
114
|
if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "\u8BA1\u7B97\u7ED3\u679C") {
|
|
114
115
|
let type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
|
|
115
116
|
let \u6587\u672C\u7ED3\u679C = \u7C7B\u578B\u68C0\u67E5\u5668.typeToString(type);
|
|
116
|
-
if (\u6587\u672C\u7ED3\u679C
|
|
117
|
+
if (\u6587\u672C\u7ED3\u679C === "true")
|
|
117
118
|
\u7ED3\u679C = true;
|
|
118
119
|
}
|
|
119
120
|
});
|
|
120
121
|
\u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
|
|
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]
|
|
123
|
+
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] ?? null).filter((a) => a !== null);
|
|
123
124
|
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u5B9E\u73B0`);
|
|
124
125
|
let \u6700\u7EC8\u4EE3\u7801 = [
|
|
125
126
|
`import { \u4EFB\u610F\u63A5\u53E3 } from '@lsby/net-core'`,
|
|
@@ -133,7 +134,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
133
134
|
];
|
|
134
135
|
await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
|
|
135
136
|
let \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
|
|
136
|
-
if (
|
|
137
|
+
if (import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939) === false)
|
|
137
138
|
import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
|
|
138
139
|
import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
|
|
139
140
|
await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
|
|
@@ -141,7 +142,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
141
142
|
|
|
142
143
|
// src/bin/gen-list/bin.ts
|
|
143
144
|
var program = new import_commander.Command();
|
|
144
|
-
program.name("\u751F\u6210\
|
|
145
|
+
program.name("\u751F\u6210\u63A5\u53E3\u6587\u4EF6\u5217\u8868").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
|
let absoluteTsconfigPath = import_node_path2.default.resolve(tsconfigPath);
|
|
146
147
|
let absoluteApiFolderPath = import_node_path2.default.resolve(interfaceFolderPath);
|
|
147
148
|
let absoluteOutputPath = import_node_path2.default.resolve(outFilePath);
|
|
@@ -33,15 +33,15 @@ __export(gen_list_exports, {
|
|
|
33
33
|
main: () => main
|
|
34
34
|
});
|
|
35
35
|
module.exports = __toCommonJS(gen_list_exports);
|
|
36
|
+
var import_ts_log = require("@lsby/ts-log");
|
|
37
|
+
var import_lodash = __toESM(require("lodash"), 1);
|
|
36
38
|
var import_node_crypto = require("crypto");
|
|
37
39
|
var import_node_fs = __toESM(require("fs"), 1);
|
|
38
40
|
var import_node_path = __toESM(require("path"), 1);
|
|
39
|
-
var import_lodash = __toESM(require("lodash"), 1);
|
|
40
41
|
var import_typescript = __toESM(require("typescript"), 1);
|
|
41
|
-
var import_ts_log = require("@lsby/ts-log");
|
|
42
42
|
function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
|
|
43
43
|
for (let statement of \u6E90\u6587\u4EF6.statements) {
|
|
44
|
-
if (import_typescript.default.isExportAssignment(statement) && statement.isExportEquals ===
|
|
44
|
+
if (import_typescript.default.isExportAssignment(statement) && (statement.isExportEquals ?? null) === null) {
|
|
45
45
|
return true;
|
|
46
46
|
}
|
|
47
47
|
}
|
|
@@ -63,8 +63,9 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
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
|
-
|
|
67
|
-
|
|
66
|
+
let tsconfig\u5185\u5BB9\u9519\u8BEF = tsconfig\u5185\u5BB9.error ?? null;
|
|
67
|
+
if (tsconfig\u5185\u5BB9\u9519\u8BEF !== null) {
|
|
68
|
+
await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json: " + tsconfig\u5185\u5BB9\u9519\u8BEF.messageText);
|
|
68
69
|
throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
|
|
69
70
|
}
|
|
70
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, ".."));
|
|
@@ -75,10 +76,10 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
75
76
|
let \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
|
|
76
77
|
let \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF6) => {
|
|
77
78
|
let \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF6.fileName);
|
|
78
|
-
if (
|
|
79
|
+
if (\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84) === false)
|
|
79
80
|
return false;
|
|
80
81
|
let \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6);
|
|
81
|
-
if (
|
|
82
|
+
if (\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA === false)
|
|
82
83
|
return false;
|
|
83
84
|
return true;
|
|
84
85
|
});
|
|
@@ -102,8 +103,8 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
102
103
|
host: {
|
|
103
104
|
...\u9879\u76EE\u4E3B\u673A,
|
|
104
105
|
getSourceFile: (filename) => {
|
|
105
|
-
let \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName
|
|
106
|
-
if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6
|
|
106
|
+
let \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName === filename) ?? null;
|
|
107
|
+
if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 !== null)
|
|
107
108
|
return \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6;
|
|
108
109
|
return \u9879\u76EE.getSourceFile(filename);
|
|
109
110
|
}
|
|
@@ -118,13 +119,13 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
118
119
|
if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "\u8BA1\u7B97\u7ED3\u679C") {
|
|
119
120
|
let type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
|
|
120
121
|
let \u6587\u672C\u7ED3\u679C = \u7C7B\u578B\u68C0\u67E5\u5668.typeToString(type);
|
|
121
|
-
if (\u6587\u672C\u7ED3\u679C
|
|
122
|
+
if (\u6587\u672C\u7ED3\u679C === "true")
|
|
122
123
|
\u7ED3\u679C = true;
|
|
123
124
|
}
|
|
124
125
|
});
|
|
125
126
|
\u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
|
|
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]
|
|
128
|
+
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] ?? null).filter((a) => a !== null);
|
|
128
129
|
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u5B9E\u73B0`);
|
|
129
130
|
let \u6700\u7EC8\u4EE3\u7801 = [
|
|
130
131
|
`import { \u4EFB\u610F\u63A5\u53E3 } from '@lsby/net-core'`,
|
|
@@ -138,7 +139,7 @@ async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA
|
|
|
138
139
|
];
|
|
139
140
|
await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
|
|
140
141
|
let \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
|
|
141
|
-
if (
|
|
142
|
+
if (import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939) === false)
|
|
142
143
|
import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
|
|
143
144
|
import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
|
|
144
145
|
await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
18
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
19
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
20
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
21
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
22
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
23
|
+
mod
|
|
24
|
+
));
|
|
25
|
+
|
|
26
|
+
// src/bin/gen-table-list/bin.ts
|
|
27
|
+
var import_commander = require("commander");
|
|
28
|
+
var import_node_path2 = __toESM(require("path"), 1);
|
|
29
|
+
|
|
30
|
+
// src/bin/gen-table-list/index.ts
|
|
31
|
+
var import_ts_log = require("@lsby/ts-log");
|
|
32
|
+
var import_lodash = __toESM(require("lodash"), 1);
|
|
33
|
+
var import_node_crypto = require("crypto");
|
|
34
|
+
var import_node_fs = __toESM(require("fs"), 1);
|
|
35
|
+
var import_node_path = __toESM(require("path"), 1);
|
|
36
|
+
var import_typescript = __toESM(require("typescript"), 1);
|
|
37
|
+
function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
|
|
38
|
+
let \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = false;
|
|
39
|
+
import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (\u8282\u70B9) => {
|
|
40
|
+
if (import_typescript.default.isExportDeclaration(\u8282\u70B9)) {
|
|
41
|
+
let \u8282\u70B9\u5BFC\u51FA = \u8282\u70B9.exportClause ?? null;
|
|
42
|
+
if (\u8282\u70B9\u5BFC\u51FA !== null && import_typescript.default.isDefaultClause(\u8282\u70B9\u5BFC\u51FA) || import_typescript.default.isExportAssignment(\u8282\u70B9)) {
|
|
43
|
+
\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = true;
|
|
44
|
+
}
|
|
45
|
+
} else if (import_typescript.default.isClassDeclaration(\u8282\u70B9) && (\u8282\u70B9.modifiers?.some((mod) => mod.kind === import_typescript.default.SyntaxKind.DefaultKeyword) ?? false)) {
|
|
46
|
+
\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = true;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
return \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA;
|
|
50
|
+
}
|
|
51
|
+
function \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(\u5B57\u7B26\u4E32) {
|
|
52
|
+
return "_" + \u5B57\u7B26\u4E32.replace(/[ !\-!@#$%^&*()\[\]{}\\|;:'",.\/?]/g, "_");
|
|
53
|
+
}
|
|
54
|
+
function \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a) {
|
|
55
|
+
return \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(import_node_path.default.relative(import_node_path.default.dirname(tsconfig\u8DEF\u5F84), a.fileName));
|
|
56
|
+
}
|
|
57
|
+
function \u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a) {
|
|
58
|
+
return import_node_path.default.relative(import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84), a.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
|
|
59
|
+
}
|
|
60
|
+
async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
|
|
61
|
+
let log = new import_ts_log.Log("@lsby:net-core").extend("gen-table-list");
|
|
62
|
+
await log.debug("\u5F00\u59CB\u751F\u6210\u63A5\u53E3\u5217\u8868...");
|
|
63
|
+
await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
|
|
64
|
+
await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
|
|
65
|
+
await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
|
|
66
|
+
let tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
|
|
67
|
+
let tsconfig\u5185\u5BB9\u9519\u8BEF = tsconfig\u5185\u5BB9.error ?? null;
|
|
68
|
+
if (tsconfig\u5185\u5BB9\u9519\u8BEF !== null) {
|
|
69
|
+
await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json: " + tsconfig\u5185\u5BB9\u9519\u8BEF.messageText);
|
|
70
|
+
throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
|
|
71
|
+
}
|
|
72
|
+
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, ".."));
|
|
73
|
+
await log.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
|
|
74
|
+
let \u9879\u76EE\u4E3B\u673A = import_typescript.default.createCompilerHost(\u89E3\u6790\u540E\u7684tsconfig.options);
|
|
75
|
+
let \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
|
|
76
|
+
await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
|
|
77
|
+
let \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
|
|
78
|
+
let \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF6) => {
|
|
79
|
+
let \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF6.fileName);
|
|
80
|
+
if (\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84) === false)
|
|
81
|
+
return false;
|
|
82
|
+
let \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6);
|
|
83
|
+
if (\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA === false)
|
|
84
|
+
return false;
|
|
85
|
+
return true;
|
|
86
|
+
});
|
|
87
|
+
await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
|
|
88
|
+
let \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
|
|
89
|
+
let \u4EE3\u7801 = [
|
|
90
|
+
`import { \u4EFB\u610F\u865A\u62DF\u8868 } from '@lsby/net-core'`,
|
|
91
|
+
`import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
|
|
92
|
+
``,
|
|
93
|
+
`type \u8BA1\u7B97\u7ED3\u679C = \u5BFC\u5165 extends \u4EFB\u610F\u865A\u62DF\u8868 ? true : false`
|
|
94
|
+
];
|
|
95
|
+
return import_typescript.default.createSourceFile(
|
|
96
|
+
a.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
|
|
97
|
+
\u4EE3\u7801.join("\n"),
|
|
98
|
+
import_typescript.default.ScriptTarget.Latest
|
|
99
|
+
);
|
|
100
|
+
});
|
|
101
|
+
let \u65B0\u9879\u76EE = import_typescript.default.createProgram({
|
|
102
|
+
rootNames: [...\u9879\u76EE.getSourceFiles().map((a) => a.fileName), ...\u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.map((a) => a.fileName)],
|
|
103
|
+
options: \u89E3\u6790\u540E\u7684tsconfig.options,
|
|
104
|
+
host: {
|
|
105
|
+
...\u9879\u76EE\u4E3B\u673A,
|
|
106
|
+
getSourceFile: (filename) => {
|
|
107
|
+
let \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName === filename) ?? null;
|
|
108
|
+
if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 !== null)
|
|
109
|
+
return \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6;
|
|
110
|
+
return \u9879\u76EE.getSourceFile(filename);
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
oldProgram: \u9879\u76EE
|
|
114
|
+
});
|
|
115
|
+
let \u7C7B\u578B\u68C0\u67E5\u5668 = \u65B0\u9879\u76EE.getTypeChecker();
|
|
116
|
+
let \u68C0\u67E5\u7ED3\u679C = [];
|
|
117
|
+
for (let \u6E90\u6587\u4EF6 of \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC) {
|
|
118
|
+
let \u7ED3\u679C = false;
|
|
119
|
+
import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (node) => {
|
|
120
|
+
if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "\u8BA1\u7B97\u7ED3\u679C") {
|
|
121
|
+
let type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
|
|
122
|
+
let \u6587\u672C\u7ED3\u679C = \u7C7B\u578B\u68C0\u67E5\u5668.typeToString(type);
|
|
123
|
+
if (\u6587\u672C\u7ED3\u679C === "true")
|
|
124
|
+
\u7ED3\u679C = true;
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
\u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
|
|
128
|
+
}
|
|
129
|
+
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] ?? null).filter((a) => a !== null);
|
|
130
|
+
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u5B9E\u73B0`);
|
|
131
|
+
let \u6700\u7EC8\u4EE3\u7801 = [
|
|
132
|
+
`import { \u4EFB\u610F\u865A\u62DF\u8868 } from '@lsby/net-core'`,
|
|
133
|
+
"",
|
|
134
|
+
...\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)}'`),
|
|
135
|
+
"",
|
|
136
|
+
`export let interfaceTableList: { new (\u6784\u9020\u53C2\u6570: any): \u4EFB\u610F\u865A\u62DF\u8868; \u8D44\u6E90\u8DEF\u5F84: string }[] = [`,
|
|
137
|
+
...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => ` ${a},`),
|
|
138
|
+
`]`,
|
|
139
|
+
""
|
|
140
|
+
];
|
|
141
|
+
await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
|
|
142
|
+
let \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
|
|
143
|
+
if (import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939) === false)
|
|
144
|
+
import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
|
|
145
|
+
import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
|
|
146
|
+
await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// src/bin/gen-table-list/bin.ts
|
|
150
|
+
var program = new import_commander.Command();
|
|
151
|
+
program.name("\u751F\u6210\u8868\u63A5\u53E3\u6587\u4EF6\u5217\u8868").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) => {
|
|
152
|
+
let absoluteTsconfigPath = import_node_path2.default.resolve(tsconfigPath);
|
|
153
|
+
let absoluteApiFolderPath = import_node_path2.default.resolve(interfaceFolderPath);
|
|
154
|
+
let absoluteOutputPath = import_node_path2.default.resolve(outFilePath);
|
|
155
|
+
await main(absoluteTsconfigPath, absoluteApiFolderPath, absoluteOutputPath);
|
|
156
|
+
});
|
|
157
|
+
program.parse(process.argv);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/bin/gen-table-list/index.ts
|
|
31
|
+
var gen_table_list_exports = {};
|
|
32
|
+
__export(gen_table_list_exports, {
|
|
33
|
+
main: () => main
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(gen_table_list_exports);
|
|
36
|
+
var import_ts_log = require("@lsby/ts-log");
|
|
37
|
+
var import_lodash = __toESM(require("lodash"), 1);
|
|
38
|
+
var import_node_crypto = require("crypto");
|
|
39
|
+
var import_node_fs = __toESM(require("fs"), 1);
|
|
40
|
+
var import_node_path = __toESM(require("path"), 1);
|
|
41
|
+
var import_typescript = __toESM(require("typescript"), 1);
|
|
42
|
+
function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
|
|
43
|
+
let \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = false;
|
|
44
|
+
import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (\u8282\u70B9) => {
|
|
45
|
+
if (import_typescript.default.isExportDeclaration(\u8282\u70B9)) {
|
|
46
|
+
let \u8282\u70B9\u5BFC\u51FA = \u8282\u70B9.exportClause ?? null;
|
|
47
|
+
if (\u8282\u70B9\u5BFC\u51FA !== null && import_typescript.default.isDefaultClause(\u8282\u70B9\u5BFC\u51FA) || import_typescript.default.isExportAssignment(\u8282\u70B9)) {
|
|
48
|
+
\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = true;
|
|
49
|
+
}
|
|
50
|
+
} else if (import_typescript.default.isClassDeclaration(\u8282\u70B9) && (\u8282\u70B9.modifiers?.some((mod) => mod.kind === import_typescript.default.SyntaxKind.DefaultKeyword) ?? false)) {
|
|
51
|
+
\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = true;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
return \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA;
|
|
55
|
+
}
|
|
56
|
+
function \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(\u5B57\u7B26\u4E32) {
|
|
57
|
+
return "_" + \u5B57\u7B26\u4E32.replace(/[ !\-!@#$%^&*()\[\]{}\\|;:'",.\/?]/g, "_");
|
|
58
|
+
}
|
|
59
|
+
function \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a) {
|
|
60
|
+
return \u66FF\u6362\u975E\u6CD5\u5B57\u7B26(import_node_path.default.relative(import_node_path.default.dirname(tsconfig\u8DEF\u5F84), a.fileName));
|
|
61
|
+
}
|
|
62
|
+
function \u8BA1\u7B97\u5F15\u5165\u8DEF\u5F84(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, a) {
|
|
63
|
+
return import_node_path.default.relative(import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84), a.fileName).replaceAll("\\", "/").replaceAll(".ts", "");
|
|
64
|
+
}
|
|
65
|
+
async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
|
|
66
|
+
let log = new import_ts_log.Log("@lsby:net-core").extend("gen-table-list");
|
|
67
|
+
await log.debug("\u5F00\u59CB\u751F\u6210\u63A5\u53E3\u5217\u8868...");
|
|
68
|
+
await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
|
|
69
|
+
await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
|
|
70
|
+
await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
|
|
71
|
+
let tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
|
|
72
|
+
let tsconfig\u5185\u5BB9\u9519\u8BEF = tsconfig\u5185\u5BB9.error ?? null;
|
|
73
|
+
if (tsconfig\u5185\u5BB9\u9519\u8BEF !== null) {
|
|
74
|
+
await log.err("\u65E0\u6CD5\u89E3\u6790 tsconfig.json: " + tsconfig\u5185\u5BB9\u9519\u8BEF.messageText);
|
|
75
|
+
throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
|
|
76
|
+
}
|
|
77
|
+
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, ".."));
|
|
78
|
+
await log.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
|
|
79
|
+
let \u9879\u76EE\u4E3B\u673A = import_typescript.default.createCompilerHost(\u89E3\u6790\u540E\u7684tsconfig.options);
|
|
80
|
+
let \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
|
|
81
|
+
await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
|
|
82
|
+
let \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
|
|
83
|
+
let \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF6) => {
|
|
84
|
+
let \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF6.fileName);
|
|
85
|
+
if (\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84) === false)
|
|
86
|
+
return false;
|
|
87
|
+
let \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6);
|
|
88
|
+
if (\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA === false)
|
|
89
|
+
return false;
|
|
90
|
+
return true;
|
|
91
|
+
});
|
|
92
|
+
await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
|
|
93
|
+
let \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
|
|
94
|
+
let \u4EE3\u7801 = [
|
|
95
|
+
`import { \u4EFB\u610F\u865A\u62DF\u8868 } from '@lsby/net-core'`,
|
|
96
|
+
`import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}"`,
|
|
97
|
+
``,
|
|
98
|
+
`type \u8BA1\u7B97\u7ED3\u679C = \u5BFC\u5165 extends \u4EFB\u610F\u865A\u62DF\u8868 ? true : false`
|
|
99
|
+
];
|
|
100
|
+
return import_typescript.default.createSourceFile(
|
|
101
|
+
a.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"),
|
|
102
|
+
\u4EE3\u7801.join("\n"),
|
|
103
|
+
import_typescript.default.ScriptTarget.Latest
|
|
104
|
+
);
|
|
105
|
+
});
|
|
106
|
+
let \u65B0\u9879\u76EE = import_typescript.default.createProgram({
|
|
107
|
+
rootNames: [...\u9879\u76EE.getSourceFiles().map((a) => a.fileName), ...\u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.map((a) => a.fileName)],
|
|
108
|
+
options: \u89E3\u6790\u540E\u7684tsconfig.options,
|
|
109
|
+
host: {
|
|
110
|
+
...\u9879\u76EE\u4E3B\u673A,
|
|
111
|
+
getSourceFile: (filename) => {
|
|
112
|
+
let \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName === filename) ?? null;
|
|
113
|
+
if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 !== null)
|
|
114
|
+
return \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6;
|
|
115
|
+
return \u9879\u76EE.getSourceFile(filename);
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
oldProgram: \u9879\u76EE
|
|
119
|
+
});
|
|
120
|
+
let \u7C7B\u578B\u68C0\u67E5\u5668 = \u65B0\u9879\u76EE.getTypeChecker();
|
|
121
|
+
let \u68C0\u67E5\u7ED3\u679C = [];
|
|
122
|
+
for (let \u6E90\u6587\u4EF6 of \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC) {
|
|
123
|
+
let \u7ED3\u679C = false;
|
|
124
|
+
import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (node) => {
|
|
125
|
+
if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "\u8BA1\u7B97\u7ED3\u679C") {
|
|
126
|
+
let type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
|
|
127
|
+
let \u6587\u672C\u7ED3\u679C = \u7C7B\u578B\u68C0\u67E5\u5668.typeToString(type);
|
|
128
|
+
if (\u6587\u672C\u7ED3\u679C === "true")
|
|
129
|
+
\u7ED3\u679C = true;
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
\u68C0\u67E5\u7ED3\u679C.push(\u7ED3\u679C);
|
|
133
|
+
}
|
|
134
|
+
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] ?? null).filter((a) => a !== null);
|
|
135
|
+
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2A\u63A5\u53E3\u5B9E\u73B0`);
|
|
136
|
+
let \u6700\u7EC8\u4EE3\u7801 = [
|
|
137
|
+
`import { \u4EFB\u610F\u865A\u62DF\u8868 } from '@lsby/net-core'`,
|
|
138
|
+
"",
|
|
139
|
+
...\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)}'`),
|
|
140
|
+
"",
|
|
141
|
+
`export let interfaceTableList: { new (\u6784\u9020\u53C2\u6570: any): \u4EFB\u610F\u865A\u62DF\u8868; \u8D44\u6E90\u8DEF\u5F84: string }[] = [`,
|
|
142
|
+
...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => ` ${a},`),
|
|
143
|
+
`]`,
|
|
144
|
+
""
|
|
145
|
+
];
|
|
146
|
+
await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
|
|
147
|
+
let \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
|
|
148
|
+
if (import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939) === false)
|
|
149
|
+
import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
|
|
150
|
+
import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
|
|
151
|
+
await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
|
|
152
|
+
}
|
|
153
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
154
|
+
0 && (module.exports = {
|
|
155
|
+
main
|
|
156
|
+
});
|
|
@@ -0,0 +1,58 @@
|
|
|
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-table-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
|
+
export type \u57FA\u672C\u7C7B\u578B = string | number | boolean | null
|
|
28
|
+
export type \u6761\u4EF6<\u5217\u540D\u79F0\u4EEC> =
|
|
29
|
+
| { \u5217\u540D\u79F0: \u5217\u540D\u79F0\u4EEC; \u7B26\u53F7: '=' | '<>'; \u503C: \u57FA\u672C\u7C7B\u578B }
|
|
30
|
+
| { \u5217\u540D\u79F0: \u5217\u540D\u79F0\u4EEC; \u7B26\u53F7: '>' | '<' | '>=' | '<='; \u503C: number | string }
|
|
31
|
+
| { \u5217\u540D\u79F0: \u5217\u540D\u79F0\u4EEC; \u7B26\u53F7: 'like' | 'not like'; \u503C: string }
|
|
32
|
+
| { \u5217\u540D\u79F0: \u5217\u540D\u79F0\u4EEC; \u7B26\u53F7: 'in' | 'not in'; \u503C: \u57FA\u672C\u7C7B\u578B[] }
|
|
33
|
+
| { \u5217\u540D\u79F0: \u5217\u540D\u79F0\u4EEC; \u7B26\u53F7: 'is' | 'is not'; \u503C: \u57FA\u672C\u7C7B\u578B }
|
|
34
|
+
export type \u6761\u4EF6\u7EC4<\u5217\u540D\u79F0\u4EEC> =
|
|
35
|
+
| { \u6A21\u5F0F: '\u76F4\u63A5\u6761\u4EF6'; \u503C: \u6761\u4EF6<\u5217\u540D\u79F0\u4EEC> }
|
|
36
|
+
| { \u6A21\u5F0F: '\u7EC4\u5408\u6761\u4EF6'; \u7EC4\u5408\u6A21\u5F0F: '\u4E0E' | '\u6216'; \u6761\u4EF6\u4EEC: \u6761\u4EF6<\u5217\u540D\u79F0\u4EEC>[] }
|
|
37
|
+
export type \u6241\u5E73\u5316\u6761\u4EF6\u7EC4\u9879<\u5217\u540D\u79F0\u4EEC> = { \u7EC4\u5408\u6A21\u5F0F: '\u4E0E' | '\u6216'; \u6761\u4EF6: \u6761\u4EF6<\u5217\u540D\u79F0\u4EEC> }
|
|
38
|
+
export type \u5206\u9875\u9009\u9879 = {
|
|
39
|
+
\u9875\u6570: number
|
|
40
|
+
\u5927\u5C0F: number
|
|
41
|
+
}
|
|
42
|
+
export type \u6392\u5E8F\u9009\u9879<\u5217\u540D\u79F0\u4EEC> = {
|
|
43
|
+
\u6392\u5E8F\u5217: \u5217\u540D\u79F0\u4EEC
|
|
44
|
+
\u6392\u5E8F\u6A21\u5F0F: '\u6B63\u5E8F' | '\u5012\u5E8F'
|
|
45
|
+
}
|
|
46
|
+
export type \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<A> = A extends '\u5B57\u7B26\u4E32'
|
|
47
|
+
? string
|
|
48
|
+
: A extends '\u6570\u5B57'
|
|
49
|
+
? number
|
|
50
|
+
: A extends '\u5E03\u5C14'
|
|
51
|
+
? boolean
|
|
52
|
+
: never
|
|
53
|
+
export type \u7FFB\u8BD1\u5217\u63CF\u8FF0<\u5BF9\u8C61> = { [key in keyof \u5BF9\u8C61]: \u7FFB\u8BD1\u81EA\u5B9A\u4E49\u7C7B\u578B<\u5BF9\u8C61[key]> }
|
|
54
|
+
`;
|
|
55
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
56
|
+
0 && (module.exports = {
|
|
57
|
+
\u9644\u52A0\u4EE3\u7801
|
|
58
|
+
});
|