@likec4/generators 0.60.3 → 1.0.0-next.1

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.60.3",
3
+ "version": "1.0.0-next.1",
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.60.3",
37
+ "@likec4/core": "1.0.0-next.1",
38
38
  "json5": "^2.2.3",
39
39
  "langium": "^3.0.0",
40
- "remeda": "^1.40.1"
40
+ "remeda": "^1.56.0"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/node": "^20.11.25",
44
- "typescript": "^5.4.2",
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
  }
@@ -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 { generateViewsDataTs, generateViewsDataJs } from './views-data-ts/generate-views-data'
3
+ export { generateReact } from './react/generate-react'
4
+ export { generateViewsDataDTs, generateViewsDataJs, generateViewsDataTs } from './views-data-ts/generate-views-data'
@@ -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(views: DiagramView[]) {
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.prototype.hasOwnProperty.call(LikeC4Views, value)
48
+ Object.hasOwn(LikeC4Views, value) &&
49
+ LikeC4Views[value] != null
47
50
  )
48
51
  }
49
- `.append(NL, NL)
52
+
53
+ /* prettier-ignore-end */
54
+ `.append(NL)
50
55
  return toString(out)
51
56
  }
52
57
 
53
- export function generateViewsDataTs(views: DiagramView[]) {
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 == 0) {
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.prototype.hasOwnProperty.call(LikeC4Views, value)
110
+ Object.hasOwn(LikeC4Views, value) &&
111
+ LikeC4Views[value] != null
102
112
  )
103
113
  }
104
114
 
105
- // Re-export types
106
- export type {
107
- Fqn,
108
- Element,
109
- RelationID,
110
- Relation,
111
- NodeId,
112
- EdgeId,
113
- ComputedNode,
114
- ComputedEdge,
115
- ComputedView,
116
- DiagramView,
117
- DiagramNode,
118
- DiagramEdge,
119
- DiagramLabel
120
- } from '@likec4/core'
121
- `.append(NL, NL)
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
  }