@ldsg/cli 0.3.47 → 0.3.49
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/.rush/temp/package-deps_build.json +10 -9
- package/.rush/temp/shrinkwrap-deps.json +1 -1
- package/.tsbuildinfo +1 -1
- package/CHANGELOG.json +58 -0
- package/CHANGELOG.md +15 -1
- package/dist/commands/generate/utils/generate-application/index.js +36 -3
- package/dist/commands/generate/utils/generate-application/index.js.map +1 -1
- package/dist/commands/generate/utils/generate-application/utils/build-app-generator-app/index.d.ts +1 -1
- package/dist/commands/generate/utils/generate-application/utils/build-app-generator-app/index.js +9 -3
- package/dist/commands/generate/utils/generate-application/utils/build-app-generator-app/index.js.map +1 -1
- package/dist/commands/generate/utils/generate-application/utils/build-meta-generator-app/index.js +3 -2
- package/dist/commands/generate/utils/generate-application/utils/build-meta-generator-app/index.js.map +1 -1
- package/dist/commands/generate/utils/generate-application/utils/generate-app/index.d.ts +2 -4
- package/dist/commands/generate/utils/generate-application/utils/generate-app/index.js +6 -1
- package/dist/commands/generate/utils/generate-application/utils/generate-app/index.js.map +1 -1
- package/dist/commands/generate/utils/generate-application/utils/load-generator-app/index.d.ts +2 -2
- package/dist/commands/generate/utils/generate-application/utils/load-generator-app/index.js +4 -5
- package/dist/commands/generate/utils/generate-application/utils/load-generator-app/index.js.map +1 -1
- package/dist/commands/generate/utils/generate-application/utils/load-generator-app/types.d.ts +2 -0
- package/dist/commands/generate/utils/generate-application/utils/load-generator-app/types.js +3 -0
- package/dist/commands/generate/utils/generate-application/utils/load-generator-app/types.js.map +1 -0
- package/package.json +6 -4
- package/src/commands/generate/utils/generate-application/index.ts +73 -7
- package/src/commands/generate/utils/generate-application/utils/build-app-generator-app/index.ts +20 -12
- package/src/commands/generate/utils/generate-application/utils/build-meta-generator-app/index.ts +5 -3
- package/src/commands/generate/utils/generate-application/utils/generate-app/index.ts +9 -5
- package/src/commands/generate/utils/generate-application/utils/load-generator-app/index.ts +9 -8
- package/src/commands/generate/utils/generate-application/utils/load-generator-app/types.ts +3 -0
package/CHANGELOG.json
CHANGED
|
@@ -1,6 +1,64 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ldsg/cli",
|
|
3
3
|
"entries": [
|
|
4
|
+
{
|
|
5
|
+
"version": "0.3.49",
|
|
6
|
+
"tag": "@ldsg/cli_v0.3.49",
|
|
7
|
+
"date": "Thu, 05 Nov 2026 00:13:54 GMT",
|
|
8
|
+
"comments": {
|
|
9
|
+
"patch": [
|
|
10
|
+
{
|
|
11
|
+
"comment": "发布更新"
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"dependency": [
|
|
15
|
+
{
|
|
16
|
+
"comment": "Updating dependency \"@ldsg/generator-app\" to `0.3.49`"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"comment": "Updating dependency \"@ldsg/handler\" to `0.3.49`"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"comment": "Updating dependency \"@ldsg/resource\" to `0.3.49`"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"comment": "Updating dependency \"@ldsg/utils\" to `0.3.49`"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"comment": "Updating dependency \"@ldsg/types\" to `0.3.49`"
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"version": "0.3.48",
|
|
35
|
+
"tag": "@ldsg/cli_v0.3.48",
|
|
36
|
+
"date": "Wed, 04 Nov 2026 15:43:23 GMT",
|
|
37
|
+
"comments": {
|
|
38
|
+
"patch": [
|
|
39
|
+
{
|
|
40
|
+
"comment": "发布更新"
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"dependency": [
|
|
44
|
+
{
|
|
45
|
+
"comment": "Updating dependency \"@ldsg/generator-app\" to `0.3.48`"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"comment": "Updating dependency \"@ldsg/handler\" to `0.3.48`"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"comment": "Updating dependency \"@ldsg/resource\" to `0.3.48`"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"comment": "Updating dependency \"@ldsg/utils\" to `0.3.48`"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"comment": "Updating dependency \"@ldsg/types\" to `0.3.48`"
|
|
58
|
+
}
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
},
|
|
4
62
|
{
|
|
5
63
|
"version": "0.3.47",
|
|
6
64
|
"tag": "@ldsg/cli_v0.3.47",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
# Change Log - @ldsg/cli
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Thu, 05 Nov 2026 00:13:54 GMT and should not be manually modified.
|
|
4
|
+
|
|
5
|
+
## 0.3.49
|
|
6
|
+
Thu, 05 Nov 2026 00:13:54 GMT
|
|
7
|
+
|
|
8
|
+
### Patches
|
|
9
|
+
|
|
10
|
+
- 发布更新
|
|
11
|
+
|
|
12
|
+
## 0.3.48
|
|
13
|
+
Wed, 04 Nov 2026 15:43:23 GMT
|
|
14
|
+
|
|
15
|
+
### Patches
|
|
16
|
+
|
|
17
|
+
- 发布更新
|
|
4
18
|
|
|
5
19
|
## 0.3.47
|
|
6
20
|
Wed, 04 Nov 2026 04:53:36 GMT
|
|
@@ -6,12 +6,45 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.generateApplication = void 0;
|
|
7
7
|
const utils_1 = require("@ldsg/utils");
|
|
8
8
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
9
10
|
const node_path_1 = __importDefault(require("node:path"));
|
|
10
11
|
const utils_2 = require("./utils");
|
|
11
12
|
const generateApplication = async (params) => {
|
|
12
|
-
const { outputPath, isZip } = params;
|
|
13
|
-
const {
|
|
14
|
-
|
|
13
|
+
const { data, outputPath, isZip } = params;
|
|
14
|
+
const { resourceRecords: dataResourceRecords } = data;
|
|
15
|
+
let generatorRequiredResourceRecords;
|
|
16
|
+
let generatorNames;
|
|
17
|
+
{
|
|
18
|
+
const generatorRequiredResourceKinds = ["generator", "generator_app"];
|
|
19
|
+
generatorRequiredResourceRecords = (0, utils_1.filterRequiredResourceRecords)({
|
|
20
|
+
requiredResourceKinds: generatorRequiredResourceKinds,
|
|
21
|
+
resourceRecords: dataResourceRecords,
|
|
22
|
+
}).requiredResourceRecords;
|
|
23
|
+
const generatorResourceRecords = lodash_1.default.filter(generatorRequiredResourceRecords, (resourceRecord) => {
|
|
24
|
+
const { kind } = resourceRecord;
|
|
25
|
+
return kind === "generator";
|
|
26
|
+
});
|
|
27
|
+
generatorNames = lodash_1.default.map(generatorResourceRecords, (resourceRecord) => {
|
|
28
|
+
const { slug } = resourceRecord.settings;
|
|
29
|
+
return lodash_1.default.snakeCase(slug);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
let metaGenerator;
|
|
33
|
+
{
|
|
34
|
+
const hasMetaGenerator = generatorNames.includes("meta");
|
|
35
|
+
if (hasMetaGenerator) {
|
|
36
|
+
const buildMetaGeneratorAppRes = await (0, utils_2.buildMetaGeneratorApp)(params);
|
|
37
|
+
metaGenerator = buildMetaGeneratorAppRes.metaGenerator;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
let appGenerator;
|
|
41
|
+
{
|
|
42
|
+
const hasAppGenerator = generatorNames.includes("app");
|
|
43
|
+
if (hasAppGenerator) {
|
|
44
|
+
const buildAppGeneratorAppRes = await (0, utils_2.buildAppGeneratorApp)({ metaGenerator, ...params });
|
|
45
|
+
appGenerator = buildAppGeneratorAppRes.appGenerator;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
15
48
|
const generateAppRes = await (0, utils_2.generateApp)({ appGenerator, ...params });
|
|
16
49
|
{
|
|
17
50
|
const { archive } = generateAppRes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/commands/generate/utils/generate-application/index.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/commands/generate/utils/generate-application/index.ts"],"names":[],"mappings":";;;;;;AAAA,uCAAgF;AAChF,wDAA0B;AAC1B,oDAAuB;AACvB,0DAA6B;AAE7B,mCAAmF;AAa5E,MAAM,mBAAmB,GAAwB,KAAK,EAAE,MAAM,EAAE,EAAE;IACvE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAE3C,MAAM,EAAE,eAAe,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC;IAEtD,IAAI,gCAAiD,CAAC;IAEtD,IAAI,cAAwB,CAAC;IAE7B,CAAC;QAIC,MAAM,8BAA8B,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAEtE,gCAAgC,GAAG,IAAA,qCAA6B,EAAC;YAC/D,qBAAqB,EAAE,8BAA8B;YACrD,eAAe,EAAE,mBAAmB;SACrC,CAAC,CAAC,uBAAuB,CAAC;QAE3B,MAAM,wBAAwB,GAAG,gBAAC,CAAC,MAAM,CACvC,gCAAgC,EAChC,CAAC,cAAc,EAAE,EAAE;YACjB,MAAM,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC;YAEhC,OAAO,IAAI,KAAK,WAAW,CAAC;QAC9B,CAAC,CACF,CAAC;QAEF,cAAc,GAAG,gBAAC,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,cAAc,EAAE,EAAE;YAClE,MAAM,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC;YAEzC,OAAO,gBAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,aAAoC,CAAC;IAQzC,CAAC;QAIC,MAAM,gBAAgB,GAAG,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEzD,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,wBAAwB,GAAG,MAAM,IAAA,6BAAqB,EAAC,MAAM,CAAC,CAAC;YAErE,aAAa,GAAG,wBAAwB,CAAC,aAAa,CAAC;QACzD,CAAC;IACH,CAAC;IAED,IAAI,YAAmC,CAAC;IAQxC,CAAC;QAIC,MAAM,eAAe,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEvD,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,uBAAuB,GAAG,MAAM,IAAA,4BAAoB,EAAC,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;YAEzF,YAAY,GAAG,uBAAuB,CAAC,YAAY,CAAC;QACtD,CAAC;IACH,CAAC;IAKD,MAAM,cAAc,GAAG,MAAM,IAAA,mBAAW,EAAC,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IAKtE,CAAC;QACC,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;QAEnC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,aAAa,GAAG,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAEvD,MAAM,kBAAE,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,IAAA,0BAAkB,EAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAjGW,QAAA,mBAAmB,uBAiG9B"}
|
package/dist/commands/generate/utils/generate-application/utils/build-app-generator-app/index.js
CHANGED
|
@@ -7,14 +7,20 @@ exports.buildAppGeneratorApp = void 0;
|
|
|
7
7
|
const node_os_1 = __importDefault(require("node:os"));
|
|
8
8
|
const node_path_1 = __importDefault(require("node:path"));
|
|
9
9
|
const load_generator_app_1 = require("../load-generator-app");
|
|
10
|
-
const META_GENERATOR_KIND = "meta_generator";
|
|
11
10
|
const buildAppGeneratorApp = async (params) => {
|
|
12
11
|
const { metaGenerator, ...restParams } = params;
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
let generateRes;
|
|
13
|
+
if (metaGenerator) {
|
|
14
|
+
generateRes = await metaGenerator.generate({ ...restParams });
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
}
|
|
18
|
+
const { archive } = generateRes;
|
|
19
|
+
const generatorApp = await (0, load_generator_app_1.loadGeneratorApp)({
|
|
15
20
|
archive,
|
|
16
21
|
outputPath: node_path_1.default.join(node_os_1.default.homedir(), ".ldsg", "app-generator"),
|
|
17
22
|
});
|
|
23
|
+
const appGenerator = generatorApp.generators["app"];
|
|
18
24
|
const res = {
|
|
19
25
|
appGenerator,
|
|
20
26
|
};
|
package/dist/commands/generate/utils/generate-application/utils/build-app-generator-app/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/commands/generate/utils/generate-application/utils/build-app-generator-app/index.ts"],"names":[],"mappings":";;;;;;AACA,sDAAyB;AACzB,0DAA6B;AAC7B,8DAAyD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/commands/generate/utils/generate-application/utils/build-app-generator-app/index.ts"],"names":[],"mappings":";;;;;;AACA,sDAAyB;AACzB,0DAA6B;AAC7B,8DAAyD;AAclD,MAAM,oBAAoB,GAAyB,KAAK,EAAE,MAAM,EAAE,EAAE;IACzE,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;IAEhD,IAAI,WAAwB,CAAC;IAE7B,IAAI,aAAa,EAAE,CAAC;QAIlB,WAAW,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;IAKR,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;IAEhC,MAAM,YAAY,GAAG,MAAM,IAAA,qCAAgB,EAAC;QAC1C,OAAO;QACP,UAAU,EAAE,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC;KAC9D,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,GAAG,GAA4B;QACnC,YAAY;KACb,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AA/BW,QAAA,oBAAoB,wBA+B/B"}
|
package/dist/commands/generate/utils/generate-application/utils/build-meta-generator-app/index.js
CHANGED
|
@@ -9,11 +9,12 @@ const node_os_1 = __importDefault(require("node:os"));
|
|
|
9
9
|
const node_path_1 = __importDefault(require("node:path"));
|
|
10
10
|
const load_generator_app_1 = require("../load-generator-app");
|
|
11
11
|
const buildMetaGeneratorApp = async (params) => {
|
|
12
|
-
const { archive } = await (0, utils_1.
|
|
13
|
-
const
|
|
12
|
+
const { archive } = await (0, utils_1.generateGeneratorApp)(params);
|
|
13
|
+
const generatorApp = await (0, load_generator_app_1.loadGeneratorApp)({
|
|
14
14
|
archive,
|
|
15
15
|
outputPath: node_path_1.default.join(node_os_1.default.homedir(), ".ldsg", "meta-generator"),
|
|
16
16
|
});
|
|
17
|
+
const metaGenerator = generatorApp.generators["meta"];
|
|
17
18
|
const res = {
|
|
18
19
|
metaGenerator,
|
|
19
20
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/commands/generate/utils/generate-application/utils/build-meta-generator-app/index.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/commands/generate/utils/generate-application/utils/build-meta-generator-app/index.ts"],"names":[],"mappings":";;;;;;AAAA,uCAAmD;AAEnD,sDAAyB;AACzB,0DAA6B;AAC7B,8DAAyD;AAYlD,MAAM,qBAAqB,GAA0B,KAAK,EAAE,MAAM,EAAE,EAAE;IAC3E,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,4BAAoB,EAAC,MAAM,CAAC,CAAC;IAEvD,MAAM,YAAY,GAAG,MAAM,IAAA,qCAAgB,EAAC;QAC1C,OAAO;QACP,UAAU,EAAE,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC;KAC/D,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAEtD,MAAM,GAAG,GAA6B;QACpC,aAAa;KACd,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAfW,QAAA,qBAAqB,yBAehC"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { GenerateParams, GenerateRes, Generator } from "@ldsg/types";
|
|
2
2
|
export interface GenerateAppParams extends GenerateParams {
|
|
3
|
-
appGenerator
|
|
3
|
+
appGenerator?: Generator;
|
|
4
4
|
}
|
|
5
|
-
export
|
|
6
|
-
}
|
|
7
|
-
export type GenerateApp = (params: GenerateAppParams) => Promise<GenerateAppRes>;
|
|
5
|
+
export type GenerateApp = (params: GenerateAppParams) => Promise<GenerateRes>;
|
|
8
6
|
export declare const generateApp: GenerateApp;
|
|
@@ -3,7 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.generateApp = void 0;
|
|
4
4
|
const generateApp = async (params) => {
|
|
5
5
|
const { appGenerator, ...restParams } = params;
|
|
6
|
-
|
|
6
|
+
let res;
|
|
7
|
+
if (appGenerator) {
|
|
8
|
+
res = await appGenerator.generate({ ...restParams });
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
}
|
|
7
12
|
return res;
|
|
8
13
|
};
|
|
9
14
|
exports.generateApp = generateApp;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/commands/generate/utils/generate-application/utils/generate-app/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/commands/generate/utils/generate-application/utils/generate-app/index.ts"],"names":[],"mappings":";;;AAQO,MAAM,WAAW,GAAgB,KAAK,EAAE,MAAM,EAAE,EAAE;IACvD,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;IAE/C,IAAI,GAAgB,CAAC;IAErB,IAAI,YAAY,EAAE,CAAC;QACjB,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;IAER,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAZW,QAAA,WAAW,eAYtB"}
|
package/dist/commands/generate/utils/generate-application/utils/load-generator-app/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { GeneratorApp } from "@ldsg/generator-app";
|
|
2
2
|
export interface LoadGeneratorAppParams {
|
|
3
3
|
archive: Buffer<ArrayBufferLike>;
|
|
4
4
|
outputPath: string;
|
|
5
5
|
}
|
|
6
|
-
export type LoadGeneratorApp = (params: LoadGeneratorAppParams) => Promise<
|
|
6
|
+
export type LoadGeneratorApp = (params: LoadGeneratorAppParams) => Promise<GeneratorApp>;
|
|
7
7
|
export declare const loadGeneratorApp: LoadGeneratorApp;
|
|
@@ -20,11 +20,10 @@ const loadGeneratorApp = async (params) => {
|
|
|
20
20
|
const importModule = new Function("specifier", "return import(specifier)");
|
|
21
21
|
const entryPath = node_path_1.default.join(outputPath, "dist", "index.js");
|
|
22
22
|
const entryUrl = `${(0, node_url_1.pathToFileURL)(entryPath).href}?t=${Date.now()}`;
|
|
23
|
-
const {
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return res;
|
|
23
|
+
const { instantiateAppResource } = (await importModule(entryUrl));
|
|
24
|
+
const appResource = await instantiateAppResource();
|
|
25
|
+
const { app: generatorApp } = appResource.createGeneratorApp();
|
|
26
|
+
return generatorApp;
|
|
28
27
|
};
|
|
29
28
|
exports.loadGeneratorApp = loadGeneratorApp;
|
|
30
29
|
//# sourceMappingURL=index.js.map
|
package/dist/commands/generate/utils/generate-application/utils/load-generator-app/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/commands/generate/utils/generate-application/utils/load-generator-app/index.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/commands/generate/utils/generate-application/utils/load-generator-app/index.ts"],"names":[],"mappings":";;;;;;AAAA,uCAA8F;AAE9F,wDAA0B;AAC1B,0DAA6B;AAC7B,uCAAyC;AAiBlC,MAAM,gBAAgB,GAAqB,KAAK,EAAE,MAAM,EAAE,EAAE;IACjE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAKvC,MAAM,kBAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAE5B,IAAA,0BAAkB,EAAC;QACjB,OAAO;QACP,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,IAAA,2BAAmB,EAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;IAE/C,MAAM,IAAA,8BAAsB,EAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;IAOlD,MAAM,YAAY,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAEpD,CAAC;IAEtB,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAK5D,MAAM,QAAQ,GAAG,GAAG,IAAA,wBAAa,EAAC,SAAS,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAEpE,MAAM,EAAE,sBAAsB,EAAE,GAAG,CAAC,MAAM,YAAY,CAAC,QAAQ,CAAC,CAE/D,CAAC;IAEF,MAAM,WAAW,GAAG,MAAM,sBAAsB,EAAE,CAAC;IAEnD,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC,kBAAkB,EAAE,CAAC;IAE/D,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AA1CW,QAAA,gBAAgB,oBA0C3B"}
|
package/dist/commands/generate/utils/generate-application/utils/load-generator-app/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../src/commands/generate/utils/generate-application/utils/load-generator-app/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ldsg/cli",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.49",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"license": "ISC",
|
|
@@ -17,8 +17,10 @@
|
|
|
17
17
|
"commander": "^12.0.0",
|
|
18
18
|
"fs-extra": "^11.3.0",
|
|
19
19
|
"js-yaml": "^4.1.0",
|
|
20
|
-
"@ldsg/
|
|
21
|
-
"@ldsg/
|
|
20
|
+
"@ldsg/generator-app": "0.3.49",
|
|
21
|
+
"@ldsg/resource": "0.3.49",
|
|
22
|
+
"@ldsg/handler": "0.3.49",
|
|
23
|
+
"@ldsg/utils": "0.3.49"
|
|
22
24
|
},
|
|
23
25
|
"devDependencies": {
|
|
24
26
|
"@types/fs-extra": "^11.0.4",
|
|
@@ -37,7 +39,7 @@
|
|
|
37
39
|
"ts-node": "^10.9.2",
|
|
38
40
|
"tslib": "^2.8.1",
|
|
39
41
|
"typescript": "^5.3.3",
|
|
40
|
-
"@ldsg/types": "0.3.
|
|
42
|
+
"@ldsg/types": "0.3.49"
|
|
41
43
|
},
|
|
42
44
|
"scripts": {
|
|
43
45
|
"build": "tsc --project tsconfig.build.json",
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { extractZipToFolder } from "@ldsg/utils";
|
|
1
|
+
import { extractZipToFolder, filterRequiredResourceRecords } from "@ldsg/utils";
|
|
2
2
|
import fs from "fs-extra";
|
|
3
|
+
import _ from "lodash";
|
|
3
4
|
import path from "node:path";
|
|
4
|
-
import type { GenerateParams } from "@ldsg/types";
|
|
5
|
+
import type { GenerateParams, Generator, ResourceRecords } from "@ldsg/types";
|
|
5
6
|
import { buildAppGeneratorApp, buildMetaGeneratorApp, generateApp } from "./utils";
|
|
6
7
|
|
|
7
8
|
interface GenerateApplicationParams extends GenerateParams {}
|
|
@@ -16,20 +17,85 @@ type GenerateApplication = (params: GenerateApplicationParams) => Promise<void>;
|
|
|
16
17
|
* 4. 输出压缩包或解压至目标输出路径。
|
|
17
18
|
*/
|
|
18
19
|
export const generateApplication: GenerateApplication = async (params) => {
|
|
19
|
-
const { outputPath, isZip } = params;
|
|
20
|
+
const { data, outputPath, isZip } = params;
|
|
21
|
+
|
|
22
|
+
const { resourceRecords: dataResourceRecords } = data;
|
|
23
|
+
|
|
24
|
+
let generatorRequiredResourceRecords: ResourceRecords;
|
|
25
|
+
|
|
26
|
+
let generatorNames: string[];
|
|
27
|
+
|
|
28
|
+
{
|
|
29
|
+
/**
|
|
30
|
+
* 生成器所需资源类型
|
|
31
|
+
*/
|
|
32
|
+
const generatorRequiredResourceKinds = ["generator", "generator_app"];
|
|
33
|
+
|
|
34
|
+
generatorRequiredResourceRecords = filterRequiredResourceRecords({
|
|
35
|
+
requiredResourceKinds: generatorRequiredResourceKinds,
|
|
36
|
+
resourceRecords: dataResourceRecords,
|
|
37
|
+
}).requiredResourceRecords;
|
|
38
|
+
|
|
39
|
+
const generatorResourceRecords = _.filter(
|
|
40
|
+
generatorRequiredResourceRecords,
|
|
41
|
+
(resourceRecord) => {
|
|
42
|
+
const { kind } = resourceRecord;
|
|
43
|
+
|
|
44
|
+
return kind === "generator";
|
|
45
|
+
},
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
generatorNames = _.map(generatorResourceRecords, (resourceRecord) => {
|
|
49
|
+
const { slug } = resourceRecord.settings;
|
|
50
|
+
|
|
51
|
+
return _.snakeCase(slug);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
let metaGenerator: Generator | undefined;
|
|
20
56
|
|
|
21
57
|
/**
|
|
22
|
-
* 1. 基于资源记录,使用此应用(@ldsg/cli)内置能力构建(含生成、依赖安装、构建)元生成器(Meta Generator
|
|
58
|
+
* 1. 基于资源记录,使用此应用(@ldsg/cli)内置能力构建(含生成、依赖安装、构建)元生成器(Meta Generator):
|
|
59
|
+
* 1.1. 检查资源记录中,是否有元生成器资源记录;
|
|
60
|
+
* 1.2. 若有,则使用此应用(@ldsg/cli)内置能力根据元生成器资源记录构建(含生成、依赖安装、构建)元生成器(Meta Generator);
|
|
61
|
+
* 1.3. 若没有,则跳过生成元生成器,直接使用默认元生成器。
|
|
23
62
|
*/
|
|
24
|
-
|
|
63
|
+
{
|
|
64
|
+
/**
|
|
65
|
+
* 是否有元生成器
|
|
66
|
+
*/
|
|
67
|
+
const hasMetaGenerator = generatorNames.includes("meta");
|
|
68
|
+
|
|
69
|
+
if (hasMetaGenerator) {
|
|
70
|
+
const buildMetaGeneratorAppRes = await buildMetaGeneratorApp(params);
|
|
71
|
+
|
|
72
|
+
metaGenerator = buildMetaGeneratorAppRes.metaGenerator;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
let appGenerator: Generator | undefined;
|
|
25
77
|
|
|
26
78
|
/**
|
|
27
79
|
* 2. 基于资源记录,使用元生成器(Meta Generator)能力构建(含生成、依赖安装、构建)应用生成器(App Generator);
|
|
80
|
+
* 2.1. 检查资源记录中,是否有应用生成器资源记录;
|
|
81
|
+
* 2.2. 若有,则使用此应用(@ldsg/cli)内置能力根据应用生成器资源记录构建(含生成、依赖安装、构建)应用生成器;
|
|
82
|
+
* 2.3. 若没有,则跳过生成应用生成器,直接使用默认应用生成器。
|
|
28
83
|
*/
|
|
29
|
-
|
|
84
|
+
{
|
|
85
|
+
/**
|
|
86
|
+
* 是否有应用的生成器
|
|
87
|
+
*/
|
|
88
|
+
const hasAppGenerator = generatorNames.includes("app");
|
|
89
|
+
|
|
90
|
+
if (hasAppGenerator) {
|
|
91
|
+
const buildAppGeneratorAppRes = await buildAppGeneratorApp({ metaGenerator, ...params });
|
|
92
|
+
|
|
93
|
+
appGenerator = buildAppGeneratorAppRes.appGenerator;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
30
96
|
|
|
31
97
|
/**
|
|
32
|
-
* 3. 基于资源记录,使用应用生成器(App Generator
|
|
98
|
+
* 3. 基于资源记录,使用应用生成器(App Generator)能力根据应用资源记录生成(仅含生成,不含依赖安装、构建)生成应用(App)压缩包;
|
|
33
99
|
*/
|
|
34
100
|
const generateAppRes = await generateApp({ appGenerator, ...params });
|
|
35
101
|
|
package/src/commands/generate/utils/generate-application/utils/build-app-generator-app/index.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { GenerateParams, Generator } from "@ldsg/types";
|
|
1
|
+
import { GenerateParams, GenerateRes, Generator } from "@ldsg/types";
|
|
2
2
|
import os from "node:os";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { loadGeneratorApp } from "../load-generator-app";
|
|
5
5
|
|
|
6
6
|
export interface BuildAppGeneratorAppParams extends GenerateParams {
|
|
7
|
-
metaGenerator
|
|
7
|
+
metaGenerator?: Generator;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
export interface BuildAppGeneratorAppRes {
|
|
@@ -15,24 +15,32 @@ export type BuildAppGeneratorApp = (
|
|
|
15
15
|
params: BuildAppGeneratorAppParams,
|
|
16
16
|
) => Promise<BuildAppGeneratorAppRes>;
|
|
17
17
|
|
|
18
|
-
/**
|
|
19
|
-
* 元生成器在生成器集合中的 kind,与默认生成器资源 settings.kind 一致
|
|
20
|
-
*/
|
|
21
|
-
const META_GENERATOR_KIND = "meta_generator";
|
|
22
|
-
|
|
23
18
|
export const buildAppGeneratorApp: BuildAppGeneratorApp = async (params) => {
|
|
24
19
|
const { metaGenerator, ...restParams } = params;
|
|
25
20
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
21
|
+
let generateRes: GenerateRes;
|
|
22
|
+
|
|
23
|
+
if (metaGenerator) {
|
|
24
|
+
/**
|
|
25
|
+
* 使用元生成器生成应用生成器应用
|
|
26
|
+
*/
|
|
27
|
+
generateRes = await metaGenerator.generate({ ...restParams });
|
|
28
|
+
} else {
|
|
29
|
+
/**
|
|
30
|
+
* 使用内置通用生成器生成
|
|
31
|
+
*/
|
|
32
|
+
// generateRes = await generate({ ...restParams });
|
|
33
|
+
}
|
|
30
34
|
|
|
31
|
-
const
|
|
35
|
+
const { archive } = generateRes;
|
|
36
|
+
|
|
37
|
+
const generatorApp = await loadGeneratorApp({
|
|
32
38
|
archive,
|
|
33
39
|
outputPath: path.join(os.homedir(), ".ldsg", "app-generator"),
|
|
34
40
|
});
|
|
35
41
|
|
|
42
|
+
const appGenerator = generatorApp.generators["app"];
|
|
43
|
+
|
|
36
44
|
const res: BuildAppGeneratorAppRes = {
|
|
37
45
|
appGenerator,
|
|
38
46
|
};
|
package/src/commands/generate/utils/generate-application/utils/build-meta-generator-app/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { generateGeneratorApp } from "@ldsg/utils";
|
|
2
2
|
import { GenerateParams, Generator } from "@ldsg/types";
|
|
3
3
|
import os from "node:os";
|
|
4
4
|
import path from "node:path";
|
|
@@ -15,13 +15,15 @@ export type BuildMetaGeneratorApp = (
|
|
|
15
15
|
) => Promise<BuildMetaGeneratorAppRes>;
|
|
16
16
|
|
|
17
17
|
export const buildMetaGeneratorApp: BuildMetaGeneratorApp = async (params) => {
|
|
18
|
-
const { archive } = await
|
|
18
|
+
const { archive } = await generateGeneratorApp(params);
|
|
19
19
|
|
|
20
|
-
const
|
|
20
|
+
const generatorApp = await loadGeneratorApp({
|
|
21
21
|
archive,
|
|
22
22
|
outputPath: path.join(os.homedir(), ".ldsg", "meta-generator"),
|
|
23
23
|
});
|
|
24
24
|
|
|
25
|
+
const metaGenerator = generatorApp.generators["meta"];
|
|
26
|
+
|
|
25
27
|
const res: BuildMetaGeneratorAppRes = {
|
|
26
28
|
metaGenerator,
|
|
27
29
|
};
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
import { GenerateParams, GenerateRes, Generator } from "@ldsg/types";
|
|
2
2
|
|
|
3
3
|
export interface GenerateAppParams extends GenerateParams {
|
|
4
|
-
appGenerator
|
|
4
|
+
appGenerator?: Generator;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
export type GenerateApp = (params: GenerateAppParams) => Promise<GenerateAppRes>;
|
|
7
|
+
export type GenerateApp = (params: GenerateAppParams) => Promise<GenerateRes>;
|
|
10
8
|
|
|
11
9
|
export const generateApp: GenerateApp = async (params) => {
|
|
12
10
|
const { appGenerator, ...restParams } = params;
|
|
13
11
|
|
|
14
|
-
|
|
12
|
+
let res: GenerateRes;
|
|
13
|
+
|
|
14
|
+
if (appGenerator) {
|
|
15
|
+
res = await appGenerator.generate({ ...restParams });
|
|
16
|
+
} else {
|
|
17
|
+
// res = await generate({ ...restParams });
|
|
18
|
+
}
|
|
15
19
|
|
|
16
20
|
return res;
|
|
17
21
|
};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { Generator } from "@ldsg/types";
|
|
2
1
|
import { buildWithPnpmWorkspace, extractZipToFolder, installDependencies } from "@ldsg/utils";
|
|
2
|
+
import { GeneratorApp, GeneratorAppResource } from "@ldsg/generator-app";
|
|
3
3
|
import fs from "fs-extra";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import { pathToFileURL } from "node:url";
|
|
6
|
+
import { InstantiateAppResource } from "./types";
|
|
6
7
|
|
|
7
8
|
export interface LoadGeneratorAppParams {
|
|
8
9
|
archive: Buffer<ArrayBufferLike>;
|
|
@@ -13,7 +14,7 @@ export interface LoadGeneratorAppParams {
|
|
|
13
14
|
outputPath: string;
|
|
14
15
|
}
|
|
15
16
|
|
|
16
|
-
export type LoadGeneratorApp = (params: LoadGeneratorAppParams) => Promise<
|
|
17
|
+
export type LoadGeneratorApp = (params: LoadGeneratorAppParams) => Promise<GeneratorApp>;
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
* 解压、安装依赖、构建并加载生成器应用,返回其 generate 能力
|
|
@@ -51,13 +52,13 @@ export const loadGeneratorApp: LoadGeneratorApp = async (params) => {
|
|
|
51
52
|
*/
|
|
52
53
|
const entryUrl = `${pathToFileURL(entryPath).href}?t=${Date.now()}`;
|
|
53
54
|
|
|
54
|
-
const {
|
|
55
|
-
|
|
55
|
+
const { instantiateAppResource } = (await importModule(entryUrl)) as {
|
|
56
|
+
instantiateAppResource: InstantiateAppResource<GeneratorAppResource>;
|
|
56
57
|
};
|
|
57
58
|
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
};
|
|
59
|
+
const appResource = await instantiateAppResource();
|
|
60
|
+
|
|
61
|
+
const { app: generatorApp } = appResource.createGeneratorApp();
|
|
61
62
|
|
|
62
|
-
return
|
|
63
|
+
return generatorApp;
|
|
63
64
|
};
|