@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 +1 -0
- package/README.md +30 -0
- package/dist/entity-types.templates.d.ts.map +1 -1
- package/dist/entity-types.templates.js +11 -4
- package/dist/entity-types.templates.js.map +1 -1
- package/dist/generator.d.ts +31 -0
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +20 -2
- package/dist/generator.js.map +1 -1
- package/dist/helpers/features.d.ts +1 -1
- package/dist/helpers/features.d.ts.map +1 -1
- package/dist/helpers/features.js +28 -10
- package/dist/helpers/features.js.map +1 -1
- package/dist/helpers/imports-tracking.d.ts.map +1 -1
- package/dist/helpers/imports-tracking.js +5 -4
- package/dist/helpers/imports-tracking.js.map +1 -1
- package/dist/helpers/primitive-types.d.ts.map +1 -1
- package/dist/helpers/primitive-types.js +7 -6
- package/dist/helpers/primitive-types.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/mega-factory.templates.d.ts +7 -0
- package/dist/mega-factory.templates.d.ts.map +1 -1
- package/dist/mega-factory.templates.js +7 -0
- package/dist/mega-factory.templates.js.map +1 -1
- package/package.json +9 -9
- package/src/entity-types.templates.ts +11 -4
- package/src/generator.ts +33 -2
- package/src/helpers/features.ts +30 -10
- package/src/helpers/imports-tracking.ts +6 -4
- package/src/helpers/primitive-types.ts +9 -6
- package/src/index.ts +2 -2
- package/src/mega-factory.templates.ts +7 -0
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
|
+
[
|
|
4
|
+
](./LICENSE)
|
|
5
|
+
[
|
|
6
|
+
](https://github.com/LionWeb-io/lionweb-typescript/actions/workflows/test.yaml)
|
|
7
|
+
[
|
|
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,
|
|
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 {
|
|
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")}<${
|
|
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
|
|
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":"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,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,WAAW,EAEX,eAAe,EACf,SAAS,EACT,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,CAAC,CAAA;QAC/D,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,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,gBAAgB,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK;gBAChO,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,YAAY,KAAK,kBAAkB,CAAC,IAAI,EAAE,CAAC;gBACzE,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
|
+
{"version":3,"file":"entity-types.templates.js","sourceRoot":"","sources":["../src/entity-types.templates.ts"],"names":[],"mappings":"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"}
|
package/dist/generator.d.ts
CHANGED
|
@@ -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
|
package/dist/generator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAwB,QAAQ,
|
|
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,
|
|
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,
|
|
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:`);
|
package/dist/generator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.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,oBAAoB,EAAY,
|
|
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,
|
|
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"}
|
package/dist/helpers/features.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 {
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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":"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,
|
|
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,
|
|
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 {
|
|
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
|
|
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(
|
|
78
|
-
return
|
|
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":"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,EAA4B,
|
|
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,
|
|
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 {
|
|
17
|
+
import { LionWebVersions } from "@lionweb/core";
|
|
18
|
+
const { primitiveTypes } = LionWebVersions.v2023_1.builtinsFacade;
|
|
18
19
|
export const tsTypeForPrimitiveType = (primitiveType) => {
|
|
19
|
-
switch (primitiveType) {
|
|
20
|
-
case
|
|
20
|
+
switch (primitiveType.key) {
|
|
21
|
+
case primitiveTypes.booleanDataType.key:
|
|
21
22
|
return `boolean`;
|
|
22
|
-
case
|
|
23
|
+
case primitiveTypes.stringDataType.key:
|
|
23
24
|
return `string`;
|
|
24
|
-
case
|
|
25
|
+
case primitiveTypes.integerDataType.key:
|
|
25
26
|
return `number`;
|
|
26
|
-
case
|
|
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,
|
|
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
|
|
3
|
-
export
|
|
2
|
+
export { defaultTrumpfOriginatingApache2_0LicensedHeader, generatedCodeWarningComments } from "./generation-headers.js";
|
|
3
|
+
export { megaFactoryFor } from "./mega-factory.templates.js";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
|
19
|
-
export
|
|
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,
|
|
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.
|
|
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.
|
|
31
|
-
"@lionweb/io-lionweb-mps-specific": "0.8.0-beta.
|
|
32
|
-
"@lionweb/json": "0.8.0-beta.
|
|
33
|
-
"@lionweb/textgen-utils": "0.8.0-beta.
|
|
34
|
-
"@lionweb/ts-utils": "0.8.0-beta.
|
|
35
|
-
"@lionweb/utilities": "0.8.0-beta.
|
|
36
|
-
"@types/node": "
|
|
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": "
|
|
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")}<${
|
|
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
|
|
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,
|
|
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,
|
|
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:`)
|
package/src/helpers/features.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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,
|
|
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
|
|
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(
|
|
93
|
-
return
|
|
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 {
|
|
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
|
|
24
|
+
switch (primitiveType.key) {
|
|
25
|
+
case primitiveTypes.booleanDataType.key:
|
|
23
26
|
return `boolean`
|
|
24
|
-
case
|
|
27
|
+
case primitiveTypes.stringDataType.key:
|
|
25
28
|
return `string`
|
|
26
|
-
case
|
|
29
|
+
case primitiveTypes.integerDataType.key:
|
|
27
30
|
return `number`
|
|
28
|
-
case
|
|
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
|
|
20
|
-
export
|
|
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)
|