@lsby/net-core 0.3.44 → 0.4.0-beta.10
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 → gen-api-list}/bin.cjs +22 -21
- package/dist/{cjs/bin/gen-list → bin/gen-api-list}/index.cjs +21 -20
- package/dist/{cjs/interface/interface-inst.cjs → bin/gen-api-type/addition.cjs} +7 -8
- package/dist/bin/gen-api-type/bin.cjs +196 -0
- package/dist/bin/gen-api-type/index.cjs +195 -0
- package/dist/bin/gen-table-list/bin.cjs +157 -0
- package/dist/bin/gen-table-list/index.cjs +156 -0
- package/dist/bin/gen-table-type/addition.cjs +64 -0
- package/dist/bin/gen-table-type/bin.cjs +219 -0
- package/dist/bin/gen-table-type/index.cjs +218 -0
- package/dist/bin/gen-test/bin.cjs +16 -15
- package/dist/bin/gen-test/index.cjs +15 -14
- package/dist/cjs/action/action.cjs +2 -2
- package/dist/cjs/bin/{gen-list → gen-api-list}/bin.cjs +22 -21
- package/dist/{bin/gen-list → cjs/bin/gen-api-list}/index.cjs +21 -20
- package/dist/cjs/bin/gen-api-type/addition.cjs +30 -0
- package/dist/cjs/bin/gen-api-type/bin.cjs +196 -0
- package/dist/cjs/bin/gen-api-type/index.cjs +195 -0
- 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 +64 -0
- package/dist/cjs/bin/gen-table-type/addition.d.cts +3 -0
- package/dist/cjs/bin/gen-table-type/bin.cjs +219 -0
- package/dist/cjs/bin/gen-table-type/bin.d.cts +1 -0
- package/dist/cjs/bin/gen-table-type/index.cjs +218 -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/global/global.cjs +2 -2
- package/dist/cjs/global/ws.cjs +2 -2
- package/dist/cjs/index.cjs +322 -250
- package/dist/cjs/index.d.cts +9 -8
- package/dist/cjs/interface-api/interface-base.cjs +57 -0
- package/dist/cjs/interface-api/interface-base.d.cts +44 -0
- package/dist/cjs/interface-api/interface-logic.cjs +111 -0
- package/dist/cjs/interface-api/interface-logic.d.cts +61 -0
- package/dist/cjs/interface-api/interface-result.cjs +48 -0
- package/dist/cjs/interface-api/interface-result.d.cts +31 -0
- package/dist/cjs/{interface → interface-api}/interface-test.cjs +1 -1
- package/dist/cjs/interface-table/interface-table.cjs +35 -0
- package/dist/cjs/interface-table/interface-table.d.cts +97 -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 +7 -7
- package/dist/cjs/plugin/extend/json.d.cts +3 -5
- package/dist/cjs/plugin/extend/urlencoded.cjs +6 -6
- package/dist/cjs/plugin/extend/web-socket.cjs +9 -9
- package/dist/cjs/plugin/extend/web-socket.d.cts +2 -2
- package/dist/cjs/plugin/plug.d.cts +10 -5
- package/dist/cjs/server/server.cjs +204 -67
- package/dist/cjs/server/server.d.cts +19 -6
- package/dist/cjs/tools/tools.cjs +1 -1
- package/dist/cjs/tools/types.cjs +18 -0
- package/dist/cjs/tools/types.d.cts +5 -0
- package/dist/esm/action/action.js +1 -1
- package/dist/esm/bin/gen-api-list/bin.d.ts +1 -0
- package/dist/esm/bin/{gen-list → gen-api-list}/bin.js +4 -4
- package/dist/esm/bin/gen-api-list/index.d.ts +3 -0
- package/dist/esm/bin/{gen-list → gen-api-list}/index.js +1 -1
- package/dist/esm/bin/gen-api-type/addition.d.ts +3 -0
- package/dist/esm/bin/{gen-type → gen-api-type}/addition.js +1 -1
- package/dist/esm/bin/gen-api-type/bin.d.ts +1 -0
- package/dist/esm/bin/gen-api-type/bin.js +17 -0
- package/dist/esm/bin/gen-api-type/index.d.ts +3 -0
- package/dist/esm/bin/gen-api-type/index.js +7 -0
- 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/{chunk-6AW5SSYA.js → chunk-2G4PSYTL.js} +5 -5
- 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-4HFR4KRY.js +23 -0
- package/dist/esm/chunk-4T2MZJJ5.js +122 -0
- package/dist/esm/chunk-63YFVECY.js +11 -0
- package/dist/esm/chunk-7RPSQQZA.js +199 -0
- package/dist/esm/{chunk-WIZEBP6C.js → chunk-BC5MM5IX.js} +15 -14
- package/dist/esm/chunk-CPOABMEY.js +40 -0
- package/dist/esm/chunk-DAKGERGA.js +0 -0
- package/dist/esm/{chunk-BC6IISWS.js → chunk-DGDZQLIJ.js} +1 -1
- package/dist/esm/{chunk-EAVNASDB.js → chunk-FIQSBTYJ.js} +2 -2
- package/dist/esm/chunk-G45OAMTZ.js +149 -0
- package/dist/esm/{chunk-N7TPWCQ5.js → chunk-GLZWRYH6.js} +1 -1
- package/dist/esm/{chunk-PVE5VI5K.js → chunk-IGHJCQ2S.js} +1 -1
- package/dist/esm/chunk-JVDSGTFS.js +6 -0
- package/dist/esm/chunk-JXGP4GSQ.js +56 -0
- package/dist/esm/{chunk-GVIGQG5Y.js → chunk-LLLXAZBC.js} +6 -6
- package/dist/esm/chunk-RS244OBR.js +33 -0
- package/dist/esm/{chunk-F7TZXXFE.js → chunk-RUSBZSSK.js} +18 -17
- package/dist/esm/{chunk-64WWIZ43.js → chunk-UHOWN2M5.js} +67 -52
- package/dist/esm/{chunk-AVB7KPZC.js → chunk-XOR7HWL4.js} +8 -8
- package/dist/esm/global/global.js +2 -2
- package/dist/esm/global/ws.js +1 -1
- package/dist/esm/index.d.ts +9 -8
- package/dist/esm/index.js +33 -41
- package/dist/esm/interface-api/interface-base.d.ts +44 -0
- package/dist/esm/{interface/interface-inst.js → interface-api/interface-base.js} +1 -1
- package/dist/esm/interface-api/interface-logic.d.ts +61 -0
- package/dist/esm/interface-api/interface-logic.js +8 -0
- package/dist/esm/interface-api/interface-result.d.ts +31 -0
- package/dist/esm/interface-api/interface-result.js +8 -0
- package/dist/esm/{interface → interface-api}/interface-test.js +1 -1
- package/dist/esm/interface-table/interface-table.d.ts +97 -0
- package/dist/esm/interface-table/interface-table.js +6 -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.d.ts +3 -5
- 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 +10 -5
- package/dist/esm/server/server.d.ts +19 -6
- package/dist/esm/server/server.js +5 -3
- package/dist/esm/tools/tools.js +1 -1
- package/dist/esm/tools/types.d.ts +5 -0
- package/dist/esm/tools/types.js +1 -0
- package/package.json +18 -8
- package/dist/bin/gen-type/addition.cjs +0 -148
- package/dist/bin/gen-type/bin.cjs +0 -299
- package/dist/bin/gen-type/index.cjs +0 -298
- package/dist/cjs/bin/gen-type/addition.cjs +0 -148
- package/dist/cjs/bin/gen-type/bin.cjs +0 -299
- package/dist/cjs/bin/gen-type/index.cjs +0 -298
- package/dist/cjs/interface/extend/json-base.cjs +0 -141
- package/dist/cjs/interface/extend/json-base.d.cts +0 -18
- package/dist/cjs/interface/extend/json-wrap.cjs +0 -181
- package/dist/cjs/interface/extend/json-wrap.d.cts +0 -28
- package/dist/cjs/interface/interface-inst.d.cts +0 -16
- package/dist/cjs/interface/interface-type.cjs +0 -53
- package/dist/cjs/interface/interface-type.d.cts +0 -28
- package/dist/cjs/result/result.cjs +0 -138
- package/dist/cjs/result/result.d.cts +0 -34
- package/dist/esm/bin/gen-type/bin.js +0 -17
- package/dist/esm/bin/gen-type/index.js +0 -7
- package/dist/esm/chunk-4V2TOQZ2.js +0 -58
- package/dist/esm/chunk-FAW4GTXP.js +0 -29
- package/dist/esm/chunk-G4P3OAFL.js +0 -7
- package/dist/esm/chunk-KRQ6KUVY.js +0 -124
- package/dist/esm/chunk-SF5Z34AP.js +0 -29
- package/dist/esm/chunk-UUUCTDAN.js +0 -98
- package/dist/esm/chunk-WF7MUELD.js +0 -45
- package/dist/esm/interface/extend/json-base.d.ts +0 -18
- package/dist/esm/interface/extend/json-base.js +0 -11
- package/dist/esm/interface/extend/json-wrap.d.ts +0 -28
- package/dist/esm/interface/extend/json-wrap.js +0 -14
- package/dist/esm/interface/interface-inst.d.ts +0 -16
- package/dist/esm/interface/interface-type.d.ts +0 -28
- package/dist/esm/interface/interface-type.js +0 -6
- package/dist/esm/result/result.d.ts +0 -34
- package/dist/esm/result/result.js +0 -19
- /package/dist/bin/{gen-list → gen-api-list}/bin.d.cts +0 -0
- /package/dist/bin/{gen-list → gen-api-list}/index.d.cts +0 -0
- /package/dist/bin/{gen-type → gen-api-type}/addition.d.cts +0 -0
- /package/dist/bin/{gen-type → gen-api-type}/bin.d.cts +0 -0
- /package/dist/bin/{gen-type → gen-api-type}/index.d.cts +0 -0
- /package/dist/{cjs/bin/gen-list → bin/gen-table-list}/bin.d.cts +0 -0
- /package/dist/{cjs/bin/gen-list → bin/gen-table-list}/index.d.cts +0 -0
- /package/dist/{cjs/bin/gen-type → bin/gen-table-type}/addition.d.cts +0 -0
- /package/dist/{cjs/bin/gen-type → bin/gen-table-type}/bin.d.cts +0 -0
- /package/dist/{cjs/bin/gen-type → bin/gen-table-type}/index.d.cts +0 -0
- /package/dist/{esm/bin/gen-list/bin.d.ts → cjs/bin/gen-api-list/bin.d.cts} +0 -0
- /package/dist/{esm/bin/gen-list/index.d.ts → cjs/bin/gen-api-list/index.d.cts} +0 -0
- /package/dist/{esm/bin/gen-type/addition.d.ts → cjs/bin/gen-api-type/addition.d.cts} +0 -0
- /package/dist/{esm/bin/gen-type/bin.d.ts → cjs/bin/gen-api-type/bin.d.cts} +0 -0
- /package/dist/{esm/bin/gen-type/index.d.ts → cjs/bin/gen-api-type/index.d.cts} +0 -0
- /package/dist/cjs/{interface → interface-api}/interface-test.d.cts +0 -0
- /package/dist/esm/{interface → interface-api}/interface-test.d.ts +0 -0
|
@@ -23,20 +23,20 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
23
23
|
mod
|
|
24
24
|
));
|
|
25
25
|
|
|
26
|
-
// src/bin/gen-list/bin.ts
|
|
27
|
-
var import_node_path2 = __toESM(require("path"), 1);
|
|
26
|
+
// src/bin/gen-api-list/bin.ts
|
|
28
27
|
var import_commander = require("commander");
|
|
28
|
+
var import_node_path2 = __toESM(require("path"), 1);
|
|
29
29
|
|
|
30
|
-
// src/bin/gen-list/index.ts
|
|
30
|
+
// src/bin/gen-api-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
|
}
|
|
@@ -52,14 +52,15 @@ 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
|
-
let log = new import_ts_log.Log("@lsby:net-core").extend("gen-list");
|
|
56
|
-
await log.debug("\u5F00\u59CB\u751F\
|
|
55
|
+
let log = new import_ts_log.Log("@lsby:net-core").extend("gen-api-list");
|
|
56
|
+
await log.debug("\u5F00\u59CB\u751F\u6210api\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
|
-
|
|
62
|
-
|
|
61
|
+
let tsconfig\u5185\u5BB9\u9519\u8BEF = tsconfig\u5185\u5BB9.error ?? null;
|
|
62
|
+
if (tsconfig\u5185\u5BB9\u9519\u8BEF !== null) {
|
|
63
|
+
await log.error("\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,35 +114,35 @@ 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
|
-
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \
|
|
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);
|
|
124
|
+
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2Aapi\u63A5\u53E3\u5B9E\u73B0`);
|
|
124
125
|
let \u6700\u7EC8\u4EE3\u7801 = [
|
|
125
126
|
`import { \u4EFB\u610F\u63A5\u53E3 } from '@lsby/net-core'`,
|
|
126
127
|
"",
|
|
127
128
|
...\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
129
|
"",
|
|
129
|
-
`export let
|
|
130
|
+
`export let interfaceApiList: \u4EFB\u610F\u63A5\u53E3[] = [`,
|
|
130
131
|
...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => ` ${a},`),
|
|
131
132
|
`]`,
|
|
132
133
|
""
|
|
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}`);
|
|
140
141
|
}
|
|
141
142
|
|
|
142
|
-
// src/bin/gen-list/bin.ts
|
|
143
|
+
// src/bin/gen-api-list/bin.ts
|
|
143
144
|
var program = new import_commander.Command();
|
|
144
|
-
program.name("\u751F\u6210\
|
|
145
|
+
program.name("\u751F\u6210\u63A5\u53E3api\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);
|
|
@@ -27,21 +27,21 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
|
|
30
|
-
// src/bin/gen-list/index.ts
|
|
31
|
-
var
|
|
32
|
-
__export(
|
|
30
|
+
// src/bin/gen-api-list/index.ts
|
|
31
|
+
var gen_api_list_exports = {};
|
|
32
|
+
__export(gen_api_list_exports, {
|
|
33
33
|
main: () => main
|
|
34
34
|
});
|
|
35
|
-
module.exports = __toCommonJS(
|
|
35
|
+
module.exports = __toCommonJS(gen_api_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
|
}
|
|
@@ -57,14 +57,15 @@ 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
|
-
let log = new import_ts_log.Log("@lsby:net-core").extend("gen-list");
|
|
61
|
-
await log.debug("\u5F00\u59CB\u751F\
|
|
60
|
+
let log = new import_ts_log.Log("@lsby:net-core").extend("gen-api-list");
|
|
61
|
+
await log.debug("\u5F00\u59CB\u751F\u6210api\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
|
-
|
|
67
|
-
|
|
66
|
+
let tsconfig\u5185\u5BB9\u9519\u8BEF = tsconfig\u5185\u5BB9.error ?? null;
|
|
67
|
+
if (tsconfig\u5185\u5BB9\u9519\u8BEF !== null) {
|
|
68
|
+
await log.error("\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,27 +119,27 @@ 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
|
-
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \
|
|
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);
|
|
129
|
+
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C.length} \u4E2Aapi\u63A5\u53E3\u5B9E\u73B0`);
|
|
129
130
|
let \u6700\u7EC8\u4EE3\u7801 = [
|
|
130
131
|
`import { \u4EFB\u610F\u63A5\u53E3 } from '@lsby/net-core'`,
|
|
131
132
|
"",
|
|
132
133
|
...\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
134
|
"",
|
|
134
|
-
`export let
|
|
135
|
+
`export let interfaceApiList: \u4EFB\u610F\u63A5\u53E3[] = [`,
|
|
135
136
|
...\u6700\u7EC8\u7ED3\u679C.map((a) => \u8BA1\u7B97\u5B8C\u6574\u540D\u79F0(tsconfig\u8DEF\u5F84, a)).map((a) => ` ${a},`),
|
|
136
137
|
`]`,
|
|
137
138
|
""
|
|
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}`);
|
|
@@ -17,15 +17,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
|
|
20
|
-
// src/
|
|
21
|
-
var
|
|
22
|
-
__export(
|
|
23
|
-
\
|
|
20
|
+
// src/bin/gen-api-type/addition.ts
|
|
21
|
+
var addition_exports = {};
|
|
22
|
+
__export(addition_exports, {
|
|
23
|
+
\u9644\u52A0\u4EE3\u7801: () => \u9644\u52A0\u4EE3\u7801
|
|
24
24
|
});
|
|
25
|
-
module.exports = __toCommonJS(
|
|
26
|
-
var \
|
|
27
|
-
};
|
|
25
|
+
module.exports = __toCommonJS(addition_exports);
|
|
26
|
+
var \u9644\u52A0\u4EE3\u7801 = ``;
|
|
28
27
|
// Annotate the CommonJS export names for ESM import in node:
|
|
29
28
|
0 && (module.exports = {
|
|
30
|
-
\
|
|
29
|
+
\u9644\u52A0\u4EE3\u7801
|
|
31
30
|
});
|
|
@@ -0,0 +1,196 @@
|
|
|
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-api-type/bin.ts
|
|
27
|
+
var import_commander = require("commander");
|
|
28
|
+
var import_node_path2 = __toESM(require("path"), 1);
|
|
29
|
+
|
|
30
|
+
// src/bin/gen-api-type/index.ts
|
|
31
|
+
var import_ts_log = require("@lsby/ts-log");
|
|
32
|
+
var import_node_crypto = require("crypto");
|
|
33
|
+
var import_node_fs = __toESM(require("fs"), 1);
|
|
34
|
+
var import_node_path = __toESM(require("path"), 1);
|
|
35
|
+
var import_typescript = __toESM(require("typescript"), 1);
|
|
36
|
+
|
|
37
|
+
// src/bin/gen-api-type/addition.ts
|
|
38
|
+
var \u9644\u52A0\u4EE3\u7801 = ``;
|
|
39
|
+
|
|
40
|
+
// src/bin/gen-api-type/index.ts
|
|
41
|
+
function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
|
|
42
|
+
for (let statement of \u6E90\u6587\u4EF6.statements) {
|
|
43
|
+
if (import_typescript.default.isExportAssignment(statement) && (statement.isExportEquals ?? null) === null) {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
|
|
50
|
+
let log = new import_ts_log.Log("@lsby:net-core").extend("gen-api-type");
|
|
51
|
+
await log.debug("\u5F00\u59CB\u751F\u6210\u7C7B\u578B...");
|
|
52
|
+
await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
|
|
53
|
+
await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
|
|
54
|
+
await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
|
|
55
|
+
let tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
|
|
56
|
+
let tsconfig\u5185\u5BB9\u9519\u8BEF = tsconfig\u5185\u5BB9.error ?? null;
|
|
57
|
+
if (tsconfig\u5185\u5BB9\u9519\u8BEF !== null) {
|
|
58
|
+
await log.error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json: " + tsconfig\u5185\u5BB9\u9519\u8BEF.messageText);
|
|
59
|
+
throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
|
|
60
|
+
}
|
|
61
|
+
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, ".."));
|
|
62
|
+
await log.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
|
|
63
|
+
let \u9879\u76EE\u4E3B\u673A = import_typescript.default.createCompilerHost(\u89E3\u6790\u540E\u7684tsconfig.options);
|
|
64
|
+
let \u9879\u76EE = import_typescript.default.createProgram(\u89E3\u6790\u540E\u7684tsconfig.fileNames, \u89E3\u6790\u540E\u7684tsconfig.options, \u9879\u76EE\u4E3B\u673A);
|
|
65
|
+
await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
|
|
66
|
+
let \u6240\u6709\u6E90\u6587\u4EF6 = \u9879\u76EE.getSourceFiles();
|
|
67
|
+
let \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC = \u6240\u6709\u6E90\u6587\u4EF6.filter((\u6E90\u6587\u4EF6) => {
|
|
68
|
+
let \u6E90\u6587\u4EF6\u8DEF\u5F84 = import_node_path.default.normalize(\u6E90\u6587\u4EF6.fileName);
|
|
69
|
+
if (\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84) === false)
|
|
70
|
+
return false;
|
|
71
|
+
let \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6);
|
|
72
|
+
if (\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA === false)
|
|
73
|
+
return false;
|
|
74
|
+
return true;
|
|
75
|
+
});
|
|
76
|
+
await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
|
|
77
|
+
let \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
|
|
78
|
+
let \u4EE3\u7801 = `
|
|
79
|
+
import {
|
|
80
|
+
\u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u7ED3\u679C,
|
|
81
|
+
\u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C,
|
|
82
|
+
\u83B7\u5F97\u63A5\u53E3\u65B9\u6CD5\u7C7B\u578B,
|
|
83
|
+
\u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0F,
|
|
84
|
+
\u83B7\u5F97\u63A5\u53E3\u8DEF\u5F84\u7C7B\u578B,
|
|
85
|
+
\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B,
|
|
86
|
+
\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B,
|
|
87
|
+
\u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0F,
|
|
88
|
+
} from '@lsby/net-core'
|
|
89
|
+
import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}",
|
|
90
|
+
|
|
91
|
+
type jsonPath = \u83B7\u5F97\u63A5\u53E3\u8DEF\u5F84\u7C7B\u578B<typeof \u5BFC\u5165>
|
|
92
|
+
type jsonMethod = \u83B7\u5F97\u63A5\u53E3\u65B9\u6CD5\u7C7B\u578B<typeof \u5BFC\u5165>
|
|
93
|
+
type jsonInput = \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B<typeof \u5BFC\u5165>>>
|
|
94
|
+
type jsonErrorOutput = \u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0F<typeof \u5BFC\u5165>
|
|
95
|
+
type jsonSuccessOutput = \u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0F<typeof \u5BFC\u5165>
|
|
96
|
+
|
|
97
|
+
type JSON\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C = jsonPath extends infer _
|
|
98
|
+
? jsonMethod extends infer _
|
|
99
|
+
? jsonInput extends infer _
|
|
100
|
+
? jsonErrorOutput extends infer _
|
|
101
|
+
? jsonSuccessOutput extends infer _
|
|
102
|
+
? {
|
|
103
|
+
path: jsonPath
|
|
104
|
+
method: jsonMethod
|
|
105
|
+
input: jsonInput
|
|
106
|
+
errorOutput: jsonErrorOutput
|
|
107
|
+
successOutput: jsonSuccessOutput
|
|
108
|
+
}
|
|
109
|
+
: never
|
|
110
|
+
: never
|
|
111
|
+
: never
|
|
112
|
+
: never
|
|
113
|
+
: never
|
|
114
|
+
|
|
115
|
+
type wsPath = \u83B7\u5F97\u63A5\u53E3\u8DEF\u5F84\u7C7B\u578B<typeof \u5BFC\u5165>
|
|
116
|
+
type wsData = \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u7ED3\u679C<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B<typeof \u5BFC\u5165>>>
|
|
117
|
+
|
|
118
|
+
type WS\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C = wsPath extends infer _
|
|
119
|
+
? wsData extends infer _
|
|
120
|
+
? wsData extends Record<string, never>
|
|
121
|
+
? never
|
|
122
|
+
: {
|
|
123
|
+
path: wsPath
|
|
124
|
+
data: wsData
|
|
125
|
+
}
|
|
126
|
+
: never
|
|
127
|
+
: never
|
|
128
|
+
`;
|
|
129
|
+
return import_typescript.default.createSourceFile(a.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"), \u4EE3\u7801, import_typescript.default.ScriptTarget.Latest);
|
|
130
|
+
});
|
|
131
|
+
let \u65B0\u9879\u76EE = import_typescript.default.createProgram({
|
|
132
|
+
rootNames: [...\u9879\u76EE.getSourceFiles().map((a) => a.fileName), ...\u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.map((a) => a.fileName)],
|
|
133
|
+
options: \u89E3\u6790\u540E\u7684tsconfig.options,
|
|
134
|
+
host: {
|
|
135
|
+
...\u9879\u76EE\u4E3B\u673A,
|
|
136
|
+
getSourceFile: (filename) => {
|
|
137
|
+
let \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName === filename) ?? null;
|
|
138
|
+
if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 !== null)
|
|
139
|
+
return \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6;
|
|
140
|
+
return \u9879\u76EE.getSourceFile(filename);
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
oldProgram: \u9879\u76EE
|
|
144
|
+
});
|
|
145
|
+
let \u7C7B\u578B\u68C0\u67E5\u5668 = \u65B0\u9879\u76EE.getTypeChecker();
|
|
146
|
+
let JSON\u7ED3\u679C = [];
|
|
147
|
+
let WS\u7ED3\u679C = [];
|
|
148
|
+
for (let \u6E90\u6587\u4EF6 of \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC) {
|
|
149
|
+
import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (node) => {
|
|
150
|
+
if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "JSON\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C") {
|
|
151
|
+
let type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
|
|
152
|
+
JSON\u7ED3\u679C.push(
|
|
153
|
+
\u7C7B\u578B\u68C0\u67E5\u5668.typeToString(
|
|
154
|
+
type,
|
|
155
|
+
void 0,
|
|
156
|
+
import_typescript.default.TypeFormatFlags.NoTruncation | import_typescript.default.TypeFormatFlags.NoTypeReduction | import_typescript.default.TypeFormatFlags.AllowUniqueESSymbolType | import_typescript.default.TypeFormatFlags.UseAliasDefinedOutsideCurrentScope
|
|
157
|
+
)
|
|
158
|
+
);
|
|
159
|
+
} else if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "WS\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C") {
|
|
160
|
+
let type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
|
|
161
|
+
WS\u7ED3\u679C.push(
|
|
162
|
+
\u7C7B\u578B\u68C0\u67E5\u5668.typeToString(
|
|
163
|
+
type,
|
|
164
|
+
void 0,
|
|
165
|
+
import_typescript.default.TypeFormatFlags.NoTruncation | import_typescript.default.TypeFormatFlags.NoTypeReduction | import_typescript.default.TypeFormatFlags.AllowUniqueESSymbolType | import_typescript.default.TypeFormatFlags.UseAliasDefinedOutsideCurrentScope
|
|
166
|
+
)
|
|
167
|
+
);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
let \u6700\u7EC8\u7ED3\u679C_JSON = Array.from(new Set(JSON\u7ED3\u679C.filter((a) => a !== "any" && a !== "never" && a !== "unknown")));
|
|
172
|
+
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C_JSON.length} \u4E2Ajson\u63A5\u53E3\u7C7B\u578B`);
|
|
173
|
+
let \u6700\u7EC8\u7ED3\u679C_WS = Array.from(new Set(WS\u7ED3\u679C.filter((a) => a !== "any" && a !== "never" && a !== "unknown")));
|
|
174
|
+
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C_WS.length} \u4E2Aws\u63A5\u53E3\u7C7B\u578B`);
|
|
175
|
+
let \u6700\u7EC8\u4EE3\u7801 = [
|
|
176
|
+
`export type InterfaceType = [${\u6700\u7EC8\u7ED3\u679C_JSON.join(",")}]`,
|
|
177
|
+
`export type InterfaceWsType = [${\u6700\u7EC8\u7ED3\u679C_WS.join(",")}]`,
|
|
178
|
+
\u9644\u52A0\u4EE3\u7801
|
|
179
|
+
];
|
|
180
|
+
await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
|
|
181
|
+
let \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
|
|
182
|
+
if (import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939) === false)
|
|
183
|
+
import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
|
|
184
|
+
import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
|
|
185
|
+
await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// src/bin/gen-api-type/bin.ts
|
|
189
|
+
var program = new import_commander.Command();
|
|
190
|
+
program.name("\u751F\u6210api\u63A5\u53E3\u7C7B\u578B\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, outputPath) => {
|
|
191
|
+
let absoluteTsconfigPath = import_node_path2.default.resolve(tsconfigPath);
|
|
192
|
+
let absoluteApiFolderPath = import_node_path2.default.resolve(interfaceFolderPath);
|
|
193
|
+
let absoluteOutputPath = import_node_path2.default.resolve(outputPath);
|
|
194
|
+
await main(absoluteTsconfigPath, absoluteApiFolderPath, absoluteOutputPath);
|
|
195
|
+
});
|
|
196
|
+
program.parse(process.argv);
|
|
@@ -0,0 +1,195 @@
|
|
|
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-api-type/index.ts
|
|
31
|
+
var gen_api_type_exports = {};
|
|
32
|
+
__export(gen_api_type_exports, {
|
|
33
|
+
main: () => main
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(gen_api_type_exports);
|
|
36
|
+
var import_ts_log = require("@lsby/ts-log");
|
|
37
|
+
var import_node_crypto = require("crypto");
|
|
38
|
+
var import_node_fs = __toESM(require("fs"), 1);
|
|
39
|
+
var import_node_path = __toESM(require("path"), 1);
|
|
40
|
+
var import_typescript = __toESM(require("typescript"), 1);
|
|
41
|
+
|
|
42
|
+
// src/bin/gen-api-type/addition.ts
|
|
43
|
+
var \u9644\u52A0\u4EE3\u7801 = ``;
|
|
44
|
+
|
|
45
|
+
// src/bin/gen-api-type/index.ts
|
|
46
|
+
function \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6) {
|
|
47
|
+
for (let statement of \u6E90\u6587\u4EF6.statements) {
|
|
48
|
+
if (import_typescript.default.isExportAssignment(statement) && (statement.isExportEquals ?? null) === null) {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
async function main(tsconfig\u8DEF\u5F84, \u76EE\u6807\u8DEF\u5F84, \u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84) {
|
|
55
|
+
let log = new import_ts_log.Log("@lsby:net-core").extend("gen-api-type");
|
|
56
|
+
await log.debug("\u5F00\u59CB\u751F\u6210\u7C7B\u578B...");
|
|
57
|
+
await log.debug(`tsconfig\u8DEF\u5F84: ${tsconfig\u8DEF\u5F84}`);
|
|
58
|
+
await log.debug(`\u76EE\u6807\u8DEF\u5F84: ${\u76EE\u6807\u8DEF\u5F84}`);
|
|
59
|
+
await log.debug(`\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
|
|
60
|
+
let tsconfig\u5185\u5BB9 = import_typescript.default.parseConfigFileTextToJson(tsconfig\u8DEF\u5F84, import_node_fs.default.readFileSync(tsconfig\u8DEF\u5F84, "utf8"));
|
|
61
|
+
let tsconfig\u5185\u5BB9\u9519\u8BEF = tsconfig\u5185\u5BB9.error ?? null;
|
|
62
|
+
if (tsconfig\u5185\u5BB9\u9519\u8BEF !== null) {
|
|
63
|
+
await log.error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json: " + tsconfig\u5185\u5BB9\u9519\u8BEF.messageText);
|
|
64
|
+
throw new Error("\u65E0\u6CD5\u89E3\u6790 tsconfig.json");
|
|
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, ".."));
|
|
67
|
+
await log.debug("\u6210\u529F\u89E3\u6790 tsconfig \u6587\u4EF6...");
|
|
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
|
+
await log.debug("\u6210\u529F\u8BFB\u53D6\u9879\u76EE...");
|
|
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
|
+
if (\u6E90\u6587\u4EF6\u8DEF\u5F84.includes(\u76EE\u6807\u8DEF\u5F84) === false)
|
|
75
|
+
return false;
|
|
76
|
+
let \u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA = \u68C0\u67E5\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA(\u6E90\u6587\u4EF6);
|
|
77
|
+
if (\u5B58\u5728\u9ED8\u8BA4\u5BFC\u51FA === false)
|
|
78
|
+
return false;
|
|
79
|
+
return true;
|
|
80
|
+
});
|
|
81
|
+
await log.debug(`\u7B5B\u9009\u51FA ${\u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.length} \u4E2A\u76F8\u5173\u6E90\u6587\u4EF6`);
|
|
82
|
+
let \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC = \u76F8\u5173\u6E90\u6587\u4EF6\u4EEC.map((a) => {
|
|
83
|
+
let \u4EE3\u7801 = `
|
|
84
|
+
import {
|
|
85
|
+
\u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u7ED3\u679C,
|
|
86
|
+
\u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C,
|
|
87
|
+
\u83B7\u5F97\u63A5\u53E3\u65B9\u6CD5\u7C7B\u578B,
|
|
88
|
+
\u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0F,
|
|
89
|
+
\u83B7\u5F97\u63A5\u53E3\u8DEF\u5F84\u7C7B\u578B,
|
|
90
|
+
\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B,
|
|
91
|
+
\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B,
|
|
92
|
+
\u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0F,
|
|
93
|
+
} from '@lsby/net-core'
|
|
94
|
+
import \u5BFC\u5165 from "./${a.fileName.split("/").at(-1)?.replaceAll(".ts", "")}",
|
|
95
|
+
|
|
96
|
+
type jsonPath = \u83B7\u5F97\u63A5\u53E3\u8DEF\u5F84\u7C7B\u578B<typeof \u5BFC\u5165>
|
|
97
|
+
type jsonMethod = \u83B7\u5F97\u63A5\u53E3\u65B9\u6CD5\u7C7B\u578B<typeof \u5BFC\u5165>
|
|
98
|
+
type jsonInput = \u5408\u5E76JSON\u63D2\u4EF6\u7ED3\u679C<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B<typeof \u5BFC\u5165>>>
|
|
99
|
+
type jsonErrorOutput = \u83B7\u5F97\u63A5\u53E3\u9519\u8BEF\u5F62\u5F0F<typeof \u5BFC\u5165>
|
|
100
|
+
type jsonSuccessOutput = \u83B7\u5F97\u63A5\u53E3\u6B63\u786E\u5F62\u5F0F<typeof \u5BFC\u5165>
|
|
101
|
+
|
|
102
|
+
type JSON\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C = jsonPath extends infer _
|
|
103
|
+
? jsonMethod extends infer _
|
|
104
|
+
? jsonInput extends infer _
|
|
105
|
+
? jsonErrorOutput extends infer _
|
|
106
|
+
? jsonSuccessOutput extends infer _
|
|
107
|
+
? {
|
|
108
|
+
path: jsonPath
|
|
109
|
+
method: jsonMethod
|
|
110
|
+
input: jsonInput
|
|
111
|
+
errorOutput: jsonErrorOutput
|
|
112
|
+
successOutput: jsonSuccessOutput
|
|
113
|
+
}
|
|
114
|
+
: never
|
|
115
|
+
: never
|
|
116
|
+
: never
|
|
117
|
+
: never
|
|
118
|
+
: never
|
|
119
|
+
|
|
120
|
+
type wsPath = \u83B7\u5F97\u63A5\u53E3\u8DEF\u5F84\u7C7B\u578B<typeof \u5BFC\u5165>
|
|
121
|
+
type wsData = \u53D6\u7B2C\u4E00\u4E2AWS\u63D2\u4EF6\u7ED3\u679C<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u63D2\u4EF6\u7C7B\u578B<\u83B7\u5F97\u63A5\u53E3\u903B\u8F91\u7C7B\u578B<typeof \u5BFC\u5165>>>
|
|
122
|
+
|
|
123
|
+
type WS\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C = wsPath extends infer _
|
|
124
|
+
? wsData extends infer _
|
|
125
|
+
? wsData extends Record<string, never>
|
|
126
|
+
? never
|
|
127
|
+
: {
|
|
128
|
+
path: wsPath
|
|
129
|
+
data: wsData
|
|
130
|
+
}
|
|
131
|
+
: never
|
|
132
|
+
: never
|
|
133
|
+
`;
|
|
134
|
+
return import_typescript.default.createSourceFile(a.fileName.replaceAll(".ts", "-" + (0, import_node_crypto.randomUUID)() + ".ts"), \u4EE3\u7801, import_typescript.default.ScriptTarget.Latest);
|
|
135
|
+
});
|
|
136
|
+
let \u65B0\u9879\u76EE = import_typescript.default.createProgram({
|
|
137
|
+
rootNames: [...\u9879\u76EE.getSourceFiles().map((a) => a.fileName), ...\u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.map((a) => a.fileName)],
|
|
138
|
+
options: \u89E3\u6790\u540E\u7684tsconfig.options,
|
|
139
|
+
host: {
|
|
140
|
+
...\u9879\u76EE\u4E3B\u673A,
|
|
141
|
+
getSourceFile: (filename) => {
|
|
142
|
+
let \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 = \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC.find((a) => a.fileName === filename) ?? null;
|
|
143
|
+
if (\u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6 !== null)
|
|
144
|
+
return \u627E\u5230\u7684\u865A\u62DF\u6587\u4EF6;
|
|
145
|
+
return \u9879\u76EE.getSourceFile(filename);
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
oldProgram: \u9879\u76EE
|
|
149
|
+
});
|
|
150
|
+
let \u7C7B\u578B\u68C0\u67E5\u5668 = \u65B0\u9879\u76EE.getTypeChecker();
|
|
151
|
+
let JSON\u7ED3\u679C = [];
|
|
152
|
+
let WS\u7ED3\u679C = [];
|
|
153
|
+
for (let \u6E90\u6587\u4EF6 of \u4F34\u968F\u7684\u865A\u62DF\u6587\u4EF6\u4EEC) {
|
|
154
|
+
import_typescript.default.forEachChild(\u6E90\u6587\u4EF6, (node) => {
|
|
155
|
+
if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "JSON\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C") {
|
|
156
|
+
let type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
|
|
157
|
+
JSON\u7ED3\u679C.push(
|
|
158
|
+
\u7C7B\u578B\u68C0\u67E5\u5668.typeToString(
|
|
159
|
+
type,
|
|
160
|
+
void 0,
|
|
161
|
+
import_typescript.default.TypeFormatFlags.NoTruncation | import_typescript.default.TypeFormatFlags.NoTypeReduction | import_typescript.default.TypeFormatFlags.AllowUniqueESSymbolType | import_typescript.default.TypeFormatFlags.UseAliasDefinedOutsideCurrentScope
|
|
162
|
+
)
|
|
163
|
+
);
|
|
164
|
+
} else if (import_typescript.default.isTypeAliasDeclaration(node) && node.name.text === "WS\u63A5\u53E3\u8BA1\u7B97\u7ED3\u679C") {
|
|
165
|
+
let type = \u7C7B\u578B\u68C0\u67E5\u5668.getTypeAtLocation(node);
|
|
166
|
+
WS\u7ED3\u679C.push(
|
|
167
|
+
\u7C7B\u578B\u68C0\u67E5\u5668.typeToString(
|
|
168
|
+
type,
|
|
169
|
+
void 0,
|
|
170
|
+
import_typescript.default.TypeFormatFlags.NoTruncation | import_typescript.default.TypeFormatFlags.NoTypeReduction | import_typescript.default.TypeFormatFlags.AllowUniqueESSymbolType | import_typescript.default.TypeFormatFlags.UseAliasDefinedOutsideCurrentScope
|
|
171
|
+
)
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
let \u6700\u7EC8\u7ED3\u679C_JSON = Array.from(new Set(JSON\u7ED3\u679C.filter((a) => a !== "any" && a !== "never" && a !== "unknown")));
|
|
177
|
+
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C_JSON.length} \u4E2Ajson\u63A5\u53E3\u7C7B\u578B`);
|
|
178
|
+
let \u6700\u7EC8\u7ED3\u679C_WS = Array.from(new Set(WS\u7ED3\u679C.filter((a) => a !== "any" && a !== "never" && a !== "unknown")));
|
|
179
|
+
await log.debug(`\u6700\u7EC8\u7B5B\u9009\u51FA ${\u6700\u7EC8\u7ED3\u679C_WS.length} \u4E2Aws\u63A5\u53E3\u7C7B\u578B`);
|
|
180
|
+
let \u6700\u7EC8\u4EE3\u7801 = [
|
|
181
|
+
`export type InterfaceType = [${\u6700\u7EC8\u7ED3\u679C_JSON.join(",")}]`,
|
|
182
|
+
`export type InterfaceWsType = [${\u6700\u7EC8\u7ED3\u679C_WS.join(",")}]`,
|
|
183
|
+
\u9644\u52A0\u4EE3\u7801
|
|
184
|
+
];
|
|
185
|
+
await log.debug("\u6700\u7EC8\u4EE3\u7801\u751F\u6210\u5B8C\u6210");
|
|
186
|
+
let \u8F93\u51FA\u6587\u4EF6\u5939 = import_node_path.default.dirname(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84);
|
|
187
|
+
if (import_node_fs.default.existsSync(\u8F93\u51FA\u6587\u4EF6\u5939) === false)
|
|
188
|
+
import_node_fs.default.mkdirSync(\u8F93\u51FA\u6587\u4EF6\u5939, { recursive: true });
|
|
189
|
+
import_node_fs.default.writeFileSync(\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84, \u6700\u7EC8\u4EE3\u7801.join("\n"));
|
|
190
|
+
await log.debug(`\u8F93\u51FA\u6587\u4EF6\u5199\u5165\u5B8C\u6210: ${\u8F93\u51FA\u6587\u4EF6\u8DEF\u5F84}`);
|
|
191
|
+
}
|
|
192
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
193
|
+
0 && (module.exports = {
|
|
194
|
+
main
|
|
195
|
+
});
|