@emfts/codegen 0.0.1-next.5 → 0.0.1-next.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/dist/cli/commands/generate-service-interfaces.d.ts +3 -0
- package/dist/cli/commands/generate-service-interfaces.d.ts.map +1 -0
- package/dist/cli/commands/generate-service-interfaces.js +57 -0
- package/dist/cli/commands/generate-service-interfaces.js.map +1 -0
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +38 -3
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/generator/GeneratorContext.d.ts.map +1 -1
- package/dist/generator/GeneratorContext.js +6 -0
- package/dist/generator/GeneratorContext.js.map +1 -1
- package/dist/generator/GeneratorOptions.d.ts +2 -0
- package/dist/generator/GeneratorOptions.d.ts.map +1 -1
- package/dist/generator/GeneratorOptions.js.map +1 -1
- package/dist/generator/ImportResolver.d.ts +21 -1
- package/dist/generator/ImportResolver.d.ts.map +1 -1
- package/dist/generator/ImportResolver.js +111 -2
- package/dist/generator/ImportResolver.js.map +1 -1
- package/dist/generator/ServiceInterfaceGenerator.d.ts +93 -0
- package/dist/generator/ServiceInterfaceGenerator.d.ts.map +1 -0
- package/dist/generator/ServiceInterfaceGenerator.js +275 -0
- package/dist/generator/ServiceInterfaceGenerator.js.map +1 -0
- package/dist/generator/TypeMapper.d.ts.map +1 -1
- package/dist/generator/TypeMapper.js +11 -1
- package/dist/generator/TypeMapper.js.map +1 -1
- package/dist/generator/index.d.ts +1 -0
- package/dist/generator/index.d.ts.map +1 -1
- package/dist/generator/index.js +1 -0
- package/dist/generator/index.js.map +1 -1
- package/dist/generator/modes/EmfGenerator.d.ts +14 -0
- package/dist/generator/modes/EmfGenerator.d.ts.map +1 -1
- package/dist/generator/modes/EmfGenerator.js +89 -9
- package/dist/generator/modes/EmfGenerator.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -6
- package/dist/index.js.map +1 -1
- package/dist/templates/partials/emf/class-file.ejs +78 -0
- package/dist/templates/partials/emf/factory-file.ejs +9 -2
- package/dist/templates/partials/emf/index-file.ejs +2 -2
- package/dist/templates/partials/emf/package-file.ejs +39 -15
- package/dist/util/EObjectHelper.d.ts.map +1 -1
- package/dist/util/EObjectHelper.js +8 -2
- package/dist/util/EObjectHelper.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -40,10 +40,15 @@ import * as path from 'path';
|
|
|
40
40
|
*/
|
|
41
41
|
export async function generate(options) {
|
|
42
42
|
const { ecorePath, configPath, writeFiles = true } = options;
|
|
43
|
-
// Load ecore model
|
|
43
|
+
// Load ecore model (dependencies first)
|
|
44
44
|
const ecoreLoader = new EcoreLoader();
|
|
45
|
+
if (options.dependencies) {
|
|
46
|
+
for (const dep of options.dependencies) {
|
|
47
|
+
await ecoreLoader.load(dep);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
45
50
|
const ePackage = await ecoreLoader.load(ecorePath);
|
|
46
|
-
// Load genconfig
|
|
51
|
+
// Load genconfig (only register main package, not dependencies)
|
|
47
52
|
const configLoader = new GenConfigLoader();
|
|
48
53
|
configLoader.registerPackage(ePackage);
|
|
49
54
|
const genConfig = await configLoader.load(configPath);
|
|
@@ -53,7 +58,10 @@ export async function generate(options) {
|
|
|
53
58
|
// Use outputDir from options or from config
|
|
54
59
|
const outputDir = options.outputDir || genConfig.generation.outputDir;
|
|
55
60
|
// Generate code
|
|
56
|
-
const generator = new CodeGenerator(genModel
|
|
61
|
+
const generator = new CodeGenerator(genModel, {
|
|
62
|
+
outputDirectory: outputDir,
|
|
63
|
+
referencedPackages: options.referencedPackages,
|
|
64
|
+
});
|
|
57
65
|
const result = await generator.generate();
|
|
58
66
|
// Write files if requested
|
|
59
67
|
if (writeFiles) {
|
|
@@ -80,10 +88,15 @@ export async function generate(options) {
|
|
|
80
88
|
*/
|
|
81
89
|
export async function generateInMemory(options) {
|
|
82
90
|
const { ecorePath, configPath } = options;
|
|
83
|
-
// Load ecore model
|
|
91
|
+
// Load ecore model (dependencies first)
|
|
84
92
|
const ecoreLoader = new EcoreLoader();
|
|
93
|
+
if (options.dependencies) {
|
|
94
|
+
for (const dep of options.dependencies) {
|
|
95
|
+
await ecoreLoader.load(dep);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
85
98
|
const ePackage = await ecoreLoader.load(ecorePath);
|
|
86
|
-
// Load genconfig
|
|
99
|
+
// Load genconfig (only register main package, not dependencies)
|
|
87
100
|
const configLoader = new GenConfigLoader();
|
|
88
101
|
configLoader.registerPackage(ePackage);
|
|
89
102
|
const genConfig = await configLoader.load(configPath);
|
|
@@ -91,7 +104,10 @@ export async function generateInMemory(options) {
|
|
|
91
104
|
const converter = new GenConfigConverter();
|
|
92
105
|
const genModel = converter.convert(genConfig);
|
|
93
106
|
// Generate code
|
|
94
|
-
const generator = new CodeGenerator(genModel
|
|
107
|
+
const generator = new CodeGenerator(genModel, {
|
|
108
|
+
outputDirectory: genConfig.generation.outputDir,
|
|
109
|
+
referencedPackages: options.referencedPackages,
|
|
110
|
+
});
|
|
95
111
|
return generator.generate();
|
|
96
112
|
}
|
|
97
113
|
/**
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,cAAc,sBAAsB,CAAC;AAErC,YAAY;AACZ,cAAc,sBAAsB,CAAC;AAErC,SAAS;AACT,cAAc,mBAAmB,CAAC;AAElC,YAAY;AACZ,cAAc,iBAAiB,CAAC;AAEhC,yBAAyB;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAQ/D,sCAAsC;AACtC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5E,OAAO,EAAE,aAAa,EAAyB,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ const hardcodedCoreTypes = ['BasicEObject', 'EClass', 'EStructuralFeature'];
|
|
|
6
6
|
const coreTypeImports = ['EClass', 'EStructuralFeature'];
|
|
7
7
|
const typeOnlyImports = [];
|
|
8
8
|
const valueImports = [];
|
|
9
|
+
const importedNames = new Set();
|
|
9
10
|
for (const imp of imports) {
|
|
10
11
|
if (imp.typeName === className || imp.typeName === interfaceName || imp.typeName === extendsClass) continue;
|
|
11
12
|
if (hardcodedCoreTypes.includes(imp.typeName)) continue;
|
|
@@ -25,6 +26,21 @@ for (const imp of imports) {
|
|
|
25
26
|
} else {
|
|
26
27
|
typeOnlyImports.push(imp);
|
|
27
28
|
}
|
|
29
|
+
importedNames.add(imp.typeName);
|
|
30
|
+
}
|
|
31
|
+
// Add mixin feature type imports (if not already imported)
|
|
32
|
+
for (const imp of (mixinImports || [])) {
|
|
33
|
+
if (imp.typeName === className || imp.typeName === interfaceName || imp.typeName === extendsClass) continue;
|
|
34
|
+
if (hardcodedCoreTypes.includes(imp.typeName)) continue;
|
|
35
|
+
if (importedNames.has(imp.typeName)) continue;
|
|
36
|
+
if (imp.importPath === '@emfts/core') {
|
|
37
|
+
if (!coreTypeImports.includes(imp.typeName)) {
|
|
38
|
+
coreTypeImports.push(imp.typeName);
|
|
39
|
+
}
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
typeOnlyImports.push(imp);
|
|
43
|
+
importedNames.add(imp.typeName);
|
|
28
44
|
}
|
|
29
45
|
-%>
|
|
30
46
|
<% if (!extendsImport) { -%>
|
|
@@ -52,6 +68,9 @@ export <% if (isAbstract) { %>abstract <% } %>class <%- className %> extends <%-
|
|
|
52
68
|
<% for (const fid of featureIds) { -%>
|
|
53
69
|
static readonly <%- fid.name %>: number = <%- fid.id %>;
|
|
54
70
|
<% } -%>
|
|
71
|
+
<% for (const mf of (mixinFeatures || [])) { -%>
|
|
72
|
+
static readonly <%- mf.upperName %>: number = <%- mf.id %>;
|
|
73
|
+
<% } -%>
|
|
55
74
|
|
|
56
75
|
// Private fields
|
|
57
76
|
<% for (const genFeature of features) {
|
|
@@ -63,6 +82,13 @@ export <% if (isAbstract) { %>abstract <% } %>class <%- className %> extends <%-
|
|
|
63
82
|
-%>
|
|
64
83
|
private _<%- featureName %><% if (!featureIsMany && defaultValue === null) { %>?<% } %>: <%- featureType %><% if (defaultValue !== null) { %> = <%- defaultValue %><% } %>;
|
|
65
84
|
<% } -%>
|
|
85
|
+
<% for (const mf of (mixinFeatures || [])) {
|
|
86
|
+
const featureType = typeMapper.mapFeature(mf.feature);
|
|
87
|
+
const defaultValue = typeMapper.getDefaultValue(mf.feature);
|
|
88
|
+
const featureIsMany = isMany(mf.feature);
|
|
89
|
+
-%>
|
|
90
|
+
private _<%- mf.name %><% if (!featureIsMany && defaultValue === null) { %>?<% } %>: <%- featureType %><% if (defaultValue !== null) { %> = <%- defaultValue %><% } %>;
|
|
91
|
+
<% } -%>
|
|
66
92
|
|
|
67
93
|
/**
|
|
68
94
|
* Returns the EClass of this object
|
|
@@ -109,6 +135,19 @@ export <% if (isAbstract) { %>abstract <% } %>class <%- className %> extends <%-
|
|
|
109
135
|
}
|
|
110
136
|
|
|
111
137
|
<% } -%>
|
|
138
|
+
<% } -%>
|
|
139
|
+
<% for (const mf of (mixinFeatures || [])) {
|
|
140
|
+
const featureType = typeMapper.mapFeature(mf.feature);
|
|
141
|
+
const featureIsMany = isMany(mf.feature);
|
|
142
|
+
-%>
|
|
143
|
+
get <%- mf.name %>(): <%- featureType %> {
|
|
144
|
+
return this._<%- mf.name %><% if (!featureIsMany) { %>!<% } %>;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
set <%- mf.name %>(value: <%- featureType %>) {
|
|
148
|
+
this._<%- mf.name %> = value;
|
|
149
|
+
}
|
|
150
|
+
|
|
112
151
|
<% } -%>
|
|
113
152
|
// Reflective API
|
|
114
153
|
|
|
@@ -121,6 +160,10 @@ export <% if (isAbstract) { %>abstract <% } %>class <%- className %> extends <%-
|
|
|
121
160
|
<% for (const fid of featureIds) { -%>
|
|
122
161
|
case <%- className %>.<%- fid.name %>:
|
|
123
162
|
return this.<%- getName(fid.feature.ecoreFeature) %>;
|
|
163
|
+
<% } -%>
|
|
164
|
+
<% for (const mf of (mixinFeatures || [])) { -%>
|
|
165
|
+
case <%- className %>.<%- mf.upperName %>:
|
|
166
|
+
return this.<%- mf.name %>;
|
|
124
167
|
<% } -%>
|
|
125
168
|
default:
|
|
126
169
|
return super.eGet(feature);
|
|
@@ -140,6 +183,14 @@ export <% if (isAbstract) { %>abstract <% } %>class <%- className %> extends <%-
|
|
|
140
183
|
this.<%- getName(fid.feature.ecoreFeature) %> = newValue as <%- featureType %>;
|
|
141
184
|
super.eSet(feature, newValue);
|
|
142
185
|
break;
|
|
186
|
+
<% } -%>
|
|
187
|
+
<% for (const mf of (mixinFeatures || [])) {
|
|
188
|
+
const featureType = typeMapper.mapFeature(mf.feature);
|
|
189
|
+
-%>
|
|
190
|
+
case <%- className %>.<%- mf.upperName %>:
|
|
191
|
+
this.<%- mf.name %> = newValue as <%- featureType %>;
|
|
192
|
+
super.eSet(feature, newValue);
|
|
193
|
+
break;
|
|
143
194
|
<% } -%>
|
|
144
195
|
default:
|
|
145
196
|
super.eSet(feature, newValue);
|
|
@@ -166,6 +217,19 @@ export <% if (isAbstract) { %>abstract <% } %>class <%- className %> extends <%-
|
|
|
166
217
|
<% } else { -%>
|
|
167
218
|
return this._<%- featureName %> !== undefined;
|
|
168
219
|
<% } -%>
|
|
220
|
+
<% } -%>
|
|
221
|
+
<% for (const mf of (mixinFeatures || [])) {
|
|
222
|
+
const featureIsMany = isMany(mf.feature);
|
|
223
|
+
const defaultValue = typeMapper.getDefaultValue(mf.feature);
|
|
224
|
+
-%>
|
|
225
|
+
case <%- className %>.<%- mf.upperName %>:
|
|
226
|
+
<% if (featureIsMany) { -%>
|
|
227
|
+
return this._<%- mf.name %> !== undefined && this._<%- mf.name %>.length > 0;
|
|
228
|
+
<% } else if (defaultValue !== null) { -%>
|
|
229
|
+
return this._<%- mf.name %> !== <%- defaultValue %>;
|
|
230
|
+
<% } else { -%>
|
|
231
|
+
return this._<%- mf.name %> !== undefined;
|
|
232
|
+
<% } -%>
|
|
169
233
|
<% } -%>
|
|
170
234
|
default:
|
|
171
235
|
return super.eIsSet(feature);
|
|
@@ -193,6 +257,20 @@ export <% if (isAbstract) { %>abstract <% } %>class <%- className %> extends <%-
|
|
|
193
257
|
this._<%- featureName %> = undefined;
|
|
194
258
|
<% } -%>
|
|
195
259
|
return;
|
|
260
|
+
<% } -%>
|
|
261
|
+
<% for (const mf of (mixinFeatures || [])) {
|
|
262
|
+
const featureIsMany = isMany(mf.feature);
|
|
263
|
+
const defaultValue = typeMapper.getDefaultValue(mf.feature);
|
|
264
|
+
-%>
|
|
265
|
+
case <%- className %>.<%- mf.upperName %>:
|
|
266
|
+
<% if (featureIsMany) { -%>
|
|
267
|
+
this._<%- mf.name %> = [];
|
|
268
|
+
<% } else if (defaultValue !== null) { -%>
|
|
269
|
+
this._<%- mf.name %> = <%- defaultValue %>;
|
|
270
|
+
<% } else { -%>
|
|
271
|
+
this._<%- mf.name %> = undefined;
|
|
272
|
+
<% } -%>
|
|
273
|
+
return;
|
|
196
274
|
<% } -%>
|
|
197
275
|
default:
|
|
198
276
|
super.eUnset(feature);
|
|
@@ -16,8 +16,15 @@ import { <%- implName %> } from './<%- implName %>';
|
|
|
16
16
|
* @generated
|
|
17
17
|
*/
|
|
18
18
|
export class <%- packageName %>Factory extends BasicEFactory {
|
|
19
|
-
//
|
|
20
|
-
static
|
|
19
|
+
// Lazy singleton instance
|
|
20
|
+
private static _instance: <%- packageName %>Factory;
|
|
21
|
+
|
|
22
|
+
static get eINSTANCE(): <%- packageName %>Factory {
|
|
23
|
+
if (!this._instance) {
|
|
24
|
+
this._instance = new <%- packageName %>Factory();
|
|
25
|
+
}
|
|
26
|
+
return this._instance;
|
|
27
|
+
}
|
|
21
28
|
|
|
22
29
|
private constructor() {
|
|
23
30
|
super();
|
|
@@ -11,9 +11,9 @@ export { <%- packageName %>Factory } from './<%- packageName %>Factory';
|
|
|
11
11
|
export type { <%- name %> } from './<%- name %>';
|
|
12
12
|
<% } -%>
|
|
13
13
|
|
|
14
|
-
// Implementations
|
|
14
|
+
// Implementations (including abstract classes, as they're extended by subclasses)
|
|
15
15
|
<% for (const genClass of genClasses) {
|
|
16
|
-
if (!
|
|
16
|
+
if (!checkIsInterface(genClass.ecoreClass)) {
|
|
17
17
|
const implName = genClass.implClassName || (getName(genClass.ecoreClass) + 'Impl');
|
|
18
18
|
-%>
|
|
19
19
|
export { <%- implName %> } from './<%- implName %>';
|
|
@@ -33,42 +33,66 @@ function isEcoreClassifier(classifier) {
|
|
|
33
33
|
return false;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
+
// Helper: get the nsURI of a classifier's package
|
|
37
|
+
function getClassifierNsURI(classifier) {
|
|
38
|
+
const pkg = getEPackage(classifier);
|
|
39
|
+
if (pkg) {
|
|
40
|
+
return pkg.getNsURI?.() ?? null;
|
|
41
|
+
}
|
|
42
|
+
if (typeof classifier.eIsProxy === 'function' && classifier.eIsProxy() && typeof classifier.eProxyURI === 'function') {
|
|
43
|
+
const proxyURI = classifier.eProxyURI()?.toString() ?? '';
|
|
44
|
+
const hashIdx = proxyURI.indexOf('#//');
|
|
45
|
+
if (hashIdx > 0) return proxyURI.substring(0, hashIdx);
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
|
|
36
50
|
// Helper: generate the right expression for a type reference
|
|
37
|
-
|
|
51
|
+
// castTo: optional cast suffix (e.g., ' as EClass' for supertype assignments)
|
|
52
|
+
function typeRefExpr(classifier, castTo) {
|
|
38
53
|
const typeName = getName(classifier);
|
|
54
|
+
const cast = castTo || '';
|
|
39
55
|
if (isLocalClassifier(classifier)) {
|
|
40
56
|
const typeUpperName = typeName.replace(/([A-Z])/g, '_$1').toUpperCase().replace(/^_/, '');
|
|
41
57
|
return packageName + 'Package.Literals.' + typeUpperName;
|
|
42
58
|
}
|
|
43
59
|
if (isEcoreClassifier(classifier)) {
|
|
44
|
-
return "getEcorePackage().getEClassifier('" + typeName + "')!";
|
|
60
|
+
return "getEcorePackage().getEClassifier('" + typeName + "')!" + cast;
|
|
61
|
+
}
|
|
62
|
+
// External dependency package — resolve via EPackageRegistry
|
|
63
|
+
const depNsURI = getClassifierNsURI(classifier);
|
|
64
|
+
if (depNsURI) {
|
|
65
|
+
return "EPackageRegistry.INSTANCE.getEPackage('" + depNsURI + "')!.getEClassifier('" + typeName + "')!" + cast;
|
|
45
66
|
}
|
|
46
|
-
|
|
47
|
-
return "getEcorePackage().getEClassifier('" + typeName + "')!";
|
|
67
|
+
return "getEcorePackage().getEClassifier('" + typeName + "')!" + cast;
|
|
48
68
|
}
|
|
49
69
|
|
|
50
|
-
// Pre-scan: check if any cross-package
|
|
70
|
+
// Pre-scan: check if any cross-package references exist
|
|
51
71
|
let needsEcoreImport = false;
|
|
72
|
+
let needsRegistryImport = false;
|
|
52
73
|
for (const genClass of genClasses) {
|
|
53
74
|
const eClass = genClass.ecoreClass;
|
|
54
75
|
for (const superType of getESuperTypes(eClass)) {
|
|
55
|
-
if (!isLocalClassifier(superType)) {
|
|
76
|
+
if (!isLocalClassifier(superType)) {
|
|
77
|
+
if (isEcoreClassifier(superType)) { needsEcoreImport = true; }
|
|
78
|
+
else { needsRegistryImport = true; }
|
|
79
|
+
}
|
|
56
80
|
}
|
|
57
|
-
if (needsEcoreImport) break;
|
|
58
81
|
for (const genFeature of genClass.genFeatures) {
|
|
59
82
|
const eType = getEType(genFeature.ecoreFeature);
|
|
60
83
|
if (eType && typeMapper.isReference(genFeature.ecoreFeature) && !isLocalClassifier(eType)) {
|
|
61
|
-
needsEcoreImport = true;
|
|
84
|
+
if (isEcoreClassifier(eType)) { needsEcoreImport = true; }
|
|
85
|
+
else { needsRegistryImport = true; }
|
|
62
86
|
}
|
|
63
87
|
}
|
|
64
|
-
if (needsEcoreImport) break;
|
|
65
88
|
}
|
|
66
89
|
-%>
|
|
67
|
-
<%
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
90
|
+
<%
|
|
91
|
+
const coreImports = ['BasicEPackage', 'BasicEClass', 'BasicEAttribute', 'BasicEReference'];
|
|
92
|
+
if (needsEcoreImport) coreImports.push('getEcorePackage');
|
|
93
|
+
if (needsRegistryImport) coreImports.push('EPackageRegistry');
|
|
94
|
+
-%>
|
|
95
|
+
import { <%- coreImports.join(', ') %> } from '@emfts/core';
|
|
72
96
|
import type { EClass, EAttribute, EReference, EEnum } from '@emfts/core';
|
|
73
97
|
|
|
74
98
|
/**
|
|
@@ -165,7 +189,7 @@ export class <%- packageName %>Package extends BasicEPackage {
|
|
|
165
189
|
const superTypeName = getName(superType);
|
|
166
190
|
if (superTypeName) {
|
|
167
191
|
-%>
|
|
168
|
-
(<%- packageName %>Package.Literals.<%- upperName %> as BasicEClass).getESuperTypes().push(<%- typeRefExpr(superType) %>);
|
|
192
|
+
(<%- packageName %>Package.Literals.<%- upperName %> as BasicEClass).getESuperTypes().push(<%- typeRefExpr(superType, ' as EClass') %>);
|
|
169
193
|
<% }
|
|
170
194
|
}
|
|
171
195
|
} -%>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EObjectHelper.d.ts","sourceRoot":"","sources":["../../src/util/EObjectHelper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAgD/C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,GAAG,CA4BlE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAQlD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CASzC;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAS5C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAqB/C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAqBhD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"EObjectHelper.d.ts","sourceRoot":"","sources":["../../src/util/EObjectHelper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAgD/C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,GAAG,CA4BlE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAQlD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CASzC;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAS5C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAqB/C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAqBhD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,CAa1C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,CAQjD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,CAQzD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,CAQjD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,GAAG,GAAG,GAAG,EAAE,CAQzD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,EAAE,CAQpD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,CAQ9C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,GAAG,GAAG,GAAG,CAuBhD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAQlE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CASlD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CASlD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAQnD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,CAQ9C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAiBnE"}
|
|
@@ -172,9 +172,15 @@ export function getEType(feature) {
|
|
|
172
172
|
if (!feature)
|
|
173
173
|
return null;
|
|
174
174
|
if (typeof feature.getEType === 'function') {
|
|
175
|
-
|
|
175
|
+
try {
|
|
176
|
+
return feature.getEType();
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
// getEType may throw on unresolved proxies (e.g., EBooleanObject)
|
|
180
|
+
}
|
|
176
181
|
}
|
|
177
|
-
|
|
182
|
+
// Fallback for dynamic objects or when getEType throws
|
|
183
|
+
return getFeatureValue(feature, 'eType') ?? null;
|
|
178
184
|
}
|
|
179
185
|
/**
|
|
180
186
|
* Get super types of an EClass
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EObjectHelper.js","sourceRoot":"","sources":["../../src/util/EObjectHelper.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"EObjectHelper.js","sourceRoot":"","sources":["../../src/util/EObjectHelper.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@emfts/codegen",
|
|
3
|
-
"version": "0.0.1-next.
|
|
3
|
+
"version": "0.0.1-next.7",
|
|
4
4
|
"description": "TypeScript code generator for Ecore models using emfts",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
17
|
"scripts": {
|
|
18
|
-
"build": "tsc && cp -r src/templates dist/templates",
|
|
18
|
+
"build": "tsc && rm -rf dist/templates && cp -r src/templates dist/templates",
|
|
19
19
|
"watch": "tsc --watch",
|
|
20
20
|
"test": "vitest",
|
|
21
21
|
"test:run": "vitest run",
|