@ldsg/cli 0.3.43 → 0.3.44
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 +15 -18
- package/.rush/temp/shrinkwrap-deps.json +1 -1
- package/.tsbuildinfo +1 -1
- package/CHANGELOG.json +23 -0
- package/CHANGELOG.md +8 -1
- package/README.md +3 -3
- package/dist/__tests__/bootstrap-generator.test.js +120 -0
- package/dist/__tests__/bootstrap-generator.test.js.map +1 -0
- package/dist/__tests__/generate-bootstrap.test.d.ts +1 -0
- package/dist/__tests__/generate-bootstrap.test.js +97 -0
- package/dist/__tests__/generate-bootstrap.test.js.map +1 -0
- package/dist/__tests__/resolve-module-builder.test.d.ts +1 -0
- package/dist/__tests__/resolve-module-builder.test.js +83 -0
- package/dist/__tests__/resolve-module-builder.test.js.map +1 -0
- package/dist/__tests__/resolve-root.test.d.ts +1 -0
- package/dist/__tests__/resolve-root.test.js +32 -0
- package/dist/__tests__/resolve-root.test.js.map +1 -0
- package/dist/cli.js +4 -431
- package/dist/cli.js.map +1 -1
- package/dist/commands/generate/index.d.ts +2 -0
- package/dist/commands/generate/index.js +35 -0
- package/dist/commands/generate/index.js.map +1 -0
- package/dist/commands/generate/types/generate.d.ts +12 -0
- package/dist/commands/generate/types/generate.js +3 -0
- package/dist/commands/generate/types/generate.js.map +1 -0
- package/dist/commands/generate/types/generator.d.ts +4 -0
- package/dist/commands/generate/types/generator.js +3 -0
- package/dist/commands/generate/types/generator.js.map +1 -0
- package/dist/commands/generate/types/index.d.ts +2 -0
- package/dist/commands/generate/types/index.js +19 -0
- package/dist/commands/generate/types/index.js.map +1 -0
- package/dist/commands/generate/types.d.ts +8 -0
- package/dist/{types/get-extend-app-data-params.js → commands/generate/types.js} +1 -1
- package/dist/commands/generate/types.js.map +1 -0
- package/dist/commands/generate/utils/generate-application/index.d.ts +6 -0
- package/dist/commands/generate/utils/generate-application/index.js +28 -0
- package/dist/commands/generate/utils/generate-application/index.js.map +1 -0
- package/dist/commands/generate/utils/generate-application/types/generator.d.ts +9 -0
- package/dist/commands/generate/utils/generate-application/types/generator.js +3 -0
- package/dist/commands/generate/utils/generate-application/types/generator.js.map +1 -0
- package/dist/commands/generate/utils/generate-application/types/index.d.ts +1 -0
- package/dist/commands/generate/utils/generate-application/types/index.js +18 -0
- package/dist/commands/generate/utils/generate-application/types/index.js.map +1 -0
- package/dist/commands/generate/utils/generate-application/utils/build-app-generator/index.d.ts +9 -0
- package/dist/commands/generate/utils/generate-application/utils/build-app-generator/index.js +30 -0
- package/dist/commands/generate/utils/generate-application/utils/build-app-generator/index.js.map +1 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/index.d.ts +13 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/index.js +125 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/index.js.map +1 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/constants.d.ts +3 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/constants.js +7 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/constants.js.map +1 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/index.d.ts +4 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/index.js +69 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/index.js.map +1 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/prepare-bootstrap-app-files.d.ts +3 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/prepare-bootstrap-app-files.js +32 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/prepare-bootstrap-app-files.js.map +1 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/render-bootstrap-entry.d.ts +2 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/render-bootstrap-entry.js +62 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/render-bootstrap-entry.js.map +1 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/resolve-dependencies.d.ts +11 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/resolve-dependencies.js +84 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap/resolve-dependencies.js.map +1 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/resource-record/get-resource-record-by-id.d.ts +2 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/resource-record/get-resource-record-by-id.js +15 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/resource-record/get-resource-record-by-id.js.map +1 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/resource-record/resolve-resource-definition-resource-record.d.ts +2 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/resource-record/resolve-resource-definition-resource-record.js +21 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/resource-record/resolve-resource-definition-resource-record.js.map +1 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/resource-record/resolve-root-resource-record.d.ts +2 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/resource-record/resolve-root-resource-record.js +18 -0
- package/dist/commands/generate/utils/generate-application/utils/build-bootstrap/utils/resource-record/resolve-root-resource-record.js.map +1 -0
- package/dist/commands/generate/utils/generate-application/utils/build-meta-generator/index.d.ts +8 -0
- package/dist/commands/generate/utils/generate-application/utils/build-meta-generator/index.js +32 -0
- package/dist/commands/generate/utils/generate-application/utils/build-meta-generator/index.js.map +1 -0
- package/dist/commands/generate/utils/generate-application/utils/generate-app/index.d.ts +8 -0
- package/dist/commands/generate/utils/generate-application/utils/generate-app/index.js +10 -0
- package/dist/commands/generate/utils/generate-application/utils/generate-app/index.js.map +1 -0
- package/dist/commands/generate/utils/generate-application/utils/index.d.ts +3 -0
- package/dist/commands/generate/utils/generate-application/utils/index.js +20 -0
- package/dist/commands/generate/utils/generate-application/utils/index.js.map +1 -0
- package/dist/commands/generate/utils/parse-extra-options.d.ts +5 -0
- package/dist/commands/generate/utils/parse-extra-options.js +59 -0
- package/dist/commands/generate/utils/parse-extra-options.js.map +1 -0
- package/dist/commands/resource/index.d.ts +2 -0
- package/dist/commands/resource/index.js +392 -0
- package/dist/commands/resource/index.js.map +1 -0
- package/dist/generator/bootstrap-generator.d.ts +19 -0
- package/dist/generator/bootstrap-generator.js +59 -0
- package/dist/generator/bootstrap-generator.js.map +1 -0
- package/dist/generator/module-builder.d.ts +2 -0
- package/dist/generator/module-builder.js +284 -0
- package/dist/generator/module-builder.js.map +1 -0
- package/dist/generator/resolve-module-builder.d.ts +8 -0
- package/dist/generator/resolve-module-builder.js +41 -0
- package/dist/generator/resolve-module-builder.js.map +1 -0
- package/dist/generator/resolve-root.d.ts +5 -0
- package/dist/generator/resolve-root.js +48 -0
- package/dist/generator/resolve-root.js.map +1 -0
- package/jest.config.js +4 -1
- package/package.json +5 -5
- package/src/cli.ts +4 -510
- package/src/commands/generate/index.ts +54 -0
- package/src/commands/generate/utils/generate-application/index.ts +50 -0
- package/src/commands/generate/utils/generate-application/utils/build-app-generator/index.ts +39 -0
- package/src/commands/generate/utils/generate-application/utils/build-meta-generator/index.ts +45 -0
- package/src/commands/generate/utils/generate-application/utils/generate-app/index.ts +17 -0
- package/src/commands/generate/utils/generate-application/utils/index.ts +3 -0
- package/src/commands/generate/utils/parse-extra-options.ts +80 -0
- package/src/commands/resource/index.ts +455 -0
- package/dist/__tests__/get-extend-app-data-params-using-workspace-ldsg-module.test.js +0 -81
- package/dist/__tests__/get-extend-app-data-params-using-workspace-ldsg-module.test.js.map +0 -1
- package/dist/types/get-extend-app-data-params.d.ts +0 -10
- package/dist/types/get-extend-app-data-params.js.map +0 -1
- package/dist/utils/get-extend-app-data-params-using-npm-ldsg-module.d.ts +0 -2
- package/dist/utils/get-extend-app-data-params-using-npm-ldsg-module.js +0 -27
- package/dist/utils/get-extend-app-data-params-using-npm-ldsg-module.js.map +0 -1
- package/dist/utils/get-extend-app-data-params-using-workspace-ldsg-module/index.d.ts +0 -2
- package/dist/utils/get-extend-app-data-params-using-workspace-ldsg-module/index.js +0 -98
- package/dist/utils/get-extend-app-data-params-using-workspace-ldsg-module/index.js.map +0 -1
- package/src/__tests__/add-pnpm-overrides.test.ts +0 -91
- package/src/__tests__/commands.test.ts +0 -318
- package/src/__tests__/formatter.test.ts +0 -151
- package/src/__tests__/generate-app-index-ts.test.ts +0 -141
- package/src/__tests__/get-extend-app-data-params-using-workspace-ldsg-module.test.ts +0 -109
- package/src/__tests__/json-file-mutator.test.ts +0 -186
- package/src/__tests__/mutate.test.ts +0 -392
- package/src/__tests__/source-resolver.test.ts +0 -125
- package/src/types/get-extend-app-data-params.ts +0 -13
- package/src/utils/get-extend-app-data-params-using-npm-ldsg-module.ts +0 -34
- package/src/utils/get-extend-app-data-params-using-workspace-ldsg-module/index.ts +0 -159
- /package/dist/__tests__/{get-extend-app-data-params-using-workspace-ldsg-module.test.d.ts → bootstrap-generator.test.d.ts} +0 -0
package/CHANGELOG.json
CHANGED
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ldsg/cli",
|
|
3
3
|
"entries": [
|
|
4
|
+
{
|
|
5
|
+
"version": "0.3.44",
|
|
6
|
+
"tag": "@ldsg/cli_v0.3.44",
|
|
7
|
+
"date": "Thu, 29 Oct 2026 14:35:23 GMT",
|
|
8
|
+
"comments": {
|
|
9
|
+
"patch": [
|
|
10
|
+
{
|
|
11
|
+
"comment": "发布更新"
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"dependency": [
|
|
15
|
+
{
|
|
16
|
+
"comment": "Updating dependency \"@ldsg/handler\" to `0.3.44`"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"comment": "Updating dependency \"@ldsg/utils\" to `0.3.44`"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"comment": "Updating dependency \"@ldsg/types\" to `0.3.44`"
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
},
|
|
4
27
|
{
|
|
5
28
|
"version": "0.3.43",
|
|
6
29
|
"tag": "@ldsg/cli_v0.3.43",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
# Change Log - @ldsg/cli
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Thu, 29 Oct 2026 14:35:23 GMT and should not be manually modified.
|
|
4
|
+
|
|
5
|
+
## 0.3.44
|
|
6
|
+
Thu, 29 Oct 2026 14:35:23 GMT
|
|
7
|
+
|
|
8
|
+
### Patches
|
|
9
|
+
|
|
10
|
+
- 发布更新
|
|
4
11
|
|
|
5
12
|
## 0.3.43
|
|
6
13
|
Sun, 11 Oct 2026 10:59:48 GMT
|
package/README.md
CHANGED
|
@@ -41,11 +41,11 @@ pnpm build
|
|
|
41
41
|
因此部署产物只需存放 `dist`,运行时无需 node_modules/源码。
|
|
42
42
|
|
|
43
43
|
```sh
|
|
44
|
-
# 生成(默认 npm 模式,NESTED
|
|
45
|
-
ldsg g --
|
|
44
|
+
# 生成(默认 npm 模式,NESTED 布局),最后一个参数为输出目录
|
|
45
|
+
ldsg g --data-uri <uri> ./generated/app
|
|
46
46
|
|
|
47
47
|
# 源数据非标准格式时,用 JSONata 表达式转换为标准落地生根资源记录
|
|
48
|
-
ldsg g --
|
|
48
|
+
ldsg g --data-uri <uri> --data-expression '{"resourceRecords":$.data.queryResourceRecords.resourceRecords}' ./generated/app
|
|
49
49
|
|
|
50
50
|
# 构建(打单文件 dist)
|
|
51
51
|
(cd generated/app; pnpm install && pnpm build)
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const handler_generator_1 = require("@ldsg/handler-generator");
|
|
4
|
+
const bootstrap_generator_1 = require("../generator/bootstrap-generator");
|
|
5
|
+
jest.mock("@ldsg/handler-generator", () => ({
|
|
6
|
+
buildHandlerModuleResource: jest.fn(),
|
|
7
|
+
}));
|
|
8
|
+
const mockedBuildHandlerModuleResource = handler_generator_1.buildHandlerModuleResource;
|
|
9
|
+
const buildApp = jest.fn();
|
|
10
|
+
const generatorDefinitionHandler = {
|
|
11
|
+
id: "generator-definition-handler",
|
|
12
|
+
kind: "handler",
|
|
13
|
+
parentId: "generator-definition",
|
|
14
|
+
settings: {
|
|
15
|
+
slug: "handler",
|
|
16
|
+
title: "",
|
|
17
|
+
description: "",
|
|
18
|
+
code: 'export * from "@ldsg/generator";',
|
|
19
|
+
dependencies: [{ name: "@ldsg/generator", version: "workspace:*" }],
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
const handlerGeneratorHandler = {
|
|
23
|
+
id: "handler-generator-handler",
|
|
24
|
+
kind: "handler",
|
|
25
|
+
parentId: "handler-generator",
|
|
26
|
+
settings: {
|
|
27
|
+
slug: "handler",
|
|
28
|
+
title: "",
|
|
29
|
+
description: "",
|
|
30
|
+
code: 'export { createModuleBuilder } from "@ldsg/handler-generator";',
|
|
31
|
+
dependencies: [{ name: "@ldsg/handler-generator", version: "workspace:*" }],
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
const rootGeneratorHandler = {
|
|
35
|
+
id: "root-generator-handler",
|
|
36
|
+
kind: "handler",
|
|
37
|
+
parentId: "root-generator",
|
|
38
|
+
settings: {
|
|
39
|
+
slug: "handler",
|
|
40
|
+
title: "",
|
|
41
|
+
description: "",
|
|
42
|
+
code: 'export * from "@ldsg/express-app-generator";',
|
|
43
|
+
dependencies: [{ name: "@ldsg/express-app-generator", version: "workspace:*" }],
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
beforeEach(() => {
|
|
47
|
+
jest.clearAllMocks();
|
|
48
|
+
});
|
|
49
|
+
test("createBootstrapGenerator builds both handler modules and application generator", async () => {
|
|
50
|
+
const moduleBuilder = {
|
|
51
|
+
buildModule: jest.fn(async () => ({
|
|
52
|
+
moduleDir: "/tmp/application-generator",
|
|
53
|
+
entryPath: "/tmp/application-generator/dist/index.js",
|
|
54
|
+
exports: { buildApp },
|
|
55
|
+
})),
|
|
56
|
+
};
|
|
57
|
+
mockedBuildHandlerModuleResource
|
|
58
|
+
.mockResolvedValueOnce({
|
|
59
|
+
moduleDir: "/tmp/generator-definition-handler",
|
|
60
|
+
entryPath: "/tmp/generator-definition-handler/dist/index.js",
|
|
61
|
+
exports: {},
|
|
62
|
+
})
|
|
63
|
+
.mockResolvedValueOnce({
|
|
64
|
+
moduleDir: "/tmp/handler-generator-handler",
|
|
65
|
+
entryPath: "/tmp/handler-generator-handler/dist/index.js",
|
|
66
|
+
exports: { createModuleBuilder: () => moduleBuilder },
|
|
67
|
+
});
|
|
68
|
+
const bootstrapGenerator = await (0, bootstrap_generator_1.createBootstrapGenerator)({
|
|
69
|
+
generatorDefinitionHandler,
|
|
70
|
+
handlerGeneratorHandler,
|
|
71
|
+
mode: "workspace",
|
|
72
|
+
cwd: "/tmp",
|
|
73
|
+
});
|
|
74
|
+
expect(mockedBuildHandlerModuleResource).toHaveBeenNthCalledWith(1, {
|
|
75
|
+
code: generatorDefinitionHandler.settings.code,
|
|
76
|
+
dependencies: generatorDefinitionHandler.settings.dependencies,
|
|
77
|
+
mode: "workspace",
|
|
78
|
+
cwd: "/tmp",
|
|
79
|
+
});
|
|
80
|
+
expect(mockedBuildHandlerModuleResource).toHaveBeenNthCalledWith(2, {
|
|
81
|
+
code: handlerGeneratorHandler.settings.code,
|
|
82
|
+
dependencies: handlerGeneratorHandler.settings.dependencies,
|
|
83
|
+
mode: "workspace",
|
|
84
|
+
cwd: "/tmp",
|
|
85
|
+
});
|
|
86
|
+
const applicationGenerator = await bootstrapGenerator.buildApplicationGenerator({
|
|
87
|
+
rootGeneratorHandler,
|
|
88
|
+
});
|
|
89
|
+
expect(moduleBuilder.buildModule).toHaveBeenCalledWith(expect.objectContaining({
|
|
90
|
+
code: 'export * as generator from "@ldsg/generator";\nexport * from "@ldsg/express-app-generator";',
|
|
91
|
+
dependencies: [
|
|
92
|
+
{ name: "@ldsg/generator" },
|
|
93
|
+
{ name: "@ldsg/express-app-generator", version: "workspace:*" },
|
|
94
|
+
],
|
|
95
|
+
mode: "workspace",
|
|
96
|
+
cwd: "/tmp",
|
|
97
|
+
}));
|
|
98
|
+
expect(applicationGenerator.moduleDir).toBe("/tmp/application-generator");
|
|
99
|
+
expect(applicationGenerator.buildApp).toBe(buildApp);
|
|
100
|
+
});
|
|
101
|
+
test("createBootstrapGenerator throws when handler generator handler does not export createModuleBuilder", async () => {
|
|
102
|
+
mockedBuildHandlerModuleResource
|
|
103
|
+
.mockResolvedValueOnce({
|
|
104
|
+
moduleDir: "/tmp/generator-definition-handler",
|
|
105
|
+
entryPath: "/tmp/generator-definition-handler/dist/index.js",
|
|
106
|
+
exports: {},
|
|
107
|
+
})
|
|
108
|
+
.mockResolvedValueOnce({
|
|
109
|
+
moduleDir: "/tmp/handler-generator-handler",
|
|
110
|
+
entryPath: "/tmp/handler-generator-handler/dist/index.js",
|
|
111
|
+
exports: {},
|
|
112
|
+
});
|
|
113
|
+
await expect((0, bootstrap_generator_1.createBootstrapGenerator)({
|
|
114
|
+
generatorDefinitionHandler,
|
|
115
|
+
handlerGeneratorHandler,
|
|
116
|
+
mode: "npm",
|
|
117
|
+
cwd: "/tmp",
|
|
118
|
+
})).rejects.toThrow("must export createModuleBuilder");
|
|
119
|
+
});
|
|
120
|
+
//# sourceMappingURL=bootstrap-generator.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap-generator.test.js","sourceRoot":"","sources":["../../src/__tests__/bootstrap-generator.test.ts"],"names":[],"mappings":";;AAAA,+DAAqE;AACrE,0EAA4E;AAE5E,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,0BAA0B,EAAE,IAAI,CAAC,EAAE,EAAE;CACtC,CAAC,CAAC,CAAC;AAEJ,MAAM,gCAAgC,GAAG,8CAAuC,CAAC;AAEjF,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAE3B,MAAM,0BAA0B,GAAG;IACjC,EAAE,EAAE,8BAA8B;IAClC,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,sBAAsB;IAChC,QAAQ,EAAE;QACR,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,EAAE;QACf,IAAI,EAAE,kCAAkC;QACxC,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;KACpE;CACF,CAAC;AAEF,MAAM,uBAAuB,GAAG;IAC9B,EAAE,EAAE,2BAA2B;IAC/B,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,mBAAmB;IAC7B,QAAQ,EAAE;QACR,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,EAAE;QACf,IAAI,EAAE,gEAAgE;QACtE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;KAC5E;CACF,CAAC;AAEF,MAAM,oBAAoB,GAAG;IAC3B,EAAE,EAAE,wBAAwB;IAC5B,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,gBAAgB;IAC1B,QAAQ,EAAE;QACR,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,EAAE;QACf,IAAI,EAAE,8CAA8C;QACpD,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;KAChF;CACF,CAAC;AAEF,UAAU,CAAC,GAAG,EAAE;IACd,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;IAChG,MAAM,aAAa,GAAG;QACpB,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAChC,SAAS,EAAE,4BAA4B;YACvC,SAAS,EAAE,0CAA0C;YACrD,OAAO,EAAE,EAAE,QAAQ,EAAE;SACtB,CAAC,CAAC;KACJ,CAAC;IAEF,gCAAgC;SAC7B,qBAAqB,CAAC;QACrB,SAAS,EAAE,mCAAmC;QAC9C,SAAS,EAAE,iDAAiD;QAC5D,OAAO,EAAE,EAAE;KACZ,CAAC;SACD,qBAAqB,CAAC;QACrB,SAAS,EAAE,gCAAgC;QAC3C,SAAS,EAAE,8CAA8C;QACzD,OAAO,EAAE,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE;KACtD,CAAC,CAAC;IAEL,MAAM,kBAAkB,GAAG,MAAM,IAAA,8CAAwB,EAAC;QACxD,0BAA0B;QAC1B,uBAAuB;QACvB,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,MAAM;KACZ,CAAC,CAAC;IAEH,MAAM,CAAC,gCAAgC,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE;QAClE,IAAI,EAAE,0BAA0B,CAAC,QAAQ,CAAC,IAAI;QAC9C,YAAY,EAAE,0BAA0B,CAAC,QAAQ,CAAC,YAAY;QAC9D,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,MAAM;KACZ,CAAC,CAAC;IAEH,MAAM,CAAC,gCAAgC,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE;QAClE,IAAI,EAAE,uBAAuB,CAAC,QAAQ,CAAC,IAAI;QAC3C,YAAY,EAAE,uBAAuB,CAAC,QAAQ,CAAC,YAAY;QAC3D,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,MAAM;KACZ,CAAC,CAAC;IAEH,MAAM,oBAAoB,GAAG,MAAM,kBAAkB,CAAC,yBAAyB,CAAC;QAC9E,oBAAoB;KACrB,CAAC,CAAC;IAEH,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,oBAAoB,CACpD,MAAM,CAAC,gBAAgB,CAAC;QACtB,IAAI,EAAE,6FAA6F;QACnG,YAAY,EAAE;YACZ,EAAE,IAAI,EAAE,iBAAiB,EAAE;YAC3B,EAAE,IAAI,EAAE,6BAA6B,EAAE,OAAO,EAAE,aAAa,EAAE;SAChE;QACD,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,MAAM;KACZ,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC1E,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oGAAoG,EAAE,KAAK,IAAI,EAAE;IACpH,gCAAgC;SAC7B,qBAAqB,CAAC;QACrB,SAAS,EAAE,mCAAmC;QAC9C,SAAS,EAAE,iDAAiD;QAC5D,OAAO,EAAE,EAAE;KACZ,CAAC;SACD,qBAAqB,CAAC;QACrB,SAAS,EAAE,gCAAgC;QAC3C,SAAS,EAAE,8CAA8C;QACzD,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;IAEL,MAAM,MAAM,CACV,IAAA,8CAAwB,EAAC;QACvB,0BAA0B;QAC1B,uBAAuB;QACvB,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,MAAM;KACZ,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
7
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const generate_bootstrap_1 = require("../commands/generate/utils/generate-application/utils/build-bootstrap/utils/generate-bootstrap");
|
|
10
|
+
const createResourceRecords = () => [
|
|
11
|
+
{
|
|
12
|
+
id: "root",
|
|
13
|
+
kind: "bootstrap",
|
|
14
|
+
parentId: null,
|
|
15
|
+
settings: {
|
|
16
|
+
originalKind: "application",
|
|
17
|
+
slug: "app",
|
|
18
|
+
title: "App",
|
|
19
|
+
description: "",
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
id: "bootstrap-definition",
|
|
24
|
+
kind: "resource_definition",
|
|
25
|
+
parentId: "root",
|
|
26
|
+
settings: {
|
|
27
|
+
kind: "bootstrap",
|
|
28
|
+
slug: "resource-definition",
|
|
29
|
+
title: "",
|
|
30
|
+
description: "",
|
|
31
|
+
handlerResourceId: "bootstrap-handler",
|
|
32
|
+
generatorResourceId: "generator",
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
id: "bootstrap-handler",
|
|
37
|
+
kind: "handler",
|
|
38
|
+
parentId: "bootstrap-definition",
|
|
39
|
+
settings: {
|
|
40
|
+
slug: "handler",
|
|
41
|
+
title: "",
|
|
42
|
+
description: "",
|
|
43
|
+
code: 'export * from "@ldsg/generator-app";',
|
|
44
|
+
dependencies: [{ name: "@ldsg/generator-app", version: "workspace:*" }],
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
id: "generator",
|
|
49
|
+
kind: "generator",
|
|
50
|
+
parentId: "root",
|
|
51
|
+
settings: {
|
|
52
|
+
slug: "generator",
|
|
53
|
+
title: "",
|
|
54
|
+
description: "",
|
|
55
|
+
handlerResourceId: "generator-handler",
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: "generator-handler",
|
|
60
|
+
kind: "handler",
|
|
61
|
+
parentId: "generator",
|
|
62
|
+
settings: {
|
|
63
|
+
slug: "handler",
|
|
64
|
+
title: "",
|
|
65
|
+
description: "",
|
|
66
|
+
code: 'export * from "@ldsg/express-app-generator";',
|
|
67
|
+
dependencies: [{ name: "@ldsg/express-app-generator", version: "workspace:*" }],
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
];
|
|
71
|
+
test("generateBootstrap writes an installable bootstrap project", async () => {
|
|
72
|
+
const outputPath = await fs_extra_1.default.mkdtemp(node_path_1.default.join(node_os_1.default.tmpdir(), "ldsg-bootstrap-"));
|
|
73
|
+
try {
|
|
74
|
+
await (0, generate_bootstrap_1.generateBootstrap)({
|
|
75
|
+
data: { resourceRecords: createResourceRecords() },
|
|
76
|
+
outputPath,
|
|
77
|
+
isZip: false,
|
|
78
|
+
extraOptions: {},
|
|
79
|
+
});
|
|
80
|
+
const packageJson = await fs_extra_1.default.readJson(node_path_1.default.join(outputPath, "package.json"));
|
|
81
|
+
const manifest = await fs_extra_1.default.readJson(node_path_1.default.join(outputPath, "manifest.json"));
|
|
82
|
+
const entry = await fs_extra_1.default.readFile(node_path_1.default.join(outputPath, "index.ts"), "utf8");
|
|
83
|
+
const handlerEntry = await fs_extra_1.default.readFile(node_path_1.default.join(outputPath, "handlers", "bootstrap-handler", "index.ts"), "utf8");
|
|
84
|
+
expect(packageJson.name).toBe("ldsg-bootstrap");
|
|
85
|
+
expect(packageJson.dependencies["@ldsg/create-generator-app"]).toBe("latest");
|
|
86
|
+
expect(packageJson.dependencies["bootstrap-handler"]).toBe("workspace:*");
|
|
87
|
+
expect(manifest.resourceRecords).toHaveLength(5);
|
|
88
|
+
expect(entry).toContain('import { createGeneratorApp } from "@ldsg/create-generator-app";');
|
|
89
|
+
expect(entry).toContain('from "./handlers/bootstrap-handler"');
|
|
90
|
+
expect(handlerEntry).toContain('export * from "@ldsg/generator-app";');
|
|
91
|
+
expect(await fs_extra_1.default.pathExists(node_path_1.default.join(outputPath, "node_modules"))).toBe(false);
|
|
92
|
+
}
|
|
93
|
+
finally {
|
|
94
|
+
await fs_extra_1.default.remove(outputPath);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
//# sourceMappingURL=generate-bootstrap.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-bootstrap.test.js","sourceRoot":"","sources":["../../src/__tests__/generate-bootstrap.test.ts"],"names":[],"mappings":";;;;;AAAA,wDAA0B;AAC1B,sDAAyB;AACzB,0DAA6B;AAC7B,uIAAmI;AAEnI,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC;IAClC;QACE,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE;YACR,YAAY,EAAE,aAAa;YAC3B,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,EAAE;SAChB;KACF;IACD;QACE,EAAE,EAAE,sBAAsB;QAC1B,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE;YACR,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,EAAE;YACf,iBAAiB,EAAE,mBAAmB;YACtC,mBAAmB,EAAE,WAAW;SACjC;KACF;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,sBAAsB;QAChC,QAAQ,EAAE;YACR,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,EAAE;YACf,IAAI,EAAE,sCAAsC;YAC5C,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;SACxE;KACF;IACD;QACE,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE;YACR,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,EAAE;YACf,iBAAiB,EAAE,mBAAmB;SACvC;KACF;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE;YACR,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,EAAE;YACf,IAAI,EAAE,8CAA8C;YACpD,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;SAChF;KACF;CACF,CAAC;AAEF,IAAI,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;IAC3E,MAAM,UAAU,GAAG,MAAM,kBAAE,CAAC,OAAO,CAAC,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAE/E,IAAI,CAAC;QACH,MAAM,IAAA,sCAAiB,EAAC;YACtB,IAAI,EAAE,EAAE,eAAe,EAAE,qBAAqB,EAAE,EAAE;YAClD,UAAU;YACV,KAAK,EAAE,KAAK;YACZ,YAAY,EAAE,EAAE;SACjB,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;QAC7E,MAAM,QAAQ,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;QAC3E,MAAM,YAAY,GAAG,MAAM,kBAAE,CAAC,QAAQ,CACpC,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,UAAU,CAAC,EAClE,MAAM,CACP,CAAC;QAEF,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAChD,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9E,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1E,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,kEAAkE,CAAC,CAAC;QAC5F,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC;QAC/D,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,mBAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjF,CAAC;YAAS,CAAC;QACT,MAAM,kBAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const handler_generator_1 = require("@ldsg/handler-generator");
|
|
4
|
+
const resolve_module_builder_1 = require("../generator/resolve-module-builder");
|
|
5
|
+
jest.mock("@ldsg/handler-generator", () => ({
|
|
6
|
+
buildModuleBuilder: jest.fn(),
|
|
7
|
+
createModuleBuilder: jest.fn(),
|
|
8
|
+
}));
|
|
9
|
+
const mockedCreateModuleBuilder = handler_generator_1.createModuleBuilder;
|
|
10
|
+
const mockedBuildModuleBuilder = handler_generator_1.buildModuleBuilder;
|
|
11
|
+
beforeEach(() => {
|
|
12
|
+
jest.clearAllMocks();
|
|
13
|
+
mockedCreateModuleBuilder.mockReturnValue({ name: "builtin" });
|
|
14
|
+
mockedBuildModuleBuilder.mockResolvedValue({ name: "resource" });
|
|
15
|
+
});
|
|
16
|
+
test("falls back to builtin module builder when handler definition has no generatorResourceId", async () => {
|
|
17
|
+
const res = await (0, resolve_module_builder_1.resolveModuleBuilder)({
|
|
18
|
+
resourceRecords: [
|
|
19
|
+
{
|
|
20
|
+
id: "handler-definition",
|
|
21
|
+
kind: "resource_definition",
|
|
22
|
+
parentId: "root",
|
|
23
|
+
settings: { slug: "handler-definition", title: "", description: "", kind: "handler" },
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
mode: "npm",
|
|
27
|
+
cwd: "/tmp",
|
|
28
|
+
});
|
|
29
|
+
expect(res).toEqual({ name: "builtin" });
|
|
30
|
+
expect(mockedCreateModuleBuilder).toHaveBeenCalled();
|
|
31
|
+
expect(mockedBuildModuleBuilder).not.toHaveBeenCalled();
|
|
32
|
+
});
|
|
33
|
+
test("builds module builder from handler generator resources", async () => {
|
|
34
|
+
const res = await (0, resolve_module_builder_1.resolveModuleBuilder)({
|
|
35
|
+
resourceRecords: [
|
|
36
|
+
{
|
|
37
|
+
id: "handler-definition",
|
|
38
|
+
kind: "resource_definition",
|
|
39
|
+
parentId: "root",
|
|
40
|
+
settings: {
|
|
41
|
+
slug: "handler-definition",
|
|
42
|
+
title: "",
|
|
43
|
+
description: "",
|
|
44
|
+
kind: "handler",
|
|
45
|
+
generatorResourceId: "handler-generator",
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: "handler-generator",
|
|
50
|
+
kind: "generator",
|
|
51
|
+
parentId: "root",
|
|
52
|
+
settings: {
|
|
53
|
+
slug: "handler-generator",
|
|
54
|
+
title: "",
|
|
55
|
+
description: "",
|
|
56
|
+
handlerResourceId: "handler-generator-handler",
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
id: "handler-generator-handler",
|
|
61
|
+
kind: "handler",
|
|
62
|
+
parentId: "handler-generator",
|
|
63
|
+
settings: {
|
|
64
|
+
slug: "handler-generator-handler",
|
|
65
|
+
title: "",
|
|
66
|
+
description: "",
|
|
67
|
+
code: 'export { createModuleBuilder } from "@ldsg/handler-generator";',
|
|
68
|
+
dependencies: [{ name: "@ldsg/handler-generator", version: "workspace:*" }],
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
],
|
|
72
|
+
mode: "workspace",
|
|
73
|
+
cwd: "/tmp",
|
|
74
|
+
});
|
|
75
|
+
expect(res).toEqual({ name: "resource" });
|
|
76
|
+
expect(mockedBuildModuleBuilder).toHaveBeenCalledWith({
|
|
77
|
+
code: 'export { createModuleBuilder } from "@ldsg/handler-generator";',
|
|
78
|
+
dependencies: [{ name: "@ldsg/handler-generator", version: "workspace:*" }],
|
|
79
|
+
mode: "workspace",
|
|
80
|
+
cwd: "/tmp",
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=resolve-module-builder.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-module-builder.test.js","sourceRoot":"","sources":["../../src/__tests__/resolve-module-builder.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const resolve_root_resource_record_1 = require("../commands/generate/utils/generate-application/utils/build-bootstrap/utils/resource-record/resolve-root-resource-record");
|
|
4
|
+
const resolve_resource_definition_resource_record_1 = require("../commands/generate/utils/generate-application/utils/build-bootstrap/utils/resource-record/resolve-resource-definition-resource-record");
|
|
5
|
+
const root = {
|
|
6
|
+
id: "root-resource",
|
|
7
|
+
kind: "application",
|
|
8
|
+
parentId: null,
|
|
9
|
+
settings: { slug: "app", title: "App", description: "" },
|
|
10
|
+
};
|
|
11
|
+
test("resolveRootResourceRecord returns the unique root resource", () => {
|
|
12
|
+
expect((0, resolve_root_resource_record_1.resolveRootResourceRecord)([root])).toBe(root);
|
|
13
|
+
});
|
|
14
|
+
test("resolveRootResourceRecord throws when there is no root resource", () => {
|
|
15
|
+
expect(() => (0, resolve_root_resource_record_1.resolveRootResourceRecord)([])).toThrow("root resource not found");
|
|
16
|
+
});
|
|
17
|
+
test("resolveRootResourceRecord throws when there are multiple root resources", () => {
|
|
18
|
+
expect(() => (0, resolve_root_resource_record_1.resolveRootResourceRecord)([root, { ...root, id: "root-resource-2" }])).toThrow("multiple root resources");
|
|
19
|
+
});
|
|
20
|
+
test("resolveResourceDefinitionResourceRecord returns the definition under the root resource", () => {
|
|
21
|
+
const definition = {
|
|
22
|
+
id: "app-definition",
|
|
23
|
+
kind: "resource_definition",
|
|
24
|
+
parentId: root.id,
|
|
25
|
+
settings: { kind: "application", slug: "resource-definition", title: "", description: "" },
|
|
26
|
+
};
|
|
27
|
+
expect((0, resolve_resource_definition_resource_record_1.resolveResourceDefinitionResourceRecord)([root, definition], root.id, "application")).toBe(definition);
|
|
28
|
+
});
|
|
29
|
+
test("resolveResourceDefinitionResourceRecord throws when the definition is missing", () => {
|
|
30
|
+
expect(() => (0, resolve_resource_definition_resource_record_1.resolveResourceDefinitionResourceRecord)([root], root.id, "generator")).toThrow("resource definition not found: generator");
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=resolve-root.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-root.test.js","sourceRoot":"","sources":["../../src/__tests__/resolve-root.test.ts"],"names":[],"mappings":";;AAAA,2KAAqK;AACrK,yMAAkM;AAElM,MAAM,IAAI,GAAG;IACX,EAAE,EAAE,eAAe;IACnB,IAAI,EAAE,aAAa;IACnB,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;CACzD,CAAC;AAEF,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;IACtE,MAAM,CAAC,IAAA,wDAAyB,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iEAAiE,EAAE,GAAG,EAAE;IAC3E,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,wDAAyB,EAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;AACjF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yEAAyE,EAAE,GAAG,EAAE;IACnF,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,wDAAyB,EAAC,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CACzF,yBAAyB,CAC1B,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wFAAwF,EAAE,GAAG,EAAE;IAClG,MAAM,UAAU,GAAG;QACjB,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,IAAI,CAAC,EAAE;QACjB,QAAQ,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;KAC3F,CAAC;IAEF,MAAM,CAAC,IAAA,qFAAuC,EAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAC9F,UAAU,CACX,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+EAA+E,EAAE,GAAG,EAAE;IACzF,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,qFAAuC,EAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CACzF,0CAA0C,CAC3C,CAAC;AACJ,CAAC,CAAC,CAAC"}
|