@emfts/codegen 0.0.1-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/README.md +39 -0
- package/dist/cli/commands/generate-rest-client.d.ts +3 -0
- package/dist/cli/commands/generate-rest-client.d.ts.map +1 -0
- package/dist/cli/commands/generate-rest-client.js +38 -0
- package/dist/cli/commands/generate-rest-client.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +3 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +108 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/commands/init.d.ts +3 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +57 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +15 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/debug-abstract.d.ts +2 -0
- package/dist/debug-abstract.d.ts.map +1 -0
- package/dist/debug-abstract.js +25 -0
- package/dist/debug-abstract.js.map +1 -0
- package/dist/debug-genmodel.d.ts +2 -0
- package/dist/debug-genmodel.d.ts.map +1 -0
- package/dist/debug-genmodel.js +41 -0
- package/dist/debug-genmodel.js.map +1 -0
- package/dist/genconfig/GenConfig.d.ts +125 -0
- package/dist/genconfig/GenConfig.d.ts.map +1 -0
- package/dist/genconfig/GenConfig.js +46 -0
- package/dist/genconfig/GenConfig.js.map +1 -0
- package/dist/genconfig/GenConfigConverter.d.ts +64 -0
- package/dist/genconfig/GenConfigConverter.d.ts.map +1 -0
- package/dist/genconfig/GenConfigConverter.js +293 -0
- package/dist/genconfig/GenConfigConverter.js.map +1 -0
- package/dist/genconfig/GenConfigLoader.d.ts +83 -0
- package/dist/genconfig/GenConfigLoader.d.ts.map +1 -0
- package/dist/genconfig/GenConfigLoader.js +455 -0
- package/dist/genconfig/GenConfigLoader.js.map +1 -0
- package/dist/genconfig/index.d.ts +4 -0
- package/dist/genconfig/index.d.ts.map +1 -0
- package/dist/genconfig/index.js +4 -0
- package/dist/genconfig/index.js.map +1 -0
- package/dist/generator/CodeGenerator.d.ts +45 -0
- package/dist/generator/CodeGenerator.d.ts.map +1 -0
- package/dist/generator/CodeGenerator.js +142 -0
- package/dist/generator/CodeGenerator.js.map +1 -0
- package/dist/generator/GeneratedFile.d.ts +23 -0
- package/dist/generator/GeneratedFile.d.ts.map +1 -0
- package/dist/generator/GeneratedFile.js +42 -0
- package/dist/generator/GeneratedFile.js.map +1 -0
- package/dist/generator/GeneratorContext.d.ts +73 -0
- package/dist/generator/GeneratorContext.d.ts.map +1 -0
- package/dist/generator/GeneratorContext.js +99 -0
- package/dist/generator/GeneratorContext.js.map +1 -0
- package/dist/generator/GeneratorOptions.d.ts +26 -0
- package/dist/generator/GeneratorOptions.d.ts.map +1 -0
- package/dist/generator/GeneratorOptions.js +16 -0
- package/dist/generator/GeneratorOptions.js.map +1 -0
- package/dist/generator/ImportResolver.d.ts +85 -0
- package/dist/generator/ImportResolver.d.ts.map +1 -0
- package/dist/generator/ImportResolver.js +381 -0
- package/dist/generator/ImportResolver.js.map +1 -0
- package/dist/generator/RestClientGenerator.d.ts +72 -0
- package/dist/generator/RestClientGenerator.d.ts.map +1 -0
- package/dist/generator/RestClientGenerator.js +488 -0
- package/dist/generator/RestClientGenerator.js.map +1 -0
- package/dist/generator/TypeMapper.d.ts +62 -0
- package/dist/generator/TypeMapper.d.ts.map +1 -0
- package/dist/generator/TypeMapper.js +224 -0
- package/dist/generator/TypeMapper.js.map +1 -0
- package/dist/generator/index.d.ts +9 -0
- package/dist/generator/index.d.ts.map +1 -0
- package/dist/generator/index.js +9 -0
- package/dist/generator/index.js.map +1 -0
- package/dist/generator/modes/BaseGenerator.d.ts +67 -0
- package/dist/generator/modes/BaseGenerator.d.ts.map +1 -0
- package/dist/generator/modes/BaseGenerator.js +128 -0
- package/dist/generator/modes/BaseGenerator.js.map +1 -0
- package/dist/generator/modes/DecoratorGenerator.d.ts +28 -0
- package/dist/generator/modes/DecoratorGenerator.d.ts.map +1 -0
- package/dist/generator/modes/DecoratorGenerator.js +147 -0
- package/dist/generator/modes/DecoratorGenerator.js.map +1 -0
- package/dist/generator/modes/EmfGenerator.d.ts +22 -0
- package/dist/generator/modes/EmfGenerator.d.ts.map +1 -0
- package/dist/generator/modes/EmfGenerator.js +202 -0
- package/dist/generator/modes/EmfGenerator.js.map +1 -0
- package/dist/generator/modes/PlainGenerator.d.ts +16 -0
- package/dist/generator/modes/PlainGenerator.d.ts.map +1 -0
- package/dist/generator/modes/PlainGenerator.js +95 -0
- package/dist/generator/modes/PlainGenerator.js.map +1 -0
- package/dist/generator/modes/index.d.ts +5 -0
- package/dist/generator/modes/index.d.ts.map +1 -0
- package/dist/generator/modes/index.js +5 -0
- package/dist/generator/modes/index.js.map +1 -0
- package/dist/genmodel/GenClass.d.ts +37 -0
- package/dist/genmodel/GenClass.d.ts.map +1 -0
- package/dist/genmodel/GenClass.js +14 -0
- package/dist/genmodel/GenClass.js.map +1 -0
- package/dist/genmodel/GenDataType.d.ts +19 -0
- package/dist/genmodel/GenDataType.d.ts.map +1 -0
- package/dist/genmodel/GenDataType.js +46 -0
- package/dist/genmodel/GenDataType.js.map +1 -0
- package/dist/genmodel/GenEnum.d.ts +30 -0
- package/dist/genmodel/GenEnum.d.ts.map +1 -0
- package/dist/genmodel/GenEnum.js +11 -0
- package/dist/genmodel/GenEnum.js.map +1 -0
- package/dist/genmodel/GenFeature.d.ts +30 -0
- package/dist/genmodel/GenFeature.d.ts.map +1 -0
- package/dist/genmodel/GenFeature.js +15 -0
- package/dist/genmodel/GenFeature.js.map +1 -0
- package/dist/genmodel/GenModel.d.ts +54 -0
- package/dist/genmodel/GenModel.d.ts.map +1 -0
- package/dist/genmodel/GenModel.js +24 -0
- package/dist/genmodel/GenModel.js.map +1 -0
- package/dist/genmodel/GenOperation.d.ts +19 -0
- package/dist/genmodel/GenOperation.d.ts.map +1 -0
- package/dist/genmodel/GenOperation.js +10 -0
- package/dist/genmodel/GenOperation.js.map +1 -0
- package/dist/genmodel/GenPackage.d.ts +42 -0
- package/dist/genmodel/GenPackage.d.ts.map +1 -0
- package/dist/genmodel/GenPackage.js +25 -0
- package/dist/genmodel/GenPackage.js.map +1 -0
- package/dist/genmodel/GenerationMode.d.ts +23 -0
- package/dist/genmodel/GenerationMode.d.ts.map +1 -0
- package/dist/genmodel/GenerationMode.js +25 -0
- package/dist/genmodel/GenerationMode.js.map +1 -0
- package/dist/genmodel/index.d.ts +9 -0
- package/dist/genmodel/index.d.ts.map +1 -0
- package/dist/genmodel/index.js +10 -0
- package/dist/genmodel/index.js.map +1 -0
- package/dist/index.d.ts +66 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +110 -0
- package/dist/index.js.map +1 -0
- package/dist/loader/EcoreLoader.d.ts +33 -0
- package/dist/loader/EcoreLoader.d.ts.map +1 -0
- package/dist/loader/EcoreLoader.js +91 -0
- package/dist/loader/EcoreLoader.js.map +1 -0
- package/dist/loader/index.d.ts +2 -0
- package/dist/loader/index.d.ts.map +1 -0
- package/dist/loader/index.js +2 -0
- package/dist/loader/index.js.map +1 -0
- package/dist/templates/partials/decorator/class-file.ejs +98 -0
- package/dist/templates/partials/decorator/enum-file.ejs +35 -0
- package/dist/templates/partials/decorator/interface-file.ejs +61 -0
- package/dist/templates/partials/decorator/model-annotations.ejs +91 -0
- package/dist/templates/partials/decorator/package-file.ejs +7 -0
- package/dist/templates/partials/emf/class-file.ejs +226 -0
- package/dist/templates/partials/emf/enum-file.ejs +36 -0
- package/dist/templates/partials/emf/factory-file.ejs +54 -0
- package/dist/templates/partials/emf/index-file.ejs +29 -0
- package/dist/templates/partials/emf/interface-file.ejs +72 -0
- package/dist/templates/partials/emf/package-file.ejs +149 -0
- package/dist/templates/partials/plain/class-file.ejs +75 -0
- package/dist/templates/partials/plain/enum-file.ejs +28 -0
- package/dist/templates/partials/plain/interface-file.ejs +61 -0
- package/dist/templates/partials/plain/package-file.ejs +6 -0
- package/dist/templates/templates/partials/decorator/class-file.ejs +98 -0
- package/dist/templates/templates/partials/decorator/enum-file.ejs +35 -0
- package/dist/templates/templates/partials/decorator/interface-file.ejs +61 -0
- package/dist/templates/templates/partials/decorator/model-annotations.ejs +91 -0
- package/dist/templates/templates/partials/decorator/package-file.ejs +7 -0
- package/dist/templates/templates/partials/emf/class-file.ejs +226 -0
- package/dist/templates/templates/partials/emf/enum-file.ejs +36 -0
- package/dist/templates/templates/partials/emf/factory-file.ejs +54 -0
- package/dist/templates/templates/partials/emf/index-file.ejs +29 -0
- package/dist/templates/templates/partials/emf/interface-file.ejs +72 -0
- package/dist/templates/templates/partials/emf/package-file.ejs +149 -0
- package/dist/templates/templates/partials/plain/class-file.ejs +75 -0
- package/dist/templates/templates/partials/plain/enum-file.ejs +28 -0
- package/dist/templates/templates/partials/plain/interface-file.ejs +61 -0
- package/dist/templates/templates/partials/plain/package-file.ejs +6 -0
- package/dist/util/EObjectHelper.d.ts +90 -0
- package/dist/util/EObjectHelper.d.ts.map +1 -0
- package/dist/util/EObjectHelper.js +381 -0
- package/dist/util/EObjectHelper.js.map +1 -0
- package/dist/util/StringUtils.d.ts +44 -0
- package/dist/util/StringUtils.d.ts.map +1 -0
- package/dist/util/StringUtils.js +115 -0
- package/dist/util/StringUtils.js.map +1 -0
- package/dist/util/index.d.ts +3 -0
- package/dist/util/index.d.ts.map +1 -0
- package/dist/util/index.js +3 -0
- package/dist/util/index.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
<%- header %>
|
|
2
|
+
|
|
3
|
+
<%# Generate imports for referenced types -%>
|
|
4
|
+
<%
|
|
5
|
+
const imports = importResolver.resolveImportsForClass(eClass, genPackage, 'plain');
|
|
6
|
+
for (const imp of imports) {
|
|
7
|
+
if (imp.typeName !== interfaceName) {
|
|
8
|
+
-%>
|
|
9
|
+
import type { <%- imp.typeName %> } from '<%- imp.importPath %>';
|
|
10
|
+
<%
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
-%>
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* <%- genClass.documentation || eClass.getName() %>
|
|
17
|
+
*/
|
|
18
|
+
export interface <%- interfaceName %><%
|
|
19
|
+
if (typeParameters && typeParameters.length > 0) {
|
|
20
|
+
const params = [];
|
|
21
|
+
for (const tp of typeParameters) {
|
|
22
|
+
params.push(tp.getName());
|
|
23
|
+
}
|
|
24
|
+
%><<%- params.join(', ') %>><%
|
|
25
|
+
}
|
|
26
|
+
if (superTypes && superTypes.length > 0) {
|
|
27
|
+
const superNames = [];
|
|
28
|
+
for (const st of superTypes) {
|
|
29
|
+
if (st.getName) {
|
|
30
|
+
superNames.push(st.getName());
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (superNames.length > 0) {
|
|
34
|
+
%> extends <%- superNames.join(', ') %><%
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
%> {
|
|
38
|
+
<% for (const genFeature of features) {
|
|
39
|
+
const feature = genFeature.ecoreFeature;
|
|
40
|
+
const featureName = feature.getName();
|
|
41
|
+
const featureType = typeMapper.mapFeature(feature);
|
|
42
|
+
const isMany = feature.isMany();
|
|
43
|
+
const lowerBound = feature.getLowerBound();
|
|
44
|
+
-%>
|
|
45
|
+
<%- featureName %><% if (lowerBound === 0 && !isMany) { %>?<% } %>: <%- featureType %>;
|
|
46
|
+
<% } -%>
|
|
47
|
+
|
|
48
|
+
<% for (const genOp of operations) {
|
|
49
|
+
const op = genOp.ecoreOperation;
|
|
50
|
+
const opName = op.getName();
|
|
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
|
+
-%>
|
|
59
|
+
<%- opName %>(<%- params.join(', ') %>): <%- returnType %>;
|
|
60
|
+
<% } -%>
|
|
61
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper functions for accessing EObject properties
|
|
3
|
+
* Works with both static and dynamic EObjects from emfts
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Get name from ENamedElement (works with both static and dynamic EObjects)
|
|
7
|
+
*/
|
|
8
|
+
export declare function getName(obj: any): string | null;
|
|
9
|
+
/**
|
|
10
|
+
* Get any feature value from an EObject
|
|
11
|
+
*/
|
|
12
|
+
export declare function getFeatureValue(obj: any, featureName: string): any;
|
|
13
|
+
/**
|
|
14
|
+
* Get literal from EEnumLiteral
|
|
15
|
+
*/
|
|
16
|
+
export declare function getLiteral(obj: any): string | null;
|
|
17
|
+
/**
|
|
18
|
+
* Get value from EEnumLiteral
|
|
19
|
+
*/
|
|
20
|
+
export declare function getValue(obj: any): number;
|
|
21
|
+
/**
|
|
22
|
+
* Check if a feature is many (multiplicity > 1)
|
|
23
|
+
*/
|
|
24
|
+
export declare function isMany(feature: any): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Check if an EClass is abstract
|
|
27
|
+
*/
|
|
28
|
+
export declare function isAbstract(eClass: any): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Check if an EClass is an interface
|
|
31
|
+
*/
|
|
32
|
+
export declare function isInterface(eClass: any): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Get the type of a structural feature
|
|
35
|
+
*/
|
|
36
|
+
export declare function getEType(feature: any): any;
|
|
37
|
+
/**
|
|
38
|
+
* Get super types of an EClass
|
|
39
|
+
*/
|
|
40
|
+
export declare function getESuperTypes(eClass: any): any[];
|
|
41
|
+
/**
|
|
42
|
+
* Get structural features of an EClass
|
|
43
|
+
*/
|
|
44
|
+
export declare function getEStructuralFeatures(eClass: any): any[];
|
|
45
|
+
/**
|
|
46
|
+
* Get operations of an EClass
|
|
47
|
+
*/
|
|
48
|
+
export declare function getEOperations(eClass: any): any[];
|
|
49
|
+
/**
|
|
50
|
+
* Get type parameters of an EClassifier
|
|
51
|
+
*/
|
|
52
|
+
export declare function getETypeParameters(classifier: any): any[];
|
|
53
|
+
/**
|
|
54
|
+
* Get parameters of an EOperation
|
|
55
|
+
*/
|
|
56
|
+
export declare function getEParameters(operation: any): any[];
|
|
57
|
+
/**
|
|
58
|
+
* Get literals of an EEnum
|
|
59
|
+
*/
|
|
60
|
+
export declare function getELiterals(eEnum: any): any[];
|
|
61
|
+
/**
|
|
62
|
+
* Get the package of a classifier
|
|
63
|
+
*/
|
|
64
|
+
export declare function getEPackage(classifier: any): any;
|
|
65
|
+
/**
|
|
66
|
+
* Get default value literal of a feature
|
|
67
|
+
*/
|
|
68
|
+
export declare function getDefaultValueLiteral(feature: any): string | null;
|
|
69
|
+
/**
|
|
70
|
+
* Get lower bound of a feature
|
|
71
|
+
*/
|
|
72
|
+
export declare function getLowerBound(feature: any): number;
|
|
73
|
+
/**
|
|
74
|
+
* Get upper bound of a feature
|
|
75
|
+
*/
|
|
76
|
+
export declare function getUpperBound(feature: any): number;
|
|
77
|
+
/**
|
|
78
|
+
* Check if feature is containment
|
|
79
|
+
*/
|
|
80
|
+
export declare function isContainment(feature: any): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Get the opposite reference
|
|
83
|
+
*/
|
|
84
|
+
export declare function getEOpposite(feature: any): any;
|
|
85
|
+
/**
|
|
86
|
+
* Get the ExtendedMetaData "name" annotation value for a model element.
|
|
87
|
+
* Returns the XML serialization name if different from the model name, or null.
|
|
88
|
+
*/
|
|
89
|
+
export declare function getExtendedMetaDataName(element: any): string | null;
|
|
90
|
+
//# sourceMappingURL=EObjectHelper.d.ts.map
|
|
@@ -0,0 +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,CAQ1C;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"}
|
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper functions for accessing EObject properties
|
|
3
|
+
* Works with both static and dynamic EObjects from emfts
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Get name from ENamedElement (works with both static and dynamic EObjects)
|
|
7
|
+
*/
|
|
8
|
+
export function getName(obj) {
|
|
9
|
+
if (!obj)
|
|
10
|
+
return null;
|
|
11
|
+
// Check if it's an unresolved proxy first
|
|
12
|
+
if (typeof obj.eIsProxy === 'function' && obj.eIsProxy()) {
|
|
13
|
+
// For proxies, extract name from the proxy URI
|
|
14
|
+
if (typeof obj.eProxyURI === 'function') {
|
|
15
|
+
const proxyURI = obj.eProxyURI();
|
|
16
|
+
if (proxyURI) {
|
|
17
|
+
const uriStr = proxyURI.toString();
|
|
18
|
+
// Parse URI like "library.ecore#//Book" to extract "Book"
|
|
19
|
+
const hashIdx = uriStr.indexOf('#//');
|
|
20
|
+
if (hashIdx >= 0) {
|
|
21
|
+
const fragment = uriStr.substring(hashIdx + 3);
|
|
22
|
+
const segments = fragment.split('/');
|
|
23
|
+
return segments[segments.length - 1] || null;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
// Try direct method first
|
|
30
|
+
if (typeof obj.getName === 'function') {
|
|
31
|
+
try {
|
|
32
|
+
return obj.getName();
|
|
33
|
+
}
|
|
34
|
+
catch (e) {
|
|
35
|
+
// getName might throw if proxy isn't resolved
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// Try eGet for dynamic objects
|
|
39
|
+
if (typeof obj.eGet === 'function' && typeof obj.eClass === 'function') {
|
|
40
|
+
try {
|
|
41
|
+
const eClass = obj.eClass();
|
|
42
|
+
if (eClass) {
|
|
43
|
+
const nameFeature = eClass.getEStructuralFeature?.('name');
|
|
44
|
+
if (nameFeature) {
|
|
45
|
+
return obj.eGet(nameFeature);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
// eGet might throw if proxy isn't resolved
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Fallback to property access
|
|
54
|
+
return obj.name ?? null;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get any feature value from an EObject
|
|
58
|
+
*/
|
|
59
|
+
export function getFeatureValue(obj, featureName) {
|
|
60
|
+
if (!obj)
|
|
61
|
+
return undefined;
|
|
62
|
+
// Try getter method first (getXxx format)
|
|
63
|
+
const getterName = `get${capitalize(featureName)}`;
|
|
64
|
+
if (typeof obj[getterName] === 'function') {
|
|
65
|
+
return obj[getterName]();
|
|
66
|
+
}
|
|
67
|
+
// Try isXxx for booleans
|
|
68
|
+
const isName = `is${capitalize(featureName)}`;
|
|
69
|
+
if (typeof obj[isName] === 'function') {
|
|
70
|
+
return obj[isName]();
|
|
71
|
+
}
|
|
72
|
+
// Try eGet for dynamic objects
|
|
73
|
+
if (typeof obj.eGet === 'function' && typeof obj.eClass === 'function') {
|
|
74
|
+
const eClass = obj.eClass();
|
|
75
|
+
if (eClass) {
|
|
76
|
+
const feature = eClass.getEStructuralFeature?.(featureName);
|
|
77
|
+
if (feature) {
|
|
78
|
+
return obj.eGet(feature);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// Fallback to direct property access
|
|
83
|
+
return obj[featureName];
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Get literal from EEnumLiteral
|
|
87
|
+
*/
|
|
88
|
+
export function getLiteral(obj) {
|
|
89
|
+
if (!obj)
|
|
90
|
+
return null;
|
|
91
|
+
if (typeof obj.getLiteral === 'function') {
|
|
92
|
+
return obj.getLiteral();
|
|
93
|
+
}
|
|
94
|
+
return getFeatureValue(obj, 'literal') ?? getName(obj);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get value from EEnumLiteral
|
|
98
|
+
*/
|
|
99
|
+
export function getValue(obj) {
|
|
100
|
+
if (!obj)
|
|
101
|
+
return 0;
|
|
102
|
+
if (typeof obj.getValue === 'function') {
|
|
103
|
+
return obj.getValue();
|
|
104
|
+
}
|
|
105
|
+
const value = getFeatureValue(obj, 'value');
|
|
106
|
+
return typeof value === 'number' ? value : 0;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Check if a feature is many (multiplicity > 1)
|
|
110
|
+
*/
|
|
111
|
+
export function isMany(feature) {
|
|
112
|
+
if (!feature)
|
|
113
|
+
return false;
|
|
114
|
+
if (typeof feature.isMany === 'function') {
|
|
115
|
+
return feature.isMany();
|
|
116
|
+
}
|
|
117
|
+
const upperBound = getFeatureValue(feature, 'upperBound');
|
|
118
|
+
return upperBound === -1 || upperBound > 1;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Check if an EClass is abstract
|
|
122
|
+
*/
|
|
123
|
+
export function isAbstract(eClass) {
|
|
124
|
+
if (!eClass)
|
|
125
|
+
return false;
|
|
126
|
+
// Check if it's a proxy - proxies don't have the abstract info
|
|
127
|
+
if (typeof eClass.eIsProxy === 'function' && eClass.eIsProxy()) {
|
|
128
|
+
// For proxies, we can't determine if abstract, return false
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
// Try direct method first
|
|
132
|
+
if (typeof eClass.isAbstract === 'function') {
|
|
133
|
+
try {
|
|
134
|
+
return eClass.isAbstract();
|
|
135
|
+
}
|
|
136
|
+
catch (e) {
|
|
137
|
+
// Method might throw
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// Try eGet for dynamic objects
|
|
141
|
+
const abstractValue = getFeatureValue(eClass, 'abstract');
|
|
142
|
+
return abstractValue === true || abstractValue === 'true';
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Check if an EClass is an interface
|
|
146
|
+
*/
|
|
147
|
+
export function isInterface(eClass) {
|
|
148
|
+
if (!eClass)
|
|
149
|
+
return false;
|
|
150
|
+
// Check if it's a proxy - proxies don't have the interface info
|
|
151
|
+
if (typeof eClass.eIsProxy === 'function' && eClass.eIsProxy()) {
|
|
152
|
+
// For proxies, we can't determine if interface, return false
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
// Try direct method first
|
|
156
|
+
if (typeof eClass.isInterface === 'function') {
|
|
157
|
+
try {
|
|
158
|
+
return eClass.isInterface();
|
|
159
|
+
}
|
|
160
|
+
catch (e) {
|
|
161
|
+
// Method might throw
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// Try eGet for dynamic objects
|
|
165
|
+
const interfaceValue = getFeatureValue(eClass, 'interface');
|
|
166
|
+
return interfaceValue === true || interfaceValue === 'true';
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Get the type of a structural feature
|
|
170
|
+
*/
|
|
171
|
+
export function getEType(feature) {
|
|
172
|
+
if (!feature)
|
|
173
|
+
return null;
|
|
174
|
+
if (typeof feature.getEType === 'function') {
|
|
175
|
+
return feature.getEType();
|
|
176
|
+
}
|
|
177
|
+
return getFeatureValue(feature, 'eType');
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Get super types of an EClass
|
|
181
|
+
*/
|
|
182
|
+
export function getESuperTypes(eClass) {
|
|
183
|
+
if (!eClass)
|
|
184
|
+
return [];
|
|
185
|
+
if (typeof eClass.getESuperTypes === 'function') {
|
|
186
|
+
return toArray(eClass.getESuperTypes());
|
|
187
|
+
}
|
|
188
|
+
return toArray(getFeatureValue(eClass, 'eSuperTypes'));
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Get structural features of an EClass
|
|
192
|
+
*/
|
|
193
|
+
export function getEStructuralFeatures(eClass) {
|
|
194
|
+
if (!eClass)
|
|
195
|
+
return [];
|
|
196
|
+
if (typeof eClass.getEStructuralFeatures === 'function') {
|
|
197
|
+
return toArray(eClass.getEStructuralFeatures());
|
|
198
|
+
}
|
|
199
|
+
return toArray(getFeatureValue(eClass, 'eStructuralFeatures'));
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Get operations of an EClass
|
|
203
|
+
*/
|
|
204
|
+
export function getEOperations(eClass) {
|
|
205
|
+
if (!eClass)
|
|
206
|
+
return [];
|
|
207
|
+
if (typeof eClass.getEOperations === 'function') {
|
|
208
|
+
return toArray(eClass.getEOperations());
|
|
209
|
+
}
|
|
210
|
+
return toArray(getFeatureValue(eClass, 'eOperations'));
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Get type parameters of an EClassifier
|
|
214
|
+
*/
|
|
215
|
+
export function getETypeParameters(classifier) {
|
|
216
|
+
if (!classifier)
|
|
217
|
+
return [];
|
|
218
|
+
if (typeof classifier.getETypeParameters === 'function') {
|
|
219
|
+
return toArray(classifier.getETypeParameters());
|
|
220
|
+
}
|
|
221
|
+
return toArray(getFeatureValue(classifier, 'eTypeParameters'));
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Get parameters of an EOperation
|
|
225
|
+
*/
|
|
226
|
+
export function getEParameters(operation) {
|
|
227
|
+
if (!operation)
|
|
228
|
+
return [];
|
|
229
|
+
if (typeof operation.getEParameters === 'function') {
|
|
230
|
+
return toArray(operation.getEParameters());
|
|
231
|
+
}
|
|
232
|
+
return toArray(getFeatureValue(operation, 'eParameters'));
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Get literals of an EEnum
|
|
236
|
+
*/
|
|
237
|
+
export function getELiterals(eEnum) {
|
|
238
|
+
if (!eEnum)
|
|
239
|
+
return [];
|
|
240
|
+
if (typeof eEnum.getELiterals === 'function') {
|
|
241
|
+
return toArray(eEnum.getELiterals());
|
|
242
|
+
}
|
|
243
|
+
return toArray(getFeatureValue(eEnum, 'eLiterals'));
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Get the package of a classifier
|
|
247
|
+
*/
|
|
248
|
+
export function getEPackage(classifier) {
|
|
249
|
+
if (!classifier)
|
|
250
|
+
return null;
|
|
251
|
+
// Try direct method first
|
|
252
|
+
if (typeof classifier.getEPackage === 'function') {
|
|
253
|
+
return classifier.getEPackage();
|
|
254
|
+
}
|
|
255
|
+
// Try eGet for dynamic objects
|
|
256
|
+
const pkg = getFeatureValue(classifier, 'ePackage');
|
|
257
|
+
if (pkg)
|
|
258
|
+
return pkg;
|
|
259
|
+
// Try eContainer - classifiers are contained in their package
|
|
260
|
+
if (typeof classifier.eContainer === 'function') {
|
|
261
|
+
const container = classifier.eContainer();
|
|
262
|
+
// Check if container is an EPackage (has getEClassifiers or getNsURI)
|
|
263
|
+
if (container && (typeof container.getEClassifiers === 'function' ||
|
|
264
|
+
typeof container.getNsURI === 'function')) {
|
|
265
|
+
return container;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
return null;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Get default value literal of a feature
|
|
272
|
+
*/
|
|
273
|
+
export function getDefaultValueLiteral(feature) {
|
|
274
|
+
if (!feature)
|
|
275
|
+
return null;
|
|
276
|
+
if (typeof feature.getDefaultValueLiteral === 'function') {
|
|
277
|
+
return feature.getDefaultValueLiteral();
|
|
278
|
+
}
|
|
279
|
+
return getFeatureValue(feature, 'defaultValueLiteral');
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Get lower bound of a feature
|
|
283
|
+
*/
|
|
284
|
+
export function getLowerBound(feature) {
|
|
285
|
+
if (!feature)
|
|
286
|
+
return 0;
|
|
287
|
+
if (typeof feature.getLowerBound === 'function') {
|
|
288
|
+
return feature.getLowerBound();
|
|
289
|
+
}
|
|
290
|
+
const value = getFeatureValue(feature, 'lowerBound');
|
|
291
|
+
return typeof value === 'number' ? value : 0;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Get upper bound of a feature
|
|
295
|
+
*/
|
|
296
|
+
export function getUpperBound(feature) {
|
|
297
|
+
if (!feature)
|
|
298
|
+
return 1;
|
|
299
|
+
if (typeof feature.getUpperBound === 'function') {
|
|
300
|
+
return feature.getUpperBound();
|
|
301
|
+
}
|
|
302
|
+
const value = getFeatureValue(feature, 'upperBound');
|
|
303
|
+
return typeof value === 'number' ? value : 1;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Check if feature is containment
|
|
307
|
+
*/
|
|
308
|
+
export function isContainment(feature) {
|
|
309
|
+
if (!feature)
|
|
310
|
+
return false;
|
|
311
|
+
if (typeof feature.isContainment === 'function') {
|
|
312
|
+
return feature.isContainment();
|
|
313
|
+
}
|
|
314
|
+
return getFeatureValue(feature, 'containment') === true;
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Get the opposite reference
|
|
318
|
+
*/
|
|
319
|
+
export function getEOpposite(feature) {
|
|
320
|
+
if (!feature)
|
|
321
|
+
return null;
|
|
322
|
+
if (typeof feature.getEOpposite === 'function') {
|
|
323
|
+
return feature.getEOpposite();
|
|
324
|
+
}
|
|
325
|
+
return getFeatureValue(feature, 'eOpposite');
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Get the ExtendedMetaData "name" annotation value for a model element.
|
|
329
|
+
* Returns the XML serialization name if different from the model name, or null.
|
|
330
|
+
*/
|
|
331
|
+
export function getExtendedMetaDataName(element) {
|
|
332
|
+
if (!element)
|
|
333
|
+
return null;
|
|
334
|
+
const annotations = toArray(getFeatureValue(element, 'eAnnotations'));
|
|
335
|
+
for (const ann of annotations) {
|
|
336
|
+
const source = getFeatureValue(ann, 'source');
|
|
337
|
+
if (source === 'http:///org/eclipse/emf/ecore/util/ExtendedMetaData') {
|
|
338
|
+
const details = toArray(getFeatureValue(ann, 'details'));
|
|
339
|
+
for (const detail of details) {
|
|
340
|
+
const key = getFeatureValue(detail, 'key');
|
|
341
|
+
if (key === 'name') {
|
|
342
|
+
return getFeatureValue(detail, 'value');
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
return null;
|
|
348
|
+
}
|
|
349
|
+
// Helper functions
|
|
350
|
+
function capitalize(str) {
|
|
351
|
+
if (!str)
|
|
352
|
+
return '';
|
|
353
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Convert any list-like value (Array, EList, Iterable) to a plain JS array
|
|
357
|
+
*/
|
|
358
|
+
function toArray(value) {
|
|
359
|
+
if (!value)
|
|
360
|
+
return [];
|
|
361
|
+
if (Array.isArray(value))
|
|
362
|
+
return value;
|
|
363
|
+
// EList with size()/get()
|
|
364
|
+
if (typeof value.size === 'function' && typeof value.get === 'function') {
|
|
365
|
+
const arr = [];
|
|
366
|
+
for (let i = 0; i < value.size(); i++) {
|
|
367
|
+
arr.push(value.get(i));
|
|
368
|
+
}
|
|
369
|
+
return arr;
|
|
370
|
+
}
|
|
371
|
+
// EList with toArray()
|
|
372
|
+
if (typeof value.toArray === 'function') {
|
|
373
|
+
return value.toArray();
|
|
374
|
+
}
|
|
375
|
+
// Any iterable (but not string)
|
|
376
|
+
if (typeof value !== 'string' && typeof value[Symbol.iterator] === 'function') {
|
|
377
|
+
return Array.from(value);
|
|
378
|
+
}
|
|
379
|
+
return [];
|
|
380
|
+
}
|
|
381
|
+
//# sourceMappingURL=EObjectHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EObjectHelper.js","sourceRoot":"","sources":["../../src/util/EObjectHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* String utility functions for code generation
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Capitalize the first letter of a string
|
|
6
|
+
*/
|
|
7
|
+
export declare function capitalize(str: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* Uncapitalize the first letter of a string
|
|
10
|
+
*/
|
|
11
|
+
export declare function uncapitalize(str: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Convert camelCase to UPPER_SNAKE_CASE
|
|
14
|
+
*/
|
|
15
|
+
export declare function toUpperSnake(str: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* Convert camelCase to lower_snake_case
|
|
18
|
+
*/
|
|
19
|
+
export declare function toLowerSnake(str: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Convert to camelCase
|
|
22
|
+
*/
|
|
23
|
+
export declare function toCamelCase(str: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* Convert to PascalCase
|
|
26
|
+
*/
|
|
27
|
+
export declare function toPascalCase(str: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* Escape a string for use in generated code
|
|
30
|
+
*/
|
|
31
|
+
export declare function escapeString(str: string): string;
|
|
32
|
+
/**
|
|
33
|
+
* Create a safe identifier from a string
|
|
34
|
+
*/
|
|
35
|
+
export declare function toSafeIdentifier(str: string): string;
|
|
36
|
+
/**
|
|
37
|
+
* Check if a string is a TypeScript reserved word
|
|
38
|
+
*/
|
|
39
|
+
export declare function isReservedWord(str: string): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Make an identifier safe by prefixing if it's a reserved word
|
|
42
|
+
*/
|
|
43
|
+
export declare function makeSafeIdentifier(str: string): string;
|
|
44
|
+
//# sourceMappingURL=StringUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StringUtils.d.ts","sourceRoot":"","sources":["../../src/util/StringUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQhD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CASpD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAenD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGtD"}
|