@emfts/codegen 0.0.1-next.8 → 0.0.2-next.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.
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +12 -12
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/init.d.ts +6 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +69 -16
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/import-mappings.d.ts +5 -0
- package/dist/cli/import-mappings.d.ts.map +1 -0
- package/dist/cli/import-mappings.js +16 -0
- package/dist/cli/import-mappings.js.map +1 -0
- package/dist/genconfig/GenConfig.d.ts +14 -0
- package/dist/genconfig/GenConfig.d.ts.map +1 -1
- package/dist/genconfig/GenConfig.js.map +1 -1
- package/dist/genconfig/GenConfigConverter.d.ts.map +1 -1
- package/dist/genconfig/GenConfigConverter.js +4 -1
- package/dist/genconfig/GenConfigConverter.js.map +1 -1
- package/dist/genconfig/GenConfigLoader.d.ts +4 -4
- package/dist/genconfig/GenConfigLoader.d.ts.map +1 -1
- package/dist/genconfig/GenConfigLoader.js +38 -27
- package/dist/genconfig/GenConfigLoader.js.map +1 -1
- package/dist/genconfig/model/ClassDefaults.d.ts +12 -0
- package/dist/genconfig/model/ClassDefaults.d.ts.map +1 -0
- package/dist/genconfig/model/ClassDefaults.js +8 -0
- package/dist/genconfig/model/ClassDefaults.js.map +1 -0
- package/dist/genconfig/model/ClassDefaultsImpl.d.ts +46 -0
- package/dist/genconfig/model/ClassDefaultsImpl.d.ts.map +1 -0
- package/dist/genconfig/model/ClassDefaultsImpl.js +205 -0
- package/dist/genconfig/model/ClassDefaultsImpl.js.map +1 -0
- package/dist/genconfig/model/ClassOverride.d.ts +15 -0
- package/dist/genconfig/model/ClassOverride.d.ts.map +1 -0
- package/dist/genconfig/model/ClassOverride.js +8 -0
- package/dist/genconfig/model/ClassOverride.js.map +1 -0
- package/dist/genconfig/model/ClassOverrideImpl.d.ts +53 -0
- package/dist/genconfig/model/ClassOverrideImpl.d.ts.map +1 -0
- package/dist/genconfig/model/ClassOverrideImpl.js +248 -0
- package/dist/genconfig/model/ClassOverrideImpl.js.map +1 -0
- package/dist/genconfig/model/FeatureDefaults.d.ts +11 -0
- package/dist/genconfig/model/FeatureDefaults.d.ts.map +1 -0
- package/dist/genconfig/model/FeatureDefaults.js +8 -0
- package/dist/genconfig/model/FeatureDefaults.js.map +1 -0
- package/dist/genconfig/model/FeatureDefaultsImpl.d.ts +39 -0
- package/dist/genconfig/model/FeatureDefaultsImpl.d.ts.map +1 -0
- package/dist/genconfig/model/FeatureDefaultsImpl.js +136 -0
- package/dist/genconfig/model/FeatureDefaultsImpl.js.map +1 -0
- package/dist/genconfig/model/FeatureOverride.d.ts +14 -0
- package/dist/genconfig/model/FeatureOverride.d.ts.map +1 -0
- package/dist/genconfig/model/FeatureOverride.js +8 -0
- package/dist/genconfig/model/FeatureOverride.js.map +1 -0
- package/dist/genconfig/model/FeatureOverrideImpl.d.ts +51 -0
- package/dist/genconfig/model/FeatureOverrideImpl.d.ts.map +1 -0
- package/dist/genconfig/model/FeatureOverrideImpl.js +241 -0
- package/dist/genconfig/model/FeatureOverrideImpl.js.map +1 -0
- package/dist/genconfig/model/GenConfig.d.ts +21 -0
- package/dist/genconfig/model/GenConfig.d.ts.map +1 -0
- package/dist/genconfig/model/GenConfig.js +8 -0
- package/dist/genconfig/model/GenConfig.js.map +1 -0
- package/dist/genconfig/model/GenConfigFactory.d.ts +56 -0
- package/dist/genconfig/model/GenConfigFactory.d.ts.map +1 -0
- package/dist/genconfig/model/GenConfigFactory.js +108 -0
- package/dist/genconfig/model/GenConfigFactory.js.map +1 -0
- package/dist/genconfig/model/GenConfigImpl.d.ts +62 -0
- package/dist/genconfig/model/GenConfigImpl.d.ts.map +1 -0
- package/dist/genconfig/model/GenConfigImpl.js +283 -0
- package/dist/genconfig/model/GenConfigImpl.js.map +1 -0
- package/dist/genconfig/model/GenConfigPackage.d.ts +68 -0
- package/dist/genconfig/model/GenConfigPackage.d.ts.map +1 -0
- package/dist/genconfig/model/GenConfigPackage.js +436 -0
- package/dist/genconfig/model/GenConfigPackage.js.map +1 -0
- package/dist/genconfig/model/GenerationMode.d.ts +19 -0
- package/dist/genconfig/model/GenerationMode.d.ts.map +1 -0
- package/dist/genconfig/model/GenerationMode.js +34 -0
- package/dist/genconfig/model/GenerationMode.js.map +1 -0
- package/dist/genconfig/model/GenerationSettings.d.ts +14 -0
- package/dist/genconfig/model/GenerationSettings.d.ts.map +1 -0
- package/dist/genconfig/model/GenerationSettings.js +8 -0
- package/dist/genconfig/model/GenerationSettings.js.map +1 -0
- package/dist/genconfig/model/GenerationSettingsImpl.d.ts +51 -0
- package/dist/genconfig/model/GenerationSettingsImpl.d.ts.map +1 -0
- package/dist/genconfig/model/GenerationSettingsImpl.js +241 -0
- package/dist/genconfig/model/GenerationSettingsImpl.js.map +1 -0
- package/dist/genconfig/model/PackageSettings.d.ts +13 -0
- package/dist/genconfig/model/PackageSettings.d.ts.map +1 -0
- package/dist/genconfig/model/PackageSettings.js +8 -0
- package/dist/genconfig/model/PackageSettings.js.map +1 -0
- package/dist/genconfig/model/PackageSettingsImpl.d.ts +50 -0
- package/dist/genconfig/model/PackageSettingsImpl.d.ts.map +1 -0
- package/dist/genconfig/model/PackageSettingsImpl.js +240 -0
- package/dist/genconfig/model/PackageSettingsImpl.js.map +1 -0
- package/dist/genconfig/model/PropertyMode.d.ts +19 -0
- package/dist/genconfig/model/PropertyMode.d.ts.map +1 -0
- package/dist/genconfig/model/PropertyMode.js +34 -0
- package/dist/genconfig/model/PropertyMode.js.map +1 -0
- package/dist/genconfig/model/ReferencedPackage.d.ts +10 -0
- package/dist/genconfig/model/ReferencedPackage.d.ts.map +1 -0
- package/dist/genconfig/model/ReferencedPackage.js +8 -0
- package/dist/genconfig/model/ReferencedPackage.js.map +1 -0
- package/dist/genconfig/model/ReferencedPackageImpl.d.ts +38 -0
- package/dist/genconfig/model/ReferencedPackageImpl.d.ts.map +1 -0
- package/dist/genconfig/model/ReferencedPackageImpl.js +135 -0
- package/dist/genconfig/model/ReferencedPackageImpl.js.map +1 -0
- package/dist/genconfig/model/index.d.ts +21 -0
- package/dist/genconfig/model/index.d.ts.map +1 -0
- package/dist/genconfig/model/index.js +22 -0
- package/dist/genconfig/model/index.js.map +1 -0
- package/dist/generator/CodeGenerator.d.ts.map +1 -1
- package/dist/generator/CodeGenerator.js +2 -1
- package/dist/generator/CodeGenerator.js.map +1 -1
- package/dist/generator/ImportResolver.d.ts.map +1 -1
- package/dist/generator/ImportResolver.js +28 -5
- package/dist/generator/ImportResolver.js.map +1 -1
- package/dist/generator/TypeMapper.d.ts +2 -0
- package/dist/generator/TypeMapper.d.ts.map +1 -1
- package/dist/generator/TypeMapper.js +48 -3
- package/dist/generator/TypeMapper.js.map +1 -1
- package/dist/generator/modes/BaseGenerator.d.ts +6 -0
- package/dist/generator/modes/BaseGenerator.d.ts.map +1 -1
- package/dist/generator/modes/BaseGenerator.js +21 -1
- package/dist/generator/modes/BaseGenerator.js.map +1 -1
- package/dist/generator/modes/DecoratorGenerator.d.ts +5 -0
- package/dist/generator/modes/DecoratorGenerator.d.ts.map +1 -1
- package/dist/generator/modes/DecoratorGenerator.js +11 -2
- package/dist/generator/modes/DecoratorGenerator.js.map +1 -1
- package/dist/generator/modes/EmfGenerator.d.ts +1 -0
- package/dist/generator/modes/EmfGenerator.d.ts.map +1 -1
- package/dist/generator/modes/EmfGenerator.js +6 -2
- package/dist/generator/modes/EmfGenerator.js.map +1 -1
- package/dist/genmodel/GenModel.d.ts +2 -0
- package/dist/genmodel/GenModel.d.ts.map +1 -1
- package/dist/genmodel/GenModel.js.map +1 -1
- package/dist/index.js +15 -2
- package/dist/index.js.map +1 -1
- package/dist/loader/EcoreLoader.d.ts +4 -0
- package/dist/loader/EcoreLoader.d.ts.map +1 -1
- package/dist/loader/EcoreLoader.js +20 -0
- package/dist/loader/EcoreLoader.js.map +1 -1
- package/dist/templates/partials/decorator/class-file.ejs +99 -27
- package/dist/templates/partials/decorator/enum-file.ejs +1 -1
- package/dist/templates/partials/decorator/interface-file.ejs +1 -7
- package/dist/templates/partials/decorator/model-annotations.ejs +7 -6
- package/dist/templates/partials/decorator/package-file.ejs +4 -2
- package/dist/templates/partials/emf/class-file.ejs +75 -10
- package/dist/templates/partials/emf/factory-file.ejs +3 -3
- package/dist/templates/partials/emf/index-file.ejs +5 -5
- package/dist/templates/partials/emf/interface-file.ejs +5 -0
- package/dist/templates/partials/emf/package-file.ejs +6 -0
- package/dist/templates/partials/plain/class-file.ejs +1 -7
- package/dist/templates/partials/plain/interface-file.ejs +1 -7
- package/dist/templates/partials/plain/package-file.ejs +1 -1
- package/model/genconfig.ecore +21 -0
- package/model/genconfig.genconfig.xmi +11 -0
- package/package.json +3 -2
|
@@ -83,10 +83,30 @@ export class BaseGenerator {
|
|
|
83
83
|
getUpperBound: EObjectHelper.getUpperBound,
|
|
84
84
|
isContainment: EObjectHelper.isContainment,
|
|
85
85
|
getEOpposite: EObjectHelper.getEOpposite,
|
|
86
|
-
getExtendedMetaDataName: EObjectHelper.getExtendedMetaDataName
|
|
86
|
+
getExtendedMetaDataName: EObjectHelper.getExtendedMetaDataName,
|
|
87
|
+
mapParams: (op) => this.mapOperationParams(op)
|
|
87
88
|
};
|
|
88
89
|
return template(fullData);
|
|
89
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Render an operation's parameter list. A lowerBound-0 parameter is
|
|
93
|
+
* optional, except when a required parameter follows (TS forbids
|
|
94
|
+
* required after optional)
|
|
95
|
+
*/
|
|
96
|
+
mapOperationParams(op) {
|
|
97
|
+
const rawParams = [...(op.getEParameters?.() ?? [])];
|
|
98
|
+
let allowOptional = true;
|
|
99
|
+
const optionalFlags = [];
|
|
100
|
+
for (let i = rawParams.length - 1; i >= 0; i--) {
|
|
101
|
+
const isOptional = allowOptional && (rawParams[i].getLowerBound?.() ?? 0) === 0;
|
|
102
|
+
if (!isOptional)
|
|
103
|
+
allowOptional = false;
|
|
104
|
+
optionalFlags[i] = isOptional;
|
|
105
|
+
}
|
|
106
|
+
return rawParams
|
|
107
|
+
.map((param, i) => `${param.getName()}${optionalFlags[i] ? '?' : ''}: ${this.context.typeMapper.mapClassifier(param.getEType())}`)
|
|
108
|
+
.join(', ');
|
|
109
|
+
}
|
|
90
110
|
/**
|
|
91
111
|
* Create a generated file
|
|
92
112
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseGenerator.js","sourceRoot":"","sources":["../../../src/generator/modes/BaseGenerator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"BaseGenerator.js","sourceRoot":"","sources":["../../../src/generator/modes/BaseGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,11 @@ export declare class DecoratorGenerator extends BaseGenerator {
|
|
|
20
20
|
*/
|
|
21
21
|
private getEnumLiterals;
|
|
22
22
|
generatePackageFile(genPackage: GenPackage): Promise<GeneratedFile>;
|
|
23
|
+
/**
|
|
24
|
+
* Import source for the decorator annotations: the configured shared
|
|
25
|
+
* package (#26), or the generated per-model ModelAnnotations file
|
|
26
|
+
*/
|
|
27
|
+
private getAnnotationsImport;
|
|
23
28
|
/**
|
|
24
29
|
* Generate ModelAnnotations file
|
|
25
30
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecoratorGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/modes/DecoratorGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKpD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,aAAa;IACnD,SAAS,CAAC,cAAc,IAAI,MAAM;IAI5B,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"DecoratorGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/modes/DecoratorGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKpD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,aAAa;IACnD,SAAS,CAAC,cAAc,IAAI,MAAM;IAI5B,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;IA0BjF,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;IAsBrF,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;IAoBpF;;OAEG;IACH,OAAO,CAAC,WAAW;IAkBnB;;OAEG;IACH,OAAO,CAAC,eAAe;IAmBjB,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;IAmCzE;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;IACG,wBAAwB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;CAQ/E"}
|
|
@@ -26,7 +26,8 @@ export class DecoratorGenerator extends BaseGenerator {
|
|
|
26
26
|
superTypes: eClass.getESuperTypes(),
|
|
27
27
|
features: genClass.genFeatures,
|
|
28
28
|
operations: genClass.genOperations,
|
|
29
|
-
typeParameters: eClass.getETypeParameters()
|
|
29
|
+
typeParameters: eClass.getETypeParameters(),
|
|
30
|
+
annotationsImport: this.getAnnotationsImport()
|
|
30
31
|
});
|
|
31
32
|
const path = this.getClassPath(genClass, genPackage);
|
|
32
33
|
return this.createFile(path, content);
|
|
@@ -128,11 +129,19 @@ export class DecoratorGenerator extends BaseGenerator {
|
|
|
128
129
|
genPackage,
|
|
129
130
|
ePackage,
|
|
130
131
|
packageName,
|
|
131
|
-
exports
|
|
132
|
+
exports,
|
|
133
|
+
annotationsPackage: this.context.genModel.annotationsPackage
|
|
132
134
|
});
|
|
133
135
|
const packagePath = this.getPackagePath(genPackage);
|
|
134
136
|
return this.createFile(join(packagePath, 'index.ts'), content);
|
|
135
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Import source for the decorator annotations: the configured shared
|
|
140
|
+
* package (#26), or the generated per-model ModelAnnotations file
|
|
141
|
+
*/
|
|
142
|
+
getAnnotationsImport() {
|
|
143
|
+
return this.context.genModel.annotationsPackage ?? './ModelAnnotations.js';
|
|
144
|
+
}
|
|
136
145
|
/**
|
|
137
146
|
* Generate ModelAnnotations file
|
|
138
147
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecoratorGenerator.js","sourceRoot":"","sources":["../../../src/generator/modes/DecoratorGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAIpC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,aAAa;IACzC,cAAc;QACtB,OAAO,IAAI,CAAC,SAAS,EAAE,oCAAoC,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAkB,EAAE,UAAsB;QAC5D,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAEvC,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC;QACnC,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC;QAC1E,MAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;QAEvD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YAC9C,QAAQ;YACR,UAAU;YACV,MAAM;YACN,SAAS;YACT,KAAK;YACL,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE;YAC/B,UAAU,EAAE,MAAM,CAAC,cAAc,EAAE;YACnC,QAAQ,EAAE,QAAQ,CAAC,WAAW;YAC9B,UAAU,EAAE,QAAQ,CAAC,aAAa;YAClC,cAAc,EAAE,MAAM,CAAC,kBAAkB,EAAE;
|
|
1
|
+
{"version":3,"file":"DecoratorGenerator.js","sourceRoot":"","sources":["../../../src/generator/modes/DecoratorGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import { GeneratedFile } from '../GeneratedFile.js';
|
|
|
7
7
|
* Generator for EMF-conformant TypeScript classes
|
|
8
8
|
*/
|
|
9
9
|
export declare class EmfGenerator extends BaseGenerator {
|
|
10
|
+
constructor(context: import('../GeneratorContext.js').GeneratorContext);
|
|
10
11
|
protected getTemplateDir(): string;
|
|
11
12
|
generateClass(genClass: GenClass, genPackage: GenPackage): Promise<GeneratedFile>;
|
|
12
13
|
generateInterface(genClass: GenClass, genPackage: GenPackage): Promise<GeneratedFile>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmfGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/modes/EmfGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMpD;;GAEG;AACH,qBAAa,YAAa,SAAQ,aAAa;
|
|
1
|
+
{"version":3,"file":"EmfGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/modes/EmfGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMpD;;GAEG;AACH,qBAAa,YAAa,SAAQ,aAAa;gBACjC,OAAO,EAAE,OAAO,wBAAwB,EAAE,gBAAgB;IAKtE,SAAS,CAAC,cAAc,IAAI,MAAM;IAI5B,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;IAsGjF,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;IAuBrF,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;IAoB9E,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;IA4CnE,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAsB5E;;OAEG;IACG,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;IA0CnE;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IA6B5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;OAEG;IACH,OAAO,CAAC,kCAAkC;IAS1C,OAAO,CAAC,YAAY;CAGrB"}
|
|
@@ -8,6 +8,10 @@ const __dirname = dirname(__filename);
|
|
|
8
8
|
* Generator for EMF-conformant TypeScript classes
|
|
9
9
|
*/
|
|
10
10
|
export class EmfGenerator extends BaseGenerator {
|
|
11
|
+
constructor(context) {
|
|
12
|
+
super(context);
|
|
13
|
+
context.typeMapper.useEList = true;
|
|
14
|
+
}
|
|
11
15
|
getTemplateDir() {
|
|
12
16
|
return join(__dirname, '../../templates/partials/emf');
|
|
13
17
|
}
|
|
@@ -42,11 +46,11 @@ export class EmfGenerator extends BaseGenerator {
|
|
|
42
46
|
extendsImport = `${registeredPath}/${extendsClass}`;
|
|
43
47
|
}
|
|
44
48
|
else {
|
|
45
|
-
extendsImport = `./${extendsClass}`;
|
|
49
|
+
extendsImport = `./${extendsClass}.js`;
|
|
46
50
|
}
|
|
47
51
|
}
|
|
48
52
|
else {
|
|
49
|
-
extendsImport = `./${extendsClass}`;
|
|
53
|
+
extendsImport = `./${extendsClass}.js`;
|
|
50
54
|
}
|
|
51
55
|
}
|
|
52
56
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmfGenerator.js","sourceRoot":"","sources":["../../../src/generator/modes/EmfGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAIpC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAC;AAE7D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,aAAa;
|
|
1
|
+
{"version":3,"file":"EmfGenerator.js","sourceRoot":"","sources":["../../../src/generator/modes/EmfGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,8 @@ export interface GenModel {
|
|
|
28
28
|
boundedGenericTypeNames: boolean;
|
|
29
29
|
/** File header comment */
|
|
30
30
|
copyrightText?: string;
|
|
31
|
+
/** Decorator mode: import annotations from this package instead of generating ModelAnnotations */
|
|
32
|
+
annotationsPackage?: string;
|
|
31
33
|
/** Packages to generate */
|
|
32
34
|
genPackages: GenPackage[];
|
|
33
35
|
/** Referenced packages (for cross-references) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenModel.d.ts","sourceRoot":"","sources":["../../src/genmodel/GenModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,gDAAgD;IAChD,cAAc,EAAE,MAAM,CAAC;IAEvB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,iDAAiD;IACjD,cAAc,EAAE,cAAc,CAAC;IAE/B,+BAA+B;IAC/B,kBAAkB,EAAE,OAAO,CAAC;IAE5B,sCAAsC;IACtC,eAAe,EAAE,OAAO,CAAC;IAEzB,+BAA+B;IAC/B,eAAe,EAAE,OAAO,CAAC;IAEzB,0CAA0C;IAC1C,eAAe,EAAE,OAAO,CAAC;IAEzB,uCAAuC;IACvC,gBAAgB,EAAE,OAAO,CAAC;IAE1B,6CAA6C;IAC7C,uBAAuB,EAAE,OAAO,CAAC;IAEjC,0BAA0B;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,2BAA2B;IAC3B,WAAW,EAAE,UAAU,EAAE,CAAC;IAE1B,iDAAiD;IACjD,eAAe,EAAE,UAAU,EAAE,CAAC;IAE9B,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,8BAA8B;IAC9B,iBAAiB,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;IAErD,oCAAoC;IACpC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,wCAAwC;IACxC,oBAAoB,EAAE,MAAM,CAAC;IAE7B,gCAAgC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC,2CAA2C;IAC3C,gBAAgB,EAAE,OAAO,CAAC;IAE1B,2CAA2C;IAC3C,2BAA2B,EAAE,OAAO,CAAC;CACtC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,QAAQ,CAkBhD"}
|
|
1
|
+
{"version":3,"file":"GenModel.d.ts","sourceRoot":"","sources":["../../src/genmodel/GenModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,gDAAgD;IAChD,cAAc,EAAE,MAAM,CAAC;IAEvB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,iDAAiD;IACjD,cAAc,EAAE,cAAc,CAAC;IAE/B,+BAA+B;IAC/B,kBAAkB,EAAE,OAAO,CAAC;IAE5B,sCAAsC;IACtC,eAAe,EAAE,OAAO,CAAC;IAEzB,+BAA+B;IAC/B,eAAe,EAAE,OAAO,CAAC;IAEzB,0CAA0C;IAC1C,eAAe,EAAE,OAAO,CAAC;IAEzB,uCAAuC;IACvC,gBAAgB,EAAE,OAAO,CAAC;IAE1B,6CAA6C;IAC7C,uBAAuB,EAAE,OAAO,CAAC;IAEjC,0BAA0B;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,kGAAkG;IAClG,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,2BAA2B;IAC3B,WAAW,EAAE,UAAU,EAAE,CAAC;IAE1B,iDAAiD;IACjD,eAAe,EAAE,UAAU,EAAE,CAAC;IAE9B,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,8BAA8B;IAC9B,iBAAiB,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;IAErD,oCAAoC;IACpC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,wCAAwC;IACxC,oBAAoB,EAAE,MAAM,CAAC;IAE7B,gCAAgC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC,2CAA2C;IAC3C,gBAAgB,EAAE,OAAO,CAAC;IAE1B,2CAA2C;IAC3C,2BAA2B,EAAE,OAAO,CAAC;CACtC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,QAAQ,CAkBhD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenModel.js","sourceRoot":"","sources":["../../src/genmodel/GenModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"GenModel.js","sourceRoot":"","sources":["../../src/genmodel/GenModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAyErD;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,cAAc,EAAE,aAAa;QAC7B,cAAc,EAAE,cAAc,CAAC,SAAS;QACxC,kBAAkB,EAAE,IAAI;QACxB,eAAe,EAAE,IAAI;QACrB,eAAe,EAAE,IAAI;QACrB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,KAAK;QACvB,uBAAuB,EAAE,KAAK;QAC9B,WAAW,EAAE,EAAE;QACf,eAAe,EAAE,EAAE;QACnB,iBAAiB,EAAE,MAAM;QACzB,gBAAgB,EAAE,cAAc;QAChC,oBAAoB,EAAE,SAAS;QAC/B,gBAAgB,EAAE,KAAK;QACvB,2BAA2B,EAAE,KAAK;KACnC,CAAC;AACJ,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -60,7 +60,7 @@ export async function generate(options) {
|
|
|
60
60
|
// Generate code
|
|
61
61
|
const generator = new CodeGenerator(genModel, {
|
|
62
62
|
outputDirectory: outputDir,
|
|
63
|
-
referencedPackages: options.referencedPackages,
|
|
63
|
+
referencedPackages: mergeReferencedPackages(genConfig, options.referencedPackages),
|
|
64
64
|
});
|
|
65
65
|
const result = await generator.generate();
|
|
66
66
|
// Write files if requested
|
|
@@ -106,10 +106,23 @@ export async function generateInMemory(options) {
|
|
|
106
106
|
// Generate code
|
|
107
107
|
const generator = new CodeGenerator(genModel, {
|
|
108
108
|
outputDirectory: genConfig.generation.outputDir,
|
|
109
|
-
referencedPackages: options.referencedPackages,
|
|
109
|
+
referencedPackages: mergeReferencedPackages(genConfig, options.referencedPackages),
|
|
110
110
|
});
|
|
111
111
|
return generator.generate();
|
|
112
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Merge referenced packages: GenConfig entries are the defaults, explicit options override
|
|
115
|
+
*/
|
|
116
|
+
function mergeReferencedPackages(genConfig, override) {
|
|
117
|
+
const merged = new Map();
|
|
118
|
+
for (const ref of genConfig.referencedPackages ?? []) {
|
|
119
|
+
merged.set(ref.nsURI, ref.importPath);
|
|
120
|
+
}
|
|
121
|
+
for (const [nsURI, importPath] of override ?? []) {
|
|
122
|
+
merged.set(nsURI, importPath);
|
|
123
|
+
}
|
|
124
|
+
return merged.size > 0 ? merged : undefined;
|
|
125
|
+
}
|
|
113
126
|
/**
|
|
114
127
|
* Helper to write generated files to disk
|
|
115
128
|
*/
|
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;AAoB7B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAE7D,wCAAwC;IACxC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACtC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACvC,MAAM,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEnD,gEAAgE;IAChE,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;IAC3C,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEtD,+BAA+B;IAC/B,MAAM,SAAS,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAE9C,4CAA4C;IAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC;IAEtE,gBAAgB;IAChB,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,QAAQ,EAAE;QAC5C,eAAe,EAAE,SAAS;QAC1B,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,10 @@ export declare class EcoreLoader {
|
|
|
13
13
|
* Load an Ecore model from file
|
|
14
14
|
*/
|
|
15
15
|
load(ecorePath: string): Promise<EPackage>;
|
|
16
|
+
/**
|
|
17
|
+
* Verify that all (transitive) eSubpackages references are resolved
|
|
18
|
+
*/
|
|
19
|
+
private assertSubpackagesResolved;
|
|
16
20
|
/**
|
|
17
21
|
* Load multiple Ecore models
|
|
18
22
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EcoreLoader.d.ts","sourceRoot":"","sources":["../../src/loader/EcoreLoader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAyB,MAAM,aAAa,CAAC;AAEnE;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,cAAc,CAAoC;IAE1D;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B;;OAEG;IACG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"EcoreLoader.d.ts","sourceRoot":"","sources":["../../src/loader/EcoreLoader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAyB,MAAM,aAAa,CAAC;AAEnE;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,cAAc,CAAoC;IAE1D;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B;;OAEG;IACG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAuDhD;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAgBjC;;OAEG;IACG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAOnE;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI/C;;OAEG;IACH,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;IAIvC;;OAEG;IACH,OAAO,CAAC,UAAU;CAMnB"}
|
|
@@ -49,6 +49,10 @@ export class EcoreLoader {
|
|
|
49
49
|
throw new Error(`Root element is not an EPackage in ${ecorePath}`);
|
|
50
50
|
}
|
|
51
51
|
const ePackage = root;
|
|
52
|
+
// Registering a package with unresolved eSubpackages proxies would crash
|
|
53
|
+
// deep inside the registry (subPkg.getNsURI is not a function) — fail with
|
|
54
|
+
// a message that names the missing package instead
|
|
55
|
+
this.assertSubpackagesResolved(ePackage, ecorePath);
|
|
52
56
|
const nsURI = ePackage.getNsURI();
|
|
53
57
|
if (nsURI) {
|
|
54
58
|
this.loadedPackages.set(nsURI, ePackage);
|
|
@@ -57,6 +61,22 @@ export class EcoreLoader {
|
|
|
57
61
|
}
|
|
58
62
|
return ePackage;
|
|
59
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Verify that all (transitive) eSubpackages references are resolved
|
|
66
|
+
*/
|
|
67
|
+
assertSubpackagesResolved(ePackage, ecorePath) {
|
|
68
|
+
const subPackages = ePackage.getESubpackages?.() ?? [];
|
|
69
|
+
for (const subPkg of subPackages) {
|
|
70
|
+
if (typeof subPkg?.getNsURI !== 'function' || subPkg.eIsProxy?.()) {
|
|
71
|
+
const href = typeof subPkg?.eProxyURI === 'function'
|
|
72
|
+
? subPkg.eProxyURI()?.toString?.()
|
|
73
|
+
: undefined;
|
|
74
|
+
throw new Error(`Unresolved eSubpackages reference${href ? ` '${href}'` : ''} in ${ecorePath}. ` +
|
|
75
|
+
`The referenced package is not loaded — pass its .ecore file via -d/--dependency.`);
|
|
76
|
+
}
|
|
77
|
+
this.assertSubpackagesResolved(subPkg, ecorePath);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
60
80
|
/**
|
|
61
81
|
* Load multiple Ecore models
|
|
62
82
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EcoreLoader.js","sourceRoot":"","sources":["../../src/loader/EcoreLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC;;GAEG;AACH,MAAM,OAAO,WAAW;IACd,WAAW,GAAuB,IAAI,CAAC;IACvC,cAAc,GAA0B,IAAI,GAAG,EAAE,CAAC;IAE1D;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAExF,0BAA0B;QAC1B,eAAe,EAAE,CAAC;QAElB,sBAAsB;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAE1C,wBAAwB;QACxB,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,eAAe,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,SAAiB;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAEzD,oBAAoB;QACpB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEnD,0BAA0B;QAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;QAEtC,kCAAkC;QAClC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,WAAY,CAAC,CAAC;QAE3C,mBAAmB;QACnB,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAEjC,mBAAmB;QACnB,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QACpC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAChF,CAAC;QAED,mBAAmB;QACnB,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,sCAAsC,SAAS,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,QAAQ,GAAG,IAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"EcoreLoader.js","sourceRoot":"","sources":["../../src/loader/EcoreLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,17 +2,87 @@
|
|
|
2
2
|
|
|
3
3
|
<%# Generate imports for referenced types -%>
|
|
4
4
|
<%
|
|
5
|
+
// GenModel documentation of a model element (class, feature, ...)
|
|
6
|
+
function getDocumentation(element) {
|
|
7
|
+
const ann = element?.getEAnnotation?.('http://www.eclipse.org/emf/2002/GenModel');
|
|
8
|
+
const doc = ann?.getDetails?.()?.getByKey?.('documentation');
|
|
9
|
+
return typeof doc === 'string' && doc.length > 0 ? doc : null;
|
|
10
|
+
}
|
|
11
|
+
// Custom decorator annotations (#31): an eAnnotation source of the form
|
|
12
|
+
// '<importable-specifier>/<DecoratorName>' (not an EMF source URI) becomes an
|
|
13
|
+
// import plus a decorator application with the details as options object
|
|
14
|
+
function getCustomDecorators(element) {
|
|
15
|
+
const decorators = [];
|
|
16
|
+
for (const ann of element?.getEAnnotations?.() ?? []) {
|
|
17
|
+
const source = ann.getSource?.();
|
|
18
|
+
if (!source || source.startsWith('http://') || source.startsWith('https://')) continue;
|
|
19
|
+
const slashIdx = source.lastIndexOf('/');
|
|
20
|
+
if (slashIdx <= 0) continue;
|
|
21
|
+
const name = source.substring(slashIdx + 1);
|
|
22
|
+
if (!/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(name)) continue;
|
|
23
|
+
const options = [];
|
|
24
|
+
for (const entry of ann.getDetails?.() ?? []) {
|
|
25
|
+
const key = entry.eGet?.(entry.eClass().getEStructuralFeature('key'));
|
|
26
|
+
const value = entry.eGet?.(entry.eClass().getEStructuralFeature('value'));
|
|
27
|
+
if (key == null) continue;
|
|
28
|
+
const keyOut = /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(key) ? key : JSON.stringify(key);
|
|
29
|
+
options.push(`${keyOut}: ${JSON.stringify(value ?? '')}`);
|
|
30
|
+
}
|
|
31
|
+
decorators.push({ name, specifier: source.substring(0, slashIdx), options: `{${options.join(', ')}}` });
|
|
32
|
+
}
|
|
33
|
+
return decorators;
|
|
34
|
+
}
|
|
35
|
+
// Determine which of the annotation decorators the class actually uses (#32)
|
|
36
|
+
const classDoc = getDocumentation(eClass);
|
|
37
|
+
let usesDocumentation = !!classDoc;
|
|
38
|
+
let usesAttribute = false, usesReference = false, usesEnum = false;
|
|
39
|
+
for (const genFeature of features) {
|
|
40
|
+
const f = genFeature.ecoreFeature;
|
|
41
|
+
if (getDocumentation(f)) usesDocumentation = true;
|
|
42
|
+
if (f.getEType() && typeMapper.isEEnum(f.getEType())) usesEnum = true;
|
|
43
|
+
else if (typeMapper.isReference(f)) usesReference = true;
|
|
44
|
+
else usesAttribute = true;
|
|
45
|
+
}
|
|
46
|
+
for (const genOp of operations) {
|
|
47
|
+
if (getDocumentation(genOp.ecoreOperation)) usesDocumentation = true;
|
|
48
|
+
}
|
|
49
|
+
const annotationNames = [
|
|
50
|
+
...(usesDocumentation ? ['Documentation'] : []),
|
|
51
|
+
...(usesAttribute ? ['Attribute'] : []),
|
|
52
|
+
'ModelClass',
|
|
53
|
+
...(usesReference ? ['Reference'] : []),
|
|
54
|
+
...(usesEnum ? ['Enum'] : [])
|
|
55
|
+
];
|
|
56
|
+
|
|
57
|
+
// Merge all imports per module specifier: resolved type imports, the used
|
|
58
|
+
// annotation decorators, and custom decorator imports (#31, #32)
|
|
59
|
+
const mergedImports = new Map();
|
|
60
|
+
function addImport(specifier, name) {
|
|
61
|
+
if (!mergedImports.has(specifier)) mergedImports.set(specifier, new Set());
|
|
62
|
+
mergedImports.get(specifier).add(name);
|
|
63
|
+
}
|
|
5
64
|
const imports = importResolver.resolveImportsForClass(eClass, genPackage, 'decorator');
|
|
6
65
|
for (const imp of imports) {
|
|
7
66
|
if (imp.typeName !== className && !imp.typeName.includes(',')) {
|
|
67
|
+
addImport(imp.importPath, imp.typeName);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
for (const name of annotationNames) addImport(annotationsImport, name);
|
|
71
|
+
for (const genOp of operations) {
|
|
72
|
+
for (const dec of getCustomDecorators(genOp.ecoreOperation)) {
|
|
73
|
+
addImport(dec.specifier, dec.name);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
for (const [specifier, names] of mergedImports) {
|
|
8
77
|
-%>
|
|
9
|
-
import { <%-
|
|
78
|
+
import { <%- [...names].join(', ') %> } from '<%- specifier %>';
|
|
10
79
|
<%
|
|
11
|
-
}
|
|
12
80
|
}
|
|
13
81
|
-%>
|
|
14
|
-
import { Documentation, Attribute, ModelClass, Reference, Enum } from './ModelAnnotations';
|
|
15
82
|
|
|
83
|
+
<% if (classDoc) { -%>
|
|
84
|
+
@Documentation(<%- JSON.stringify(classDoc) %>)
|
|
85
|
+
<% } -%>
|
|
16
86
|
@ModelClass({ type: '<%- nsURI %>#//<%- className %>' })
|
|
17
87
|
export <% if (isAbstract) { %>abstract <% } %>class <%- className %><%
|
|
18
88
|
if (typeParameters && typeParameters.length > 0) {
|
|
@@ -25,8 +95,11 @@ if (typeParameters && typeParameters.length > 0) {
|
|
|
25
95
|
if (superTypes && superTypes.length > 0) {
|
|
26
96
|
const superNames = [];
|
|
27
97
|
for (const st of superTypes) {
|
|
28
|
-
|
|
29
|
-
|
|
98
|
+
// getName helper also resolves the name of an unresolved proxy from its
|
|
99
|
+
// URI fragment - a cross-package supertype must not lose its extends (#30)
|
|
100
|
+
const stName = getName(st);
|
|
101
|
+
if (stName) {
|
|
102
|
+
superNames.push(stName);
|
|
30
103
|
}
|
|
31
104
|
}
|
|
32
105
|
if (superNames.length > 0) {
|
|
@@ -38,37 +111,31 @@ if (superTypes && superTypes.length > 0) {
|
|
|
38
111
|
const feature = genFeature.ecoreFeature;
|
|
39
112
|
const featureName = feature.getName();
|
|
40
113
|
const featureType = typeMapper.mapFeatureBaseType(feature);
|
|
114
|
+
// Decorator argument is a runtime type NAME for metadata lookups -
|
|
115
|
+
// generic type arguments must not leak into it (#29). Derived from the
|
|
116
|
+
// mapped type, because an unresolved cross-package eType proxy has no getName
|
|
117
|
+
const decoratorTypeName = featureType.split('<')[0];
|
|
41
118
|
const fullType = typeMapper.mapFeature(feature);
|
|
42
119
|
const defaultValue = typeMapper.getDefaultValue(feature);
|
|
43
120
|
const isMany = feature.isMany();
|
|
44
121
|
const isRef = typeMapper.isReference(feature);
|
|
45
122
|
const isEnum = feature.getEType() && typeMapper.isEEnum(feature.getEType());
|
|
46
123
|
|
|
47
|
-
//
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
for (const ann of feature.getEAnnotations()) {
|
|
51
|
-
const annSource = typeof ann.getSource === 'function' ? ann.getSource() : ann.source;
|
|
52
|
-
if (annSource === 'http://www.eclipse.org/emf/2002/GenModel') {
|
|
53
|
-
const details = typeof ann.getDetails === 'function' ? ann.getDetails() : ann.details;
|
|
54
|
-
if (details && details.get) {
|
|
55
|
-
doc = details.get('documentation');
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
124
|
+
// GenModel documentation as @Documentation decorator; JSON.stringify keeps
|
|
125
|
+
// multiline values and quotes a valid string literal
|
|
126
|
+
const doc = getDocumentation(feature);
|
|
60
127
|
if (doc) {
|
|
61
128
|
-%>
|
|
62
|
-
@Documentation(
|
|
129
|
+
@Documentation(<%- JSON.stringify(doc) %>)
|
|
63
130
|
<%
|
|
64
131
|
}
|
|
65
132
|
if (isEnum) {
|
|
66
133
|
-%>
|
|
67
|
-
@Enum('<%-
|
|
134
|
+
@Enum('<%- decoratorTypeName %>')
|
|
68
135
|
<%
|
|
69
136
|
} else if (isRef) {
|
|
70
137
|
-%>
|
|
71
|
-
@Reference('<%-
|
|
138
|
+
@Reference('<%- decoratorTypeName %>')
|
|
72
139
|
<%
|
|
73
140
|
} else {
|
|
74
141
|
-%>
|
|
@@ -83,14 +150,19 @@ if (superTypes && superTypes.length > 0) {
|
|
|
83
150
|
const op = genOp.ecoreOperation;
|
|
84
151
|
const opName = op.getName();
|
|
85
152
|
const returnType = op.getEType() ? typeMapper.mapClassifier(op.getEType()) : 'void';
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
153
|
+
const opDoc = getDocumentation(op);
|
|
154
|
+
if (opDoc) {
|
|
155
|
+
-%>
|
|
156
|
+
@Documentation(<%- JSON.stringify(opDoc) %>)
|
|
157
|
+
<%
|
|
158
|
+
}
|
|
159
|
+
for (const dec of getCustomDecorators(op)) {
|
|
160
|
+
-%>
|
|
161
|
+
@<%- dec.name %>(<%- dec.options %>)
|
|
162
|
+
<%
|
|
91
163
|
}
|
|
92
164
|
-%>
|
|
93
|
-
<%- opName %>(<%-
|
|
165
|
+
<%- opName %>(<%- mapParams(op) %>): <%- returnType %> {
|
|
94
166
|
throw new Error('<%- opName %> not implemented');
|
|
95
167
|
}
|
|
96
168
|
|
|
@@ -28,7 +28,7 @@ export enum <%- enumName %> {
|
|
|
28
28
|
const literal = literals[i];
|
|
29
29
|
const literalName = getLiteralProp(literal, 'literal') || getLiteralProp(literal, 'name');
|
|
30
30
|
const literalValue = getLiteralProp(literal, 'value');
|
|
31
|
-
const value = useStringValues ?
|
|
31
|
+
const value = useStringValues ? JSON.stringify(literalName) : literalValue;
|
|
32
32
|
-%>
|
|
33
33
|
<%- getLiteralProp(literal, 'name') %> = <%- value %><% if (i < literals.length - 1) { %>,<% } %>
|
|
34
34
|
<% } -%>
|
|
@@ -49,13 +49,7 @@ if (superTypes && superTypes.length > 0) {
|
|
|
49
49
|
const op = genOp.ecoreOperation;
|
|
50
50
|
const opName = op.getName();
|
|
51
51
|
const returnType = op.getEType() ? typeMapper.mapClassifier(op.getEType()) : 'void';
|
|
52
|
-
const params = [];
|
|
53
|
-
for (const param of op.getEParameters()) {
|
|
54
|
-
const paramName = param.getName();
|
|
55
|
-
const paramType = typeMapper.mapClassifier(param.getEType());
|
|
56
|
-
params.push(`${paramName}: ${paramType}`);
|
|
57
|
-
}
|
|
58
52
|
-%>
|
|
59
|
-
<%- opName %>(<%-
|
|
53
|
+
<%- opName %>(<%- mapParams(op) %>): <%- returnType %>;
|
|
60
54
|
<% } -%>
|
|
61
55
|
}
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
import 'reflect-metadata';
|
|
4
4
|
|
|
5
|
-
// Metadata keys
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
5
|
+
// Metadata keys: Symbol.for() so every generated copy of this file shares
|
|
6
|
+
// the same identities and cross-package metadata readers see all models (#26)
|
|
7
|
+
const MODEL_CLASS_KEY = Symbol.for('emfts.modelClass');
|
|
8
|
+
const ATTRIBUTE_KEY = Symbol.for('emfts.attribute');
|
|
9
|
+
const REFERENCE_KEY = Symbol.for('emfts.reference');
|
|
10
|
+
const ENUM_KEY = Symbol.for('emfts.enum');
|
|
11
|
+
const DOCUMENTATION_KEY = Symbol.for('emfts.documentation');
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* Decorator for model classes
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
// Re-export all types from this package
|
|
4
4
|
<% for (const exp of exports) { -%>
|
|
5
|
-
export * from './<%- exp
|
|
5
|
+
export * from './<%- exp %>.js';
|
|
6
|
+
<% } -%>
|
|
7
|
+
<% if (!annotationsPackage) { -%>
|
|
8
|
+
export * from './ModelAnnotations.js';
|
|
6
9
|
<% } -%>
|
|
7
|
-
export * from './ModelAnnotations';
|