@likec4/generators 1.4.0 → 1.29.0
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/LICENSE +21 -0
- package/dist/d2/generate-d2.d.ts +1 -2
- package/dist/d2/generate-d2.js +70 -63
- package/dist/d2/index.d.ts +0 -1
- package/dist/d2/index.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +6 -5
- package/dist/mmd/generate-mmd.d.ts +1 -2
- package/dist/mmd/generate-mmd.js +82 -63
- package/dist/mmd/index.d.ts +0 -1
- package/dist/mmd/index.js +1 -1
- package/dist/model/generate-likec4-model.d.ts +2 -0
- package/dist/model/generate-likec4-model.js +29 -0
- package/dist/model/generate-likec4.d.ts +2 -0
- package/dist/model/generate-likec4.js +2 -0
- package/dist/react/generate-react-types.d.ts +2 -0
- package/dist/react/generate-react-types.js +122 -0
- package/dist/react/index.d.ts +1 -2
- package/dist/react/index.js +1 -1
- package/dist/react-next/generate-react-next.d.ts +9 -7
- package/dist/react-next/generate-react-next.js +26 -26
- package/dist/react-next/index.d.ts +0 -1
- package/dist/react-next/index.js +1 -1
- package/dist/views-data-ts/generate-views-data.d.ts +3 -4
- package/dist/views-data-ts/generate-views-data.js +64 -54
- package/dist/views-data-ts/generateViewId.d.ts +1 -2
- package/dist/views-data-ts/generateViewId.js +5 -4
- package/dist/views-data-ts/index.d.ts +0 -1
- package/dist/views-data-ts/index.js +1 -1
- package/package.json +25 -27
- package/src/__mocks__/data.ts +463 -0
- package/src/d2/__snapshots__/generate-d2.spec.ts.snap +91 -0
- package/src/d2/generate-d2.spec.ts +15 -0
- package/src/d2/generate-d2.ts +106 -0
- package/src/d2/index.ts +1 -0
- package/src/index.ts +6 -0
- package/src/mmd/__snapshots__/generate-mmd.spec.ts.snap +55 -0
- package/src/mmd/generate-mmd.spec.ts +15 -0
- package/src/mmd/generate-mmd.ts +110 -0
- package/src/mmd/index.ts +1 -0
- package/src/model/__snapshots__/likec4-model.snap +990 -0
- package/src/model/generate-likec4-model.spec.ts +158 -0
- package/src/model/generate-likec4-model.ts +33 -0
- package/src/model/generate-likec4.ts +5 -0
- package/src/react/generate-react-types.ts +127 -0
- package/src/react/index.ts +1 -0
- package/src/react-next/generate-react-next.ts +111 -0
- package/src/react-next/index.ts +1 -0
- package/src/views-data-ts/__snapshots__/generate-views-data.spec.ts.snap +83 -0
- package/src/views-data-ts/generate-views-data.spec.ts +15 -0
- package/src/views-data-ts/generate-views-data.ts +147 -0
- package/src/views-data-ts/generateViewId.ts +9 -0
- package/src/views-data-ts/index.ts +1 -0
- package/dist/__mocks__/data.d.ts +0 -5
- package/dist/__mocks__/data.d.ts.map +0 -1
- package/dist/__mocks__/data.js +0 -456
- package/dist/d2/generate-d2.d.ts.map +0 -1
- package/dist/d2/generate-d2.spec.d.ts +0 -2
- package/dist/d2/generate-d2.spec.d.ts.map +0 -1
- package/dist/d2/generate-d2.spec.js +0 -12
- package/dist/d2/index.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/mmd/generate-mmd.d.ts.map +0 -1
- package/dist/mmd/generate-mmd.spec.d.ts +0 -2
- package/dist/mmd/generate-mmd.spec.d.ts.map +0 -1
- package/dist/mmd/generate-mmd.spec.js +0 -12
- package/dist/mmd/index.d.ts.map +0 -1
- package/dist/react/generate-react.d.ts +0 -3
- package/dist/react/generate-react.d.ts.map +0 -1
- package/dist/react/generate-react.js +0 -97
- package/dist/react/generate-react.spec.d.ts +0 -2
- package/dist/react/generate-react.spec.d.ts.map +0 -1
- package/dist/react/generate-react.spec.js +0 -6
- package/dist/react/index.d.ts.map +0 -1
- package/dist/react-next/generate-react-next.d.ts.map +0 -1
- package/dist/react-next/generate-react-next.spec.d.ts +0 -2
- package/dist/react-next/generate-react-next.spec.d.ts.map +0 -1
- package/dist/react-next/generate-react-next.spec.js +0 -9
- package/dist/react-next/index.d.ts.map +0 -1
- package/dist/views-data-ts/generate-views-data.d.ts.map +0 -1
- package/dist/views-data-ts/generate-views-data.spec.d.ts +0 -2
- package/dist/views-data-ts/generate-views-data.spec.d.ts.map +0 -1
- package/dist/views-data-ts/generate-views-data.spec.js +0 -12
- package/dist/views-data-ts/generateViewId.d.ts.map +0 -1
- package/dist/views-data-ts/index.d.ts.map +0 -1
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { CompositeGeneratorNode, toString } from
|
|
2
|
-
import { generateViewsDataDTs, generateViewsDataJs } from
|
|
1
|
+
import { CompositeGeneratorNode, toString } from "langium/generate";
|
|
2
|
+
import { generateViewsDataDTs, generateViewsDataJs } from "../views-data-ts/generate-views-data.js";
|
|
3
3
|
export function generateReactNext(views) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
4
|
+
return {
|
|
5
|
+
viewsData: {
|
|
6
|
+
fileName: "likec4-views-data",
|
|
7
|
+
js: generateViewsDataJs(views),
|
|
8
|
+
dts: generateViewsDataDTs(views)
|
|
9
|
+
},
|
|
10
|
+
components: {
|
|
11
|
+
fileName: "likec4-components",
|
|
12
|
+
...generateComponents()
|
|
13
|
+
},
|
|
14
|
+
index: generateIndex()
|
|
15
|
+
};
|
|
16
16
|
}
|
|
17
17
|
function generateComponents() {
|
|
18
|
-
|
|
18
|
+
const js = new CompositeGeneratorNode().appendTemplate`
|
|
19
19
|
/******************************************************************************
|
|
20
20
|
* This file was generated
|
|
21
21
|
* DO NOT EDIT MANUALLY!
|
|
@@ -37,7 +37,7 @@ function generateComponents() {
|
|
|
37
37
|
}
|
|
38
38
|
/* prettier-ignore-end */
|
|
39
39
|
`;
|
|
40
|
-
|
|
40
|
+
const dts = new CompositeGeneratorNode().appendTemplate`
|
|
41
41
|
/// <reference types="react" />
|
|
42
42
|
/******************************************************************************
|
|
43
43
|
* This file was generated
|
|
@@ -62,13 +62,13 @@ function generateComponents() {
|
|
|
62
62
|
export declare function EmbeddedLikeC4View({ viewId, ...props }: EmbeddedLikeC4ViewProps): JSX.Element;
|
|
63
63
|
/* prettier-ignore-end */
|
|
64
64
|
`;
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
65
|
+
return {
|
|
66
|
+
js: toString(js),
|
|
67
|
+
dts: toString(dts)
|
|
68
|
+
};
|
|
69
69
|
}
|
|
70
70
|
function generateIndex() {
|
|
71
|
-
|
|
71
|
+
const js = new CompositeGeneratorNode().appendTemplate`
|
|
72
72
|
/* prettier-ignore-start */
|
|
73
73
|
/* eslint-disable */
|
|
74
74
|
|
|
@@ -87,7 +87,7 @@ function generateIndex() {
|
|
|
87
87
|
|
|
88
88
|
/* prettier-ignore-end */
|
|
89
89
|
`;
|
|
90
|
-
|
|
90
|
+
const dts = new CompositeGeneratorNode().appendTemplate`
|
|
91
91
|
/* prettier-ignore-start */
|
|
92
92
|
/* eslint-disable */
|
|
93
93
|
|
|
@@ -95,8 +95,8 @@ function generateIndex() {
|
|
|
95
95
|
|
|
96
96
|
/* prettier-ignore-end */
|
|
97
97
|
`;
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
98
|
+
return {
|
|
99
|
+
js: toString(js),
|
|
100
|
+
dts: toString(dts)
|
|
101
|
+
};
|
|
102
102
|
}
|
package/dist/react-next/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { generateReactNext as default } from
|
|
1
|
+
export { generateReactNext as default } from "./generate-react-next.js";
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { DiagramView } from '@likec4/core';
|
|
2
|
-
export declare function generateViewsDataJs(diagrams: Iterable<DiagramView>):
|
|
3
|
-
export declare function generateViewsDataTs(diagrams: Iterable<DiagramView>):
|
|
4
|
-
export declare function generateViewsDataDTs(diagrams: Iterable<DiagramView>):
|
|
5
|
-
//# sourceMappingURL=generate-views-data.d.ts.map
|
|
2
|
+
export declare function generateViewsDataJs(diagrams: Iterable<DiagramView>): any;
|
|
3
|
+
export declare function generateViewsDataTs(diagrams: Iterable<DiagramView>): any;
|
|
4
|
+
export declare function generateViewsDataDTs(diagrams: Iterable<DiagramView>): any;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import JSON5 from
|
|
2
|
-
import { CompositeGeneratorNode, expandToNode, joinToNode, NL, toString } from
|
|
3
|
-
import { generateViewId } from
|
|
1
|
+
import JSON5 from "json5";
|
|
2
|
+
import { CompositeGeneratorNode, expandToNode, joinToNode, NL, toString } from "langium/generate";
|
|
3
|
+
import { generateViewId } from "./generateViewId.js";
|
|
4
4
|
export function generateViewsDataJs(diagrams) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
const views = Array.from(diagrams);
|
|
6
|
+
const out = new CompositeGeneratorNode();
|
|
7
|
+
out.appendTemplate`
|
|
8
8
|
/******************************************************************************
|
|
9
9
|
* This file was generated
|
|
10
10
|
* DO NOT EDIT MANUALLY!
|
|
@@ -13,23 +13,27 @@ export function generateViewsDataJs(diagrams) {
|
|
|
13
13
|
/* eslint-disable */
|
|
14
14
|
|
|
15
15
|
`.append(NL, NL);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
if (views.length == 0) {
|
|
17
|
+
out.append("export const LikeC4Views = {}", NL);
|
|
18
|
+
return toString(out);
|
|
19
|
+
}
|
|
20
|
+
out.appendTemplate`
|
|
21
21
|
export const LikeC4Views = {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
22
|
+
`.indent({
|
|
23
|
+
indentation: 2,
|
|
24
|
+
indentedChildren(indented) {
|
|
25
|
+
indented.appendNewLineIf(views.length > 1).append(
|
|
26
|
+
joinToNode(
|
|
27
|
+
views,
|
|
28
|
+
(view) => expandToNode`${JSON5.stringify(view.id)}: ${JSON5.stringify(view)}`,
|
|
29
|
+
{
|
|
30
|
+
separator: ",",
|
|
31
|
+
appendNewLineIfNotEmpty: true
|
|
32
|
+
}
|
|
33
|
+
)
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
}).append("}", NL, NL).appendTemplate`
|
|
33
37
|
|
|
34
38
|
export function isLikeC4ViewId(value) {
|
|
35
39
|
return (
|
|
@@ -41,12 +45,12 @@ export function generateViewsDataJs(diagrams) {
|
|
|
41
45
|
|
|
42
46
|
/* prettier-ignore-end */
|
|
43
47
|
`.append(NL);
|
|
44
|
-
|
|
48
|
+
return toString(out);
|
|
45
49
|
}
|
|
46
50
|
export function generateViewsDataTs(diagrams) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
51
|
+
const views = Array.from(diagrams);
|
|
52
|
+
const out = new CompositeGeneratorNode();
|
|
53
|
+
out.appendTemplate`
|
|
50
54
|
/******************************************************************************
|
|
51
55
|
* This file was generated
|
|
52
56
|
* DO NOT EDIT MANUALLY!
|
|
@@ -56,26 +60,32 @@ export function generateViewsDataTs(diagrams) {
|
|
|
56
60
|
|
|
57
61
|
// @ts-nocheck
|
|
58
62
|
|
|
59
|
-
import type { DiagramView } from '
|
|
63
|
+
import type { DiagramView } from 'likec4'
|
|
60
64
|
`.append(NL, NL);
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
if (views.length === 0) {
|
|
66
|
+
out.append("export {}", NL);
|
|
67
|
+
return toString(out);
|
|
68
|
+
}
|
|
69
|
+
out.appendTemplate`
|
|
66
70
|
export type LikeC4ViewId = ${generateViewId(views)};
|
|
67
71
|
export const LikeC4Views = {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
72
|
+
`.indent({
|
|
73
|
+
indentation: 2,
|
|
74
|
+
indentedChildren(indented) {
|
|
75
|
+
indented.appendNewLineIf(views.length > 1).append(
|
|
76
|
+
joinToNode(
|
|
77
|
+
views,
|
|
78
|
+
(view) => expandToNode`${JSON5.stringify(view.id)}: (${JSON5.stringify(
|
|
79
|
+
view
|
|
80
|
+
)} as unknown) as DiagramView`,
|
|
81
|
+
{
|
|
82
|
+
separator: ",",
|
|
83
|
+
appendNewLineIfNotEmpty: true
|
|
84
|
+
}
|
|
85
|
+
)
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
}).append("} as const satisfies Record<LikeC4ViewId, DiagramView>", NL, NL).appendTemplate`
|
|
79
89
|
export type LikeC4Views = typeof LikeC4Views
|
|
80
90
|
|
|
81
91
|
export function isLikeC4ViewId(value: unknown): value is LikeC4ViewId {
|
|
@@ -88,12 +98,12 @@ export function generateViewsDataTs(diagrams) {
|
|
|
88
98
|
|
|
89
99
|
/* prettier-ignore-end */
|
|
90
100
|
`.append(NL);
|
|
91
|
-
|
|
101
|
+
return toString(out);
|
|
92
102
|
}
|
|
93
103
|
export function generateViewsDataDTs(diagrams) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
104
|
+
const views = Array.from(diagrams);
|
|
105
|
+
const out = new CompositeGeneratorNode();
|
|
106
|
+
out.appendTemplate`
|
|
97
107
|
/******************************************************************************
|
|
98
108
|
* This file was generated
|
|
99
109
|
* DO NOT EDIT MANUALLY!
|
|
@@ -101,13 +111,13 @@ export function generateViewsDataDTs(diagrams) {
|
|
|
101
111
|
/* prettier-ignore-start */
|
|
102
112
|
/* eslint-disable */
|
|
103
113
|
|
|
104
|
-
import type { DiagramView } from '
|
|
114
|
+
import type { DiagramView } from 'likec4'
|
|
105
115
|
`.append(NL, NL);
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
116
|
+
if (views.length == 0) {
|
|
117
|
+
out.append("export {}", NL);
|
|
118
|
+
return toString(out);
|
|
119
|
+
}
|
|
120
|
+
out.appendTemplate`
|
|
111
121
|
export type LikeC4ViewId = ${generateViewId(views)};
|
|
112
122
|
export type LikeC4Views = Record<LikeC4ViewId, DiagramView>
|
|
113
123
|
|
|
@@ -116,5 +126,5 @@ export function generateViewsDataDTs(diagrams) {
|
|
|
116
126
|
|
|
117
127
|
/* prettier-ignore-end */
|
|
118
128
|
`.append(NL);
|
|
119
|
-
|
|
129
|
+
return toString(out);
|
|
120
130
|
}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
import type { DiagramView } from '@likec4/core';
|
|
2
|
-
export declare function generateViewId(views: Iterable<DiagramView>):
|
|
3
|
-
//# sourceMappingURL=generateViewId.d.ts.map
|
|
2
|
+
export declare function generateViewId(views: Iterable<DiagramView>): any;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import JSON5 from "json5";
|
|
2
|
+
import { expandToNode, joinToNode } from "langium/generate";
|
|
2
3
|
export function generateViewId(views) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
return joinToNode(views, (view) => expandToNode`${JSON5.stringify(view.id)}`, {
|
|
5
|
+
separator: " | "
|
|
6
|
+
});
|
|
6
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from
|
|
1
|
+
export * from "./generate-views-data.js";
|
package/package.json
CHANGED
|
@@ -1,56 +1,54 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@likec4/generators",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.29.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"bugs": "https://github.com/likec4/likec4/issues",
|
|
6
6
|
"homepage": "https://likec4.dev",
|
|
7
7
|
"author": "Denis Davydkov <denis@davydkov.com>",
|
|
8
8
|
"files": [
|
|
9
9
|
"dist",
|
|
10
|
-
"
|
|
10
|
+
"src"
|
|
11
11
|
],
|
|
12
12
|
"repository": {
|
|
13
13
|
"type": "git",
|
|
14
|
-
"url": "https://github.com/likec4/likec4.git",
|
|
14
|
+
"url": "git+https://github.com/likec4/likec4.git",
|
|
15
15
|
"directory": "packages/generators"
|
|
16
16
|
},
|
|
17
17
|
"type": "module",
|
|
18
18
|
"sideEffects": false,
|
|
19
19
|
"exports": {
|
|
20
20
|
".": {
|
|
21
|
-
"
|
|
22
|
-
"default":
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
"publishConfig": {
|
|
26
|
-
"registry": "https://registry.npmjs.org",
|
|
27
|
-
"access": "public",
|
|
28
|
-
"exports": {
|
|
29
|
-
".": {
|
|
21
|
+
"sources": "./src/index.ts",
|
|
22
|
+
"default": {
|
|
30
23
|
"types": "./dist/index.d.ts",
|
|
24
|
+
"import": "./dist/index.js",
|
|
31
25
|
"default": "./dist/index.js"
|
|
32
26
|
}
|
|
33
27
|
}
|
|
34
28
|
},
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"lint": "run -T eslint src/ --fix",
|
|
39
|
-
"clean": "run -T rimraf dist",
|
|
40
|
-
"test": "vitest run --no-isolate",
|
|
41
|
-
"test:watch": "vitest"
|
|
29
|
+
"publishConfig": {
|
|
30
|
+
"registry": "https://registry.npmjs.org",
|
|
31
|
+
"access": "public"
|
|
42
32
|
},
|
|
43
33
|
"dependencies": {
|
|
44
|
-
"@likec4/core": "1.4.0",
|
|
45
34
|
"json5": "^2.2.3",
|
|
46
|
-
"langium": "3.
|
|
47
|
-
"remeda": "^
|
|
35
|
+
"langium": "3.4.0",
|
|
36
|
+
"remeda": "^2.21.2",
|
|
37
|
+
"@likec4/core": "1.29.0"
|
|
48
38
|
},
|
|
49
39
|
"devDependencies": {
|
|
50
|
-
"@
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"vitest": "
|
|
40
|
+
"@types/node": "^20.17.30",
|
|
41
|
+
"typescript": "^5.8.3",
|
|
42
|
+
"unbuild": "^3.5.0",
|
|
43
|
+
"vitest": "^3.1.1",
|
|
44
|
+
"@likec4/tsconfig": "1.29.0"
|
|
54
45
|
},
|
|
55
|
-
"
|
|
46
|
+
"scripts": {
|
|
47
|
+
"typecheck": "tsc --noEmit",
|
|
48
|
+
"build": "unbuild",
|
|
49
|
+
"lint": "run -T eslint src/ --fix",
|
|
50
|
+
"clean": "rm -r -f dist",
|
|
51
|
+
"test": "vitest run --no-isolate",
|
|
52
|
+
"test:watch": "vitest"
|
|
53
|
+
}
|
|
56
54
|
}
|