@lionweb/class-core-generator 0.8.0-beta.5 → 0.8.0-beta.7

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/CHANGELOG.md CHANGED
@@ -5,6 +5,7 @@
5
5
  * Improve dealing with unresolved references.
6
6
  * Clear up an unnecessarily difficult piece of generator code while doing so.
7
7
  * Fix that concepts extending the built-in `Node` concept generates classes that extend `NodeBase` (rather than `Node`).
8
+ * Reference targets can now be any `Node`, not just `INodeBase`.
8
9
 
9
10
 
10
11
  ## 0.7.2
package/README.md ADDED
@@ -0,0 +1,30 @@
1
+ # README
2
+
3
+ [![license](https://img.shields.io/badge/License-Apache%202.0-green.svg?style=flat)
4
+ ](./LICENSE)
5
+ [![CI](https://github.com/LionWeb-io/lionweb-typescript/actions/workflows/test.yaml/badge.svg)
6
+ ](https://github.com/LionWeb-io/lionweb-typescript/actions/workflows/test.yaml)
7
+ [![npm](https://img.shields.io/npm/v/%40lionweb%2Fclass-core-generator?label=%40lionweb%2Fclass-core-generator)
8
+ ](https://www.npmjs.com/package/@lionweb/class-core-generator)
9
+
10
+ This NPM package holds a code generator to generate classes based on the `class-core` package from an M2.
11
+
12
+
13
+ ## Installation
14
+
15
+ Run the following command to add this package to an NPM-based project:
16
+
17
+ ```shell
18
+ npm add @lionweb/class-core-generator
19
+ ```
20
+
21
+ This adds this package as a dependency to your NPM-based project.
22
+
23
+
24
+ ## Usage
25
+
26
+ * Use the `generateLanguage`, `generateApiFromLanguages`, `generateApiFromLanguagesJson`, and `megaFactoryFor` functions to generate API code for a single language or any number of languages.
27
+ * The `defaultTrumpfOriginatingApache2_0LicensedHeader` and `generatedCodeWarningComments` text constants can be used as file headers.
28
+
29
+ As always: see the JSDoc of these items for more details.
30
+
@@ -1 +1 @@
1
- {"version":3,"file":"entity-types.templates.d.ts","sourceRoot":"","sources":["../src/entity-types.templates.ts"],"names":[],"mappings":"AAiBA,OAAO,EAaH,cAAc,EAQjB,MAAM,eAAe,CAAA;AAYtB,OAAO,EAKH,OAAO,EAQV,MAAM,oBAAoB,CAAA;AAc3B,eAAO,MAAM,qBAAqB,GAAI,SAAS,OAAO,MAqN1C,QAAQ,cAAc,4CAoBjC,CAAA"}
1
+ {"version":3,"file":"entity-types.templates.d.ts","sourceRoot":"","sources":["../src/entity-types.templates.ts"],"names":[],"mappings":"AAiBA,OAAO,EAaH,cAAc,EAQjB,MAAM,eAAe,CAAA;AAYtB,OAAO,EAKH,OAAO,EAQV,MAAM,oBAAoB,CAAA;AAc3B,eAAO,MAAM,qBAAqB,GAAI,SAAS,OAAO,MA4N1C,QAAQ,cAAc,4CAoBjC,CAAA"}
@@ -14,7 +14,7 @@
14
14
  //
15
15
  // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
16
  // SPDX-License-Identifier: Apache-2.0
17
- import { builtinClassifiers, Classifier, Containment, Enumeration, featureMetaType, Interface, isContainment, isProperty, isRef, isReference, isUnresolvedReference, LanguageEntity, Link, nameSorted, PrimitiveType, Property, Reference } from "@lionweb/core";
17
+ import { Classifier, Containment, Enumeration, featureMetaType, Interface, isBuiltinNodeConcept, isContainment, isProperty, isRef, isReference, isUnresolvedReference, LanguageEntity, Link, nameSorted, PrimitiveType, Property, Reference } from "@lionweb/core";
18
18
  import { ConceptDescription, Deprecated, ioLionWebMpsSpecificAnnotationsFrom, KeyedDescription, ShortDescription, VirtualPackage } from "@lionweb/io-lionweb-mps-specific";
19
19
  import { indent, switchOrIf, withFirstUpper } from "@lionweb/textgen-utils";
20
20
  import { commaSeparated, when, withNewlineAppended } from "littoral-templates";
@@ -45,7 +45,7 @@ export const typeForLanguageEntity = (imports) => {
45
45
  const classMembersForLink = (link) => {
46
46
  const { name, type, multiple } = link;
47
47
  const nameWithFirstUpper = withFirstUpper(name);
48
- const tsTypeForClassifier_ = tsTypeForClassifier(type, imports);
48
+ const tsTypeForClassifier_ = tsTypeForClassifier(type, imports, link instanceof Reference);
49
49
  const tsTypeForLink_ = link instanceof Reference
50
50
  ? `${imports.core(multiple ? "MultiRef" : "SingleRef")}<${tsTypeForClassifier_}>${multiple ? "" : optionalityPostfix(link)}`
51
51
  : `${tsTypeForClassifier_}${multiple ? "[]" : optionalityPostfix(link)}`;
@@ -103,9 +103,16 @@ export const typeForLanguageEntity = (imports) => {
103
103
  }
104
104
  const featureMetaType_ = featureMetaType(features[0]);
105
105
  const argumentName = featureMetaType_.toLowerCase();
106
+ const typeParameter = (() => {
107
+ switch (featureMetaType_) {
108
+ case "Property": return "unknown";
109
+ case "Containment": return imports.generic("INodeBase");
110
+ case "Reference": return imports.core("Node");
111
+ }
112
+ })();
106
113
  return [
107
114
  ``,
108
- `get${featureMetaType_}ValueManager(${argumentName}: ${imports.core(featureMetaType_)}): ${imports.generic(featureMetaType_ + "ValueManager")}<${featureMetaType_ === "Property" ? "unknown" : imports.generic("INodeBase")}> {`,
115
+ `get${featureMetaType_}ValueManager(${argumentName}: ${imports.core(featureMetaType_)}): ${imports.generic(featureMetaType_ + "ValueManager")}<${typeParameter}> {`,
109
116
  indent(switchOrIf(`${argumentName}.key`, features.map((feature) => [`${imports.language(feature.classifier.language)}.INSTANCE.${feature.classifier.name}_${feature.name}.key`, `this._${feature.name}`]), `return super.get${featureMetaType_}ValueManager(${argumentName});`)),
110
117
  `}`
111
118
  ];
@@ -114,7 +121,7 @@ export const typeForLanguageEntity = (imports) => {
114
121
  if (isUnresolvedReference(superConcept)) {
115
122
  return `/* unresolved reference to super concept */`;
116
123
  }
117
- if (superConcept === undefined || superConcept === builtinClassifiers.node) {
124
+ if (superConcept === undefined || isBuiltinNodeConcept(superConcept)) {
118
125
  return imports.generic("NodeBase");
119
126
  }
120
127
  return imports.entity(superConcept);
@@ -1 +1 @@
1
- {"version":3,"file":"entity-types.templates.js","sourceRoot":"","sources":["../src/entity-types.templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-types.templates.js","sourceRoot":"","sources":["../src/entity-types.templates.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;AAEtC,OAAO,EACH,UAAU,EACV,WAAW,EACX,WAAW,EAEX,eAAe,EACf,SAAS,EACT,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,KAAK,EACL,WAAW,EACX,qBAAqB,EACrB,cAAc,EACd,IAAI,EAEJ,UAAU,EAEV,aAAa,EACb,QAAQ,EACR,SAAS,EACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EACH,kBAAkB,EAClB,UAAU,EACV,mCAAmC,EACnC,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACjB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE9E,OAAO,EACH,cAAc,EACd,WAAW,EACX,+BAA+B,EAC/B,cAAc,EAEd,UAAU,EACV,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACxB,MAAM,oBAAoB,CAAA;AAE3B,MAAM,iBAAiB,GAAG,CAAC,OAAgB,EAAE,EAAE;IAC3C,IAAI,OAAO,YAAY,QAAQ,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAA;IACrD,CAAC;IACD,IAAI,OAAO,YAAY,IAAI,EAAE,CAAC;QAC1B,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAClG,CAAC;AACL,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAE,EAAE,CACzC,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,cAAc,CAAA;AAE1E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAgB,EAAE,EAAE;IAEtD,MAAM,uBAAuB,GAAG,CAAC,QAAkB,EAAE,EAAE;QACnD,MAAM,EAAC,IAAI,EAAE,IAAI,EAAC,GAAG,QAAQ,CAAA;QAC7B,OAAO;YACH,qBAAqB,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,IAAI,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI;YAChH,QAAQ,CAAC,QAAQ,CAAC;YAClB,OAAO,IAAI,OAAO,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI;YACrF,MAAM,CAAC,gBAAgB,IAAI,SAAS,CAAC;YACrC,GAAG;YACH,OAAO,IAAI,cAAc,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,kBAAkB,CAAC,QAAQ,CAAC,KAAK;YAC7F,MAAM,CAAC,SAAS,IAAI,iBAAiB,CAAC;YACtC,GAAG;SACN,CAAA;IACL,CAAC,CAAA;IAED,MAAM,mBAAmB,GAAG,CAAC,IAAU,EAAE,EAAE;QACvC,MAAM,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAC,GAAG,IAAI,CAAA;QACnC,MAAM,kBAAkB,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;QAC/C,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,YAAY,SAAS,CAAC,CAAA;QAC1F,MAAM,cAAc,GAAG,IAAI,YAAY,SAAS;YAC5C,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,oBAAoB,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;YAC5H,CAAC,CAAC,GAAG,oBAAoB,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAA;QAC5E,OAAO;YACH,qBAAqB,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,oBAAoB,IAAI;YAChG,QAAQ,CAAC,IAAI,CAAC;YACd,OAAO,IAAI,OAAO,cAAc,IAAI;YACpC,MAAM,CAAC,gBAAgB,IAAI,SAAS,CAAC;YACrC,GAAG;YACH,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACZ,OAAO,IAAI,cAAc,cAAc,KAAK;gBAC5C,MAAM,CAAC,SAAS,IAAI,iBAAiB,CAAC;gBACtC,GAAG;gBACH,IAAI,CAAC,IAAI,YAAY,WAAW,CAAC,CAAC;oBAC9B,UAAU,kBAAkB,kBAAkB,oBAAoB,KAAK;oBACvE,MAAM,CAAC,SAAS,IAAI,yBAAyB,CAAC;oBAC9C,GAAG;iBACN,CAAC;aACL,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACX,MAAM,kBAAkB,cAAc,oBAAoB,KAAK;gBAC/D,MAAM,CAAC,SAAS,IAAI,iBAAiB,CAAC;gBACtC,GAAG;gBACH,SAAS,kBAAkB,mBAAmB,oBAAoB,KAAK;gBACvE,MAAM,CAAC,SAAS,IAAI,yBAAyB,CAAC;gBAC9C,GAAG;gBACH,MAAM,kBAAkB,qBAAqB,oBAAoB,oBAAoB;gBACrF,MAAM,CAAC,SAAS,IAAI,kCAAkC,CAAC;gBACvD,GAAG;gBACH,OAAO,kBAAkB,wCAAwC;gBACjE,MAAM,CAAC,SAAS,IAAI,4BAA4B,CAAC;gBACjD,GAAG;gBACH,IAAI,CAAC,IAAI,YAAY,WAAW,CAAC,CAAC;oBAC9B,UAAU,kBAAkB,uBAAuB,oBAAoB,uBAAuB;oBAC9F,MAAM,CAAC,SAAS,IAAI,wCAAwC,CAAC;oBAC7D,GAAG;iBACN,CAAC;aACL,CAAC;SACL,CAAA;IACL,CAAC,CAAA;IAED,MAAM,sBAAsB,GAAG,CAAC,OAAgB,EAAE,EAAE;QAChD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAA;QAC3C,CAAC;QACD,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACjD,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAA;QACvC,CAAC;QACD,OAAO,yBAAyB,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,oBAAoB,OAAO,CAAC,UAAU,CAAC,IAAI,kBAAkB,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAA;IAC7K,CAAC,CAAA;IAED,MAAM,0BAA0B,GAAG,CAAC,UAAsB,EAAE,EAAE;QAC1D,MAAM,QAAQ,GAAG,+BAA+B,CAAC,UAAU,CAAC,CAAA;QAE5D,MAAM,gBAAgB,GAAG,CAAqB,QAAc,EAAE,EAAE;YAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,EAAE,CAAA;YACb,CAAC;YAED,MAAM,gBAAgB,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;YACrD,MAAM,YAAY,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAA;YACnD,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE;gBACxB,QAAQ,gBAAgB,EAAE,CAAC;oBACvB,KAAK,UAAU,CAAC,CAAC,OAAO,SAAS,CAAA;oBACjC,KAAK,aAAa,CAAC,CAAC,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;oBACvD,KAAK,WAAW,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBACjD,CAAC;YACL,CAAC,CAAC,EAAE,CAAA;YACJ,OAAO;gBACH,EAAE;gBACF,MAAM,gBAAgB,gBAAgB,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,gBAAgB,GAAG,cAAc,CAAC,IAAI,aAAa,KAAK;gBACnK,MAAM,CACF,UAAU,CACN,GAAG,YAAY,MAAM,EACrB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,MAAM,EAAE,SAAS,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAChK,mBAAmB,gBAAgB,gBAAgB,YAAY,IAAI,CACtE,CACJ;gBACD,GAAG;aACN,CAAA;QACL,CAAC,CAAA;QAED,MAAM,eAAe,GAAG,UAAU,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;YACnD,IAAI,qBAAqB,CAAC,YAAY,CAAC,EAAE,CAAC;gBACtC,OAAO,6CAA6C,CAAA;YACxD,CAAC;YACD,IAAI,YAAY,KAAK,SAAS,IAAI,oBAAoB,CAAC,YAAY,CAAC,EAAE,CAAC;gBACnE,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YACtC,CAAC;YACD,OAAO,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACvC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAA;QACjC,MAAM,kBAAkB,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE,CACxC,eAAe,CAAC,MAAM,KAAK,CAAC;YACxB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,aAAa,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CACzG,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAA;QAC7B,OAAO;YACH,UAAU,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,UAAU,CAAC,IAAI,IAAI,eAAe,GAAG,kBAAkB,GAAG;YACtH,MAAM,CAAC;gBACH,IAAI,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CACzB,GAAG,EAAE,CACD;oBACI,qBAAqB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,kBAAkB,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,UAAU,CAAC,IAAI,IAAI;oBACzK,MAAM,CAAC;wBACH,cAAc,UAAU,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,UAAU,CAAC,IAAI,kCAAkC;qBACvI,CAAC;oBACF,GAAG;iBACN,CACR;gBACD,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CACrB,GAAG,EAAE,CACD;oBACI,EAAE;oBACF,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;oBACzD,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,4BAA4B,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,kBAAkB,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK;oBACjP,MAAM,CAAC;wBACH,kDAAkD;wBAClD,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,OAAO,CAAC,IAAI,UAAU,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,UAAU,CAAC;qBACjQ,CAAC;oBACF,GAAG;oBACH,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC7C,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;oBAChD,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;iBACjD,CACR;aACJ,CAAC;YACF,GAAG;SACN,CAAA;IACL,CAAC,CAAA;IAGD,MAAM,kBAAkB,GAAG,CAAC,WAAwB,EAAE,EAAE,CACpD;QACI,eAAe,WAAW,CAAC,IAAI,IAAI;QACnC,MAAM,CACF,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAE,GAAG,EAAC,EAAE,EAAE,CAAC,GAAG,IAAI,OAAO,GAAG,GAAG,CAAC,CAAC;QAC3E,yFAAyF;SAChG;QACD,GAAG;KACN,CAAA;IAGL,MAAM,YAAY,GAAG,CAAC,UAAqB,EAAE,EAAE,CAC3C;QACI,oBAAoB,UAAU,CAAC,IAAI,YAAY,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI;QACrN,MAAM,CACF,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,KAAK,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CACvG;QACD,GAAG;KACN,CAAA;IAGL,MAAM,oBAAoB,GAAG,CAAC,aAA4B,EAAE,EAAE,CAC1D,eAAe,aAAa,CAAC,IAAI,MAAM,sBAAsB,CAAC,aAAa,CAAC,GAAG,CAAA;IAEnF,MAAM,QAAQ,GAAG,CAAC,MAAiB,EAAE,EAAE;QACnC,MAAM,WAAW,GAAG,mCAAmC,CAAC,MAAM,CAAC,CAAA;QAC/D,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,YAAY,kBAAkB,CAAuB,CAAA;QAC3H,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,YAAY,UAAU,CAAe,CAAA;QACnG,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,YAAY,gBAAgB,CAAqB,CAAA;QACrH,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,YAAY,gBAAgB,CAAqB,CAAA;QACrH,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,YAAY,cAAc,CAAmB,CAAA;QAC/G,MAAM,aAAa,GACZ,CAAC,CAAC,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;eAC/C,CAAC,CAAC,CAAC,kBAAkB,EAAE,OAAO,CAAC;eAC/B,CAAC,CAAC,CAAC,gBAAgB,EAAE,WAAW,CAAC;eACjC,gBAAgB,KAAK,SAAS;eAC9B,UAAU,KAAK,SAAS;eACxB,CAAC,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;QAC/B,MAAM,QAAQ,GAAG,CAAC,IAAU,EAAE,EAAE,CAC5B,IAAI,YAAY,cAAc;YAC1B,CAAC,CAAC,IAAI,CAAC,IAAI;YACX,CAAC,CAAC,+BAA+B,CAAA;QACzC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;YACvB,KAAK;YACL,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC,CACjD,GAAG,EAAE,CAAC,MAAM,kBAAkB,CAAC,uBAAuB,EAAE,CAC3D;YACD,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CACjC,GAAG,EAAE,CAAC,aAAa,kBAAkB,CAAC,OAAO,EAAE,CAClD;YACD,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC,CACnC,GAAG,EAAE,CAAC,MAAM,gBAAgB,CAAC,WAAW,EAAE,CAC7C;YACD,IAAI,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAChC,GAAG,EAAE,CAAC;gBACF,IAAI,CAAC,gBAAgB,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,MAAM,gBAAgB,CAAC,aAAa,EAAE,CAAC;gBAC1F,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,oBAAoB,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;aACtF,CACJ;YACD,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAC1B,GAAG,EAAE,CAAC,kBAAkB,UAAU,CAAC,OAAO,IAAI,EAAE,GAAG,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,UAAU,CAAC,KAAK,GAAG,EAAE,CAC7H;YACD,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAC1B,GAAG,EAAE,CAAC,qBAAqB,cAAc,CAAC,IAAI,GAAG,CACpD;YACD,KAAK;SACR,CAAC,CAAA;IACN,CAAC,CAAA;IAED,OAAO,CAAC,MAAsB,EAAE,EAAE,CAC9B;QACI,QAAQ,CAAC,MAAM,CAAC;QAChB,CAAC,GAAG,EAAE;YACF,IAAI,MAAM,YAAY,SAAS,EAAE,CAAC;gBAC9B,OAAO,YAAY,CAAC,MAAM,CAAC,CAAA;YAC/B,CAAC;YACD,IAAI,MAAM,YAAY,UAAU,EAAE,CAAC;gBAC/B,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAA;YAC7C,CAAC;YACD,IAAI,MAAM,YAAY,WAAW,EAAE,CAAC;gBAChC,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAA;YACrC,CAAC;YACD,IAAI,MAAM,YAAY,aAAa,EAAE,CAAC;gBAClC,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAA;YACvC,CAAC;YACD,OAAO,iCAAiC,cAAc,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAA;QACrF,CAAC,CAAC,EAAE;KACP,CAAA;AAET,CAAC,CAAA"}
@@ -1,10 +1,41 @@
1
1
  import { Language } from "@lionweb/core";
2
+ /**
3
+ * A type def. for options objects configuring code generation.
4
+ */
2
5
  export type GeneratorOptions = {
6
+ /**
7
+ * The `from`-part of the `import`-statement that imports the `class-core` package.
8
+ * Default (which you should always use!): `@lionweb/class-core`.
9
+ */
3
10
  genericImportLocation: string;
11
+ /**
12
+ * The optional header for generated files.
13
+ */
4
14
  header?: string;
15
+ /**
16
+ * Whether to output logging on the `stdout`. Default: `true`.
17
+ */
5
18
  verbose: boolean;
6
19
  };
20
+ /**
21
+ * Generates a file containing the API code for the given {@link Language LionWeb language}.
22
+ * @param language A {@link Language LionWeb language}.
23
+ * @param generationPath The path (relative to the current execution) to generate to/in.
24
+ * @param mayBeOptions Optionally-given {@link GeneratorOptions options}.
25
+ */
7
26
  export declare const generateLanguage: (language: Language, generationPath: string, mayBeOptions?: Partial<GeneratorOptions>) => string;
27
+ /**
28
+ * Generates an API (as files) for the {@link Language LionWeb languages} given as a serialization chunk at the given path.
29
+ * @param languagesJsonPath The path (relative to the current execution) to a LionWeb serialization chunk containing {@link Language LionWeb languages}.
30
+ * @param generationPath The path (relative to the current execution) to generate to/in.
31
+ * @param mayBeOptions Optionally-given {@link GeneratorOptions options}.
32
+ */
8
33
  export declare const generateApiFromLanguagesJson: (languagesJsonPath: string, generationPath: string, mayBeOptions?: Partial<GeneratorOptions>) => void;
34
+ /**
35
+ * Generates an API (as files) for the {@link Language LionWeb languages} given as a serialization chunk at the given path.
36
+ * @param languages A collection of {@link Language LionWeb languages}.
37
+ * @param generationPath The path (relative to the current execution) to generate to/in.
38
+ * @param mayBeOptions Optionally-given {@link GeneratorOptions options}.
39
+ */
9
40
  export declare const generateApiFromLanguages: (languages: Language[], generationPath: string, maybeOptions?: Partial<GeneratorOptions>) => void;
10
41
  //# sourceMappingURL=generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAwB,QAAQ,EAAY,MAAM,eAAe,CAAA;AAaxE,MAAM,MAAM,gBAAgB,GAAG;IAC3B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;CACnB,CAAA;AAUD,eAAO,MAAM,gBAAgB,GAAI,UAAU,QAAQ,EAAE,gBAAgB,MAAM,EAAE,eAAe,OAAO,CAAC,gBAAgB,CAAC,KAAG,MAKvH,CAAA;AASD,eAAO,MAAM,4BAA4B,GAAI,mBAAmB,MAAM,EAAE,gBAAgB,MAAM,EAAE,eAAe,OAAO,CAAC,gBAAgB,CAAC,SASvI,CAAA;AAGD,eAAO,MAAM,wBAAwB,GAAI,WAAW,QAAQ,EAAE,EAAE,gBAAgB,MAAM,EAAE,eAAe,OAAO,CAAC,gBAAgB,CAAC,SAmB/H,CAAA"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAwB,QAAQ,EAAmB,MAAM,eAAe,CAAA;AAa/E;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B;;;OAGG;IACH,qBAAqB,EAAE,MAAM,CAAA;IAC7B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;CACnB,CAAA;AAUD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,UAAU,QAAQ,EAAE,gBAAgB,MAAM,EAAE,eAAe,OAAO,CAAC,gBAAgB,CAAC,KAAG,MAKvH,CAAA;AASD;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,GAAI,mBAAmB,MAAM,EAAE,gBAAgB,MAAM,EAAE,eAAe,OAAO,CAAC,gBAAgB,CAAC,SASvI,CAAA;AAGD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GAAI,WAAW,QAAQ,EAAE,EAAE,gBAAgB,MAAM,EAAE,eAAe,OAAO,CAAC,gBAAgB,CAAC,SAmB/H,CAAA"}
package/dist/generator.js CHANGED
@@ -14,7 +14,7 @@
14
14
  //
15
15
  // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
16
  // SPDX-License-Identifier: Apache-2.0
17
- import { deserializeLanguages, lioncore } from "@lionweb/core";
17
+ import { deserializeLanguages, LionWebVersions } from "@lionweb/core";
18
18
  import { readFileAsJson } from "@lionweb/utilities";
19
19
  import { writeFileSync } from "fs";
20
20
  import { join } from "path";
@@ -27,6 +27,12 @@ const withDefaults = (options) => ({
27
27
  header: options?.header,
28
28
  verbose: options?.verbose ?? true
29
29
  });
30
+ /**
31
+ * Generates a file containing the API code for the given {@link Language LionWeb language}.
32
+ * @param language A {@link Language LionWeb language}.
33
+ * @param generationPath The path (relative to the current execution) to generate to/in.
34
+ * @param mayBeOptions Optionally-given {@link GeneratorOptions options}.
35
+ */
30
36
  export const generateLanguage = (language, generationPath, mayBeOptions) => {
31
37
  const { name } = language;
32
38
  const fileName = `${name}.g.ts`;
@@ -36,15 +42,27 @@ export const generateLanguage = (language, generationPath, mayBeOptions) => {
36
42
  const logger = (verbose) => (verbose ?? true)
37
43
  ? (text) => { console.log(text ?? ``); }
38
44
  : (_) => { };
45
+ /**
46
+ * Generates an API (as files) for the {@link Language LionWeb languages} given as a serialization chunk at the given path.
47
+ * @param languagesJsonPath The path (relative to the current execution) to a LionWeb serialization chunk containing {@link Language LionWeb languages}.
48
+ * @param generationPath The path (relative to the current execution) to generate to/in.
49
+ * @param mayBeOptions Optionally-given {@link GeneratorOptions options}.
50
+ */
39
51
  export const generateApiFromLanguagesJson = (languagesJsonPath, generationPath, mayBeOptions) => {
40
52
  const log = logger(mayBeOptions?.verbose);
41
53
  log(`Running API generator with cwd: ${cwd()}`);
42
54
  log(` Path to languages: ${languagesJsonPath}`);
43
55
  log(` Generation path: ${generationPath}`);
44
56
  const languagesJson = readFileAsJson(languagesJsonPath);
45
- const languages = deserializeLanguages(languagesJson, lioncore);
57
+ const languages = deserializeLanguages(languagesJson, LionWebVersions.v2023_1.lioncoreFacade.language);
46
58
  generateApiFromLanguages(languages, generationPath, mayBeOptions);
47
59
  };
60
+ /**
61
+ * Generates an API (as files) for the {@link Language LionWeb languages} given as a serialization chunk at the given path.
62
+ * @param languages A collection of {@link Language LionWeb languages}.
63
+ * @param generationPath The path (relative to the current execution) to generate to/in.
64
+ * @param mayBeOptions Optionally-given {@link GeneratorOptions options}.
65
+ */
48
66
  export const generateApiFromLanguages = (languages, generationPath, maybeOptions) => {
49
67
  const log = logger(maybeOptions?.verbose);
50
68
  log(` Generated:`);
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { Classifier, DataType, Feature, LanguageEntity, SingleRef } from "@lionw
2
2
  import { Imports } from "./index.js";
3
3
  export declare const typeOf: (feature: Feature) => SingleRef<LanguageEntity>;
4
4
  export declare const tsTypeForDataType: (dataType: SingleRef<DataType>, imports: Imports) => string;
5
- export declare const tsTypeForClassifier: (classifier: SingleRef<Classifier>, imports: Imports) => string;
5
+ export declare const tsTypeForClassifier: (classifier: SingleRef<Classifier>, imports: Imports, isReference?: boolean) => string;
6
6
  export declare const optionalityPostfix: (feature: Feature) => " | undefined" | "";
7
7
  export declare const tsFieldTypeForFeature: (feature: Feature, imports: Imports) => string;
8
8
  export declare const tsTypeForValueManager: (feature: Feature, imports: Imports) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/helpers/features.ts"],"names":[],"mappings":"AAiBA,OAAO,EAEH,UAAU,EACV,QAAQ,EAER,OAAO,EAKP,cAAc,EAKd,SAAS,EACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,OAAO,EAA0B,MAAM,YAAY,CAAA;AAE5D,eAAO,MAAM,MAAM,GAAI,SAAS,OAAO,KAAG,SAAS,CAAC,cAAc,CAQjE,CAAA;AAGD,eAAO,MAAM,iBAAiB,GAAI,UAAU,SAAS,CAAC,QAAQ,CAAC,EAAE,SAAS,OAAO,WAWhF,CAAA;AAGD,eAAO,MAAM,mBAAmB,GAAI,YAAY,SAAS,CAAC,UAAU,CAAC,EAAE,SAAS,OAAO,WAKtF,CAAA;AAGD,eAAO,MAAM,kBAAkB,GAAI,SAAS,OAAO,wBAA2C,CAAA;AAE9F,eAAO,MAAM,qBAAqB,GAAI,SAAS,OAAO,EAAE,SAAS,OAAO,KAAG,MA0B1E,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,SAAS,OAAO,EAAE,SAAS,OAAO,KAAG,MAqB1E,CAAA"}
1
+ {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/helpers/features.ts"],"names":[],"mappings":"AAiBA,OAAO,EACH,UAAU,EACV,QAAQ,EAER,OAAO,EAMP,cAAc,EAKd,SAAS,EACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,OAAO,EAA0B,MAAM,YAAY,CAAA;AAG5D,eAAO,MAAM,MAAM,GAAI,SAAS,OAAO,KAAG,SAAS,CAAC,cAAc,CAQjE,CAAA;AAGD,eAAO,MAAM,iBAAiB,GAAI,UAAU,SAAS,CAAC,QAAQ,CAAC,EAAE,SAAS,OAAO,WAWhF,CAAA;AAUD,eAAO,MAAM,mBAAmB,GAAI,YAAY,SAAS,CAAC,UAAU,CAAC,EAAE,SAAS,OAAO,EAAE,qBAAmB,WAU3G,CAAA;AAGD,eAAO,MAAM,kBAAkB,GAAI,SAAS,OAAO,wBAA2C,CAAA;AAE9F,eAAO,MAAM,qBAAqB,GAAI,SAAS,OAAO,EAAE,SAAS,OAAO,KAAG,MA0B1E,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,SAAS,OAAO,EAAE,SAAS,OAAO,KAAG,MA4B1E,CAAA"}
@@ -14,7 +14,7 @@
14
14
  //
15
15
  // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
16
  // SPDX-License-Identifier: Apache-2.0
17
- import { builtinClassifiers, Enumeration, isContainment, isProperty, isReference, isUnresolvedReference, Link, PrimitiveType, Property, referenceToSet } from "@lionweb/core";
17
+ import { Classifier, Enumeration, isBuiltinNodeConcept, isContainment, isProperty, isReference, isUnresolvedReference, Link, PrimitiveType, Property, referenceToSet } from "@lionweb/core";
18
18
  import { tsTypeForPrimitiveType } from "./index.js";
19
19
  export const typeOf = (feature) => {
20
20
  if (feature instanceof Property) {
@@ -37,11 +37,22 @@ export const tsTypeForDataType = (dataType, imports) => {
37
37
  }
38
38
  return `unknown /* [ERROR] can't compute a TS type for data type ${dataType.name} that has an unhandled/-known meta-type ${dataType.constructor.name} */`;
39
39
  };
40
- export const tsTypeForClassifier = (classifier, imports) => {
40
+ const isBuiltinNode = (type) => {
41
+ if (isUnresolvedReference(type)) {
42
+ throw new Error(`can’t say whether an unresolved reference is the built-in Node concept`);
43
+ }
44
+ return type instanceof Classifier && isBuiltinNodeConcept(type);
45
+ };
46
+ export const tsTypeForClassifier = (classifier, imports, isReference = false) => {
41
47
  if (isUnresolvedReference(classifier)) {
42
48
  return `unknown /* [ERROR] can't compute a TS type for an unresolved classifier */`;
43
49
  }
44
- return classifier === builtinClassifiers.node ? imports.generic("INodeBase") : imports.entity(classifier);
50
+ if (isBuiltinNode(classifier)) {
51
+ return isReference
52
+ ? imports.core("Node")
53
+ : imports.generic("INodeBase");
54
+ }
55
+ return imports.entity(classifier);
45
56
  };
46
57
  export const optionalityPostfix = (feature) => feature.optional ? " | undefined" : "";
47
58
  export const tsFieldTypeForFeature = (feature, imports) => {
@@ -62,11 +73,11 @@ export const tsFieldTypeForFeature = (feature, imports) => {
62
73
  return `${typeId}${(optionalityPostfix(feature))}`;
63
74
  }
64
75
  if (isContainment(feature)) {
65
- const typeId = type === builtinClassifiers.node ? imports.generic("INodeBase") : imports.entity(type);
76
+ const typeId = isBuiltinNode(type) ? imports.generic("INodeBase") : imports.entity(type);
66
77
  return `${typeId}${feature.multiple ? "[]" : optionalityPostfix(feature)}`;
67
78
  }
68
79
  if (isReference(feature)) {
69
- const typeId = type === builtinClassifiers.node ? imports.generic("INodeBase") : imports.entity(type);
80
+ const typeId = isBuiltinNode(type) ? imports.generic("INodeBase") : imports.entity(type);
70
81
  return `${imports.core("SingleRef")}<${typeId}>${feature.multiple ? "[]" : optionalityPostfix(feature)}`;
71
82
  }
72
83
  return `unknown /* [ERROR] can't compute a TS type for feature ${feature.name} on classifier ${feature.classifier.name} whose type has an unhandled/-known meta-type ${type.constructor.name} */`;
@@ -77,7 +88,7 @@ export const tsTypeForValueManager = (feature, imports) => {
77
88
  return `unknown /* [ERROR] can't compute a TS type for feature ${feature.name} on classifier ${feature.classifier.name} with unresolved type (${type}) */`;
78
89
  }
79
90
  if (isProperty(feature)) {
80
- const typeId = (() => {
91
+ return (() => {
81
92
  if (type instanceof PrimitiveType) {
82
93
  return tsTypeForPrimitiveType(type);
83
94
  }
@@ -86,11 +97,18 @@ export const tsTypeForValueManager = (feature, imports) => {
86
97
  }
87
98
  return `unknown /* [ERROR] can't compute a TS type for feature ${feature.name} on classifier ${feature.classifier.name} whose type has an unhandled/-known meta-type ${type.constructor.name} */`;
88
99
  })();
89
- return typeId;
90
100
  }
91
- if (isContainment(feature) || isReference(feature)) {
92
- return type === builtinClassifiers.node ? imports.generic("INodeBase") : imports.entity(type);
101
+ if (!(isContainment(feature) || isReference(feature))) {
102
+ return `unknown /* [ERROR] can't compute a TS type for feature ${feature.name} on classifier ${feature.classifier.name} whose type has an unhandled/-known meta-type ${type.constructor.name} */`;
93
103
  }
94
- return `unknown /* [ERROR] can't compute a TS type for feature ${feature.name} on classifier ${feature.classifier.name} whose type has an unhandled/-known meta-type ${type.constructor.name} */`;
104
+ if (isBuiltinNode(type)) {
105
+ if (isContainment(feature)) {
106
+ return imports.generic("INodeBase");
107
+ }
108
+ if (isReference(feature)) {
109
+ return imports.core("Node");
110
+ }
111
+ }
112
+ return imports.entity(type);
95
113
  };
96
114
  //# sourceMappingURL=features.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/helpers/features.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/helpers/features.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"imports-tracking.d.ts","sourceRoot":"","sources":["../../src/helpers/imports-tracking.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAoB,MAAM,eAAe,CAAA;AAG1E,eAAO,MAAM,yBAAyB,GAAI,UAAU,QAAQ,WAAkC,CAAA;AAE9F,eAAO,MAAM,0BAA0B,GAAI,UAAU,QAAQ,WACnB,CAAA;AAM1C,qBAAa,OAAO;aAEY,YAAY,EAAE,QAAQ;gBAAtB,YAAY,EAAE,QAAQ;IAGlD,IAAI,8BAA8B,WAEjC;IAED,IAAI,iBAAiB,WAEpB;IAED,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,IAAI,WAAW,aAEd;IACD,IAAI,CAAC,UAAU,EAAE,MAAM;IAKvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,IAAI,WAAW,aAEd;IACD,IAAI,CAAC,UAAU,EAAE,MAAM;IAKvB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoB;IACpD,IAAI,cAAc,aAEjB;IACD,OAAO,CAAC,UAAU,EAAE,MAAM;IAK1B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,IAAI,YAAY,aAEf;IACD,MAAM,CAAC,MAAM,EAAE,cAAc;IAY7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IACrD,IAAI,eAAe,aAElB;IACD,QAAQ,CAAC,QAAQ,EAAE,QAAQ;CAY9B"}
1
+ {"version":3,"file":"imports-tracking.d.ts","sourceRoot":"","sources":["../../src/helpers/imports-tracking.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAmB,MAAM,eAAe,CAAA;AAGzE,eAAO,MAAM,yBAAyB,GAAI,UAAU,QAAQ,WAAkC,CAAA;AAE9F,eAAO,MAAM,0BAA0B,GAAI,UAAU,QAAQ,WACnB,CAAA;AAQ1C,qBAAa,OAAO;aAEY,YAAY,EAAE,QAAQ;gBAAtB,YAAY,EAAE,QAAQ;IAGlD,IAAI,8BAA8B,WAEjC;IAED,IAAI,iBAAiB,WAEpB;IAED,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,IAAI,WAAW,aAEd;IACD,IAAI,CAAC,UAAU,EAAE,MAAM;IAKvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,IAAI,WAAW,aAEd;IACD,IAAI,CAAC,UAAU,EAAE,MAAM;IAKvB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoB;IACpD,IAAI,cAAc,aAEjB;IACD,OAAO,CAAC,UAAU,EAAE,MAAM;IAK1B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,IAAI,YAAY,aAEf;IACD,MAAM,CAAC,MAAM,EAAE,cAAc;IAY7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IACrD,IAAI,eAAe,aAElB;IACD,QAAQ,CAAC,QAAQ,EAAE,QAAQ;CAY9B"}
@@ -14,11 +14,12 @@
14
14
  //
15
15
  // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
16
  // SPDX-License-Identifier: Apache-2.0
17
- import { lioncoreBuiltins } from "@lionweb/core";
17
+ import { LionWebVersions } from "@lionweb/core";
18
18
  import { asJSIdentifier } from "@lionweb/textgen-utils";
19
19
  export const importRenamingForLanguage = (language) => asJSIdentifier(language.name);
20
20
  export const nameOfBaseClassForLanguage = (language) => asJSIdentifier(language.name) + "Base";
21
- const lionCoreBuiltinsIdentifier = nameOfBaseClassForLanguage(lioncoreBuiltins);
21
+ const lioncoreBuiltins = LionWebVersions.v2023_1.builtinsFacade.language;
22
+ const lioncoreBuiltinsIdentifier = nameOfBaseClassForLanguage(lioncoreBuiltins);
22
23
  export class Imports {
23
24
  constructor(thisLanguage) {
24
25
  this.thisLanguage = thisLanguage;
@@ -74,8 +75,8 @@ export class Imports {
74
75
  }
75
76
  language(language) {
76
77
  if (language === lioncoreBuiltins) {
77
- this._genericImports.add(lionCoreBuiltinsIdentifier);
78
- return lionCoreBuiltinsIdentifier;
78
+ this._genericImports.add(lioncoreBuiltinsIdentifier);
79
+ return lioncoreBuiltinsIdentifier;
79
80
  }
80
81
  const externalName = importRenamingForLanguage(language);
81
82
  if (language === this.thisLanguage) {
@@ -1 +1 @@
1
- {"version":3,"file":"imports-tracking.js","sourceRoot":"","sources":["../../src/helpers/imports-tracking.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imports-tracking.js","sourceRoot":"","sources":["../../src/helpers/imports-tracking.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"primitive-types.d.ts","sourceRoot":"","sources":["../../src/helpers/primitive-types.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAqB,aAAa,EAAE,MAAM,eAAe,CAAA;AAEhE,eAAO,MAAM,sBAAsB,GAAI,eAAe,aAAa,KAAG,MAarE,CAAA"}
1
+ {"version":3,"file":"primitive-types.d.ts","sourceRoot":"","sources":["../../src/helpers/primitive-types.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAmB,aAAa,EAAE,MAAM,eAAe,CAAA;AAK9D,eAAO,MAAM,sBAAsB,GAAI,eAAe,aAAa,KAAG,MAarE,CAAA"}
@@ -14,16 +14,17 @@
14
14
  //
15
15
  // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
16
  // SPDX-License-Identifier: Apache-2.0
17
- import { builtinPrimitives } from "@lionweb/core";
17
+ import { LionWebVersions } from "@lionweb/core";
18
+ const { primitiveTypes } = LionWebVersions.v2023_1.builtinsFacade;
18
19
  export const tsTypeForPrimitiveType = (primitiveType) => {
19
- switch (primitiveType) {
20
- case builtinPrimitives.booleanDataType:
20
+ switch (primitiveType.key) {
21
+ case primitiveTypes.booleanDataType.key:
21
22
  return `boolean`;
22
- case builtinPrimitives.stringDataType:
23
+ case primitiveTypes.stringDataType.key:
23
24
  return `string`;
24
- case builtinPrimitives.integerDataType:
25
+ case primitiveTypes.integerDataType.key:
25
26
  return `number`;
26
- case builtinPrimitives.jsonDataType:
27
+ case primitiveTypes.jsonDataType.key:
27
28
  return `unknown`;
28
29
  default:
29
30
  return `string`;
@@ -1 +1 @@
1
- {"version":3,"file":"primitive-types.js","sourceRoot":"","sources":["../../src/helpers/primitive-types.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;AAEtC,OAAO,EAAE,iBAAiB,EAAiB,MAAM,eAAe,CAAA;AAEhE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,aAA4B,EAAU,EAAE;IAC3E,QAAQ,aAAa,EAAE,CAAC;QACpB,KAAK,iBAAiB,CAAC,eAAe;YAClC,OAAO,SAAS,CAAA;QACpB,KAAK,iBAAiB,CAAC,cAAc;YACjC,OAAO,QAAQ,CAAA;QACnB,KAAK,iBAAiB,CAAC,eAAe;YAClC,OAAO,QAAQ,CAAA;QACnB,KAAK,iBAAiB,CAAC,YAAY;YAC/B,OAAO,SAAS,CAAA;QACpB;YACI,OAAO,QAAQ,CAAA;IACvB,CAAC;AACL,CAAC,CAAA"}
1
+ {"version":3,"file":"primitive-types.js","sourceRoot":"","sources":["../../src/helpers/primitive-types.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;AAEtC,OAAO,EAAE,eAAe,EAAiB,MAAM,eAAe,CAAA;AAG9D,MAAM,EAAE,cAAc,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,cAAc,CAAA;AAEjE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,aAA4B,EAAU,EAAE;IAC3E,QAAQ,aAAa,CAAC,GAAG,EAAE,CAAC;QACxB,KAAK,cAAc,CAAC,eAAe,CAAC,GAAG;YACnC,OAAO,SAAS,CAAA;QACpB,KAAK,cAAc,CAAC,cAAc,CAAC,GAAG;YAClC,OAAO,QAAQ,CAAA;QACnB,KAAK,cAAc,CAAC,eAAe,CAAC,GAAG;YACnC,OAAO,QAAQ,CAAA;QACnB,KAAK,cAAc,CAAC,YAAY,CAAC,GAAG;YAChC,OAAO,SAAS,CAAA;QACpB;YACI,OAAO,QAAQ,CAAA;IACvB,CAAC;AACL,CAAC,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { generateLanguage, generateApiFromLanguages, generateApiFromLanguagesJson } from "./generator.js";
2
- export * from "./generation-headers.js";
3
- export * from "./mega-factory.templates.js";
2
+ export { defaultTrumpfOriginatingApache2_0LicensedHeader, generatedCodeWarningComments } from "./generation-headers.js";
3
+ export { megaFactoryFor } from "./mega-factory.templates.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AACzG,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AACzG,OAAO,EAAE,+CAA+C,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAA;AACvH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA"}
package/dist/index.js CHANGED
@@ -15,6 +15,6 @@
15
15
  // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
16
  // SPDX-License-Identifier: Apache-2.0
17
17
  export { generateLanguage, generateApiFromLanguages, generateApiFromLanguagesJson } from "./generator.js";
18
- export * from "./generation-headers.js";
19
- export * from "./mega-factory.templates.js";
18
+ export { defaultTrumpfOriginatingApache2_0LicensedHeader, generatedCodeWarningComments } from "./generation-headers.js";
19
+ export { megaFactoryFor } from "./mega-factory.templates.js";
20
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;AAEtC,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AACzG,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;AAEtC,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AACzG,OAAO,EAAE,+CAA+C,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAA;AACvH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA"}
@@ -1,3 +1,10 @@
1
1
  import { Language } from "@lionweb/core";
2
+ /**
3
+ * @return The contents of a file implementing a “mega-factory” class for a collection of {@link Language LionWeb languages}.
4
+ * A mega-factory exposes factory methods for all concrete concepts of all the languages.
5
+ * @param megaFactoryName The name for the mega-factory class.
6
+ * @param languages A collection of {@link Language LionWeb languages}.
7
+ * @param header An optional file header for the file (contents).
8
+ */
2
9
  export declare const megaFactoryFor: (megaFactoryName: string, languages: Language[], header?: string) => string;
3
10
  //# sourceMappingURL=mega-factory.templates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mega-factory.templates.d.ts","sourceRoot":"","sources":["../src/mega-factory.templates.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAc,QAAQ,EAAkB,MAAM,eAAe,CAAA;AAKpE,eAAO,MAAM,cAAc,GAAI,iBAAiB,MAAM,EAAE,WAAW,QAAQ,EAAE,EAAE,SAAS,MAAM,WAgD7F,CAAA"}
1
+ {"version":3,"file":"mega-factory.templates.d.ts","sourceRoot":"","sources":["../src/mega-factory.templates.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAc,QAAQ,EAAkB,MAAM,eAAe,CAAA;AAKpE;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,iBAAiB,MAAM,EAAE,WAAW,QAAQ,EAAE,EAAE,SAAS,MAAM,WAgD7F,CAAA"}
@@ -18,6 +18,13 @@ import { isConcrete } from "@lionweb/core";
18
18
  import { Deprecated, ioLionWebMpsSpecificAnnotationsFrom } from "@lionweb/io-lionweb-mps-specific";
19
19
  import { asJSIdentifier, indent } from "@lionweb/textgen-utils";
20
20
  import { asString, commaSeparated } from "littoral-templates";
21
+ /**
22
+ * @return The contents of a file implementing a “mega-factory” class for a collection of {@link Language LionWeb languages}.
23
+ * A mega-factory exposes factory methods for all concrete concepts of all the languages.
24
+ * @param megaFactoryName The name for the mega-factory class.
25
+ * @param languages A collection of {@link Language LionWeb languages}.
26
+ * @param header An optional file header for the file (contents).
27
+ */
21
28
  export const megaFactoryFor = (megaFactoryName, languages, header) => {
22
29
  const isNotDeprecated = (entity) => !ioLionWebMpsSpecificAnnotationsFrom(entity).some((annotation) => annotation instanceof Deprecated);
23
30
  const requiresFactoryMethod = (entity) => isConcrete(entity) && isNotDeprecated(entity);
@@ -1 +1 @@
1
- {"version":3,"file":"mega-factory.templates.js","sourceRoot":"","sources":["../src/mega-factory.templates.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;AAEtC,OAAO,EAAE,UAAU,EAA4B,MAAM,eAAe,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,mCAAmC,EAAE,MAAM,kCAAkC,CAAA;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAE7D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,eAAuB,EAAE,SAAqB,EAAE,MAAe,EAAE,EAAE;IAC9F,MAAM,eAAe,GAAG,CAAC,MAAsB,EAAE,EAAE,CAC/C,CAAC,mCAAmC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,YAAY,UAAU,CAAC,CAAA;IAEvG,MAAM,qBAAqB,GAAG,CAAC,MAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,CAAA;IAEvG,MAAM,UAAU,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC;QACvC,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa;QAC7C,MAAM,CACF,cAAc,CACV,QAAQ,CAAC,QAAQ;aACZ,MAAM,CAAC,qBAAqB,CAAC;aAC7B,GAAG,CACA,UAAU,CAAC,EAAE,CACT,SAAS,UAAU,CAAC,IAAI,WAAW,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,qCAAqC,CAC/H,CACR,CACJ;QACD,GAAG;QACH,EAAE;KACL,CAAA;IAED,MAAM,2BAA2B,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAA;IAE/G,OAAO,QAAQ,CAAC;QACZ,MAAM,IAAI,EAAE;QACZ,oDAAoD;QACpD,EAAE;QACF,UAAU;QACV,MAAM,CAAC,cAAc,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3F,wBAAwB;QACxB,EAAE;QACF,oCAAoC;QACpC,EAAE;QACF,EAAE;QACF,gBAAgB,eAAe,IAAI;QACnC,MAAM,CAAC;YACH,EAAE;YACF,cAAc;YACd,MAAM,CAAC,CAAC,8CAA8C,CAAC,CAAC;YACxD,KAAK;YACL,GAAG;YACH,EAAE;YACF,2BAA2B,CAAC,GAAG,CAAC,UAAU,CAAC;SAC9C,CAAC;QACF,GAAG;QACH,EAAE;KACL,CAAC,CAAA;AACN,CAAC,CAAA"}
1
+ {"version":3,"file":"mega-factory.templates.js","sourceRoot":"","sources":["../src/mega-factory.templates.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,EAAE;AACF,sEAAsE;AACtE,sCAAsC;AAEtC,OAAO,EAAE,UAAU,EAA4B,MAAM,eAAe,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,mCAAmC,EAAE,MAAM,kCAAkC,CAAA;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAE7D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,eAAuB,EAAE,SAAqB,EAAE,MAAe,EAAE,EAAE;IAC9F,MAAM,eAAe,GAAG,CAAC,MAAsB,EAAE,EAAE,CAC/C,CAAC,mCAAmC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,YAAY,UAAU,CAAC,CAAA;IAEvG,MAAM,qBAAqB,GAAG,CAAC,MAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,CAAA;IAEvG,MAAM,UAAU,GAAG,CAAC,QAAkB,EAAE,EAAE,CAAC;QACvC,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa;QAC7C,MAAM,CACF,cAAc,CACV,QAAQ,CAAC,QAAQ;aACZ,MAAM,CAAC,qBAAqB,CAAC;aAC7B,GAAG,CACA,UAAU,CAAC,EAAE,CACT,SAAS,UAAU,CAAC,IAAI,WAAW,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,qCAAqC,CAC/H,CACR,CACJ;QACD,GAAG;QACH,EAAE;KACL,CAAA;IAED,MAAM,2BAA2B,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAA;IAE/G,OAAO,QAAQ,CAAC;QACZ,MAAM,IAAI,EAAE;QACZ,oDAAoD;QACpD,EAAE;QACF,UAAU;QACV,MAAM,CAAC,cAAc,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3F,wBAAwB;QACxB,EAAE;QACF,oCAAoC;QACpC,EAAE;QACF,EAAE;QACF,gBAAgB,eAAe,IAAI;QACnC,MAAM,CAAC;YACH,EAAE;YACF,cAAc;YACd,MAAM,CAAC,CAAC,8CAA8C,CAAC,CAAC;YACxD,KAAK;YACL,GAAG;YACH,EAAE;YACF,2BAA2B,CAAC,GAAG,CAAC,UAAU,CAAC;SAC9C,CAAC;QACF,GAAG;QACH,EAAE;KACL,CAAC,CAAA;AACN,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lionweb/class-core-generator",
3
- "version": "0.8.0-beta.5",
3
+ "version": "0.8.0-beta.7",
4
4
  "description": "Generator for implementations of languages based on the class-core package",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -27,16 +27,16 @@
27
27
  "release": "npm publish"
28
28
  },
29
29
  "dependencies": {
30
- "@lionweb/core": "0.8.0-beta.5",
31
- "@lionweb/io-lionweb-mps-specific": "0.8.0-beta.5",
32
- "@lionweb/json": "0.8.0-beta.5",
33
- "@lionweb/textgen-utils": "0.8.0-beta.5",
34
- "@lionweb/ts-utils": "0.8.0-beta.5",
35
- "@lionweb/utilities": "0.8.0-beta.5",
36
- "@types/node": "24.3.0",
30
+ "@lionweb/core": "0.8.0-beta.7",
31
+ "@lionweb/io-lionweb-mps-specific": "0.8.0-beta.7",
32
+ "@lionweb/json": "0.8.0-beta.7",
33
+ "@lionweb/textgen-utils": "0.8.0-beta.7",
34
+ "@lionweb/ts-utils": "0.8.0-beta.7",
35
+ "@lionweb/utilities": "0.8.0-beta.7",
36
+ "@types/node": "25.2.2",
37
37
  "littoral-templates": "0.5.1"
38
38
  },
39
39
  "devDependencies": {
40
- "@types/node": "24.3.0"
40
+ "@types/node": "25.2.2"
41
41
  }
42
42
  }
@@ -16,13 +16,13 @@
16
16
  // SPDX-License-Identifier: Apache-2.0
17
17
 
18
18
  import {
19
- builtinClassifiers,
20
19
  Classifier,
21
20
  Containment,
22
21
  Enumeration,
23
22
  Feature,
24
23
  featureMetaType,
25
24
  Interface,
25
+ isBuiltinNodeConcept,
26
26
  isContainment,
27
27
  isProperty,
28
28
  isRef,
@@ -94,7 +94,7 @@ export const typeForLanguageEntity = (imports: Imports) => {
94
94
  const classMembersForLink = (link: Link) => {
95
95
  const {name, type, multiple} = link
96
96
  const nameWithFirstUpper = withFirstUpper(name)
97
- const tsTypeForClassifier_ = tsTypeForClassifier(type, imports)
97
+ const tsTypeForClassifier_ = tsTypeForClassifier(type, imports, link instanceof Reference)
98
98
  const tsTypeForLink_ = link instanceof Reference
99
99
  ? `${imports.core(multiple ? "MultiRef" : "SingleRef")}<${tsTypeForClassifier_}>${multiple ? "" : optionalityPostfix(link)}`
100
100
  : `${tsTypeForClassifier_}${multiple ? "[]" : optionalityPostfix(link)}`
@@ -156,9 +156,16 @@ export const typeForLanguageEntity = (imports: Imports) => {
156
156
 
157
157
  const featureMetaType_ = featureMetaType(features[0])
158
158
  const argumentName = featureMetaType_.toLowerCase()
159
+ const typeParameter = (() => {
160
+ switch (featureMetaType_) {
161
+ case "Property": return "unknown"
162
+ case "Containment": return imports.generic("INodeBase")
163
+ case "Reference": return imports.core("Node")
164
+ }
165
+ })()
159
166
  return [
160
167
  ``,
161
- `get${featureMetaType_}ValueManager(${argumentName}: ${imports.core(featureMetaType_)}): ${imports.generic(featureMetaType_ + "ValueManager")}<${featureMetaType_ === "Property" ? "unknown" : imports.generic("INodeBase")}> {`,
168
+ `get${featureMetaType_}ValueManager(${argumentName}: ${imports.core(featureMetaType_)}): ${imports.generic(featureMetaType_ + "ValueManager")}<${typeParameter}> {`,
162
169
  indent(
163
170
  switchOrIf(
164
171
  `${argumentName}.key`,
@@ -174,7 +181,7 @@ export const typeForLanguageEntity = (imports: Imports) => {
174
181
  if (isUnresolvedReference(superConcept)) {
175
182
  return `/* unresolved reference to super concept */`
176
183
  }
177
- if (superConcept === undefined || superConcept === builtinClassifiers.node) {
184
+ if (superConcept === undefined || isBuiltinNodeConcept(superConcept)) {
178
185
  return imports.generic("NodeBase")
179
186
  }
180
187
  return imports.entity(superConcept)
package/src/generator.ts CHANGED
@@ -15,7 +15,7 @@
15
15
  // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
16
  // SPDX-License-Identifier: Apache-2.0
17
17
 
18
- import { deserializeLanguages, Language, lioncore } from "@lionweb/core"
18
+ import { deserializeLanguages, Language, LionWebVersions } from "@lionweb/core"
19
19
  import { LionWebJsonChunk } from "@lionweb/json"
20
20
  import { readFileAsJson } from "@lionweb/utilities"
21
21
  import { writeFileSync } from "fs"
@@ -28,9 +28,22 @@ import { languageFileFor } from "./language-file.templates.js"
28
28
  const properGenericImportLocation = "@lionweb/class-core"
29
29
 
30
30
 
31
+ /**
32
+ * A type def. for options objects configuring code generation.
33
+ */
31
34
  export type GeneratorOptions = {
35
+ /**
36
+ * The `from`-part of the `import`-statement that imports the `class-core` package.
37
+ * Default (which you should always use!): `@lionweb/class-core`.
38
+ */
32
39
  genericImportLocation: string
40
+ /**
41
+ * The optional header for generated files.
42
+ */
33
43
  header?: string
44
+ /**
45
+ * Whether to output logging on the `stdout`. Default: `true`.
46
+ */
34
47
  verbose: boolean
35
48
  }
36
49
 
@@ -42,6 +55,12 @@ const withDefaults = (options?: Partial<GeneratorOptions>): GeneratorOptions =>
42
55
  })
43
56
 
44
57
 
58
+ /**
59
+ * Generates a file containing the API code for the given {@link Language LionWeb language}.
60
+ * @param language A {@link Language LionWeb language}.
61
+ * @param generationPath The path (relative to the current execution) to generate to/in.
62
+ * @param mayBeOptions Optionally-given {@link GeneratorOptions options}.
63
+ */
45
64
  export const generateLanguage = (language: Language, generationPath: string, mayBeOptions?: Partial<GeneratorOptions>): string => {
46
65
  const {name} = language
47
66
  const fileName = `${name}.g.ts`
@@ -56,6 +75,12 @@ const logger = (verbose?: boolean): ((text?: string) => void) =>
56
75
  : (_) => {}
57
76
 
58
77
 
78
+ /**
79
+ * Generates an API (as files) for the {@link Language LionWeb languages} given as a serialization chunk at the given path.
80
+ * @param languagesJsonPath The path (relative to the current execution) to a LionWeb serialization chunk containing {@link Language LionWeb languages}.
81
+ * @param generationPath The path (relative to the current execution) to generate to/in.
82
+ * @param mayBeOptions Optionally-given {@link GeneratorOptions options}.
83
+ */
59
84
  export const generateApiFromLanguagesJson = (languagesJsonPath: string, generationPath: string, mayBeOptions?: Partial<GeneratorOptions>) => {
60
85
  const log = logger(mayBeOptions?.verbose)
61
86
  log(`Running API generator with cwd: ${cwd()}`)
@@ -63,11 +88,17 @@ export const generateApiFromLanguagesJson = (languagesJsonPath: string, generati
63
88
  log(` Generation path: ${generationPath}`)
64
89
 
65
90
  const languagesJson = readFileAsJson(languagesJsonPath) as LionWebJsonChunk
66
- const languages = deserializeLanguages(languagesJson, lioncore)
91
+ const languages = deserializeLanguages(languagesJson, LionWebVersions.v2023_1.lioncoreFacade.language)
67
92
  generateApiFromLanguages(languages, generationPath, mayBeOptions)
68
93
  }
69
94
 
70
95
 
96
+ /**
97
+ * Generates an API (as files) for the {@link Language LionWeb languages} given as a serialization chunk at the given path.
98
+ * @param languages A collection of {@link Language LionWeb languages}.
99
+ * @param generationPath The path (relative to the current execution) to generate to/in.
100
+ * @param mayBeOptions Optionally-given {@link GeneratorOptions options}.
101
+ */
71
102
  export const generateApiFromLanguages = (languages: Language[], generationPath: string, maybeOptions?: Partial<GeneratorOptions>) => {
72
103
  const log = logger(maybeOptions?.verbose)
73
104
  log(` Generated:`)
@@ -16,11 +16,11 @@
16
16
  // SPDX-License-Identifier: Apache-2.0
17
17
 
18
18
  import {
19
- builtinClassifiers,
20
19
  Classifier,
21
20
  DataType,
22
21
  Enumeration,
23
22
  Feature,
23
+ isBuiltinNodeConcept,
24
24
  isContainment,
25
25
  isProperty,
26
26
  isReference,
@@ -34,6 +34,7 @@ import {
34
34
  } from "@lionweb/core"
35
35
  import { Imports, tsTypeForPrimitiveType } from "./index.js"
36
36
 
37
+
37
38
  export const typeOf = (feature: Feature): SingleRef<LanguageEntity> => {
38
39
  if (feature instanceof Property) {
39
40
  return feature.type
@@ -59,11 +60,23 @@ export const tsTypeForDataType = (dataType: SingleRef<DataType>, imports: Import
59
60
  }
60
61
 
61
62
 
62
- export const tsTypeForClassifier = (classifier: SingleRef<Classifier>, imports: Imports) => {
63
+ const isBuiltinNode = (type: SingleRef<LanguageEntity>): boolean => {
64
+ if (isUnresolvedReference(type)) {
65
+ throw new Error(`can’t say whether an unresolved reference is the built-in Node concept`)
66
+ }
67
+ return type instanceof Classifier && isBuiltinNodeConcept(type)
68
+ }
69
+
70
+ export const tsTypeForClassifier = (classifier: SingleRef<Classifier>, imports: Imports, isReference = false) => {
63
71
  if (isUnresolvedReference(classifier)) {
64
72
  return `unknown /* [ERROR] can't compute a TS type for an unresolved classifier */`
65
73
  }
66
- return classifier === builtinClassifiers.node ? imports.generic("INodeBase") : imports.entity(classifier)
74
+ if (isBuiltinNode(classifier)) {
75
+ return isReference
76
+ ? imports.core("Node")
77
+ : imports.generic("INodeBase")
78
+ }
79
+ return imports.entity(classifier)
67
80
  }
68
81
 
69
82
 
@@ -87,11 +100,11 @@ export const tsFieldTypeForFeature = (feature: Feature, imports: Imports): strin
87
100
  return `${typeId}${(optionalityPostfix(feature))}`
88
101
  }
89
102
  if (isContainment(feature)) {
90
- const typeId = type === builtinClassifiers.node ? imports.generic("INodeBase") : imports.entity(type)
103
+ const typeId = isBuiltinNode(type) ? imports.generic("INodeBase") : imports.entity(type)
91
104
  return `${typeId}${feature.multiple ? "[]" : optionalityPostfix(feature)}`
92
105
  }
93
106
  if (isReference(feature)) {
94
- const typeId = type === builtinClassifiers.node ? imports.generic("INodeBase") : imports.entity(type)
107
+ const typeId = isBuiltinNode(type) ? imports.generic("INodeBase") : imports.entity(type)
95
108
  return `${imports.core("SingleRef")}<${typeId}>${feature.multiple ? "[]" : optionalityPostfix(feature)}`
96
109
  }
97
110
  return `unknown /* [ERROR] can't compute a TS type for feature ${feature.name} on classifier ${feature.classifier.name} whose type has an unhandled/-known meta-type ${type.constructor.name} */`
@@ -103,7 +116,7 @@ export const tsTypeForValueManager = (feature: Feature, imports: Imports): strin
103
116
  return `unknown /* [ERROR] can't compute a TS type for feature ${feature.name} on classifier ${feature.classifier.name} with unresolved type (${type}) */`
104
117
  }
105
118
  if (isProperty(feature)) {
106
- const typeId = (() => {
119
+ return (() => {
107
120
  if (type instanceof PrimitiveType) {
108
121
  return tsTypeForPrimitiveType(type)
109
122
  }
@@ -112,11 +125,18 @@ export const tsTypeForValueManager = (feature: Feature, imports: Imports): strin
112
125
  }
113
126
  return `unknown /* [ERROR] can't compute a TS type for feature ${feature.name} on classifier ${feature.classifier.name} whose type has an unhandled/-known meta-type ${type.constructor.name} */`
114
127
  })()
115
- return typeId
116
128
  }
117
- if (isContainment(feature) || isReference(feature)) {
118
- return type === builtinClassifiers.node ? imports.generic("INodeBase") : imports.entity(type)
129
+ if (!(isContainment(feature) || isReference(feature))) {
130
+ return `unknown /* [ERROR] can't compute a TS type for feature ${feature.name} on classifier ${feature.classifier.name} whose type has an unhandled/-known meta-type ${type.constructor.name} */`
119
131
  }
120
- return `unknown /* [ERROR] can't compute a TS type for feature ${feature.name} on classifier ${feature.classifier.name} whose type has an unhandled/-known meta-type ${type.constructor.name} */`
132
+ if (isBuiltinNode(type)) {
133
+ if (isContainment(feature)) {
134
+ return imports.generic("INodeBase")
135
+ }
136
+ if (isReference(feature)) {
137
+ return imports.core("Node")
138
+ }
139
+ }
140
+ return imports.entity(type)
121
141
  }
122
142
 
@@ -15,7 +15,7 @@
15
15
  // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
16
  // SPDX-License-Identifier: Apache-2.0
17
17
 
18
- import { Language, LanguageEntity, lioncoreBuiltins } from "@lionweb/core"
18
+ import { Language, LanguageEntity, LionWebVersions } from "@lionweb/core"
19
19
  import { asJSIdentifier } from "@lionweb/textgen-utils"
20
20
 
21
21
  export const importRenamingForLanguage = (language: Language) => asJSIdentifier(language.name)
@@ -24,7 +24,9 @@ export const nameOfBaseClassForLanguage = (language: Language) =>
24
24
  asJSIdentifier(language.name) + "Base"
25
25
 
26
26
 
27
- const lionCoreBuiltinsIdentifier = nameOfBaseClassForLanguage(lioncoreBuiltins)
27
+ const lioncoreBuiltins = LionWebVersions.v2023_1.builtinsFacade.language
28
+
29
+ const lioncoreBuiltinsIdentifier = nameOfBaseClassForLanguage(lioncoreBuiltins)
28
30
 
29
31
 
30
32
  export class Imports {
@@ -89,8 +91,8 @@ export class Imports {
89
91
  }
90
92
  language(language: Language) {
91
93
  if (language === lioncoreBuiltins) {
92
- this._genericImports.add(lionCoreBuiltinsIdentifier)
93
- return lionCoreBuiltinsIdentifier
94
+ this._genericImports.add(lioncoreBuiltinsIdentifier)
95
+ return lioncoreBuiltinsIdentifier
94
96
  }
95
97
  const externalName = importRenamingForLanguage(language)
96
98
  if (language === this.thisLanguage) {
@@ -15,17 +15,20 @@
15
15
  // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
16
  // SPDX-License-Identifier: Apache-2.0
17
17
 
18
- import { builtinPrimitives, PrimitiveType } from "@lionweb/core"
18
+ import { LionWebVersions, PrimitiveType } from "@lionweb/core"
19
+
20
+
21
+ const { primitiveTypes } = LionWebVersions.v2023_1.builtinsFacade
19
22
 
20
23
  export const tsTypeForPrimitiveType = (primitiveType: PrimitiveType): string => {
21
- switch (primitiveType) {
22
- case builtinPrimitives.booleanDataType:
24
+ switch (primitiveType.key) {
25
+ case primitiveTypes.booleanDataType.key:
23
26
  return `boolean`
24
- case builtinPrimitives.stringDataType:
27
+ case primitiveTypes.stringDataType.key:
25
28
  return `string`
26
- case builtinPrimitives.integerDataType:
29
+ case primitiveTypes.integerDataType.key:
27
30
  return `number`
28
- case builtinPrimitives.jsonDataType:
31
+ case primitiveTypes.jsonDataType.key:
29
32
  return `unknown`
30
33
  default:
31
34
  return `string`
package/src/index.ts CHANGED
@@ -16,5 +16,5 @@
16
16
  // SPDX-License-Identifier: Apache-2.0
17
17
 
18
18
  export { generateLanguage, generateApiFromLanguages, generateApiFromLanguagesJson } from "./generator.js"
19
- export * from "./generation-headers.js"
20
- export * from "./mega-factory.templates.js"
19
+ export { defaultTrumpfOriginatingApache2_0LicensedHeader, generatedCodeWarningComments } from "./generation-headers.js"
20
+ export { megaFactoryFor } from "./mega-factory.templates.js"
@@ -20,6 +20,13 @@ import { Deprecated, ioLionWebMpsSpecificAnnotationsFrom } from "@lionweb/io-lio
20
20
  import { asJSIdentifier, indent } from "@lionweb/textgen-utils"
21
21
  import { asString, commaSeparated } from "littoral-templates"
22
22
 
23
+ /**
24
+ * @return The contents of a file implementing a “mega-factory” class for a collection of {@link Language LionWeb languages}.
25
+ * A mega-factory exposes factory methods for all concrete concepts of all the languages.
26
+ * @param megaFactoryName The name for the mega-factory class.
27
+ * @param languages A collection of {@link Language LionWeb languages}.
28
+ * @param header An optional file header for the file (contents).
29
+ */
23
30
  export const megaFactoryFor = (megaFactoryName: string, languages: Language[], header?: string) => {
24
31
  const isNotDeprecated = (entity: LanguageEntity) =>
25
32
  !ioLionWebMpsSpecificAnnotationsFrom(entity).some((annotation) => annotation instanceof Deprecated)