@likec4/generators 1.5.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.
Files changed (85) hide show
  1. package/LICENSE +21 -0
  2. package/dist/d2/generate-d2.d.ts +1 -2
  3. package/dist/d2/generate-d2.js +70 -63
  4. package/dist/d2/index.d.ts +0 -1
  5. package/dist/d2/index.js +1 -1
  6. package/dist/index.d.ts +2 -2
  7. package/dist/index.js +6 -5
  8. package/dist/mmd/generate-mmd.d.ts +1 -2
  9. package/dist/mmd/generate-mmd.js +82 -63
  10. package/dist/mmd/index.d.ts +0 -1
  11. package/dist/mmd/index.js +1 -1
  12. package/dist/model/generate-likec4-model.d.ts +2 -0
  13. package/dist/model/generate-likec4-model.js +29 -0
  14. package/dist/model/generate-likec4.d.ts +2 -0
  15. package/dist/model/generate-likec4.js +2 -0
  16. package/dist/react/generate-react-types.d.ts +2 -0
  17. package/dist/react/generate-react-types.js +122 -0
  18. package/dist/react/index.d.ts +1 -2
  19. package/dist/react/index.js +1 -1
  20. package/dist/react-next/generate-react-next.d.ts +9 -7
  21. package/dist/react-next/generate-react-next.js +26 -26
  22. package/dist/react-next/index.d.ts +0 -1
  23. package/dist/react-next/index.js +1 -1
  24. package/dist/views-data-ts/generate-views-data.d.ts +3 -4
  25. package/dist/views-data-ts/generate-views-data.js +64 -54
  26. package/dist/views-data-ts/generateViewId.d.ts +1 -2
  27. package/dist/views-data-ts/generateViewId.js +5 -4
  28. package/dist/views-data-ts/index.d.ts +0 -1
  29. package/dist/views-data-ts/index.js +1 -1
  30. package/package.json +25 -27
  31. package/src/__mocks__/data.ts +463 -0
  32. package/src/d2/__snapshots__/generate-d2.spec.ts.snap +91 -0
  33. package/src/d2/generate-d2.spec.ts +15 -0
  34. package/src/d2/generate-d2.ts +106 -0
  35. package/src/d2/index.ts +1 -0
  36. package/src/index.ts +6 -0
  37. package/src/mmd/__snapshots__/generate-mmd.spec.ts.snap +55 -0
  38. package/src/mmd/generate-mmd.spec.ts +15 -0
  39. package/src/mmd/generate-mmd.ts +110 -0
  40. package/src/mmd/index.ts +1 -0
  41. package/src/model/__snapshots__/likec4-model.snap +990 -0
  42. package/src/model/generate-likec4-model.spec.ts +158 -0
  43. package/src/model/generate-likec4-model.ts +33 -0
  44. package/src/model/generate-likec4.ts +5 -0
  45. package/src/react/generate-react-types.ts +127 -0
  46. package/src/react/index.ts +1 -0
  47. package/src/react-next/generate-react-next.ts +111 -0
  48. package/src/react-next/index.ts +1 -0
  49. package/src/views-data-ts/__snapshots__/generate-views-data.spec.ts.snap +83 -0
  50. package/src/views-data-ts/generate-views-data.spec.ts +15 -0
  51. package/src/views-data-ts/generate-views-data.ts +147 -0
  52. package/src/views-data-ts/generateViewId.ts +9 -0
  53. package/src/views-data-ts/index.ts +1 -0
  54. package/dist/__mocks__/data.d.ts +0 -5
  55. package/dist/__mocks__/data.d.ts.map +0 -1
  56. package/dist/__mocks__/data.js +0 -456
  57. package/dist/d2/generate-d2.d.ts.map +0 -1
  58. package/dist/d2/generate-d2.spec.d.ts +0 -2
  59. package/dist/d2/generate-d2.spec.d.ts.map +0 -1
  60. package/dist/d2/generate-d2.spec.js +0 -12
  61. package/dist/d2/index.d.ts.map +0 -1
  62. package/dist/index.d.ts.map +0 -1
  63. package/dist/mmd/generate-mmd.d.ts.map +0 -1
  64. package/dist/mmd/generate-mmd.spec.d.ts +0 -2
  65. package/dist/mmd/generate-mmd.spec.d.ts.map +0 -1
  66. package/dist/mmd/generate-mmd.spec.js +0 -12
  67. package/dist/mmd/index.d.ts.map +0 -1
  68. package/dist/react/generate-react.d.ts +0 -3
  69. package/dist/react/generate-react.d.ts.map +0 -1
  70. package/dist/react/generate-react.js +0 -97
  71. package/dist/react/generate-react.spec.d.ts +0 -2
  72. package/dist/react/generate-react.spec.d.ts.map +0 -1
  73. package/dist/react/generate-react.spec.js +0 -6
  74. package/dist/react/index.d.ts.map +0 -1
  75. package/dist/react-next/generate-react-next.d.ts.map +0 -1
  76. package/dist/react-next/generate-react-next.spec.d.ts +0 -2
  77. package/dist/react-next/generate-react-next.spec.d.ts.map +0 -1
  78. package/dist/react-next/generate-react-next.spec.js +0 -9
  79. package/dist/react-next/index.d.ts.map +0 -1
  80. package/dist/views-data-ts/generate-views-data.d.ts.map +0 -1
  81. package/dist/views-data-ts/generate-views-data.spec.d.ts +0 -2
  82. package/dist/views-data-ts/generate-views-data.spec.d.ts.map +0 -1
  83. package/dist/views-data-ts/generate-views-data.spec.js +0 -12
  84. package/dist/views-data-ts/generateViewId.d.ts.map +0 -1
  85. package/dist/views-data-ts/index.d.ts.map +0 -1
@@ -1,97 +0,0 @@
1
- import JSON5 from 'json5';
2
- import { CompositeGeneratorNode, expandToNode, joinToNode, NL, toString } from 'langium/generate';
3
- import { generateViewId } from '../views-data-ts/generateViewId';
4
- const componentName = (value) => {
5
- if (!value.charAt(0).match(/[a-zA-Z]/)) {
6
- value = 'View' + value;
7
- }
8
- value = value.replaceAll('_', '');
9
- return value.charAt(0).toLocaleUpperCase() + value.slice(1);
10
- };
11
- export function generateReact(views) {
12
- const components = views.map(({ id }) => {
13
- return {
14
- id,
15
- name: componentName(id)
16
- };
17
- });
18
- const out = new CompositeGeneratorNode();
19
- out.appendTemplate `
20
- /******************************************************************************
21
- * This file was generated
22
- * DO NOT EDIT MANUALLY!
23
- ******************************************************************************/
24
- /* prettier-ignore-start */
25
-
26
- /* eslint-disable */
27
-
28
- // @ts-nocheck
29
-
30
- import type { DiagramView } from '@likec4/diagrams'
31
- import { LikeC4 } from '@likec4/diagrams'
32
- `.append(NL, NL);
33
- if (components.length == 0) {
34
- out.append('export {}', NL);
35
- return toString(out);
36
- }
37
- out.appendTemplate `
38
- export type LikeC4ViewId = ${generateViewId(views)};
39
- export const LikeC4Views = {
40
- `
41
- .indent({
42
- indentation: 2,
43
- indentedChildren(indented) {
44
- indented.appendNewLineIf(views.length > 1).append(joinToNode(views, view => expandToNode `${JSON5.stringify(view.id)}: (${JSON5.stringify(view)} as unknown) as DiagramView`, {
45
- separator: ',',
46
- appendNewLineIfNotEmpty: true
47
- }));
48
- }
49
- })
50
- .append('} as const satisfies Record<LikeC4ViewId, DiagramView>', NL, NL).appendTemplate `
51
- export type LikeC4Views = typeof LikeC4Views
52
-
53
- export const {
54
- // guard
55
- isViewId,
56
- // React hook to use location hash for ViewId
57
- useViewId,
58
- // React component to display diagram
59
- Diagram,
60
- // React component to display diagram in responsive container
61
- Responsive,
62
- // React component to display diagram in fullscreen container
63
- Fullscreen,
64
- // React component to embed diagram and open browser on click
65
- Embedded,
66
- // React component to browse diagrams in fullscreen container
67
- Browser,
68
- } = LikeC4.create<LikeC4ViewId>(LikeC4Views)
69
-
70
- export type DiagramProps = LikeC4.DiagramProps<LikeC4ViewId>
71
- export type ResponsiveProps = LikeC4.ResponsiveProps<LikeC4ViewId>
72
- export type FullscreenProps = LikeC4.FullscreenProps<LikeC4ViewId>
73
- export type EmbeddedProps = LikeC4.EmbeddedProps<LikeC4ViewId>
74
- export type BrowserProps = LikeC4.BrowserProps<LikeC4ViewId>
75
-
76
- // Re-export types
77
- export type {
78
- DiagramApi,
79
- Fqn,
80
- Element,
81
- RelationID,
82
- Relation,
83
- NodeId,
84
- EdgeId,
85
- ViewID,
86
- ComputedView,
87
- LikeC4Theme,
88
- DiagramNode,
89
- DiagramEdge,
90
- DiagramLabel,
91
- DiagramView
92
- } from '@likec4/diagrams'
93
-
94
- /* prettier-ignore-end */
95
- `.append(NL);
96
- return toString(out);
97
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=generate-react.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-react.spec.d.ts","sourceRoot":"","sources":["../../src/react/generate-react.spec.ts"],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- import { expect, test } from 'vitest';
2
- import { fakeDiagram, fakeDiagram2 } from '../__mocks__/data';
3
- import { generateReact } from './generate-react';
4
- test('generate react', () => {
5
- expect(generateReact([fakeDiagram, fakeDiagram2])).toMatchSnapshot();
6
- });
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-react-next.d.ts","sourceRoot":"","sources":["../../src/react-next/generate-react-next.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAI/C,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;EAa7D"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=generate-react-next.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-react-next.spec.d.ts","sourceRoot":"","sources":["../../src/react-next/generate-react-next.spec.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- import { expect, test } from 'vitest';
2
- import { fakeDiagram, fakeDiagram2 } from '../__mocks__/data';
3
- import { generateReactNext } from './generate-react-next';
4
- test('generate react-next', () => {
5
- const { components, index, viewsData } = generateReactNext([fakeDiagram, fakeDiagram2]);
6
- expect(index).toMatchSnapshot();
7
- expect(components).toMatchSnapshot();
8
- expect(viewsData).toMatchSnapshot();
9
- });
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react-next/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-views-data.d.ts","sourceRoot":"","sources":["../../src/views-data-ts/generate-views-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAK/C,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,UAiDlE;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,UA2DlE;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,UA6BnE"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=generate-views-data.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-views-data.spec.d.ts","sourceRoot":"","sources":["../../src/views-data-ts/generate-views-data.spec.ts"],"names":[],"mappings":""}
@@ -1,12 +0,0 @@
1
- import { expect, test } from 'vitest';
2
- import { fakeDiagram, fakeDiagram2 } from '../__mocks__/data';
3
- import { generateViewsDataDTs, generateViewsDataJs, generateViewsDataTs } from './generate-views-data';
4
- test('generate generateViewsDataJs', () => {
5
- expect(generateViewsDataJs([fakeDiagram, fakeDiagram2])).toMatchSnapshot();
6
- });
7
- test('generate generateViewsDataTs', () => {
8
- expect(generateViewsDataTs([fakeDiagram, fakeDiagram2])).toMatchSnapshot();
9
- });
10
- test('generate generateViewsDataDTs', () => {
11
- expect(generateViewsDataDTs([fakeDiagram, fakeDiagram2])).toMatchSnapshot();
12
- });
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateViewId.d.ts","sourceRoot":"","sources":["../../src/views-data-ts/generateViewId.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAG/C,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,iEAI1D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/views-data-ts/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA"}