@likec4/generators 0.60.3 → 1.0.0-next.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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@likec4/generators",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0-next.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"bugs": "https://github.com/likec4/likec4/issues",
|
|
6
6
|
"homepage": "https://likec4.dev",
|
|
@@ -34,19 +34,16 @@
|
|
|
34
34
|
"test": "run -T vitest run"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@likec4/core": "0.
|
|
37
|
+
"@likec4/core": "1.0.0-next.0",
|
|
38
38
|
"json5": "^2.2.3",
|
|
39
39
|
"langium": "^3.0.0",
|
|
40
|
-
"remeda": "^1.
|
|
40
|
+
"remeda": "^1.56.0"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@types/node": "^20.11.25",
|
|
44
|
-
"typescript": "^5.4.
|
|
44
|
+
"typescript": "^5.4.3",
|
|
45
45
|
"unbuild": "^2.0.0",
|
|
46
46
|
"vitest": "^1.4.0"
|
|
47
47
|
},
|
|
48
|
-
"packageManager": "yarn@4.1.1"
|
|
49
|
-
"volta": {
|
|
50
|
-
"extends": "../../package.json"
|
|
51
|
-
}
|
|
48
|
+
"packageManager": "yarn@4.1.1"
|
|
52
49
|
}
|
package/src/d2/generate-d2.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ComputedEdge, ComputedNode, ComputedView, NodeId } from '@likec4/core'
|
|
2
2
|
import { CompositeGeneratorNode, joinToNode, NL, toString } from 'langium/generate'
|
|
3
|
-
import { isNil } from 'remeda'
|
|
3
|
+
import { isNullish as isNil } from 'remeda'
|
|
4
4
|
|
|
5
5
|
const capitalizeFirstLetter = (value: string) => value.charAt(0).toLocaleUpperCase() + value.slice(1)
|
|
6
6
|
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { generateReact } from './react/generate-react'
|
|
2
1
|
export { generateD2 } from './d2/generate-d2'
|
|
3
2
|
export { generateMermaid } from './mmd/generate-mmd'
|
|
4
|
-
export {
|
|
3
|
+
export { generateReact } from './react/generate-react'
|
|
4
|
+
export { generateViewsDataDTs, generateViewsDataJs, generateViewsDataTs } from './views-data-ts/generate-views-data'
|
package/src/mmd/generate-mmd.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ComputedEdge, ComputedNode, ComputedView, NodeId } from '@likec4/core'
|
|
2
2
|
import { CompositeGeneratorNode, expandToNode, joinToNode, NL, NLEmpty, toString } from 'langium/generate'
|
|
3
|
-
import { isNil } from 'remeda'
|
|
3
|
+
import { isNullish as isNil } from 'remeda'
|
|
4
4
|
|
|
5
5
|
const capitalizeFirstLetter = (value: string) => value.charAt(0).toLocaleUpperCase() + value.slice(1)
|
|
6
6
|
|
|
@@ -10,7 +10,7 @@ const componentName = (value: string): string => {
|
|
|
10
10
|
return value.charAt(0).toLocaleUpperCase() + value.slice(1)
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
export const generateViewId = (views: DiagramView
|
|
13
|
+
export const generateViewId = (views: Iterable<DiagramView>) =>
|
|
14
14
|
joinToNode(views, view => expandToNode`'${view.id}'`, {
|
|
15
15
|
separator: ' | '
|
|
16
16
|
})
|
|
@@ -29,8 +29,12 @@ export function generateReact(views: DiagramView[]) {
|
|
|
29
29
|
* This file was generated
|
|
30
30
|
* DO NOT EDIT MANUALLY!
|
|
31
31
|
******************************************************************************/
|
|
32
|
+
/* prettier-ignore-start */
|
|
33
|
+
|
|
32
34
|
/* eslint-disable */
|
|
33
35
|
|
|
36
|
+
// @ts-nocheck
|
|
37
|
+
|
|
34
38
|
import type { DiagramView } from '@likec4/diagrams'
|
|
35
39
|
import { LikeC4 } from '@likec4/diagrams'
|
|
36
40
|
`.append(NL, NL)
|
|
@@ -107,6 +111,8 @@ export function generateReact(views: DiagramView[]) {
|
|
|
107
111
|
DiagramLabel,
|
|
108
112
|
DiagramView
|
|
109
113
|
} from '@likec4/diagrams'
|
|
114
|
+
|
|
115
|
+
/* prettier-ignore-end */
|
|
110
116
|
`.append(NL)
|
|
111
117
|
|
|
112
118
|
return toString(out)
|
|
@@ -3,13 +3,15 @@ import JSON5 from 'json5'
|
|
|
3
3
|
import { CompositeGeneratorNode, expandToNode, joinToNode, NL, toString } from 'langium/generate'
|
|
4
4
|
import { generateViewId } from '../react/generate-react'
|
|
5
5
|
|
|
6
|
-
export function generateViewsDataJs(
|
|
6
|
+
export function generateViewsDataJs(diagrams: Iterable<DiagramView>) {
|
|
7
|
+
const views = Array.from(diagrams)
|
|
7
8
|
const out = new CompositeGeneratorNode()
|
|
8
9
|
out.appendTemplate`
|
|
9
10
|
/******************************************************************************
|
|
10
11
|
* This file was generated
|
|
11
12
|
* DO NOT EDIT MANUALLY!
|
|
12
13
|
******************************************************************************/
|
|
14
|
+
/* prettier-ignore-start */
|
|
13
15
|
/* eslint-disable */
|
|
14
16
|
|
|
15
17
|
`.append(NL, NL)
|
|
@@ -43,26 +45,33 @@ export function generateViewsDataJs(views: DiagramView[]) {
|
|
|
43
45
|
return (
|
|
44
46
|
value != null &&
|
|
45
47
|
typeof value === 'string' &&
|
|
46
|
-
Object.
|
|
48
|
+
Object.hasOwn(LikeC4Views, value) &&
|
|
49
|
+
LikeC4Views[value] != null
|
|
47
50
|
)
|
|
48
51
|
}
|
|
49
|
-
|
|
52
|
+
|
|
53
|
+
/* prettier-ignore-end */
|
|
54
|
+
`.append(NL)
|
|
50
55
|
return toString(out)
|
|
51
56
|
}
|
|
52
57
|
|
|
53
|
-
export function generateViewsDataTs(
|
|
58
|
+
export function generateViewsDataTs(diagrams: Iterable<DiagramView>) {
|
|
59
|
+
const views = Array.from(diagrams)
|
|
54
60
|
const out = new CompositeGeneratorNode()
|
|
55
61
|
out.appendTemplate`
|
|
56
62
|
/******************************************************************************
|
|
57
63
|
* This file was generated
|
|
58
64
|
* DO NOT EDIT MANUALLY!
|
|
59
65
|
******************************************************************************/
|
|
66
|
+
/* prettier-ignore-start */
|
|
60
67
|
/* eslint-disable */
|
|
61
68
|
|
|
69
|
+
// @ts-nocheck
|
|
70
|
+
|
|
62
71
|
import type { DiagramView } from '@likec4/core'
|
|
63
72
|
`.append(NL, NL)
|
|
64
73
|
|
|
65
|
-
if (views.length
|
|
74
|
+
if (views.length === 0) {
|
|
66
75
|
out.append('export {}', NL)
|
|
67
76
|
return toString(out)
|
|
68
77
|
}
|
|
@@ -98,26 +107,43 @@ export function generateViewsDataTs(views: DiagramView[]) {
|
|
|
98
107
|
return (
|
|
99
108
|
value != null &&
|
|
100
109
|
typeof value === 'string' &&
|
|
101
|
-
Object.
|
|
110
|
+
Object.hasOwn(LikeC4Views, value) &&
|
|
111
|
+
LikeC4Views[value] != null
|
|
102
112
|
)
|
|
103
113
|
}
|
|
104
114
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
115
|
+
/* prettier-ignore-end */
|
|
116
|
+
`.append(NL)
|
|
117
|
+
return toString(out)
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export function generateViewsDataDTs(diagrams: Iterable<DiagramView>) {
|
|
121
|
+
const views = Array.from(diagrams)
|
|
122
|
+
const out = new CompositeGeneratorNode()
|
|
123
|
+
out.appendTemplate`
|
|
124
|
+
/******************************************************************************
|
|
125
|
+
* This file was generated
|
|
126
|
+
* DO NOT EDIT MANUALLY!
|
|
127
|
+
******************************************************************************/
|
|
128
|
+
/* prettier-ignore-start */
|
|
129
|
+
/* eslint-disable */
|
|
130
|
+
|
|
131
|
+
import type { DiagramView } from '@likec4/core'
|
|
132
|
+
`.append(NL, NL)
|
|
133
|
+
|
|
134
|
+
if (views.length == 0) {
|
|
135
|
+
out.append('export {}', NL)
|
|
136
|
+
return toString(out)
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
out.appendTemplate`
|
|
140
|
+
export type LikeC4ViewId = ${generateViewId(views)};
|
|
141
|
+
export type LikeC4Views = Record<LikeC4ViewId, DiagramView>
|
|
142
|
+
|
|
143
|
+
export declare const LikeC4Views: LikeC4Views
|
|
144
|
+
export declare function isLikeC4ViewId(value: unknown): value is LikeC4ViewId
|
|
145
|
+
|
|
146
|
+
/* prettier-ignore-end */
|
|
147
|
+
`.append(NL)
|
|
122
148
|
return toString(out)
|
|
123
149
|
}
|