@likec4/generators 1.47.0 → 1.48.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 (39) hide show
  1. package/LICENSE +1 -1
  2. package/dist/index.d.mts +59 -0
  3. package/dist/index.mjs +589 -0
  4. package/package.json +20 -17
  5. package/src/react/generate-react-types.ts +2 -2
  6. package/dist/d2/generate-d2.d.ts +0 -3
  7. package/dist/d2/generate-d2.js +0 -87
  8. package/dist/d2/index.d.ts +0 -1
  9. package/dist/d2/index.js +0 -1
  10. package/dist/index.d.ts +0 -7
  11. package/dist/index.js +0 -7
  12. package/dist/mmd/generate-mmd.d.ts +0 -3
  13. package/dist/mmd/generate-mmd.js +0 -107
  14. package/dist/mmd/index.d.ts +0 -1
  15. package/dist/mmd/index.js +0 -1
  16. package/dist/model/generate-aux.d.ts +0 -4
  17. package/dist/model/generate-aux.js +0 -67
  18. package/dist/model/generate-likec4-model.d.ts +0 -4
  19. package/dist/model/generate-likec4-model.js +0 -22
  20. package/dist/model/generate-likec4.d.ts +0 -2
  21. package/dist/model/generate-likec4.js +0 -2
  22. package/dist/puml/generate-puml.d.ts +0 -3
  23. package/dist/puml/generate-puml.js +0 -170
  24. package/dist/puml/index.d.ts +0 -1
  25. package/dist/puml/index.js +0 -1
  26. package/dist/react/generate-react-types.d.ts +0 -4
  27. package/dist/react/generate-react-types.js +0 -64
  28. package/dist/react/index.d.ts +0 -1
  29. package/dist/react/index.js +0 -1
  30. package/dist/react-next/generate-react-next.d.ts +0 -20
  31. package/dist/react-next/generate-react-next.js +0 -102
  32. package/dist/react-next/index.d.ts +0 -1
  33. package/dist/react-next/index.js +0 -1
  34. package/dist/views-data-ts/generate-views-data.d.ts +0 -13
  35. package/dist/views-data-ts/generate-views-data.js +0 -130
  36. package/dist/views-data-ts/generateViewId.d.ts +0 -2
  37. package/dist/views-data-ts/generateViewId.js +0 -7
  38. package/dist/views-data-ts/index.d.ts +0 -1
  39. package/dist/views-data-ts/index.js +0 -1
@@ -1,64 +0,0 @@
1
- import { invariant } from "@likec4/core/utils";
2
- import { generateAux } from "../model/generate-aux.js";
3
- export function generateReactTypes(model, options = {}) {
4
- const { useCorePackage = false } = options;
5
- invariant(!model.isParsed(), "can not generate react types for parsed model");
6
- const aux = generateAux(model, options);
7
- return `
8
- /* prettier-ignore-start */
9
- /* eslint-disable */
10
-
11
- /******************************************************************************
12
- * This file was generated
13
- * DO NOT EDIT MANUALLY!
14
- ******************************************************************************/
15
-
16
- import type { PropsWithChildren } from 'react'
17
- import type { JSX } from 'react/jsx-runtime'
18
- import type { LikeC4Model } from '${useCorePackage ? "@likec4/core" : "likec4"}/model'
19
- import type { DiagramView } from '${useCorePackage ? "@likec4/core/types" : "likec4/model"}'
20
- import type {
21
- LikeC4ViewProps as GenericLikeC4ViewProps,
22
- ReactLikeC4Props as GenericReactLikeC4Props
23
- } from 'likec4/react'
24
-
25
- ${aux}
26
-
27
- declare function isLikeC4ViewId(value: unknown): value is $ViewId;
28
-
29
- declare const likec4model: LikeC4Model<$Aux>;
30
- declare function useLikeC4Model(): LikeC4Model<$Aux>;
31
- declare function useLikeC4View(viewId: $ViewId): DiagramView<$Aux>;
32
-
33
- declare function LikeC4ModelProvider(props: PropsWithChildren): JSX.Element;
34
-
35
- type IconRendererProps = {
36
- node: {
37
- id: string
38
- title: string
39
- icon?: string | undefined
40
- }
41
- }
42
- declare function RenderIcon(props: IconRendererProps): JSX.Element;
43
-
44
- type LikeC4ViewProps = GenericLikeC4ViewProps<$Aux>;
45
- declare function LikeC4View({viewId, ...props}: LikeC4ViewProps): JSX.Element;
46
-
47
- type ReactLikeC4Props = GenericReactLikeC4Props<$Aux>
48
- declare function ReactLikeC4({viewId, ...props}: ReactLikeC4Props): JSX.Element;
49
-
50
- export {
51
- type LikeC4ViewProps,
52
- type ReactLikeC4Props,
53
- isLikeC4ViewId,
54
- useLikeC4Model,
55
- useLikeC4View,
56
- likec4model,
57
- LikeC4ModelProvider,
58
- LikeC4View,
59
- RenderIcon,
60
- ReactLikeC4
61
- }
62
- /* prettier-ignore-end */
63
- `.trimStart();
64
- }
@@ -1 +0,0 @@
1
- export { generateReactTypes as default } from './generate-react-types';
@@ -1 +0,0 @@
1
- export { generateReactTypes as default } from "./generate-react-types.js";
@@ -1,20 +0,0 @@
1
- import type { DiagramView } from '@likec4/core';
2
- /**
3
- * @deprecated in favor packages/likec4/src/cli/codegen/react/index.ts
4
- */
5
- export declare function generateReactNext(views: Iterable<DiagramView>): {
6
- viewsData: {
7
- fileName: string;
8
- js: any;
9
- dts: any;
10
- };
11
- components: {
12
- js: any;
13
- dts: any;
14
- fileName: string;
15
- };
16
- index: {
17
- js: any;
18
- dts: any;
19
- };
20
- };
@@ -1,102 +0,0 @@
1
- import { CompositeGeneratorNode, toString } from "langium/generate";
2
- import { generateViewsDataDTs, generateViewsDataJs } from "../views-data-ts/generate-views-data.js";
3
- export function generateReactNext(views) {
4
- return {
5
- viewsData: {
6
- fileName: "likec4-views-data",
7
- js: generateViewsDataJs(views),
8
- dts: generateViewsDataDTs(views)
9
- },
10
- components: {
11
- fileName: "likec4-components",
12
- ...generateComponents()
13
- },
14
- index: generateIndex()
15
- };
16
- }
17
- function generateComponents() {
18
- const js = new CompositeGeneratorNode().appendTemplate`
19
- /******************************************************************************
20
- * This file was generated
21
- * DO NOT EDIT MANUALLY!
22
- ******************************************************************************/
23
- /* prettier-ignore-start */
24
- /* eslint-disable */
25
- import { createElement } from "react";
26
- import { LikeC4Diagram, EmbeddedLikeC4Diagram } from "@likec4/diagram";
27
- import { LikeC4Views } from "./likec4-views-data";
28
- export function LikeC4View({ viewId, ...props }) {
29
- const view = LikeC4Views[viewId];
30
- if (!view) {
31
- throw new Error(\`LikeC4View NotFound: "\${viewId}"\`);
32
- }
33
- return createElement(LikeC4Diagram, { view: view, ...props });
34
- }
35
- export function EmbeddedLikeC4View({ viewId, ...props }) {
36
- return createElement(EmbeddedLikeC4Diagram, { viewId: viewId, views: LikeC4Views, ...props });
37
- }
38
- /* prettier-ignore-end */
39
- `;
40
- const dts = new CompositeGeneratorNode().appendTemplate`
41
- /// <reference types="react" />
42
- /******************************************************************************
43
- * This file was generated
44
- * DO NOT EDIT MANUALLY!
45
- ******************************************************************************/
46
- /* prettier-ignore-start */
47
- /* eslint-disable */
48
-
49
- import type { LikeC4DiagramProps, EmbeddedLikeC4DiagramProps } from "@likec4/diagram";
50
- import type { LikeC4ViewId } from "./likec4-views-data";
51
-
52
- export type LikeC4ViewProps = {
53
- viewId: LikeC4ViewId;
54
- } & Omit<LikeC4DiagramProps, "view">;
55
-
56
- export declare function LikeC4View({ viewId, ...props }: LikeC4ViewProps): JSX.Element;
57
-
58
- export type EmbeddedLikeC4ViewProps = {
59
- viewId: LikeC4ViewId;
60
- } & Omit<EmbeddedLikeC4DiagramProps, "viewId" | "views">;
61
-
62
- export declare function EmbeddedLikeC4View({ viewId, ...props }: EmbeddedLikeC4ViewProps): JSX.Element;
63
- /* prettier-ignore-end */
64
- `;
65
- return {
66
- js: toString(js),
67
- dts: toString(dts)
68
- };
69
- }
70
- function generateIndex() {
71
- const js = new CompositeGeneratorNode().appendTemplate`
72
- /* prettier-ignore-start */
73
- /* eslint-disable */
74
-
75
- // You are safe to edit/move these style imports,
76
- // but they are required
77
- import "@mantine/core/styles.css";
78
- import "@likec4/diagram/style.css";
79
-
80
- export * from "./likec4-components";
81
-
82
- // OR with lazy loading:
83
- //
84
- // import { lazy } from "react";
85
- // export const LikeC4View = lazy(async () => await import("./likec4-components").then(m => ({default: m.LikeC4View})));
86
- // export const EmbeddedLikeC4View = lazy(async () => await import("./likec4-components").then(m => ({default: m.EmbeddedLikeC4View})));
87
-
88
- /* prettier-ignore-end */
89
- `;
90
- const dts = new CompositeGeneratorNode().appendTemplate`
91
- /* prettier-ignore-start */
92
- /* eslint-disable */
93
-
94
- export * from "./likec4-components";
95
-
96
- /* prettier-ignore-end */
97
- `;
98
- return {
99
- js: toString(js),
100
- dts: toString(dts)
101
- };
102
- }
@@ -1 +0,0 @@
1
- export { generateReactNext as default } from './generate-react-next';
@@ -1 +0,0 @@
1
- export { generateReactNext as default } from "./generate-react-next.js";
@@ -1,13 +0,0 @@
1
- import type { DiagramView } from '@likec4/core';
2
- /**
3
- * Generate *.js file with views data
4
- */
5
- export declare function generateViewsDataJs(diagrams: Iterable<DiagramView>): any;
6
- /**
7
- * Generate *.ts file with views data
8
- */
9
- export declare function generateViewsDataTs(diagrams: Iterable<DiagramView>): any;
10
- /**
11
- * Generate *.d.ts
12
- */
13
- export declare function generateViewsDataDTs(diagrams: Iterable<DiagramView>): any;
@@ -1,130 +0,0 @@
1
- import JSON5 from "json5";
2
- import { CompositeGeneratorNode, expandToNode, joinToNode, NL, toString } from "langium/generate";
3
- import { generateViewId } from "./generateViewId.js";
4
- export function generateViewsDataJs(diagrams) {
5
- const views = Array.from(diagrams);
6
- const out = new CompositeGeneratorNode();
7
- out.appendTemplate`
8
- /******************************************************************************
9
- * This file was generated
10
- * DO NOT EDIT MANUALLY!
11
- ******************************************************************************/
12
- /* prettier-ignore-start */
13
- /* eslint-disable */
14
-
15
- `.append(NL, NL);
16
- if (views.length == 0) {
17
- out.append("export const LikeC4Views = {}", NL);
18
- return toString(out);
19
- }
20
- out.appendTemplate`
21
- export const LikeC4Views = {
22
- `.indent({
23
- indentation: 2,
24
- indentedChildren(indented) {
25
- indented.appendNewLineIf(views.length > 1).append(
26
- joinToNode(
27
- views,
28
- (view) => expandToNode`${JSON5.stringify(view.id)}: ${JSON5.stringify(view)}`,
29
- {
30
- separator: ",",
31
- appendNewLineIfNotEmpty: true
32
- }
33
- )
34
- );
35
- }
36
- }).append("}", NL, NL).appendTemplate`
37
-
38
- export function isLikeC4ViewId(value) {
39
- return (
40
- value != null &&
41
- typeof value === 'string' &&
42
- !!LikeC4Views[value]
43
- )
44
- }
45
-
46
- /* prettier-ignore-end */
47
- `.append(NL);
48
- return toString(out);
49
- }
50
- export function generateViewsDataTs(diagrams) {
51
- const views = Array.from(diagrams);
52
- const out = new CompositeGeneratorNode();
53
- out.appendTemplate`
54
- /******************************************************************************
55
- * This file was generated
56
- * DO NOT EDIT MANUALLY!
57
- ******************************************************************************/
58
- /* prettier-ignore-start */
59
- /* eslint-disable */
60
-
61
- // @ts-nocheck
62
-
63
- import type { DiagramView } from 'likec4'
64
- `.append(NL, NL);
65
- if (views.length === 0) {
66
- out.append("export {}", NL);
67
- return toString(out);
68
- }
69
- out.appendTemplate`
70
- export type LikeC4ViewId = ${generateViewId(views)};
71
- export const LikeC4Views = {
72
- `.indent({
73
- indentation: 2,
74
- indentedChildren(indented) {
75
- indented.appendNewLineIf(views.length > 1).append(
76
- joinToNode(
77
- views,
78
- (view) => expandToNode`${JSON5.stringify(view.id)}: (${JSON5.stringify(
79
- view
80
- )} as unknown) as DiagramView`,
81
- {
82
- separator: ",",
83
- appendNewLineIfNotEmpty: true
84
- }
85
- )
86
- );
87
- }
88
- }).append("} as const satisfies Record<LikeC4ViewId, DiagramView>", NL, NL).appendTemplate`
89
- export type LikeC4Views = typeof LikeC4Views
90
-
91
- export function isLikeC4ViewId(value: unknown): value is LikeC4ViewId {
92
- return (
93
- value != null &&
94
- typeof value === 'string' &&
95
- !!LikeC4Views[value]
96
- )
97
- }
98
-
99
- /* prettier-ignore-end */
100
- `.append(NL);
101
- return toString(out);
102
- }
103
- export function generateViewsDataDTs(diagrams) {
104
- const views = Array.from(diagrams);
105
- const out = new CompositeGeneratorNode();
106
- out.appendTemplate`
107
- /******************************************************************************
108
- * This file was generated
109
- * DO NOT EDIT MANUALLY!
110
- ******************************************************************************/
111
- /* prettier-ignore-start */
112
- /* eslint-disable */
113
-
114
- import type { DiagramView } from 'likec4'
115
- `.append(NL, NL);
116
- if (views.length == 0) {
117
- out.append("export {}", NL);
118
- return toString(out);
119
- }
120
- out.appendTemplate`
121
- export type LikeC4ViewId = ${generateViewId(views)};
122
- export type LikeC4Views = Record<LikeC4ViewId, DiagramView>
123
-
124
- export declare const LikeC4Views: LikeC4Views
125
- export declare function isLikeC4ViewId(value: unknown): value is LikeC4ViewId
126
-
127
- /* prettier-ignore-end */
128
- `.append(NL);
129
- return toString(out);
130
- }
@@ -1,2 +0,0 @@
1
- import type { DiagramView } from '@likec4/core';
2
- export declare function generateViewId(views: Iterable<DiagramView>): any;
@@ -1,7 +0,0 @@
1
- import JSON5 from "json5";
2
- import { expandToNode, joinToNode } from "langium/generate";
3
- export function generateViewId(views) {
4
- return joinToNode(views, (view) => expandToNode`${JSON5.stringify(view.id)}`, {
5
- separator: " | "
6
- });
7
- }
@@ -1 +0,0 @@
1
- export * from './generate-views-data';
@@ -1 +0,0 @@
1
- export * from "./generate-views-data.js";