@likec4/generators 0.34.0 → 0.35.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.
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { DiagramView } from '@likec4/core';
|
|
2
|
+
import { CompositeGeneratorNode } from 'langium';
|
|
3
|
+
export declare const generateViewId: (views: DiagramView[]) => CompositeGeneratorNode | undefined;
|
|
2
4
|
export declare function generateReact(views: DiagramView[]): string;
|
|
3
5
|
//# sourceMappingURL=generate-react.d.ts.map
|
|
@@ -7,7 +7,7 @@ const componentName = (value) => {
|
|
|
7
7
|
value = value.replaceAll('_', '');
|
|
8
8
|
return value.charAt(0).toLocaleUpperCase() + value.slice(1);
|
|
9
9
|
};
|
|
10
|
-
const generateViewId = (views) => joinToNode(views, view => expandToNode `'${view.id}'`, {
|
|
10
|
+
export const generateViewId = (views) => joinToNode(views, view => expandToNode `'${view.id}'`, {
|
|
11
11
|
separator: ' | '
|
|
12
12
|
});
|
|
13
13
|
export function generateReact(views) {
|
|
@@ -37,17 +37,16 @@ export function generateReact(views) {
|
|
|
37
37
|
export type LikeC4ViewId = ${generateViewId(views)};
|
|
38
38
|
export const LikeC4Views = {
|
|
39
39
|
`
|
|
40
|
-
.appendNewLine()
|
|
41
40
|
.indent({
|
|
42
41
|
indentation: 2,
|
|
43
|
-
indentedChildren
|
|
44
|
-
|
|
42
|
+
indentedChildren(indented) {
|
|
43
|
+
indented.appendNewLineIf(views.length > 1).append(joinToNode(views, view => expandToNode `${JSON5.stringify(view.id)}: (${JSON5.stringify(view)} as unknown) as DiagramView`, {
|
|
45
44
|
separator: ',',
|
|
46
45
|
appendNewLineIfNotEmpty: true
|
|
47
46
|
}));
|
|
48
47
|
}
|
|
49
48
|
})
|
|
50
|
-
.append('}
|
|
49
|
+
.append('} as const satisfies Record<LikeC4ViewId, DiagramView>', NL, NL).appendTemplate `
|
|
51
50
|
export type LikeC4Views = typeof LikeC4Views
|
|
52
51
|
|
|
53
52
|
export const {
|
|
@@ -1,54 +1,61 @@
|
|
|
1
1
|
import JSON5 from 'json5';
|
|
2
2
|
import { CompositeGeneratorNode, NL, expandToNode, joinToNode, toString } from 'langium';
|
|
3
|
+
import { generateViewId } from '../react/generate-react';
|
|
3
4
|
export function generateViewsDataTs(views) {
|
|
4
5
|
const out = new CompositeGeneratorNode();
|
|
5
6
|
out.appendTemplate `
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
/******************************************************************************
|
|
8
|
+
* This file was generated
|
|
9
|
+
* DO NOT EDIT MANUALLY!
|
|
10
|
+
******************************************************************************/
|
|
11
|
+
/* eslint-disable */
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
import type { DiagramView } from '@likec4/core'
|
|
13
14
|
`.append(NL, NL);
|
|
14
|
-
|
|
15
|
-
.append('export
|
|
15
|
+
if (views.length == 0) {
|
|
16
|
+
out.append('export {}', NL);
|
|
17
|
+
return toString(out);
|
|
18
|
+
}
|
|
19
|
+
out.appendTemplate `
|
|
20
|
+
export type LikeC4ViewId = ${generateViewId(views)};
|
|
21
|
+
export const LikeC4Views = {
|
|
22
|
+
`
|
|
16
23
|
.indent({
|
|
17
24
|
indentation: 2,
|
|
18
|
-
indentedChildren
|
|
19
|
-
|
|
25
|
+
indentedChildren(indented) {
|
|
26
|
+
indented.appendNewLineIf(views.length > 1).append(joinToNode(views, view => expandToNode `${JSON5.stringify(view.id)}: (${JSON5.stringify(view)} as unknown) as DiagramView`, {
|
|
20
27
|
separator: ',',
|
|
21
28
|
appendNewLineIfNotEmpty: true
|
|
22
29
|
}));
|
|
23
30
|
}
|
|
24
31
|
})
|
|
25
|
-
.append('} as const', NL, NL).appendTemplate `
|
|
26
|
-
|
|
27
|
-
export type LikeC4ViewId = keyof LikeC4Views
|
|
32
|
+
.append('} as const satisfies Record<LikeC4ViewId, DiagramView>', NL, NL).appendTemplate `
|
|
33
|
+
export type LikeC4Views = typeof LikeC4Views
|
|
28
34
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
35
|
+
export function isLikeC4ViewId(value: unknown): value is LikeC4ViewId {
|
|
36
|
+
return (
|
|
37
|
+
value != null &&
|
|
38
|
+
typeof value === 'string' &&
|
|
39
|
+
Object.prototype.hasOwnProperty.call(LikeC4Views, value)
|
|
40
|
+
)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Re-export types
|
|
44
|
+
export type {
|
|
45
|
+
Fqn,
|
|
46
|
+
Element,
|
|
47
|
+
RelationID,
|
|
48
|
+
Relation,
|
|
49
|
+
NodeId,
|
|
50
|
+
EdgeId,
|
|
51
|
+
ComputedNode,
|
|
52
|
+
ComputedEdge,
|
|
53
|
+
ComputedView,
|
|
54
|
+
DiagramView,
|
|
55
|
+
DiagramNode,
|
|
56
|
+
DiagramEdge,
|
|
57
|
+
DiagramLabel
|
|
58
|
+
} from '@likec4/core'
|
|
59
|
+
`.append(NL, NL);
|
|
53
60
|
return toString(out);
|
|
54
61
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@likec4/generators",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.35.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"bugs": "https://github.com/likec4/likec4/issues",
|
|
6
6
|
"homepage": "https://likec4.dev",
|
|
@@ -38,14 +38,15 @@
|
|
|
38
38
|
"test:watch": "run -T vitest"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@likec4/core": "0.
|
|
41
|
+
"@likec4/core": "0.35.0",
|
|
42
42
|
"json5": "^2.2.3",
|
|
43
|
-
"langium": "^2.0.
|
|
43
|
+
"langium": "^2.0.2",
|
|
44
44
|
"rambdax": "^9.1.1"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@types/node": "^18.15.11",
|
|
48
|
-
"typescript": "^5.
|
|
49
|
-
"vitest": "^0.34.
|
|
50
|
-
}
|
|
48
|
+
"typescript": "^5.2.2",
|
|
49
|
+
"vitest": "^0.34.3"
|
|
50
|
+
},
|
|
51
|
+
"packageManager": "yarn@3.6.3"
|
|
51
52
|
}
|