@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.
Files changed (184) hide show
  1. package/README.md +39 -0
  2. package/dist/cli/commands/generate-rest-client.d.ts +3 -0
  3. package/dist/cli/commands/generate-rest-client.d.ts.map +1 -0
  4. package/dist/cli/commands/generate-rest-client.js +38 -0
  5. package/dist/cli/commands/generate-rest-client.js.map +1 -0
  6. package/dist/cli/commands/generate.d.ts +3 -0
  7. package/dist/cli/commands/generate.d.ts.map +1 -0
  8. package/dist/cli/commands/generate.js +108 -0
  9. package/dist/cli/commands/generate.js.map +1 -0
  10. package/dist/cli/commands/init.d.ts +3 -0
  11. package/dist/cli/commands/init.d.ts.map +1 -0
  12. package/dist/cli/commands/init.js +57 -0
  13. package/dist/cli/commands/init.js.map +1 -0
  14. package/dist/cli/index.d.ts +3 -0
  15. package/dist/cli/index.d.ts.map +1 -0
  16. package/dist/cli/index.js +15 -0
  17. package/dist/cli/index.js.map +1 -0
  18. package/dist/debug-abstract.d.ts +2 -0
  19. package/dist/debug-abstract.d.ts.map +1 -0
  20. package/dist/debug-abstract.js +25 -0
  21. package/dist/debug-abstract.js.map +1 -0
  22. package/dist/debug-genmodel.d.ts +2 -0
  23. package/dist/debug-genmodel.d.ts.map +1 -0
  24. package/dist/debug-genmodel.js +41 -0
  25. package/dist/debug-genmodel.js.map +1 -0
  26. package/dist/genconfig/GenConfig.d.ts +125 -0
  27. package/dist/genconfig/GenConfig.d.ts.map +1 -0
  28. package/dist/genconfig/GenConfig.js +46 -0
  29. package/dist/genconfig/GenConfig.js.map +1 -0
  30. package/dist/genconfig/GenConfigConverter.d.ts +64 -0
  31. package/dist/genconfig/GenConfigConverter.d.ts.map +1 -0
  32. package/dist/genconfig/GenConfigConverter.js +293 -0
  33. package/dist/genconfig/GenConfigConverter.js.map +1 -0
  34. package/dist/genconfig/GenConfigLoader.d.ts +83 -0
  35. package/dist/genconfig/GenConfigLoader.d.ts.map +1 -0
  36. package/dist/genconfig/GenConfigLoader.js +455 -0
  37. package/dist/genconfig/GenConfigLoader.js.map +1 -0
  38. package/dist/genconfig/index.d.ts +4 -0
  39. package/dist/genconfig/index.d.ts.map +1 -0
  40. package/dist/genconfig/index.js +4 -0
  41. package/dist/genconfig/index.js.map +1 -0
  42. package/dist/generator/CodeGenerator.d.ts +45 -0
  43. package/dist/generator/CodeGenerator.d.ts.map +1 -0
  44. package/dist/generator/CodeGenerator.js +142 -0
  45. package/dist/generator/CodeGenerator.js.map +1 -0
  46. package/dist/generator/GeneratedFile.d.ts +23 -0
  47. package/dist/generator/GeneratedFile.d.ts.map +1 -0
  48. package/dist/generator/GeneratedFile.js +42 -0
  49. package/dist/generator/GeneratedFile.js.map +1 -0
  50. package/dist/generator/GeneratorContext.d.ts +73 -0
  51. package/dist/generator/GeneratorContext.d.ts.map +1 -0
  52. package/dist/generator/GeneratorContext.js +99 -0
  53. package/dist/generator/GeneratorContext.js.map +1 -0
  54. package/dist/generator/GeneratorOptions.d.ts +26 -0
  55. package/dist/generator/GeneratorOptions.d.ts.map +1 -0
  56. package/dist/generator/GeneratorOptions.js +16 -0
  57. package/dist/generator/GeneratorOptions.js.map +1 -0
  58. package/dist/generator/ImportResolver.d.ts +85 -0
  59. package/dist/generator/ImportResolver.d.ts.map +1 -0
  60. package/dist/generator/ImportResolver.js +381 -0
  61. package/dist/generator/ImportResolver.js.map +1 -0
  62. package/dist/generator/RestClientGenerator.d.ts +72 -0
  63. package/dist/generator/RestClientGenerator.d.ts.map +1 -0
  64. package/dist/generator/RestClientGenerator.js +488 -0
  65. package/dist/generator/RestClientGenerator.js.map +1 -0
  66. package/dist/generator/TypeMapper.d.ts +62 -0
  67. package/dist/generator/TypeMapper.d.ts.map +1 -0
  68. package/dist/generator/TypeMapper.js +224 -0
  69. package/dist/generator/TypeMapper.js.map +1 -0
  70. package/dist/generator/index.d.ts +9 -0
  71. package/dist/generator/index.d.ts.map +1 -0
  72. package/dist/generator/index.js +9 -0
  73. package/dist/generator/index.js.map +1 -0
  74. package/dist/generator/modes/BaseGenerator.d.ts +67 -0
  75. package/dist/generator/modes/BaseGenerator.d.ts.map +1 -0
  76. package/dist/generator/modes/BaseGenerator.js +128 -0
  77. package/dist/generator/modes/BaseGenerator.js.map +1 -0
  78. package/dist/generator/modes/DecoratorGenerator.d.ts +28 -0
  79. package/dist/generator/modes/DecoratorGenerator.d.ts.map +1 -0
  80. package/dist/generator/modes/DecoratorGenerator.js +147 -0
  81. package/dist/generator/modes/DecoratorGenerator.js.map +1 -0
  82. package/dist/generator/modes/EmfGenerator.d.ts +22 -0
  83. package/dist/generator/modes/EmfGenerator.d.ts.map +1 -0
  84. package/dist/generator/modes/EmfGenerator.js +202 -0
  85. package/dist/generator/modes/EmfGenerator.js.map +1 -0
  86. package/dist/generator/modes/PlainGenerator.d.ts +16 -0
  87. package/dist/generator/modes/PlainGenerator.d.ts.map +1 -0
  88. package/dist/generator/modes/PlainGenerator.js +95 -0
  89. package/dist/generator/modes/PlainGenerator.js.map +1 -0
  90. package/dist/generator/modes/index.d.ts +5 -0
  91. package/dist/generator/modes/index.d.ts.map +1 -0
  92. package/dist/generator/modes/index.js +5 -0
  93. package/dist/generator/modes/index.js.map +1 -0
  94. package/dist/genmodel/GenClass.d.ts +37 -0
  95. package/dist/genmodel/GenClass.d.ts.map +1 -0
  96. package/dist/genmodel/GenClass.js +14 -0
  97. package/dist/genmodel/GenClass.js.map +1 -0
  98. package/dist/genmodel/GenDataType.d.ts +19 -0
  99. package/dist/genmodel/GenDataType.d.ts.map +1 -0
  100. package/dist/genmodel/GenDataType.js +46 -0
  101. package/dist/genmodel/GenDataType.js.map +1 -0
  102. package/dist/genmodel/GenEnum.d.ts +30 -0
  103. package/dist/genmodel/GenEnum.d.ts.map +1 -0
  104. package/dist/genmodel/GenEnum.js +11 -0
  105. package/dist/genmodel/GenEnum.js.map +1 -0
  106. package/dist/genmodel/GenFeature.d.ts +30 -0
  107. package/dist/genmodel/GenFeature.d.ts.map +1 -0
  108. package/dist/genmodel/GenFeature.js +15 -0
  109. package/dist/genmodel/GenFeature.js.map +1 -0
  110. package/dist/genmodel/GenModel.d.ts +54 -0
  111. package/dist/genmodel/GenModel.d.ts.map +1 -0
  112. package/dist/genmodel/GenModel.js +24 -0
  113. package/dist/genmodel/GenModel.js.map +1 -0
  114. package/dist/genmodel/GenOperation.d.ts +19 -0
  115. package/dist/genmodel/GenOperation.d.ts.map +1 -0
  116. package/dist/genmodel/GenOperation.js +10 -0
  117. package/dist/genmodel/GenOperation.js.map +1 -0
  118. package/dist/genmodel/GenPackage.d.ts +42 -0
  119. package/dist/genmodel/GenPackage.d.ts.map +1 -0
  120. package/dist/genmodel/GenPackage.js +25 -0
  121. package/dist/genmodel/GenPackage.js.map +1 -0
  122. package/dist/genmodel/GenerationMode.d.ts +23 -0
  123. package/dist/genmodel/GenerationMode.d.ts.map +1 -0
  124. package/dist/genmodel/GenerationMode.js +25 -0
  125. package/dist/genmodel/GenerationMode.js.map +1 -0
  126. package/dist/genmodel/index.d.ts +9 -0
  127. package/dist/genmodel/index.d.ts.map +1 -0
  128. package/dist/genmodel/index.js +10 -0
  129. package/dist/genmodel/index.js.map +1 -0
  130. package/dist/index.d.ts +66 -0
  131. package/dist/index.d.ts.map +1 -0
  132. package/dist/index.js +110 -0
  133. package/dist/index.js.map +1 -0
  134. package/dist/loader/EcoreLoader.d.ts +33 -0
  135. package/dist/loader/EcoreLoader.d.ts.map +1 -0
  136. package/dist/loader/EcoreLoader.js +91 -0
  137. package/dist/loader/EcoreLoader.js.map +1 -0
  138. package/dist/loader/index.d.ts +2 -0
  139. package/dist/loader/index.d.ts.map +1 -0
  140. package/dist/loader/index.js +2 -0
  141. package/dist/loader/index.js.map +1 -0
  142. package/dist/templates/partials/decorator/class-file.ejs +98 -0
  143. package/dist/templates/partials/decorator/enum-file.ejs +35 -0
  144. package/dist/templates/partials/decorator/interface-file.ejs +61 -0
  145. package/dist/templates/partials/decorator/model-annotations.ejs +91 -0
  146. package/dist/templates/partials/decorator/package-file.ejs +7 -0
  147. package/dist/templates/partials/emf/class-file.ejs +226 -0
  148. package/dist/templates/partials/emf/enum-file.ejs +36 -0
  149. package/dist/templates/partials/emf/factory-file.ejs +54 -0
  150. package/dist/templates/partials/emf/index-file.ejs +29 -0
  151. package/dist/templates/partials/emf/interface-file.ejs +72 -0
  152. package/dist/templates/partials/emf/package-file.ejs +149 -0
  153. package/dist/templates/partials/plain/class-file.ejs +75 -0
  154. package/dist/templates/partials/plain/enum-file.ejs +28 -0
  155. package/dist/templates/partials/plain/interface-file.ejs +61 -0
  156. package/dist/templates/partials/plain/package-file.ejs +6 -0
  157. package/dist/templates/templates/partials/decorator/class-file.ejs +98 -0
  158. package/dist/templates/templates/partials/decorator/enum-file.ejs +35 -0
  159. package/dist/templates/templates/partials/decorator/interface-file.ejs +61 -0
  160. package/dist/templates/templates/partials/decorator/model-annotations.ejs +91 -0
  161. package/dist/templates/templates/partials/decorator/package-file.ejs +7 -0
  162. package/dist/templates/templates/partials/emf/class-file.ejs +226 -0
  163. package/dist/templates/templates/partials/emf/enum-file.ejs +36 -0
  164. package/dist/templates/templates/partials/emf/factory-file.ejs +54 -0
  165. package/dist/templates/templates/partials/emf/index-file.ejs +29 -0
  166. package/dist/templates/templates/partials/emf/interface-file.ejs +72 -0
  167. package/dist/templates/templates/partials/emf/package-file.ejs +149 -0
  168. package/dist/templates/templates/partials/plain/class-file.ejs +75 -0
  169. package/dist/templates/templates/partials/plain/enum-file.ejs +28 -0
  170. package/dist/templates/templates/partials/plain/interface-file.ejs +61 -0
  171. package/dist/templates/templates/partials/plain/package-file.ejs +6 -0
  172. package/dist/util/EObjectHelper.d.ts +90 -0
  173. package/dist/util/EObjectHelper.d.ts.map +1 -0
  174. package/dist/util/EObjectHelper.js +381 -0
  175. package/dist/util/EObjectHelper.js.map +1 -0
  176. package/dist/util/StringUtils.d.ts +44 -0
  177. package/dist/util/StringUtils.d.ts.map +1 -0
  178. package/dist/util/StringUtils.js +115 -0
  179. package/dist/util/StringUtils.js.map +1 -0
  180. package/dist/util/index.d.ts +3 -0
  181. package/dist/util/index.d.ts.map +1 -0
  182. package/dist/util/index.js +3 -0
  183. package/dist/util/index.js.map +1 -0
  184. package/package.json +60 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DecoratorGenerator.js","sourceRoot":"","sources":["../../../src/generator/modes/DecoratorGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { GenPackage } from '../../genmodel/GenPackage.js';
2
+ import type { GenClass } from '../../genmodel/GenClass.js';
3
+ import type { GenEnum } from '../../genmodel/GenEnum.js';
4
+ import { BaseGenerator } from './BaseGenerator.js';
5
+ import { GeneratedFile } from '../GeneratedFile.js';
6
+ /**
7
+ * Generator for EMF-conformant TypeScript classes
8
+ */
9
+ export declare class EmfGenerator extends BaseGenerator {
10
+ protected getTemplateDir(): string;
11
+ generateClass(genClass: GenClass, genPackage: GenPackage): Promise<GeneratedFile>;
12
+ generateInterface(genClass: GenClass, genPackage: GenPackage): Promise<GeneratedFile>;
13
+ generateEnum(genEnum: GenEnum, genPackage: GenPackage): Promise<GeneratedFile>;
14
+ generatePackageFile(genPackage: GenPackage): Promise<GeneratedFile>;
15
+ generateFactory(genPackage: GenPackage): Promise<GeneratedFile | null>;
16
+ /**
17
+ * Generate barrel index file
18
+ */
19
+ generateIndex(genPackage: GenPackage): Promise<GeneratedFile>;
20
+ private toUpperSnake;
21
+ }
22
+ //# sourceMappingURL=EmfGenerator.d.ts.map
@@ -0,0 +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;IAC7C,SAAS,CAAC,cAAc,IAAI,MAAM;IAI5B,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;IAuEjF,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,OAAO,CAAC,YAAY;CAGrB"}
@@ -0,0 +1,202 @@
1
+ import { join, dirname } from 'path';
2
+ import { fileURLToPath } from 'url';
3
+ import { BaseGenerator } from './BaseGenerator.js';
4
+ import * as EObjectHelper from '../../util/EObjectHelper.js';
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = dirname(__filename);
7
+ /**
8
+ * Generator for EMF-conformant TypeScript classes
9
+ */
10
+ export class EmfGenerator extends BaseGenerator {
11
+ getTemplateDir() {
12
+ return join(__dirname, '../../templates/partials/emf');
13
+ }
14
+ async generateClass(genClass, genPackage) {
15
+ this.context.setCurrentPackage(genPackage);
16
+ this.context.setCurrentClass(genClass);
17
+ const eClass = genClass.ecoreClass;
18
+ const className = genClass.implClassName ?? `${EObjectHelper.getName(eClass)}Impl`;
19
+ const interfaceName = genClass.interfaceName ?? EObjectHelper.getName(eClass) ?? 'Unknown';
20
+ const nsURI = genPackage.ecorePackage.getNsURI() ?? '';
21
+ const packagePrefix = genPackage.prefix;
22
+ const isAbstractValue = EObjectHelper.isAbstract(eClass);
23
+ const superTypes = EObjectHelper.getESuperTypes(eClass);
24
+ // Determine the extends class - use first supertype's impl or rootExtendsClass
25
+ let extendsClass = this.context.genModel.rootExtendsClass;
26
+ let extendsImport = null;
27
+ if (superTypes.length > 0) {
28
+ const superType = superTypes[0];
29
+ const superTypeName = EObjectHelper.getName(superType);
30
+ if (superTypeName) {
31
+ extendsClass = `${superTypeName}Impl`;
32
+ extendsImport = `./${extendsClass}`;
33
+ }
34
+ }
35
+ // Calculate inherited feature count for feature ID offset
36
+ const countInheritedFeatures = (cls) => {
37
+ let count = 0;
38
+ for (const st of EObjectHelper.getESuperTypes(cls)) {
39
+ count += EObjectHelper.getEStructuralFeatures(st).length;
40
+ count += countInheritedFeatures(st);
41
+ }
42
+ return count;
43
+ };
44
+ const inheritedFeatureCount = countInheritedFeatures(eClass);
45
+ // Generate feature IDs (eLiterals) - offset by inherited feature count
46
+ const featureIds = [];
47
+ let featureId = inheritedFeatureCount;
48
+ for (const genFeature of genClass.genFeatures) {
49
+ const featureName = EObjectHelper.getName(genFeature.ecoreFeature) ?? 'unknown';
50
+ featureIds.push({
51
+ name: this.toUpperSnake(featureName),
52
+ id: featureId++,
53
+ feature: genFeature
54
+ });
55
+ }
56
+ const content = await this.render('class-file', {
57
+ genClass,
58
+ genPackage,
59
+ eClass,
60
+ className,
61
+ interfaceName,
62
+ nsURI,
63
+ packagePrefix,
64
+ isAbstract: isAbstractValue,
65
+ superTypes,
66
+ extendsClass,
67
+ extendsImport,
68
+ features: genClass.genFeatures,
69
+ featureIds,
70
+ operations: genClass.genOperations,
71
+ typeParameters: EObjectHelper.getETypeParameters(eClass),
72
+ rootExtendsClass: this.context.genModel.rootExtendsClass
73
+ });
74
+ const path = this.getClassPath(genClass, genPackage, 'Impl');
75
+ return this.createFile(path, content);
76
+ }
77
+ async generateInterface(genClass, genPackage) {
78
+ this.context.setCurrentPackage(genPackage);
79
+ this.context.setCurrentClass(genClass);
80
+ const eClass = genClass.ecoreClass;
81
+ const interfaceName = genClass.interfaceName ?? EObjectHelper.getName(eClass) ?? 'Unknown';
82
+ const content = await this.render('interface-file', {
83
+ genClass,
84
+ genPackage,
85
+ eClass,
86
+ interfaceName,
87
+ superTypes: EObjectHelper.getESuperTypes(eClass),
88
+ features: genClass.genFeatures,
89
+ operations: genClass.genOperations,
90
+ typeParameters: EObjectHelper.getETypeParameters(eClass),
91
+ rootExtendsInterface: this.context.genModel.rootExtendsInterface
92
+ });
93
+ const path = this.getInterfacePath(genClass, genPackage);
94
+ return this.createFile(path, content);
95
+ }
96
+ async generateEnum(genEnum, genPackage) {
97
+ this.context.setCurrentPackage(genPackage);
98
+ const eEnum = genEnum.ecoreEnum;
99
+ const enumName = EObjectHelper.getName(eEnum) ?? 'Unknown';
100
+ const literals = EObjectHelper.getELiterals(eEnum);
101
+ const content = await this.render('enum-file', {
102
+ genEnum,
103
+ genPackage,
104
+ eEnum,
105
+ enumName,
106
+ literals,
107
+ useStringValues: genEnum.useStringValues
108
+ });
109
+ const path = this.getEnumPath(genEnum, genPackage);
110
+ return this.createFile(path, content);
111
+ }
112
+ async generatePackageFile(genPackage) {
113
+ this.context.setCurrentPackage(genPackage);
114
+ const ePackage = genPackage.ecorePackage;
115
+ const packageName = genPackage.prefix ?? EObjectHelper.getName(ePackage) ?? 'Model';
116
+ const nsURI = ePackage.getNsURI() ?? '';
117
+ const nsPrefix = ePackage.getNsPrefix() ?? packageName.toLowerCase();
118
+ // Collect class literals
119
+ const classLiterals = [];
120
+ for (const genClass of genPackage.genClasses) {
121
+ const className = EObjectHelper.getName(genClass.ecoreClass) ?? 'Unknown';
122
+ const features = genClass.genFeatures.map(f => ({
123
+ name: EObjectHelper.getName(f.ecoreFeature) ?? 'unknown',
124
+ upperName: this.toUpperSnake(EObjectHelper.getName(f.ecoreFeature) ?? 'unknown')
125
+ }));
126
+ classLiterals.push({
127
+ className,
128
+ upperName: this.toUpperSnake(className),
129
+ features
130
+ });
131
+ }
132
+ const content = await this.render('package-file', {
133
+ genPackage,
134
+ ePackage,
135
+ packageName,
136
+ nsURI,
137
+ nsPrefix,
138
+ classLiterals,
139
+ genClasses: genPackage.genClasses,
140
+ genEnums: genPackage.genEnums
141
+ });
142
+ const packagePath = this.getPackagePath(genPackage);
143
+ return this.createFile(join(packagePath, `${packageName}Package.ts`), content);
144
+ }
145
+ async generateFactory(genPackage) {
146
+ this.context.setCurrentPackage(genPackage);
147
+ const ePackage = genPackage.ecorePackage;
148
+ const packageName = genPackage.prefix ?? EObjectHelper.getName(ePackage) ?? 'Model';
149
+ // Filter non-abstract classes
150
+ const concreteClasses = genPackage.genClasses.filter(gc => !EObjectHelper.isAbstract(gc.ecoreClass) && !EObjectHelper.isInterface(gc.ecoreClass));
151
+ const content = await this.render('factory-file', {
152
+ genPackage,
153
+ ePackage,
154
+ packageName,
155
+ concreteClasses
156
+ });
157
+ const packagePath = this.getPackagePath(genPackage);
158
+ return this.createFile(join(packagePath, `${packageName}Factory.ts`), content);
159
+ }
160
+ /**
161
+ * Generate barrel index file
162
+ */
163
+ async generateIndex(genPackage) {
164
+ const ePackage = genPackage.ecorePackage;
165
+ const packageName = genPackage.prefix ?? EObjectHelper.getName(ePackage) ?? 'Model';
166
+ const exports = [];
167
+ // Export interfaces
168
+ for (const genClass of genPackage.genClasses) {
169
+ const name = EObjectHelper.getName(genClass.ecoreClass);
170
+ if (name) {
171
+ exports.push(name);
172
+ }
173
+ }
174
+ // Export implementations
175
+ for (const genClass of genPackage.genClasses) {
176
+ if (!EObjectHelper.isAbstract(genClass.ecoreClass) && !EObjectHelper.isInterface(genClass.ecoreClass)) {
177
+ const implName = genClass.implClassName ?? `${EObjectHelper.getName(genClass.ecoreClass)}Impl`;
178
+ exports.push(implName);
179
+ }
180
+ }
181
+ // Export enums
182
+ for (const genEnum of genPackage.genEnums) {
183
+ const name = EObjectHelper.getName(genEnum.ecoreEnum);
184
+ if (name) {
185
+ exports.push(name);
186
+ }
187
+ }
188
+ const content = await this.render('index-file', {
189
+ genPackage,
190
+ packageName,
191
+ exports,
192
+ genClasses: genPackage.genClasses,
193
+ genEnums: genPackage.genEnums
194
+ });
195
+ const packagePath = this.getPackagePath(genPackage);
196
+ return this.createFile(join(packagePath, 'index.ts'), content);
197
+ }
198
+ toUpperSnake(str) {
199
+ return str.replace(/([A-Z])/g, '_$1').toUpperCase().replace(/^_/, '');
200
+ }
201
+ }
202
+ //# sourceMappingURL=EmfGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmfGenerator.js","sourceRoot":"","sources":["../../../src/generator/modes/EmfGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { GenPackage } from '../../genmodel/GenPackage.js';
2
+ import type { GenClass } from '../../genmodel/GenClass.js';
3
+ import type { GenEnum } from '../../genmodel/GenEnum.js';
4
+ import { BaseGenerator } from './BaseGenerator.js';
5
+ import { GeneratedFile } from '../GeneratedFile.js';
6
+ /**
7
+ * Generator for plain TypeScript classes (POJOs)
8
+ */
9
+ export declare class PlainGenerator extends BaseGenerator {
10
+ protected getTemplateDir(): string;
11
+ generateClass(genClass: GenClass, genPackage: GenPackage): Promise<GeneratedFile>;
12
+ generateInterface(genClass: GenClass, genPackage: GenPackage): Promise<GeneratedFile>;
13
+ generateEnum(genEnum: GenEnum, genPackage: GenPackage): Promise<GeneratedFile>;
14
+ generatePackageFile(genPackage: GenPackage): Promise<GeneratedFile>;
15
+ }
16
+ //# sourceMappingURL=PlainGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlainGenerator.d.ts","sourceRoot":"","sources":["../../../src/generator/modes/PlainGenerator.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,cAAe,SAAQ,aAAa;IAC/C,SAAS,CAAC,cAAc,IAAI,MAAM;IAI5B,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;IAuBjF,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;IAqB9E,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;CAiC1E"}
@@ -0,0 +1,95 @@
1
+ import { join, dirname } from 'path';
2
+ import { fileURLToPath } from 'url';
3
+ import { BaseGenerator } from './BaseGenerator.js';
4
+ const __filename = fileURLToPath(import.meta.url);
5
+ const __dirname = dirname(__filename);
6
+ /**
7
+ * Generator for plain TypeScript classes (POJOs)
8
+ */
9
+ export class PlainGenerator extends BaseGenerator {
10
+ getTemplateDir() {
11
+ return join(__dirname, '../../templates/partials/plain');
12
+ }
13
+ async generateClass(genClass, genPackage) {
14
+ this.context.setCurrentPackage(genPackage);
15
+ this.context.setCurrentClass(genClass);
16
+ const eClass = genClass.ecoreClass;
17
+ const className = genClass.implClassName ?? eClass.getName() ?? 'Unknown';
18
+ const content = await this.render('class-file', {
19
+ genClass,
20
+ genPackage,
21
+ eClass,
22
+ className,
23
+ isAbstract: eClass.isAbstract(),
24
+ superTypes: eClass.getESuperTypes(),
25
+ features: genClass.genFeatures,
26
+ operations: genClass.genOperations,
27
+ typeParameters: eClass.getETypeParameters()
28
+ });
29
+ const path = this.getClassPath(genClass, genPackage);
30
+ return this.createFile(path, content);
31
+ }
32
+ async generateInterface(genClass, genPackage) {
33
+ this.context.setCurrentPackage(genPackage);
34
+ this.context.setCurrentClass(genClass);
35
+ const eClass = genClass.ecoreClass;
36
+ const interfaceName = genClass.interfaceName ?? eClass.getName() ?? 'Unknown';
37
+ const content = await this.render('interface-file', {
38
+ genClass,
39
+ genPackage,
40
+ eClass,
41
+ interfaceName,
42
+ superTypes: eClass.getESuperTypes(),
43
+ features: genClass.genFeatures,
44
+ operations: genClass.genOperations,
45
+ typeParameters: eClass.getETypeParameters()
46
+ });
47
+ const path = this.getInterfacePath(genClass, genPackage);
48
+ return this.createFile(path, content);
49
+ }
50
+ async generateEnum(genEnum, genPackage) {
51
+ this.context.setCurrentPackage(genPackage);
52
+ const eEnum = genEnum.ecoreEnum;
53
+ const enumName = eEnum.getName() ?? 'Unknown';
54
+ const literals = eEnum.getELiterals();
55
+ const content = await this.render('enum-file', {
56
+ genEnum,
57
+ genPackage,
58
+ eEnum,
59
+ enumName,
60
+ literals,
61
+ useStringValues: genEnum.useStringValues,
62
+ generateAsConst: genEnum.generateAsConst
63
+ });
64
+ const path = this.getEnumPath(genEnum, genPackage);
65
+ return this.createFile(path, content);
66
+ }
67
+ async generatePackageFile(genPackage) {
68
+ this.context.setCurrentPackage(genPackage);
69
+ const ePackage = genPackage.ecorePackage;
70
+ const packageName = genPackage.prefix ?? ePackage.getName() ?? 'Model';
71
+ // Collect all exports
72
+ const exports = [];
73
+ for (const genClass of genPackage.genClasses) {
74
+ const name = genClass.ecoreClass.getName();
75
+ if (name) {
76
+ exports.push(name);
77
+ }
78
+ }
79
+ for (const genEnum of genPackage.genEnums) {
80
+ const name = genEnum.ecoreEnum.getName();
81
+ if (name) {
82
+ exports.push(name);
83
+ }
84
+ }
85
+ const content = await this.render('package-file', {
86
+ genPackage,
87
+ ePackage,
88
+ packageName,
89
+ exports
90
+ });
91
+ const packagePath = this.getPackagePath(genPackage);
92
+ return this.createFile(join(packagePath, 'index.ts'), content);
93
+ }
94
+ }
95
+ //# sourceMappingURL=PlainGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlainGenerator.js","sourceRoot":"","sources":["../../../src/generator/modes/PlainGenerator.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,cAAe,SAAQ,aAAa;IACrC,cAAc;QACtB,OAAO,IAAI,CAAC,SAAS,EAAE,gCAAgC,CAAC,CAAC;IAC3D,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;QAE1E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YAC9C,QAAQ;YACR,UAAU;YACV,MAAM;YACN,SAAS;YACT,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;SAC5C,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,QAAkB,EAAE,UAAsB;QAChE,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,aAAa,GAAG,QAAQ,CAAC,aAAa,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC;QAE9E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;YAClD,QAAQ;YACR,UAAU;YACV,MAAM;YACN,aAAa;YACb,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;SAC5C,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAgB,EAAE,UAAsB;QACzD,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAE3C,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC;QAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC;QAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QAEtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAC7C,OAAO;YACP,UAAU;YACV,KAAK;YACL,QAAQ;YACR,QAAQ;YACR,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,eAAe,EAAE,OAAO,CAAC,eAAe;SACzC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,UAAsB;QAC9C,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAE3C,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC;QACzC,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC;QAEvE,sBAAsB;QACtB,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC3C,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACzC,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;YAChD,UAAU;YACV,QAAQ;YACR,WAAW;YACX,OAAO;SACR,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ export * from './BaseGenerator.js';
2
+ export * from './PlainGenerator.js';
3
+ export * from './DecoratorGenerator.js';
4
+ export * from './EmfGenerator.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generator/modes/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './BaseGenerator.js';
2
+ export * from './PlainGenerator.js';
3
+ export * from './DecoratorGenerator.js';
4
+ export * from './EmfGenerator.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generator/modes/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { EClass } from '@emfts/core';
2
+ import type { GenFeature } from './GenFeature.js';
3
+ import type { GenOperation } from './GenOperation.js';
4
+ /**
5
+ * Generation configuration for an EClass
6
+ */
7
+ export interface GenClass {
8
+ /** Reference to the Ecore class */
9
+ ecoreClass: EClass;
10
+ /** Generate interface file */
11
+ generateInterface: boolean;
12
+ /** Generate implementation class file */
13
+ generateImpl: boolean;
14
+ /** Use DynamicEObject instead of generated class (EMF mode) */
15
+ dynamic: boolean;
16
+ /** Custom implementation class name */
17
+ implClassName?: string;
18
+ /** Custom interface name */
19
+ interfaceName?: string;
20
+ /** Feature used for label in editors */
21
+ labelFeature?: GenFeature;
22
+ /** Base class override (for custom inheritance) */
23
+ baseClass?: string;
24
+ /** Features to generate */
25
+ genFeatures: GenFeature[];
26
+ /** Operations to generate */
27
+ genOperations: GenOperation[];
28
+ /** Documentation override */
29
+ documentation?: string;
30
+ /** Image path for editors */
31
+ image?: string;
32
+ }
33
+ /**
34
+ * Create default GenClass from EClass
35
+ */
36
+ export declare function createDefaultGenClass(eClass: EClass): GenClass;
37
+ //# sourceMappingURL=GenClass.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenClass.d.ts","sourceRoot":"","sources":["../../src/genmodel/GenClass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;IAEnB,8BAA8B;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAE3B,yCAAyC;IACzC,YAAY,EAAE,OAAO,CAAC;IAEtB,+DAA+D;IAC/D,OAAO,EAAE,OAAO,CAAC;IAEjB,uCAAuC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,wCAAwC;IACxC,YAAY,CAAC,EAAE,UAAU,CAAC;IAE1B,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,2BAA2B;IAC3B,WAAW,EAAE,UAAU,EAAE,CAAC;IAE1B,6BAA6B;IAC7B,aAAa,EAAE,YAAY,EAAE,CAAC;IAE9B,6BAA6B;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAS9D"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Create default GenClass from EClass
3
+ */
4
+ export function createDefaultGenClass(eClass) {
5
+ return {
6
+ ecoreClass: eClass,
7
+ generateInterface: true,
8
+ generateImpl: true,
9
+ dynamic: false,
10
+ genFeatures: [],
11
+ genOperations: []
12
+ };
13
+ }
14
+ //# sourceMappingURL=GenClass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenClass.js","sourceRoot":"","sources":["../../src/genmodel/GenClass.ts"],"names":[],"mappings":"AA6CA;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc;IAClD,OAAO;QACL,UAAU,EAAE,MAAM;QAClB,iBAAiB,EAAE,IAAI;QACvB,YAAY,EAAE,IAAI;QAClB,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,EAAE;QACf,aAAa,EAAE,EAAE;KAClB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { EDataType } from '@emfts/core';
2
+ /**
3
+ * Generation configuration for an EDataType
4
+ */
5
+ export interface GenDataType {
6
+ /** Reference to the Ecore data type */
7
+ ecoreDataType: EDataType;
8
+ /** TypeScript type to map to */
9
+ tsType: string;
10
+ /** Serialization function name */
11
+ serializeFunction?: string;
12
+ /** Deserialization function name */
13
+ deserializeFunction?: string;
14
+ }
15
+ /**
16
+ * Create default GenDataType from EDataType
17
+ */
18
+ export declare function createDefaultGenDataType(dataType: EDataType): GenDataType;
19
+ //# sourceMappingURL=GenDataType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenDataType.d.ts","sourceRoot":"","sources":["../../src/genmodel/GenDataType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,uCAAuC;IACvC,aAAa,EAAE,SAAS,CAAC;IAEzB,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IAEf,kCAAkC;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,oCAAoC;IACpC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,SAAS,GAAG,WAAW,CAKzE"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Create default GenDataType from EDataType
3
+ */
4
+ export function createDefaultGenDataType(dataType) {
5
+ return {
6
+ ecoreDataType: dataType,
7
+ tsType: mapDefaultTsType(dataType.getName() ?? 'any')
8
+ };
9
+ }
10
+ /**
11
+ * Map Ecore type name to default TypeScript type
12
+ */
13
+ function mapDefaultTsType(typeName) {
14
+ switch (typeName) {
15
+ case 'EString':
16
+ case 'EChar':
17
+ case 'ECharacterObject':
18
+ return 'string';
19
+ case 'EBoolean':
20
+ case 'EBooleanObject':
21
+ return 'boolean';
22
+ case 'EInt':
23
+ case 'EIntegerObject':
24
+ case 'EByte':
25
+ case 'EByteObject':
26
+ case 'ELong':
27
+ case 'ELongObject':
28
+ case 'EShort':
29
+ case 'EShortObject':
30
+ case 'EFloat':
31
+ case 'EFloatObject':
32
+ case 'EDouble':
33
+ case 'EDoubleObject':
34
+ case 'EBigInteger':
35
+ case 'EBigDecimal':
36
+ return 'number';
37
+ case 'EDate':
38
+ return 'Date';
39
+ case 'EJavaObject':
40
+ case 'EJavaClass':
41
+ return 'any';
42
+ default:
43
+ return typeName;
44
+ }
45
+ }
46
+ //# sourceMappingURL=GenDataType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenDataType.js","sourceRoot":"","sources":["../../src/genmodel/GenDataType.ts"],"names":[],"mappings":"AAmBA;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAAmB;IAC1D,OAAO;QACL,aAAa,EAAE,QAAQ;QACvB,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC;KACtD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,QAAgB;IACxC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS,CAAC;QACf,KAAK,OAAO,CAAC;QACb,KAAK,kBAAkB;YACrB,OAAO,QAAQ,CAAC;QAClB,KAAK,UAAU,CAAC;QAChB,KAAK,gBAAgB;YACnB,OAAO,SAAS,CAAC;QACnB,KAAK,MAAM,CAAC;QACZ,KAAK,gBAAgB,CAAC;QACtB,KAAK,OAAO,CAAC;QACb,KAAK,aAAa,CAAC;QACnB,KAAK,OAAO,CAAC;QACb,KAAK,aAAa,CAAC;QACnB,KAAK,QAAQ,CAAC;QACd,KAAK,cAAc,CAAC;QACpB,KAAK,QAAQ,CAAC;QACd,KAAK,cAAc,CAAC;QACpB,KAAK,SAAS,CAAC;QACf,KAAK,eAAe,CAAC;QACrB,KAAK,aAAa,CAAC;QACnB,KAAK,aAAa;YAChB,OAAO,QAAQ,CAAC;QAClB,KAAK,OAAO;YACV,OAAO,MAAM,CAAC;QAChB,KAAK,aAAa,CAAC;QACnB,KAAK,YAAY;YACf,OAAO,KAAK,CAAC;QACf;YACE,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { EEnum } from '@emfts/core';
2
+ /**
3
+ * Generation configuration for an EEnum
4
+ */
5
+ export interface GenEnum {
6
+ /** Reference to the Ecore enum */
7
+ ecoreEnum: EEnum;
8
+ /** Use string values instead of numeric */
9
+ useStringValues: boolean;
10
+ /** Generate as const object instead of enum */
11
+ generateAsConst: boolean;
12
+ /** Documentation override */
13
+ documentation?: string;
14
+ }
15
+ /**
16
+ * Generation configuration for an EEnumLiteral
17
+ */
18
+ export interface GenEnumLiteral {
19
+ /** Literal name */
20
+ name: string;
21
+ /** Custom value override */
22
+ value?: string | number;
23
+ /** Documentation override */
24
+ documentation?: string;
25
+ }
26
+ /**
27
+ * Create default GenEnum from EEnum
28
+ */
29
+ export declare function createDefaultGenEnum(eEnum: EEnum): GenEnum;
30
+ //# sourceMappingURL=GenEnum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenEnum.d.ts","sourceRoot":"","sources":["../../src/genmodel/GenEnum.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,kCAAkC;IAClC,SAAS,EAAE,KAAK,CAAC;IAEjB,2CAA2C;IAC3C,eAAe,EAAE,OAAO,CAAC;IAEzB,+CAA+C;IAC/C,eAAe,EAAE,OAAO,CAAC;IAEzB,6BAA6B;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IAEb,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB,6BAA6B;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAM1D"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Create default GenEnum from EEnum
3
+ */
4
+ export function createDefaultGenEnum(eEnum) {
5
+ return {
6
+ ecoreEnum: eEnum,
7
+ useStringValues: true,
8
+ generateAsConst: false
9
+ };
10
+ }
11
+ //# sourceMappingURL=GenEnum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenEnum.js","sourceRoot":"","sources":["../../src/genmodel/GenEnum.ts"],"names":[],"mappings":"AAiCA;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAY;IAC/C,OAAO;QACL,SAAS,EAAE,KAAK;QAChB,eAAe,EAAE,IAAI;QACrB,eAAe,EAAE,KAAK;KACvB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { EStructuralFeature } from '@emfts/core';
2
+ import { PropertyMode } from './GenerationMode.js';
3
+ /**
4
+ * Generation configuration for an EStructuralFeature (EAttribute or EReference)
5
+ */
6
+ export interface GenFeature {
7
+ /** Reference to the Ecore feature */
8
+ ecoreFeature: EStructuralFeature;
9
+ /** Property access mode */
10
+ property: PropertyMode;
11
+ /** Generate notification on change (EMF mode) */
12
+ notify: boolean;
13
+ /** Include in children/contents (for references) */
14
+ children: boolean;
15
+ /** Create child instances automatically */
16
+ createChild: boolean;
17
+ /** Sort property choices in editor */
18
+ propertySortChoices: boolean;
19
+ /** Custom getter name override */
20
+ getterName?: string;
21
+ /** Custom setter name override */
22
+ setterName?: string;
23
+ /** Documentation override */
24
+ documentation?: string;
25
+ }
26
+ /**
27
+ * Create default GenFeature from EStructuralFeature
28
+ */
29
+ export declare function createDefaultGenFeature(feature: EStructuralFeature): GenFeature;
30
+ //# sourceMappingURL=GenFeature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenFeature.d.ts","sourceRoot":"","sources":["../../src/genmodel/GenFeature.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,qCAAqC;IACrC,YAAY,EAAE,kBAAkB,CAAC;IAEjC,2BAA2B;IAC3B,QAAQ,EAAE,YAAY,CAAC;IAEvB,iDAAiD;IACjD,MAAM,EAAE,OAAO,CAAC;IAEhB,oDAAoD;IACpD,QAAQ,EAAE,OAAO,CAAC;IAElB,2CAA2C;IAC3C,WAAW,EAAE,OAAO,CAAC;IAErB,sCAAsC;IACtC,mBAAmB,EAAE,OAAO,CAAC;IAE7B,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,6BAA6B;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,kBAAkB,GAAG,UAAU,CAS/E"}
@@ -0,0 +1,15 @@
1
+ import { PropertyMode } from './GenerationMode.js';
2
+ /**
3
+ * Create default GenFeature from EStructuralFeature
4
+ */
5
+ export function createDefaultGenFeature(feature) {
6
+ return {
7
+ ecoreFeature: feature,
8
+ property: PropertyMode.EDITABLE,
9
+ notify: true,
10
+ children: false,
11
+ createChild: false,
12
+ propertySortChoices: false
13
+ };
14
+ }
15
+ //# sourceMappingURL=GenFeature.js.map