@lionweb/class-core-generator 0.6.13-beta.7 → 0.7.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/api/entity-types.templates.d.ts +3 -2
  3. package/dist/api/entity-types.templates.d.ts.map +1 -1
  4. package/dist/api/entity-types.templates.js +2 -2
  5. package/dist/api/entity-types.templates.js.map +1 -1
  6. package/dist/api/generation-headers.js.map +1 -1
  7. package/dist/api/generator.d.ts.map +1 -1
  8. package/dist/api/generator.js.map +1 -1
  9. package/dist/api/helpers/classifiers.d.ts.map +1 -1
  10. package/dist/api/helpers/classifiers.js +1 -1
  11. package/dist/api/helpers/classifiers.js.map +1 -1
  12. package/dist/api/helpers/dependencies.d.ts.map +1 -1
  13. package/dist/api/helpers/dependencies.js +2 -2
  14. package/dist/api/helpers/dependencies.js.map +1 -1
  15. package/dist/api/helpers/entities.d.ts.map +1 -1
  16. package/dist/api/helpers/entities.js.map +1 -1
  17. package/dist/api/helpers/features.d.ts.map +1 -1
  18. package/dist/api/helpers/features.js +3 -3
  19. package/dist/api/helpers/features.js.map +1 -1
  20. package/dist/api/helpers/imports-tracking.d.ts +3 -0
  21. package/dist/api/helpers/imports-tracking.d.ts.map +1 -1
  22. package/dist/api/helpers/imports-tracking.js +8 -0
  23. package/dist/api/helpers/imports-tracking.js.map +1 -1
  24. package/dist/api/helpers/index.d.ts +1 -1
  25. package/dist/api/helpers/index.d.ts.map +1 -1
  26. package/dist/api/helpers/index.js +1 -1
  27. package/dist/api/helpers/index.js.map +1 -1
  28. package/dist/api/helpers/mps-annotations.d.ts +6 -6
  29. package/dist/api/helpers/mps-annotations.d.ts.map +1 -1
  30. package/dist/api/helpers/mps-annotations.js.map +1 -1
  31. package/dist/api/helpers/{types.d.ts → primitive-types.d.ts} +1 -1
  32. package/dist/api/helpers/primitive-types.d.ts.map +1 -0
  33. package/dist/api/helpers/{types.js → primitive-types.js} +9 -5
  34. package/dist/api/helpers/primitive-types.js.map +1 -0
  35. package/dist/api/index-ts.d.ts.map +1 -1
  36. package/dist/api/index-ts.js +5 -6
  37. package/dist/api/index-ts.js.map +1 -1
  38. package/dist/api/language-file.templates.d.ts.map +1 -1
  39. package/dist/api/language-file.templates.js +7 -11
  40. package/dist/api/language-file.templates.js.map +1 -1
  41. package/dist/api/mega-factory.templates.d.ts.map +1 -1
  42. package/dist/api/mega-factory.templates.js +4 -7
  43. package/dist/api/mega-factory.templates.js.map +1 -1
  44. package/dist/api/reflective-layer.templates.d.ts.map +1 -1
  45. package/dist/api/reflective-layer.templates.js +19 -34
  46. package/dist/api/reflective-layer.templates.js.map +1 -1
  47. package/dist/utils/index.d.ts +0 -1
  48. package/dist/utils/index.d.ts.map +1 -1
  49. package/dist/utils/index.js +0 -1
  50. package/dist/utils/index.js.map +1 -1
  51. package/dist/utils/textgen.d.ts.map +1 -1
  52. package/dist/utils/textgen.js.map +1 -1
  53. package/package.json +13 -9
  54. package/src/api/entity-types.templates.ts +6 -7
  55. package/src/api/generation-headers.ts +1 -1
  56. package/src/api/generator.ts +10 -10
  57. package/src/api/helpers/classifiers.ts +3 -15
  58. package/src/api/helpers/dependencies.ts +4 -4
  59. package/src/api/helpers/entities.ts +2 -8
  60. package/src/api/helpers/features.ts +5 -5
  61. package/src/api/helpers/imports-tracking.ts +12 -5
  62. package/src/api/helpers/index.ts +1 -1
  63. package/src/api/helpers/mps-annotations.ts +6 -8
  64. package/src/api/helpers/{types.ts → primitive-types.ts} +9 -6
  65. package/src/api/index-ts.ts +26 -16
  66. package/src/api/language-file.templates.ts +11 -16
  67. package/src/api/mega-factory.templates.ts +20 -26
  68. package/src/api/reflective-layer.templates.ts +46 -69
  69. package/src/utils/index.ts +0 -1
  70. package/src/utils/textgen.ts +1 -1
  71. package/dist/api/helpers/types.d.ts.map +0 -1
  72. package/dist/api/helpers/types.js.map +0 -1
  73. package/dist/utils/string-sorting.d.ts +0 -4
  74. package/dist/utils/string-sorting.d.ts.map +0 -1
  75. package/dist/utils/string-sorting.js +0 -23
  76. package/dist/utils/string-sorting.js.map +0 -1
  77. package/dist/utils/toposort.d.ts +0 -6
  78. package/dist/utils/toposort.d.ts.map +0 -1
  79. package/dist/utils/toposort.js +0 -41
  80. package/dist/utils/toposort.js.map +0 -1
  81. package/src/utils/string-sorting.ts +0 -29
  82. package/src/utils/toposort.ts +0 -49
@@ -14,7 +14,8 @@
14
14
  //
15
15
  // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
16
  // SPDX-License-Identifier: Apache-2.0
17
- import { Annotation, asArray, Classifier, Concept, Enumeration, featureMetaType, Interface, isConcrete, isEnumeration, isMultiple, Link, nameOf, PrimitiveType, Property } from "@lionweb/core";
17
+ import { Annotation, Classifier, Concept, Enumeration, featureMetaType, Interface, isConcrete, isEnumeration, isMultiple, Link, nameOf, PrimitiveType, Property } from "@lionweb/core";
18
+ import { asArray } from "@lionweb/ts-utils";
18
19
  import { when, withNewlineAppended } from "littoral-templates";
19
20
  import { indent, switchOrIf } from "../utils/textgen.js";
20
21
  import { entityMetaType, extendsFrom, nameOfBaseClassForLanguage } from "./helpers/index.js";
@@ -28,10 +29,7 @@ export const reflectiveClassFor = (imports) => {
28
29
  `private readonly _${qName} = new ${imports.core(metaType)}(this._${classifier.name}, "${name}", "${key}", "${id}")${optional ? ".isOptional()" : ""}${isMultiple(feature) ? ".isMultiple()" : ""};`,
29
30
  // | core (2nd x) |
30
31
  `get ${qName}(): ${metaType} {`,
31
- indent([
32
- `this.ensureWiredUp();`,
33
- `return this._${qName};`
34
- ]),
32
+ indent([`this.ensureWiredUp();`, `return this._${qName};`]),
35
33
  `}`
36
34
  ];
37
35
  };
@@ -39,13 +37,10 @@ export const reflectiveClassFor = (imports) => {
39
37
  const { name, key, id, features } = classifier;
40
38
  const metaType = entityMetaType(classifier);
41
39
  return [
42
- `public readonly _${name} = new ${imports.core(metaType)}(this._language, "${name}", "${key}", "${id}"${classifier instanceof Concept ? (", " + classifier.abstract) : ""});`,
40
+ `public readonly _${name} = new ${imports.core(metaType)}(this._language, "${name}", "${key}", "${id}"${classifier instanceof Concept ? ", " + classifier.abstract : ""});`,
43
41
  // | core (2nd x) |
44
42
  `get ${name}(): ${metaType} {`,
45
- indent([
46
- `this.ensureWiredUp();`,
47
- `return this._${name};`
48
- ]),
43
+ indent([`this.ensureWiredUp();`, `return this._${name};`]),
49
44
  `}`,
50
45
  features.map(reflectiveMembersForFeature)
51
46
  ];
@@ -57,10 +52,7 @@ export const reflectiveClassFor = (imports) => {
57
52
  `private readonly _${qName} = new ${imports.core("EnumerationLiteral")}(this._${enumeration.name}, "${name}", "${key}", "${id}");`,
58
53
  // | core (2nd x) |
59
54
  `get ${qName}(): EnumerationLiteral {`,
60
- indent([
61
- `this.ensureWiredUp();`,
62
- `return this._${qName};`
63
- ]),
55
+ indent([`this.ensureWiredUp();`, `return this._${qName};`]),
64
56
  `}`
65
57
  ];
66
58
  };
@@ -68,10 +60,7 @@ export const reflectiveClassFor = (imports) => {
68
60
  `public readonly _${name} = new ${imports.core("Enumeration")}(this._language, "${name}", "${key}", "${id}");`,
69
61
  // | core (2nd x) |
70
62
  `get ${name}(): Enumeration {`,
71
- indent([
72
- `this.ensureWiredUp();`,
73
- `return this._${name};`
74
- ]),
63
+ indent([`this.ensureWiredUp();`, `return this._${name};`]),
75
64
  `}`,
76
65
  literals.map(reflectiveMemberForEnumerationLiteral)
77
66
  ];
@@ -79,10 +68,7 @@ export const reflectiveClassFor = (imports) => {
79
68
  `public readonly _${name} = new ${imports.core("PrimitiveType")}(this._language, "${name}", "${key}", "${id}");`,
80
69
  // | core (2nd x) |
81
70
  `get ${name}(): PrimitiveType {`,
82
- indent([
83
- `this.ensureWiredUp();`,
84
- `return this._${name};`
85
- ]),
71
+ indent([`this.ensureWiredUp();`, `return this._${name};`]),
86
72
  `}`
87
73
  ];
88
74
  const reflectiveMembersForEntity = (entity) => {
@@ -130,11 +116,11 @@ export const reflectiveClassFor = (imports) => {
130
116
  if (entity instanceof Classifier) {
131
117
  const extends_ = extendsFrom(entity);
132
118
  return [
133
- extends_ instanceof Classifier
134
- ? `this._${name}.extends = ${refForType(extends_)};`
135
- : [],
136
- when(entity instanceof Interface && entity.extends.length > 0)(() => `this._${name}.extending(${entity.extends.map((interface_) => refForType(interface_)).join(", ")});`),
137
- when(isConcreteClassifier(entity) && entity.implements.length > 0)(() => `this._${name}.implementing(${asArray(entity.implements).map((interface_) => refForType(interface_)).join(", ")});`),
119
+ extends_ instanceof Classifier ? `this._${name}.extends = ${refForType(extends_)};` : [],
120
+ when(entity instanceof Interface && entity.extends.length > 0)(() => `this._${name}.extending(${entity.extends.map(interface_ => refForType(interface_)).join(", ")});`),
121
+ when(isConcreteClassifier(entity) && entity.implements.length > 0)(() => `this._${name}.implementing(${asArray(entity.implements)
122
+ .map(interface_ => refForType(interface_))
123
+ .join(", ")});`),
138
124
  when(entity.features.length > 0)(`this._${name}.havingFeatures(${entity.features.map(nameOf).map(thisLocalName).join(", ")});`),
139
125
  entity.features.map(wireUpStatementsForFeature)
140
126
  ];
@@ -161,10 +147,7 @@ export const reflectiveClassFor = (imports) => {
161
147
  `private readonly _language: ${imports.core("Language")} = new Language("${imports.thisLanguageNameAsJsIdentifier}", "${version}", "${id}", "${key}");`,
162
148
  // | core | (3rd x)
163
149
  `get language(): Language {`,
164
- indent([
165
- `this.ensureWiredUp();`,
166
- `return this._language;`
167
- ]),
150
+ indent([`this.ensureWiredUp();`, `return this._language;`]),
168
151
  `}`,
169
152
  ``,
170
153
  entities.map(withNewlineAppended(reflectiveMembersForEntity)),
@@ -182,8 +165,10 @@ export const reflectiveClassFor = (imports) => {
182
165
  ``,
183
166
  `factory(${parameterPrefix}handleDelta?: ${imports.generic("DeltaHandler")}): ${imports.generic("NodeBaseFactory")} {`,
184
167
  indent([
185
- `return (classifier: ${imports.core("Classifier")}, ${parameterPrefix}id: ${imports.core("Id")}) => {`,
186
- indent(switchOrIf("classifier.key", concreteClassifiers.map(nameOf).map((name) => [`this._${name}.key`, `${name}.create(id, ${parameterPrefix}handleDelta)`]), [
168
+ `return (classifier: ${imports.core("Classifier")}, ${parameterPrefix}id: ${imports.json("LionWebId")}) => {`,
169
+ indent(switchOrIf("classifier.key", concreteClassifiers
170
+ .map(nameOf)
171
+ .map(name => [`this._${name}.key`, `${name}.create(id, ${parameterPrefix}handleDelta)`]), [
187
172
  `const {language} = classifier;`,
188
173
  `throw new Error(\`can't instantiate \${classifier.name} (key=\${classifier.key}): classifier is not known in language \${language.name} (key=\${language.key}, version=\${language.version})\`);`
189
174
  ])),
@@ -195,7 +180,7 @@ export const reflectiveClassFor = (imports) => {
195
180
  // (Why can this work?! EnumType is an unsatisfied generic parameter!)
196
181
  indent([
197
182
  `const {enumeration} = enumerationLiteral;`,
198
- switchOrIf("enumeration.key", enumerations.map(nameOf).map((name) => [`this._${name}.key`, "enumerationLiteral.key as EnumType"]), [
183
+ switchOrIf("enumeration.key", enumerations.map(nameOf).map(name => [`this._${name}.key`, "enumerationLiteral.key as EnumType"]), [
199
184
  `const {language} = enumeration;`,
200
185
  `throw new Error(\`enumeration with key \${enumeration.key} is not known in language \${language.name} (key=\${language.key}, version=\${language.version})\`);`
201
186
  ])
@@ -1 +1 @@
1
- {"version":3,"file":"reflective-layer.templates.js","sourceRoot":"","sources":["../../src/api/reflective-layer.templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reflective-layer.templates.js","sourceRoot":"","sources":["../../src/api/reflective-layer.templates.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
1
  export { asTypeScript } from "./json-as-ts.js";
2
- export { sortedStrings, sortedStringsByUppercase } from "./string-sorting.js";
3
2
  export { indent } from "./textgen.js";
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAC,aAAa,EAAE,wBAAwB,EAAC,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAA"}
@@ -15,6 +15,5 @@
15
15
  // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
16
  // SPDX-License-Identifier: Apache-2.0
17
17
  export { asTypeScript } from "./json-as-ts.js";
18
- export { sortedStrings, sortedStringsByUppercase } from "./string-sorting.js";
19
18
  export { indent } from "./textgen.js";
20
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/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,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAC,aAAa,EAAE,wBAAwB,EAAC,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/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,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"textgen.d.ts","sourceRoot":"","sources":["../../src/utils/textgen.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAuB,QAAQ,EAAC,MAAM,oBAAoB,CAAA;AAGjE;;GAEG;AACH,eAAO,MAAM,MAAM,2BAAwB,CAAA;AAY3C;;GAEG;AACH,eAAO,MAAM,cAAc,QAXjB,MAAM,WAWsD,CAAA;AAEtE;;GAEG;AACH,eAAO,MAAM,cAAc,QAhBjB,MAAM,WAgBsD,CAAA;AAGtE;;GAEG;AACH,eAAO,MAAM,cAAc,QAAS,MAAM,KAAG,MAGhB,CAAA;AAG7B,eAAO,MAAM,QAAQ,cAAe,OAAO,QAAQ,MAAM,MAAM,SAAS,MAAM,YACnE,MAAM,WAGC,CAAA;AAGlB,MAAM,MAAM,SAAS,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;AAErE,eAAO,MAAM,UAAU,eAAgB,MAAM,SAAS,SAAS,EAAE,gBAAgB,QAAQ,eAiBhF,CAAA"}
1
+ {"version":3,"file":"textgen.d.ts","sourceRoot":"","sources":["../../src/utils/textgen.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAwB,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAGnE;;GAEG;AACH,eAAO,MAAM,MAAM,2BAAwB,CAAA;AAY3C;;GAEG;AACH,eAAO,MAAM,cAAc,QAXjB,MAAM,WAWsD,CAAA;AAEtE;;GAEG;AACH,eAAO,MAAM,cAAc,QAhBjB,MAAM,WAgBsD,CAAA;AAGtE;;GAEG;AACH,eAAO,MAAM,cAAc,QAAS,MAAM,KAAG,MAGhB,CAAA;AAG7B,eAAO,MAAM,QAAQ,cAAe,OAAO,QAAQ,MAAM,MAAM,SAAS,MAAM,YACnE,MAAM,WAGC,CAAA;AAGlB,MAAM,MAAM,SAAS,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;AAErE,eAAO,MAAM,UAAU,eAAgB,MAAM,SAAS,SAAS,EAAE,gBAAgB,QAAQ,eAiBhF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"textgen.js","sourceRoot":"","sources":["../../src/utils/textgen.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;;;GAGG;AAGH,OAAO,EAAC,QAAQ,EAAE,UAAU,EAAW,MAAM,oBAAoB,CAAA;AAGjE;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAG3C,MAAM,cAAc,GAAG,CAAC,QAAgC,EAAE,EAAE,CACxD,CAAC,GAAW,EAAE,EAAE;IACZ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,GAAG,CAAA;IACd,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;UACxB,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAClD,CAAC,CAAA;AAEL;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;AAEtE;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;AAGtE;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAW,EAAU,EAAE,CAClD,GAAG;KACE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;KACpB,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAG7B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,SAAkB,EAAE,IAAkB,EAAE,KAAa,EAAE,EAAE,CAC9E,CAAC,IAAY,EAAE,EAAE,CACb,SAAS;IACL,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,GAAG,KAAK,EAAE;IAC5B,CAAC,CAAC,IAAI,CAAA;AAKlB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,UAAkB,EAAE,KAAkB,EAAE,YAAsB,EAAE,EAAE,CACzF,KAAK,CAAC,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC;QACE,WAAW,UAAU,KAAK;QAC1B,MAAM,CAAC;YACH,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,QAAQ,cAAc,YAAY,WAAW,GAAG,CAAC;YAC9F,YAAY,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;SAC7G,CAAC;QACF,GAAG;KACN;IACD,CAAC,CAAC;QACE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC;YACzC,OAAO,UAAU,QAAQ,cAAc,KAAK;YAC5C,MAAM,CAAC,UAAU,WAAW,GAAG,CAAC;YAChC,GAAG;SACN,CAAC;QACF,YAAY;KACf,CAAA"}
1
+ {"version":3,"file":"textgen.js","sourceRoot":"","sources":["../../src/utils/textgen.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;;;GAGG;AAGH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAY,MAAM,oBAAoB,CAAA;AAGnE;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAG3C,MAAM,cAAc,GAAG,CAAC,QAAgC,EAAE,EAAE,CACxD,CAAC,GAAW,EAAE,EAAE;IACZ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,GAAG,CAAA;IACd,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;UACxB,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAClD,CAAC,CAAA;AAEL;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;AAEtE;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;AAGtE;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAW,EAAU,EAAE,CAClD,GAAG;KACE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;KACpB,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAG7B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,SAAkB,EAAE,IAAkB,EAAE,KAAa,EAAE,EAAE,CAC9E,CAAC,IAAY,EAAE,EAAE,CACb,SAAS;IACL,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,GAAG,KAAK,EAAE;IAC5B,CAAC,CAAC,IAAI,CAAA;AAKlB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,UAAkB,EAAE,KAAkB,EAAE,YAAsB,EAAE,EAAE,CACzF,KAAK,CAAC,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC;QACE,WAAW,UAAU,KAAK;QAC1B,MAAM,CAAC;YACH,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,QAAQ,cAAc,YAAY,WAAW,GAAG,CAAC;YAC9F,YAAY,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;SAC7G,CAAC;QACF,GAAG;KACN;IACD,CAAC,CAAC;QACE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC;YACzC,OAAO,UAAU,QAAQ,cAAc,KAAK;YAC5C,MAAM,CAAC,UAAU,WAAW,GAAG,CAAC;YAChC,GAAG;SACN,CAAC;QACF,YAAY;KACf,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lionweb/class-core-generator",
3
- "version": "0.6.13-beta.7",
3
+ "version": "0.7.0-alpha.1",
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",
@@ -18,16 +18,20 @@
18
18
  "clean": "rm -rf dist/ node_modules/ lionweb-class-core-generator-*.tgz",
19
19
  "build": "tsc",
20
20
  "lint": "eslint src",
21
- "pre-release-either": "npm run clean && npm install && npm run build",
22
- "prerelease": "npm run pre-release-either",
23
- "release": "npm publish",
24
- "prerelease-beta": "npm run pre-release-either",
25
- "release-beta": "npm publish --tag beta"
21
+ "prep:pre-release": "npm run clean && npm install && npm run build",
22
+ "prerelease-alpha": "npm run prep:pre-release",
23
+ "release-alpha": "npm publish --tag alpha",
24
+ "prerelease-beta": "npm run prep:pre-release",
25
+ "release-beta": "npm publish --tag beta",
26
+ "prerelease": "npm run prep:pre-release",
27
+ "release": "npm publish"
26
28
  },
27
29
  "devDependencies": {
28
- "@lionweb/core": "0.6.13-beta.7",
29
- "@lionweb/utilities": "0.6.13-beta.7",
30
- "@types/node": "20.17.30",
30
+ "@lionweb/core": "0.7.0-alpha.1",
31
+ "@lionweb/json": "0.7.0-alpha.1",
32
+ "@lionweb/ts-utils": "0.7.0-alpha.1",
33
+ "@lionweb/utilities": "0.7.0-alpha.1",
34
+ "@types/node": "22.15.21",
31
35
  "littoral-templates": "0.3.0",
32
36
  "typescript": "5.3.3"
33
37
  }
@@ -21,7 +21,6 @@ import {
21
21
  Enumeration,
22
22
  Feature,
23
23
  featureMetaType,
24
- Id,
25
24
  Interface,
26
25
  isContainment,
27
26
  isProperty,
@@ -34,9 +33,10 @@ import {
34
33
  Reference,
35
34
  SingleRef
36
35
  } from "@lionweb/core"
37
- import {commaSeparated, when, withNewlineAppended} from "littoral-templates"
36
+ import { LionWebId } from "@lionweb/json"
37
+ import { commaSeparated, when, withNewlineAppended } from "littoral-templates"
38
38
 
39
- import {indent, switchOrIf, withFirstUpper, wrapInIf} from "../utils/textgen.js"
39
+ import { indent, switchOrIf, withFirstUpper, wrapInIf } from "../utils/textgen.js"
40
40
  import {
41
41
  ConceptDescription,
42
42
  Deprecated,
@@ -55,7 +55,6 @@ import {
55
55
  tsTypeForValueManager
56
56
  } from "./helpers/index.js"
57
57
 
58
-
59
58
  const cardinalityPrefix = (feature: Feature) => {
60
59
  if (feature instanceof Property) {
61
60
  return feature.optional ? "Optional" : "Required"
@@ -68,7 +67,7 @@ const cardinalityPrefix = (feature: Feature) => {
68
67
  const valueManagerFor = (feature: Feature) =>
69
68
  `${cardinalityPrefix(feature)}${featureMetaType(feature)}ValueManager`
70
69
 
71
- export const typeForLanguageEntity = (imports: Imports, mpsAnnotationsPerId: Record<Id, MpsAnnotation[]>) => {
70
+ export const typeForLanguageEntity = (imports: Imports, mpsAnnotationsPerId: Record<LionWebId, MpsAnnotation[]>) => {
72
71
 
73
72
  const sortedSuperTypesCond = <T extends Classifier>(ts: T[], prefix: string): string =>
74
73
  ts.length === 0 ? `` : `${prefix}${nameSorted(ts).map((t) => imports.entity(t)).join(", ")}`
@@ -163,7 +162,7 @@ export const typeForLanguageEntity = (imports: Imports, mpsAnnotationsPerId: Rec
163
162
  when(!isAbstract(classifier))(
164
163
  () =>
165
164
  [
166
- `static create(id: Id, handleDelta?: ${imports.generic("DeltaHandler")}, parentInfo?: ${imports.generic("Parentage")}): ${classifier.name} {`,
165
+ `static create(id: ${imports.json("LionWebId")}, handleDelta?: ${imports.generic("DeltaHandler")}, parentInfo?: ${imports.generic("Parentage")}): ${classifier.name} {`,
167
166
  indent([
168
167
  `return new ${classifier.name}(${imports.language(classifier.language)}.INSTANCE.${classifier.name}, id, handleDelta, parentInfo);`
169
168
  ]),
@@ -175,7 +174,7 @@ export const typeForLanguageEntity = (imports: Imports, mpsAnnotationsPerId: Rec
175
174
  [
176
175
  ``,
177
176
  features.map(withNewlineAppended(classMembersForFeature)),
178
- `public constructor(classifier: ${imports.core("Classifier")}, id: ${imports.core("Id")}, handleDelta?: ${imports.generic("DeltaHandler")}, parentInfo?: ${imports.generic("Parentage")}) {`,
177
+ `public constructor(classifier: ${imports.core("Classifier")}, id: ${imports.json("LionWebId")}, handleDelta?: ${imports.generic("DeltaHandler")}, parentInfo?: ${imports.generic("Parentage")}) {`,
179
178
  indent([
180
179
  `super(classifier, id, handleDelta, parentInfo);`,
181
180
  features.map((feature) => `this._${feature.name} = new ${imports.generic(valueManagerFor(feature))}<${tsTypeForValueManager(feature, imports)}>(${imports.language(feature.classifier.language)}.INSTANCE.${feature.classifier.name}_${feature.name}, this);`)
@@ -2,7 +2,7 @@
2
2
  //
3
3
  // SPDX-License-Identifier: LicenseRef-TRUMPF
4
4
 
5
- import {asString} from "littoral-templates"
5
+ import { asString } from "littoral-templates"
6
6
 
7
7
  /**
8
8
  * @return the given string, reversed — "abc" -> "cba"
@@ -15,16 +15,16 @@
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, SerializationChunk} from "@lionweb/core"
19
- import {readFileAsJson} from "@lionweb/utilities"
20
- import {writeFileSync} from "fs"
21
- import {join} from "path"
22
- import {cwd} from "process"
23
-
24
- import {indexTsFor} from "./index-ts.js"
25
- import {languageFileFor} from "./language-file.templates.js"
26
- import {MpsAnnotation} from "./helpers/index.js"
18
+ import { deserializeLanguages, Language, lioncore } from "@lionweb/core"
19
+ import { LionWebJsonChunk } from "@lionweb/json"
20
+ import { readFileAsJson } from "@lionweb/utilities"
21
+ import { writeFileSync } from "fs"
22
+ import { join } from "path"
23
+ import { cwd } from "process"
24
+ import { MpsAnnotation } from "./helpers/index.js"
27
25
 
26
+ import { indexTsFor } from "./index-ts.js"
27
+ import { languageFileFor } from "./language-file.templates.js"
28
28
 
29
29
  const properGenericImportLocation = "@lionweb/class-core"
30
30
 
@@ -56,7 +56,7 @@ export const generateApiFromLanguagesJson = (languagesJsonPath: string, generati
56
56
  console.log(` Path to languages: ${languagesJsonPath}`)
57
57
  console.log(` Generation path: ${generationPath}`)
58
58
 
59
- const languagesJson = readFileAsJson(languagesJsonPath) as SerializationChunk
59
+ const languagesJson = readFileAsJson(languagesJsonPath) as LionWebJsonChunk
60
60
  const languages = deserializeLanguages(languagesJson, lioncore)
61
61
  generateApiFromLanguages(languages, generationPath, options)
62
62
  }
@@ -15,22 +15,10 @@
15
15
  // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
16
  // SPDX-License-Identifier: Apache-2.0
17
17
 
18
- import {
19
- allFeaturesOf,
20
- allSuperTypesOf,
21
- Annotation,
22
- Classifier,
23
- Concept,
24
- Feature,
25
- Interface,
26
- MultiRef,
27
- SingleRef
28
- } from "@lionweb/core"
29
- import {uniquesAmong} from "@lionweb/utilities/dist/utils/array.js"
18
+ import { allFeaturesOf, allSuperTypesOf, Annotation, Classifier, Concept, Feature, Interface, MultiRef, SingleRef } from "@lionweb/core"
19
+ import { uniquesAmong } from "@lionweb/ts-utils"
30
20
 
31
-
32
- export const isAbstract = (classifier: Classifier): boolean =>
33
- classifier instanceof Concept && classifier.abstract
21
+ export const isAbstract = (classifier: Classifier): boolean => classifier instanceof Concept && classifier.abstract
34
22
  /*
35
23
  * The logical inverse is: classifier instanceof Annotation || (classifier instanceof Concept && !classifier.abstract)
36
24
  */
@@ -15,10 +15,10 @@
15
15
  // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
16
  // SPDX-License-Identifier: Apache-2.0
17
17
 
18
- import {Classifier, cycleWith, inheritsFrom, Language, nameOf, nameSorted} from "@lionweb/core"
19
- import {uniquesAmong} from "@lionweb/utilities/dist/utils/array.js"
20
- import {asString, when} from "littoral-templates"
21
- import {indent} from "../../utils/index.js"
18
+ import { Classifier, inheritsFrom, Language, nameOf, nameSorted } from "@lionweb/core"
19
+ import { cycleWith, uniquesAmong } from "@lionweb/ts-utils"
20
+ import { asString, when } from "littoral-templates"
21
+ import { indent } from "../../utils/index.js"
22
22
 
23
23
 
24
24
  /**
@@ -15,15 +15,9 @@
15
15
  // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
16
  // SPDX-License-Identifier: Apache-2.0
17
17
 
18
- import {Annotation, Concept, Interface, LanguageEntity, PrimitiveType} from "@lionweb/core"
18
+ import { Annotation, Concept, Interface, LanguageEntity, PrimitiveType } from "@lionweb/core"
19
19
 
20
-
21
- type EntityMetaType =
22
- | "Annotation"
23
- | "Concept"
24
- | "Enumeration"
25
- | "Interface"
26
- | "PrimitiveType"
20
+ type EntityMetaType = "Annotation" | "Concept" | "Enumeration" | "Interface" | "PrimitiveType"
27
21
 
28
22
  export const entityMetaType = (entity: LanguageEntity): EntityMetaType => {
29
23
  if (entity instanceof Annotation) {
@@ -28,10 +28,10 @@ import {
28
28
  Link,
29
29
  PrimitiveType,
30
30
  Property,
31
- SingleRef
31
+ SingleRef,
32
+ unresolved
32
33
  } from "@lionweb/core"
33
- import {Imports, tsTypeForPrimitiveType} from "./index.js"
34
-
34
+ import { Imports, tsTypeForPrimitiveType } from "./index.js"
35
35
 
36
36
  export const typeOf = (feature: Feature): SingleRef<LanguageEntity> => {
37
37
  if (feature instanceof Property) {
@@ -59,8 +59,8 @@ export const tsTypeForDatatype = (datatype: SingleRef<Datatype>, imports: Import
59
59
 
60
60
 
61
61
  export const tsTypeForClassifier = (classifier: SingleRef<Classifier>, imports: Imports) => {
62
- if (classifier === null) {
63
- return `unknown /* [ERROR] can't compute a TS type for a null classifier */`
62
+ if (classifier === unresolved) {
63
+ return `unknown /* [ERROR] can't compute a TS type for an unresolved classifier */`
64
64
  }
65
65
  return classifier === builtinClassifiers.node ? imports.generic("INodeBase") : imports.entity(classifier)
66
66
  }
@@ -15,12 +15,10 @@
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"
19
- import {asJSIdentifier} from "../../utils/textgen.js"
18
+ import { Language, LanguageEntity, lioncoreBuiltins } from "@lionweb/core"
19
+ import { asJSIdentifier } from "../../utils/textgen.js"
20
20
 
21
-
22
- export const importRenamingForLanguage = (language: Language) =>
23
- asJSIdentifier(language.name)
21
+ export const importRenamingForLanguage = (language: Language) => asJSIdentifier(language.name)
24
22
 
25
23
  export const nameOfBaseClassForLanguage = (language: Language) =>
26
24
  asJSIdentifier(language.name) + "Base"
@@ -42,6 +40,15 @@ export class Imports {
42
40
  return this.thisLanguageNameAsJsIdentifier + "Base"
43
41
  }
44
42
 
43
+ private readonly _jsonImports = new Set<string>()
44
+ get jsonImports() {
45
+ return [...this._jsonImports]
46
+ }
47
+ json(identifier: string) {
48
+ this._jsonImports.add(identifier)
49
+ return identifier
50
+ }
51
+
45
52
  private readonly _coreImports = new Set<string>()
46
53
  get coreImports() {
47
54
  return [...this._coreImports]
@@ -21,4 +21,4 @@ export * from "./entities.js"
21
21
  export * from "./features.js"
22
22
  export * from "./imports-tracking.js"
23
23
  export * from "./mps-annotations.js"
24
- export * from "./types.js"
24
+ export * from "./primitive-types.js"
@@ -15,16 +15,14 @@
15
15
  // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
16
  // SPDX-License-Identifier: Apache-2.0
17
17
 
18
- import {Id, SerializationChunk} from "@lionweb/core"
19
-
18
+ import { LionWebId, LionWebJsonChunk, LionWebKey } from "@lionweb/json"
20
19
 
21
20
  export abstract class MpsAnnotation {
22
- constructor(public readonly annotatedNodeId: Id) {
23
- }
21
+ constructor(public readonly annotatedNodeId: LionWebId) {}
24
22
  }
25
23
 
26
24
  export class ConceptDescription extends MpsAnnotation {
27
- constructor(annotatedNodeId: Id, public readonly shortDescription: string | null, public readonly alias: string | null) {
25
+ constructor(annotatedNodeId: LionWebId, public readonly shortDescription: string | null, public readonly alias: string | null) {
28
26
  super(annotatedNodeId)
29
27
  }
30
28
  toString() {
@@ -33,7 +31,7 @@ export class ConceptDescription extends MpsAnnotation {
33
31
  }
34
32
 
35
33
  export class Deprecated extends MpsAnnotation {
36
- constructor(annotatedNodeId: Id, public readonly comment: string | null, public readonly build: string | null) {
34
+ constructor(annotatedNodeId: LionWebId, public readonly comment: string | null, public readonly build: string | null) {
37
35
  super(annotatedNodeId)
38
36
  }
39
37
  toString() {
@@ -42,9 +40,9 @@ export class Deprecated extends MpsAnnotation {
42
40
  }
43
41
 
44
42
 
45
- export const extractedMpsAnnotations = ({nodes}: SerializationChunk): MpsAnnotation[] =>
43
+ export const extractedMpsAnnotations = ({nodes}: LionWebJsonChunk): MpsAnnotation[] =>
46
44
  nodes.flatMap<MpsAnnotation>(({classifier, properties, parent}) => {
47
- const propertyValue = (key: string): string | null => {
45
+ const propertyValue = (key: LionWebKey): string | null => {
48
46
  const property = properties.find(({property}) => property.key === key)
49
47
  return property === undefined
50
48
  ? null
@@ -15,15 +15,18 @@
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"
19
-
18
+ import { builtinPrimitives, PrimitiveType } from "@lionweb/core"
20
19
 
21
20
  export const tsTypeForPrimitiveType = (primitiveType: PrimitiveType): string => {
22
21
  switch (primitiveType) {
23
- case builtinPrimitives.booleanDatatype: return `boolean`
24
- case builtinPrimitives.stringDatatype: return `string`
25
- case builtinPrimitives.integerDatatype: return `number`
26
- case builtinPrimitives.jsonDatatype: return `unknown`
22
+ case builtinPrimitives.booleanDatatype:
23
+ return `boolean`
24
+ case builtinPrimitives.stringDatatype:
25
+ return `string`
26
+ case builtinPrimitives.integerDatatype:
27
+ return `number`
28
+ case builtinPrimitives.jsonDatatype:
29
+ return `unknown`
27
30
  default:
28
31
  return `string`
29
32
  }
@@ -15,39 +15,49 @@
15
15
  // SPDX-FileCopyrightText: 2025 TRUMPF Laser SE and other contributors
16
16
  // SPDX-License-Identifier: Apache-2.0
17
17
 
18
- import {Language} from "@lionweb/core"
19
- import {asString, commaSeparated} from "littoral-templates"
20
-
21
- import {indent} from "../utils/textgen.js"
22
- import {dependencyOrderOf} from "../utils/toposort.js"
23
- import {dependenciesThroughDirectInheritanceOf, importRenamingForLanguage, nameOfBaseClassForLanguage} from "./helpers/index.js"
24
- import {GeneratorOptions} from "./generator.js"
18
+ import { dependencyOrderOf } from "@lionweb/ts-utils"
19
+ import { Language } from "@lionweb/core"
20
+ import { asString, commaSeparated } from "littoral-templates"
25
21
 
22
+ import { indent } from "../utils/textgen.js"
23
+ import { GeneratorOptions } from "./generator.js"
24
+ import { dependenciesThroughDirectInheritanceOf, importRenamingForLanguage, nameOfBaseClassForLanguage } from "./helpers/index.js"
26
25
 
27
26
  export const indexTsFor = (languages: Language[], options: GeneratorOptions) => {
28
27
  const dependenciesInOrderOfDirectInheritance = dependencyOrderOf(languages, dependenciesThroughDirectInheritanceOf)
29
28
  if (dependenciesInOrderOfDirectInheritance === false) {
30
- console.error(`⚠ CYCLE detected! Proceeding with order of languages as-is, instead of in type-wise (through direct inheritance) dependency order ⇒ generated code might not initialize!`)
29
+ console.error(
30
+ `⚠ CYCLE detected! Proceeding with order of languages as-is, instead of in type-wise (through direct inheritance) dependency order ⇒ generated code might not initialize!`
31
+ )
31
32
  }
32
- const languagesForImports = dependenciesInOrderOfDirectInheritance === false
33
- ? languages
34
- : dependenciesInOrderOfDirectInheritance
35
- .filter((language) => languages.indexOf(language) > -1)
33
+ const languagesForImports =
34
+ dependenciesInOrderOfDirectInheritance === false
35
+ ? languages
36
+ : dependenciesInOrderOfDirectInheritance.filter(language => languages.indexOf(language) > -1)
36
37
 
37
38
  return asString([
38
39
  options.header === undefined ? [] : [options.header, ``],
39
40
  `import {ILanguageBase, LionCore_builtinsBase} from "${options.genericImportLocation}";`,
40
41
  ``,
41
- languagesForImports.map((language) => `import * as ${importRenamingForLanguage(language)} from "./${language.name}.g.js";`),
42
+ languagesForImports.map(language => `import * as ${importRenamingForLanguage(language)} from "./${language.name}.g.js";`),
42
43
  ``,
43
44
  `// ensure that all languages get wired up by triggering that through their first entity:`,
44
45
  `LionCore_builtinsBase.INSTANCE.String;`,
45
46
  languages
46
- .filter(({entities}) => entities.length > 0)
47
- .map((language) => `${importRenamingForLanguage(language)}.${nameOfBaseClassForLanguage(language)}.INSTANCE.${language.entities[0].name};`),
47
+ .filter(({ entities }) => entities.length > 0)
48
+ .map(
49
+ language =>
50
+ `${importRenamingForLanguage(language)}.${nameOfBaseClassForLanguage(language)}.INSTANCE.${language.entities[0].name};`
51
+ ),
48
52
  ``,
49
53
  `export const allLanguageBases: ILanguageBase[] = [`,
50
- indent(commaSeparated(languagesForImports.map((language) => `${importRenamingForLanguage(language)}.${nameOfBaseClassForLanguage(language)}.INSTANCE`))),
54
+ indent(
55
+ commaSeparated(
56
+ languagesForImports.map(
57
+ language => `${importRenamingForLanguage(language)}.${nameOfBaseClassForLanguage(language)}.INSTANCE`
58
+ )
59
+ )
60
+ ),
51
61
  `];`,
52
62
  ``,
53
63
  `export {`,