@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.
- 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,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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate-react.spec.d.ts","sourceRoot":"","sources":["../../src/react/generate-react.spec.ts"],"names":[],"mappings":""}
|
|
@@ -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 +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 +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"}
|