@sap-ux/fe-mockserver-admin 0.0.11 → 0.0.13

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.js CHANGED
@@ -29,7 +29,35 @@ const fs = __importStar(require("fs"));
29
29
  const path = __importStar(require("path"));
30
30
  const generate_entity_files_1 = require("./generate-entity-files");
31
31
  const program = new commander_1.Command();
32
- program.name('fe-mockserver-admin').description('CLI for FE Mockserver administration tasks').version('0.0.1');
32
+ program.name('fe-mockserver-admin').description('CLI for FE Mockserver administration tasks').version('0.0.2');
33
+ program
34
+ .command('generate-types')
35
+ .description('Generate TypeScript types from OData metadata')
36
+ .requiredOption('-m, --metadata <path>', 'Path to the metadata.xml file')
37
+ .option('-o, --output <path>', 'Output directory for generated types (defaults to metadata directory)')
38
+ .action(async (options) => {
39
+ try {
40
+ const metadataPath = path.resolve(options.metadata);
41
+ const outputDir = options.output ? path.resolve(options.output) : path.dirname(metadataPath);
42
+ // Validate metadata file exists
43
+ if (!fs.existsSync(metadataPath)) {
44
+ console.error(`Error: Metadata file not found at: ${metadataPath}`);
45
+ process.exit(1);
46
+ }
47
+ // Ensure output directory exists
48
+ if (!fs.existsSync(outputDir)) {
49
+ fs.mkdirSync(outputDir, { recursive: true });
50
+ }
51
+ console.log(`Loading metadata from: ${metadataPath}`);
52
+ console.log(`Output directory: ${outputDir}`);
53
+ const { generateTypes } = await Promise.resolve().then(() => __importStar(require('./generate-types')));
54
+ await generateTypes(metadataPath, outputDir);
55
+ }
56
+ catch (error) {
57
+ console.error('Error generating types:', error);
58
+ process.exit(1);
59
+ }
60
+ });
33
61
  program
34
62
  .command('generate-entity-files')
35
63
  .description('Generate entity files from OData metadata')
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,uCAAyB;AACzB,2CAA6B;AAC7B,mEAA8D;AAE9D,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC,4CAA4C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAE/G,OAAO;KACF,OAAO,CAAC,uBAAuB,CAAC;KAChC,WAAW,CAAC,2CAA2C,CAAC;KACxD,cAAc,CAAC,uBAAuB,EAAE,+BAA+B,CAAC;KACxE,MAAM,CAAC,qBAAqB,EAAE,uEAAuE,CAAC;KACtG,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,IAAI;QACA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAE7F,gCAAgC;QAChC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;YAC9B,OAAO,CAAC,KAAK,CAAC,sCAAsC,YAAY,EAAE,CAAC,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACnB;QAED,iCAAiC;QACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;YAC3B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;SAChD;QAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,YAAY,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,qBAAqB,SAAS,EAAE,CAAC,CAAC;QAE9C,MAAM,IAAA,2CAAmB,EAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAEnD,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;KAC3D;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;AACL,CAAC,CAAC,CAAC;AAEP,8BAA8B;AAC9B,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,7 @@
1
+ /**
2
+ *
3
+ * @param METADATA_PATH
4
+ * @param OUTPUT_DIR
5
+ */
1
6
  export declare function generateEntityFiles(METADATA_PATH: string, OUTPUT_DIR: string): Promise<void>;
2
7
  //# sourceMappingURL=generate-entity-files.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-entity-files.d.ts","sourceRoot":"","sources":["../src/generate-entity-files.ts"],"names":[],"mappings":"AAaA,wBAAsB,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iBAwBlF"}
1
+ {"version":3,"file":"generate-entity-files.d.ts","sourceRoot":"","sources":["../src/generate-entity-files.ts"],"names":[],"mappings":"AAgBA;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iBAyBlF"}
@@ -28,6 +28,12 @@ const annotation_converter_1 = require("@sap-ux/annotation-converter");
28
28
  const edmx_parser_1 = require("@sap-ux/edmx-parser");
29
29
  const fs = __importStar(require("fs"));
30
30
  const path = __importStar(require("path"));
31
+ const generate_types_1 = require("./generate-types");
32
+ /**
33
+ *
34
+ * @param METADATA_PATH
35
+ * @param OUTPUT_DIR
36
+ */
31
37
  async function generateEntityFiles(METADATA_PATH, OUTPUT_DIR) {
32
38
  try {
33
39
  console.log('Loading metadata.xml...');
@@ -36,6 +42,7 @@ async function generateEntityFiles(METADATA_PATH, OUTPUT_DIR) {
36
42
  const parsedMetadata = (0, edmx_parser_1.parse)(metadataContent);
37
43
  console.log('Converting metadata with annotation converter...');
38
44
  const convertedMetadata = (0, annotation_converter_1.convert)(parsedMetadata);
45
+ await (0, generate_types_1.generateTypes)(METADATA_PATH, OUTPUT_DIR);
39
46
  // Generate TS files for each entity set
40
47
  for (const entitySet of convertedMetadata.entitySets) {
41
48
  console.log(`Generating TS file for ${entitySet.name}...`);
@@ -50,33 +57,68 @@ async function generateEntityFiles(METADATA_PATH, OUTPUT_DIR) {
50
57
  }
51
58
  }
52
59
  exports.generateEntityFiles = generateEntityFiles;
60
+ /**
61
+ *
62
+ * @param convertedMetadata
63
+ * @param OUTPUT_DIR
64
+ */
53
65
  async function generateEntityContainerFile(convertedMetadata, OUTPUT_DIR) {
54
66
  const actions = convertedMetadata.actionImports;
55
67
  if (actions.length > 0) {
68
+ const actionFunctionCase = actions
69
+ .map((action) => {
70
+ let returnType = 'unknown';
71
+ const actionDataType = `EntityContainerAction_${action.name}Data`;
72
+ if (action.action.returnType) {
73
+ returnType = mapODataTypeToTypeScript(action.action.returnType, action.action.returnTypeReference);
74
+ }
75
+ if (action.action.returnCollection) {
76
+ returnType += '[]';
77
+ }
78
+ return ` async ${action.name}(_actionDefinition: Action, _actionData: ${actionDataType}, _keys: KeyDefinitions, _odataRequest: ODataRequest): Promise<${returnType}> {
79
+ throw new Error('${action.name} is not implemented');
80
+ }`;
81
+ })
82
+ .join('\n');
56
83
  const actionSwitchCase = actions
57
84
  .map((action) => {
58
85
  return `case '${action.name}':
59
- break; // TODO: Implement ${action.name} action`;
86
+ return this.${action.name}(actionDefinition, actionData, keys, odataRequest);`;
60
87
  })
61
88
  .join('\n');
62
- const mockEntityContainer = `import type {MockEntityContainerContributor, ODataRequest, Action} from "@sap-ux/ui5-middleware-fe-mockserver";
89
+ const importMap = new Set();
90
+ const entityActionParams = generateEntityActionParams('EntityContainer', actions.reduce((acc, action) => {
91
+ acc[action.name] = action.action;
92
+ return acc;
93
+ }, {}), importMap);
94
+ const outputPath = path.join(OUTPUT_DIR, `EntityContainer.ts`);
95
+ const mockEntityContainer = `import type {ODataRequest, Action, KeyDefinitions} from "@sap-ux/ui5-middleware-fe-mockserver";
96
+ import {MockEntityContainerContributorClass} from "@sap-ux/ui5-middleware-fe-mockserver";
97
+ import type { ${Array.from(importMap).join(', ')}} from "./ODataTypes";
98
+ ${entityActionParams}
63
99
 
100
+ export default class EntityContainer extends MockEntityContainerContributorClass {
64
101
 
65
- const EntityContainer: MockEntityContainerContributor = {
66
- async executeAction(actionDefinition: Action, _actionData: any, _keys: Record<string, unknown>, _odataRequest: ODataRequest): Promise<unknown> {
67
- switch(actionDefinition.name) {
102
+ ${actionFunctionCase}
103
+
104
+ async executeAction(actionDefinition: Action, actionData: EntityContainerActionData, keys: KeyDefinitions, odataRequest: ODataRequest): Promise<unknown> {
105
+ switch(actionData._type) {
68
106
  ${actionSwitchCase}
69
- // Implement action handlers here
70
107
  default:
71
- return undefined; // No custom action handler, proceed with default handling
108
+ this.throwError(\`Action \${actionDefinition.name} not implemented\`, 501);
109
+ return;
72
110
  }
73
111
  }
74
- }
75
- export default EntityContainer;`;
76
- const outputPath = path.join(OUTPUT_DIR, `EntityContainer.ts`);
112
+ }`;
77
113
  fs.writeFileSync(outputPath, mockEntityContainer);
78
114
  }
79
115
  }
116
+ /**
117
+ *
118
+ * @param entitySet
119
+ * @param metadata
120
+ * @param OUTPUT_DIR
121
+ */
80
122
  async function generateEntityFile(entitySet, metadata, OUTPUT_DIR) {
81
123
  const entityType = entitySet.entityType;
82
124
  const keyName = entityType.name.split('.').pop() + 'Keys';
@@ -94,44 +136,68 @@ async function generateEntityFile(entitySet, metadata, OUTPUT_DIR) {
94
136
  ((_c = prop.targetType.navigationProperties.by_name(prop.partner)) === null || _c === void 0 ? void 0 : _c.referentialConstraint.length) === 0);
95
137
  });
96
138
  // Generate TypeScript interface for the entity
97
- const entityInterface = generateEntityInterface(entityType);
98
- const entityNavPropNamesInterface = generateEntityNavPropNamesInterface(entityType);
99
- const entityNavPropTypesInterface = generateEntityNavPropTypesInterface(entityType);
100
- const entityActionParams = generateEntityActionParams(entitySet, actions);
139
+ const importMap = new Set();
140
+ importMap.add(entityType.name);
141
+ importMap.add(entityType.name + 'Keys');
142
+ const entityActionParams = generateEntityActionParams(entitySet.entityType.name, actions, importMap);
101
143
  // Generate action switch cases
144
+ const actionFunctionCase = Object.keys(actions)
145
+ .filter((actionName) => {
146
+ return (!actionName.endsWith('draftEdit') &&
147
+ !actionName.endsWith('draftActivate') &&
148
+ !actionName.endsWith('draftPrepare') &&
149
+ !actionName.endsWith('draftDiscard'));
150
+ })
151
+ .map((actionName) => {
152
+ const action = actions[actionName];
153
+ let returnType = 'unknown';
154
+ const actionDataType = `${entitySet.entityType.name}Action_${action.name}Data`;
155
+ if (action.returnType) {
156
+ returnType = mapODataTypeToTypeScript(action.returnType, action.returnTypeReference);
157
+ }
158
+ if (action.returnCollection) {
159
+ returnType += '[]';
160
+ }
161
+ return ` async ${action.name}(_actionDefinition: Action, _actionData: ${actionDataType}, _keys: ${keyName}, _odataRequest: ODataRequest): Promise<${returnType}> {
162
+ throw new Error('${action.name} is not implemented');
163
+ }`;
164
+ })
165
+ .join('\n');
102
166
  const actionSwitchCases = generateActionSwitchCases(actions);
103
167
  let executeActionMethod = '';
104
- if (Object.keys(actions).length > 0) {
105
- executeActionMethod = `async executeAction(actionDefinition: Action, actionData: ${actionDataName}, _keys: ${keyName}, _odataRequest: ODataRequest): Promise<object | undefined> {
168
+ if (entityActionParams.length > 0) {
169
+ executeActionMethod = `async executeAction(actionDefinition: Action, actionData: ${actionDataName}, keys: ${keyName}, odataRequest: ODataRequest): Promise<object | undefined> {
106
170
  switch(actionData._type) {
107
171
  ${actionSwitchCases}
108
172
  default:
109
- console.warn(\`Unhandled action: \${actionDefinition.name}\`);
110
- return undefined;
173
+ this.throwError(\`Action \${actionDefinition.name} not implemented\`, 501);
174
+ return;
111
175
  }
112
176
  }`;
113
177
  }
114
178
  // Generate getReferentialConstraints method
115
179
  const getReferentialConstraintsMethod = generateGetReferentialConstraintsMethod(entityNavPropsWithoutConstraints);
116
180
  const allMethods = [];
181
+ if (actionFunctionCase.length) {
182
+ allMethods.push(actionFunctionCase);
183
+ }
117
184
  if (executeActionMethod.length) {
118
185
  allMethods.push(executeActionMethod);
119
186
  }
120
187
  if (getReferentialConstraintsMethod.length) {
121
188
  allMethods.push(getReferentialConstraintsMethod);
122
189
  }
123
- const fileContent = `import type { MockDataContributor, ODataRequest, Action, NavigationProperty, PartialReferentialConstraint } from "@sap-ux/ui5-middleware-fe-mockserver"
124
- ${entityNavPropTypesInterface}
125
- ${entityNavPropNamesInterface}
126
- ${entityInterface}
190
+ const fileContent = `import type { ODataRequest, Action, NavigationProperty, PartialReferentialConstraint } from "@sap-ux/ui5-middleware-fe-mockserver"
191
+ import { MockDataContributorClass } from "@sap-ux/ui5-middleware-fe-mockserver"
192
+ import type { ${Array.from(importMap).join(', ')}} from "./ODataTypes";
127
193
  ${entityActionParams}
128
194
 
129
195
 
130
- const ${entitySet.name}: MockDataContributor<${entitySet.entityTypeName.split('.').pop()}Type> = {
131
- ${allMethods.join(',')}
196
+ export default class ${entitySet.name}Contributor extends MockDataContributorClass<${entitySet.entityTypeName
197
+ .split('.')
198
+ .pop()}> {
199
+ ${allMethods.join('\n\n')}
132
200
  }
133
-
134
- export default ${entitySet.name};
135
201
  `;
136
202
  //if(allMethods.length > 0) {
137
203
  const outputPath = path.join(OUTPUT_DIR, `${entitySet.name}.ts`);
@@ -141,95 +207,7 @@ export default ${entitySet.name};
141
207
  // console.log(`No method to generate for ${entitySet.name}, skipping file creation.`);
142
208
  //}
143
209
  }
144
- function generateEntityNavPropNamesInterface(entityType) {
145
- const typeName = entityType.name.split('.').pop() + 'NavPropNames';
146
- const properties = [];
147
- for (const prop of entityType.navigationProperties) {
148
- if (prop.name !== 'DraftAdministrativeData') {
149
- properties.push(`"${prop.name}"`);
150
- }
151
- }
152
- if (!entityType || !entityType.navigationProperties || properties.length === 0) {
153
- return `export type ${typeName} = {
154
- // Navigation properties not available in metadata
155
- }`;
156
- }
157
- return `export type ${typeName} = ${properties.join(' | ')};`;
158
- }
159
- function generateEntityNavPropTypesInterface(entityType) {
160
- const currentType = entityType.name.split('.').pop() + 'Type';
161
- const typeName = entityType.name.split('.').pop() + 'NavPropTypes';
162
- const importStatements = new Set();
163
- if (!entityType || !entityType.navigationProperties) {
164
- return `export type ${typeName} = {
165
- // Navigation properties not available in metadata
166
- }`;
167
- }
168
- const properties = [];
169
- for (const prop of entityType.navigationProperties) {
170
- const targetTypeName = prop.targetType.name.split('.').pop() + 'Type';
171
- if (targetTypeName !== 'DraftAdministrativeDataType' && targetTypeName !== currentType) {
172
- importStatements.add(`import type { ${targetTypeName} } from "./${prop.targetType.name.split('.').pop()}";`);
173
- }
174
- if (targetTypeName !== 'DraftAdministrativeDataType') {
175
- if (prop.isCollection) {
176
- properties.push(`${prop.name}: ${targetTypeName}[];`);
177
- }
178
- else {
179
- properties.push(`${prop.name}: ${targetTypeName};`);
180
- }
181
- }
182
- }
183
- return `${Array.from(importStatements).join('\n')}
184
- export type ${typeName} = {
185
- ${properties.join('\n')}
186
- }`;
187
- }
188
- function generateEntityInterface(entityType) {
189
- var _a;
190
- const typeName = entityType.name.split('.').pop() + 'Type';
191
- const keyName = entityType.name.split('.').pop() + 'Keys';
192
- if (!entityType || !entityType.keys) {
193
- return `export type ${typeName} = {
194
- // Entity type definition not available in metadata
195
- };
196
- export type ${keyName} = {
197
- // Entity type definition not available in metadata
198
- };`;
199
- }
200
- const keys = [];
201
- const properties = [];
202
- // Add key properties
203
- if (entityType.keys) {
204
- for (const key of entityType.keys) {
205
- const prop = entityType.entityProperties.by_name(key.name);
206
- if (prop) {
207
- const tsType = mapODataTypeToTypeScript(prop.type);
208
- const nullable = prop.nullable ? '?' : '';
209
- properties.push(` ${key.name}${nullable}: ${tsType};`);
210
- keys.push(` ${key.name}${nullable}: ${tsType};`);
211
- }
212
- }
213
- }
214
- // Add other entity properties
215
- if (entityType.entityProperties) {
216
- for (const prop of entityType.entityProperties) {
217
- if (!((_a = entityType.keys) === null || _a === void 0 ? void 0 : _a.some((k) => k.name === prop.name))) {
218
- const tsType = mapODataTypeToTypeScript(prop.type);
219
- const nullable = prop.nullable ? '?' : '';
220
- properties.push(` ${prop.name}${nullable}: ${tsType};`);
221
- }
222
- }
223
- }
224
- return `export type ${typeName} = {
225
- ${properties.join('\n')}
226
- };
227
-
228
- export type ${keyName} = {
229
- ${keys.join('\n')}
230
- };`;
231
- }
232
- function mapODataTypeToTypeScript(odataType) {
210
+ function mapODataTypeToTypeScript(odataType, typeReference) {
233
211
  const typeMap = {
234
212
  'Edm.String': 'string',
235
213
  'Edm.Int32': 'number',
@@ -244,12 +222,13 @@ function mapODataTypeToTypeScript(odataType) {
244
222
  'Edm.Guid': 'string',
245
223
  'Edm.Binary': 'string'
246
224
  };
247
- return typeMap[odataType] || 'any';
225
+ return typeMap[odataType] || (typeReference === null || typeReference === void 0 ? void 0 : typeReference.name) || 'any';
248
226
  }
249
- function generateEntityActionParams(entitySet, actions) {
227
+ function generateEntityActionParams(entityTypeName, actions, importMap) {
250
228
  if (Object.keys(actions).length === 0) {
251
229
  return '';
252
230
  }
231
+ const actionDataTypes = [];
253
232
  const actionParams = Object.keys(actions)
254
233
  .filter((actionName) => {
255
234
  return (!actionName.endsWith('draftEdit') &&
@@ -259,22 +238,43 @@ function generateEntityActionParams(entitySet, actions) {
259
238
  })
260
239
  .map((actionName) => {
261
240
  const action = actions[actionName];
241
+ let actionReturnType = mapODataTypeToTypeScript(action.returnType);
242
+ if (actionReturnType === 'any' && action.returnTypeReference) {
243
+ actionReturnType = action.returnTypeReference.name;
244
+ importMap.add(actionReturnType);
245
+ }
262
246
  if (action.parameters && action.parameters.length > 0) {
263
247
  const params = action.parameters
264
248
  .map((param) => {
265
249
  let tsType = mapODataTypeToTypeScript(param.type);
266
- if (tsType === 'any' && param.type === entitySet.entityTypeName) {
267
- tsType = entitySet.entityTypeName.split('.').pop() + 'Type';
250
+ if (tsType === 'any' && param.typeReference) {
251
+ tsType = param.typeReference.name;
252
+ importMap.add(tsType);
253
+ }
254
+ if (param.isCollection) {
255
+ tsType += '[]';
268
256
  }
269
257
  const optional = param.nullable ? '?' : '';
270
258
  return ` ${param.name}${optional}: ${tsType};`;
271
259
  })
272
260
  .join('\n');
273
- return ` | {\n _type: '${action.name}';\n${params}\n}`;
261
+ const actionDataTypeName = `${entityTypeName}Action_${action.name}Data`;
262
+ const actionDataType = `type ${actionDataTypeName} = {\n${params}\n}`;
263
+ actionDataTypes.push(actionDataType);
264
+ return ` | {\n _type: '${action.name}';\n} & ${actionDataTypeName}`;
265
+ }
266
+ else {
267
+ const actionDataTypeName = `${entityTypeName}Action_${action.name}Data`;
268
+ const actionDataType = `type ${actionDataTypeName} = {\n}`;
269
+ actionDataTypes.push(actionDataType);
270
+ return ` | {\n _type: '${action.name}';\n} `;
274
271
  }
275
272
  })
276
273
  .join('\n');
277
- return `export type ${entitySet.entityType.name}ActionData =\n${actionParams};`;
274
+ if (actionParams.length > 0) {
275
+ return `${actionDataTypes.join('\n')}\n;export type ${entityTypeName}ActionData =\n${actionParams};`;
276
+ }
277
+ return '';
278
278
  }
279
279
  function generateActionSwitchCases(actions) {
280
280
  return Object.keys(actions)
@@ -283,9 +283,7 @@ function generateActionSwitchCases(actions) {
283
283
  !actionName.endsWith('draftPrepare') &&
284
284
  !actionName.endsWith('draftDiscard'))
285
285
  .map((actionName) => ` case '${actions[actionName].name}':
286
- // TODO: Implement ${actions[actionName].name} action
287
- console.log('Executing action: ${actions[actionName].name}');
288
- return {};`)
286
+ return this.${actions[actionName].name}(actionDefinition, actionData, keys, odataRequest);`)
289
287
  .join('\n');
290
288
  }
291
289
  function generateGetReferentialConstraintsMethod(navPropsWithoutConstraints) {
@@ -1 +1 @@
1
- {"version":3,"file":"generate-entity-files.js","sourceRoot":"","sources":["../src/generate-entity-files.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uEAAuD;AACvD,qDAA4C;AAS5C,uCAAyB;AACzB,2CAA6B;AAEtB,KAAK,UAAU,mBAAmB,CAAC,aAAqB,EAAE,UAAkB;IAC/E,IAAI;QACA,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,MAAM,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAE/D,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,MAAM,cAAc,GAAgB,IAAA,mBAAK,EAAC,eAAe,CAAC,CAAC;QAE3D,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAChE,MAAM,iBAAiB,GAAsB,IAAA,8BAAO,EAAC,cAAc,CAAC,CAAC;QAErE,wCAAwC;QACxC,KAAK,MAAM,SAAS,IAAI,iBAAiB,CAAC,UAAU,EAAE;YAClD,OAAO,CAAC,GAAG,CAAC,0BAA0B,SAAS,CAAC,IAAI,KAAK,CAAC,CAAC;YAC3D,MAAM,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC;SACtE;QAED,MAAM,2BAA2B,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;QAEjE,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;KAC3D;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;AACL,CAAC;AAxBD,kDAwBC;AAED,KAAK,UAAU,2BAA2B,CAAC,iBAAoC,EAAE,UAAkB;IAC/F,MAAM,OAAO,GAAG,iBAAiB,CAAC,aAAa,CAAC;IAChD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,MAAM,gBAAgB,GAAG,OAAO;aAC3B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACZ,OAAO,SAAS,MAAM,CAAC,IAAI;wCACH,MAAM,CAAC,IAAI,SAAS,CAAC;QACjD,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhB,MAAM,mBAAmB,GAAG;;;;;;cAMtB,gBAAgB;;;;;;;gCAOE,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;QAC/D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;KACrD;AACL,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC7B,SAAoB,EACpB,QAA2B,EAC3B,UAAkB;IAElB,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;IACxC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;IAC1D,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;IACvE,kCAAkC;IAClC,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;IAE7C,oEAAoE;IACpE,MAAM,gCAAgC,GAAG,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAC3E,CAAC,IAAI,EAAE,EAAE;;QACL,OAAA,IAAI,CAAC,IAAI,KAAK,yBAAyB;YACvC,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,oDAAoD;YACrF,IAAI,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC;YACvC,CAAA,MAAA,MAAA,IAAI,CAAC,WAAW,CAAC,MAAM,0CAAE,qBAAqB,0CAAE,MAAM,MAAK,CAAC;YAC5D,CAAC,CAAC,IAAI,CAAC,OAAO;gBACV,CAAA,MAAA,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,0CAAE,qBAAqB,CAAC,MAAM,MAAK,CAAC,CAAC,CAAA;KAAA,CAC1G,CAAC;IAEF,+CAA+C;IAC/C,MAAM,eAAe,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,2BAA2B,GAAG,mCAAmC,CAAC,UAAU,CAAC,CAAC;IACpF,MAAM,2BAA2B,GAAG,mCAAmC,CAAC,UAAU,CAAC,CAAC;IACpF,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1E,+BAA+B;IAC/B,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,mBAAmB,GAAG,EAAE,CAAC;IAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACjC,mBAAmB,GAAG,6DAA6D,cAAc,YAAY,OAAO;;EAE1H,iBAAiB;;;;;MAKb,CAAC;KACF;IAED,4CAA4C;IAC5C,MAAM,+BAA+B,GAAG,uCAAuC,CAAC,gCAAgC,CAAC,CAAC;IAClH,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,IAAI,mBAAmB,CAAC,MAAM,EAAE;QAC5B,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;KACxC;IACD,IAAI,+BAA+B,CAAC,MAAM,EAAE;QACxC,UAAU,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;KACpD;IACD,MAAM,WAAW,GAAG;EACtB,2BAA2B;EAC3B,2BAA2B;EAC3B,eAAe;EACf,kBAAkB;;;QAGZ,SAAS,CAAC,IAAI,yBAAyB,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE;MAClF,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;;;iBAGT,SAAS,CAAC,IAAI;CAC9B,CAAC;IAEE,6BAA6B;IAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,SAAS,CAAC,IAAI,KAAK,CAAC,CAAC;IACjE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,cAAc,UAAU,EAAE,CAAC,CAAC;IACxC,UAAU;IACV,yFAAyF;IACzF,GAAG;AACP,CAAC;AAED,SAAS,mCAAmC,CAAC,UAAsB;IAC/D,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC;IAEnE,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,oBAAoB,EAAE;QAChD,IAAI,IAAI,CAAC,IAAI,KAAK,yBAAyB,EAAE;YACzC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;SACrC;KACJ;IACD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,oBAAoB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5E,OAAO,eAAe,QAAQ;;EAEpC,CAAC;KACE;IACD,OAAO,eAAe,QAAQ,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAClE,CAAC;AACD,SAAS,mCAAmC,CAAC,UAAsB;IAC/D,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;IAC9D,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC;IACnE,MAAM,gBAAgB,GAAgB,IAAI,GAAG,EAAE,CAAC;IAChD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE;QACjD,OAAO,eAAe,QAAQ;;EAEpC,CAAC;KACE;IAED,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,oBAAoB,EAAE;QAChD,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;QACtE,IAAI,cAAc,KAAK,6BAA6B,IAAI,cAAc,KAAK,WAAW,EAAE;YACpF,gBAAgB,CAAC,GAAG,CAChB,iBAAiB,cAAc,cAAc,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CACzF,CAAC;SACL;QACD,IAAI,cAAc,KAAK,6BAA6B,EAAE;YAClD,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,cAAc,KAAK,CAAC,CAAC;aACzD;iBAAM;gBACH,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,cAAc,GAAG,CAAC,CAAC;aACvD;SACJ;KACJ;IAED,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;cACvC,QAAQ;EACpB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;EACrB,CAAC;AACH,CAAC;AACD,SAAS,uBAAuB,CAAC,UAAsB;;IACnD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;IAC3D,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;IAE1D,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;QACjC,OAAO,eAAe,QAAQ;;;cAGxB,OAAO;;GAElB,CAAC;KACC;IAED,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,qBAAqB;IACrB,IAAI,UAAU,CAAC,IAAI,EAAE;QACjB,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE;YAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3D,IAAI,IAAI,EAAE;gBACN,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1C,UAAU,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,GAAG,QAAQ,KAAK,MAAM,GAAG,CAAC,CAAC;gBAC1D,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,GAAG,QAAQ,KAAK,MAAM,GAAG,CAAC,CAAC;aACvD;SACJ;KACJ;IAED,8BAA8B;IAC9B,IAAI,UAAU,CAAC,gBAAgB,EAAE;QAC7B,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,gBAAgB,EAAE;YAC5C,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,IAAI,0CAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAA,EAAE;gBAC1D,MAAM,MAAM,GAAG,wBAAwB,CAAE,IAAY,CAAC,IAAI,CAAC,CAAC;gBAC5D,MAAM,QAAQ,GAAI,IAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,UAAU,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,GAAG,QAAQ,KAAK,MAAM,GAAG,CAAC,CAAC;aAC9D;SACJ;KACJ;IAED,OAAO,eAAe,QAAQ;EAChC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;;cAGT,OAAO;EACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;GACd,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,SAAiB;IAC/C,MAAM,OAAO,GAA2B;QACpC,YAAY,EAAE,QAAQ;QACtB,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,QAAQ;QACrB,YAAY,EAAE,QAAQ;QACtB,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,SAAS;QACxB,cAAc,EAAE,MAAM;QACtB,oBAAoB,EAAE,MAAM;QAC5B,UAAU,EAAE,MAAM;QAClB,UAAU,EAAE,MAAM;QAClB,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,QAAQ;KACzB,CAAC;IAEF,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;AACvC,CAAC;AAED,SAAS,0BAA0B,CAAC,SAAoB,EAAE,OAA+B;IACrF,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACnC,OAAO,EAAE,CAAC;KACb;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;SACpC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;QACnB,OAAO,CACH,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC;YACjC,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC;YACrC,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC;YACpC,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,CACvC,CAAC;IACN,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QAChB,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACnC,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU;iBAC3B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACX,IAAI,MAAM,GAAG,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClD,IAAI,MAAM,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,cAAc,EAAE;oBAC7D,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;iBAC/D;gBACD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,OAAO,OAAO,KAAK,CAAC,IAAI,GAAG,QAAQ,KAAK,MAAM,GAAG,CAAC;YACtD,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,OAAO,wBAAwB,MAAM,CAAC,IAAI,OAAO,MAAM,KAAK,CAAC;SAChE;IACL,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhB,OAAO,eAAe,SAAS,CAAC,UAAU,CAAC,IAAI,iBAAiB,YAAY,GAAG,CAAC;AACpF,CAAC;AAED,SAAS,yBAAyB,CAAC,OAA+B;IAC9D,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;SACtB,MAAM,CACH,CAAC,UAAU,EAAE,EAAE,CACX,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC;QACjC,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC;QACrC,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC;QACpC,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,CAC3C;SACA,GAAG,CACA,CAAC,UAAU,EAAE,EAAE,CAAC,qBAAqB,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI;qCACpC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI;iDACZ,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI;2BAC9C,CAClB;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,uCAAuC,CAAC,0BAAgD;IAC7F,IAAI,0BAA0B,CAAC,MAAM,KAAK,CAAC,EAAE;QACzC,OAAO,EAAE,CAAC;KACb;IAED,MAAM,iBAAiB,GAAG,0BAA0B;SAC/C,GAAG,CACA,CAAC,IAAI,EAAE,EAAE,CACL;oBACI,IAAI,CAAC,IAAI,wBAAwB,IAAI,CAAC,cAAc;;mBAErD,CACV;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhB,OAAO;;;;eAII,iBAAiB;;;;MAI1B,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"generate-entity-files.js","sourceRoot":"","sources":["../src/generate-entity-files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function generateTypes(METADATA_PATH: string, OUTPUT_DIR: string): Promise<void>;
2
+ //# sourceMappingURL=generate-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-types.d.ts","sourceRoot":"","sources":["../src/generate-types.ts"],"names":[],"mappings":"AA0IA,wBAAsB,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iBAmD5E"}
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateTypes = void 0;
7
+ const annotation_converter_1 = require("@sap-ux/annotation-converter");
8
+ const edmx_parser_1 = require("@sap-ux/edmx-parser");
9
+ const fs_1 = __importDefault(require("fs"));
10
+ // Helper to build lookup maps for types
11
+ function buildTypeMaps(metadata) {
12
+ const entityTypeMap = new Map();
13
+ const complexTypeMap = new Map();
14
+ const typeDefMap = new Map();
15
+ for (const et of metadata.entityTypes) {
16
+ entityTypeMap.set(et.fullyQualifiedName || et.name, et);
17
+ }
18
+ for (const ct of metadata.complexTypes) {
19
+ complexTypeMap.set(ct.fullyQualifiedName || ct.name, ct);
20
+ }
21
+ for (const td of metadata.typeDefinitions) {
22
+ typeDefMap.set(td.fullyQualifiedName || td.name, td);
23
+ }
24
+ return { entityTypeMap, complexTypeMap, typeDefMap };
25
+ }
26
+ // Enhanced mapping function to handle complex types and typeDefs
27
+ function mapEdmTypeToTsType(edmType, typeMaps) {
28
+ // Handle collection types
29
+ const collectionMatch = edmType.match(/^Collection\((.+)\)$/);
30
+ if (collectionMatch) {
31
+ const innerType = mapEdmTypeToTsType(collectionMatch[1], typeMaps);
32
+ return `${innerType}[]`;
33
+ }
34
+ // Primitive EDM types
35
+ switch (edmType) {
36
+ case 'Edm.String':
37
+ return 'string';
38
+ case 'Edm.Boolean':
39
+ return 'boolean';
40
+ case 'Edm.Int32':
41
+ case 'Edm.Int16':
42
+ case 'Edm.Int64':
43
+ case 'Edm.Decimal':
44
+ case 'Edm.Double':
45
+ case 'Edm.Single':
46
+ case 'Edm.Byte':
47
+ case 'Edm.SByte':
48
+ return 'number';
49
+ case 'Edm.DateTimeOffset':
50
+ case 'Edm.Date':
51
+ case 'Edm.TimeOfDay':
52
+ return 'string';
53
+ case 'Edm.Guid':
54
+ case 'Edm.Binary':
55
+ return 'string';
56
+ }
57
+ // Complex types
58
+ if (typeMaps.complexTypeMap.has(edmType)) {
59
+ return typeMaps.complexTypeMap.get(edmType).name;
60
+ }
61
+ // Type definitions
62
+ if (typeMaps.typeDefMap.has(edmType)) {
63
+ return typeMaps.typeDefMap.get(edmType).name;
64
+ }
65
+ // Entity types (rare for property, but possible for navigation)
66
+ if (typeMaps.entityTypeMap.has(edmType)) {
67
+ return typeMaps.entityTypeMap.get(edmType).name;
68
+ }
69
+ // Fallback: strip namespace if present
70
+ return edmType.split('.').pop() || edmType;
71
+ }
72
+ // Generate TypeScript type for an entity type and its keys
73
+ function generateEntityType(entityType, typeMaps) {
74
+ var _a;
75
+ let result = `export type ${entityType.name} = {\n`;
76
+ for (const prop of entityType.entityProperties) {
77
+ const tsType = mapEdmTypeToTsType(prop.type, typeMaps);
78
+ result += ` ${prop.name}${prop.nullable ? '?' : ''}: ${tsType};\n`;
79
+ }
80
+ // Include navigation properties (wrapped with NavPropTo<...>)
81
+ if (entityType.navigationProperties && entityType.navigationProperties.length > 0) {
82
+ for (const nav of entityType.navigationProperties) {
83
+ // Resolve target entity type name
84
+ let targetName;
85
+ if (nav.targetType && nav.targetType.name) {
86
+ targetName = nav.targetType.name;
87
+ }
88
+ else {
89
+ const fqn = nav.targetTypeName || ((_a = nav.targetType) === null || _a === void 0 ? void 0 : _a.fullyQualifiedName) || '';
90
+ const et = typeMaps.entityTypeMap.get(fqn) || typeMaps.entityTypeMap.get((fqn || '').toString());
91
+ targetName = (et === null || et === void 0 ? void 0 : et.name) || (fqn ? fqn.split('.').pop() : 'any');
92
+ }
93
+ const navInnerType = nav.isCollection ? `${targetName}[]` : targetName;
94
+ // Navigation properties are typically optional in generated types
95
+ result += ` ${nav.name}?: NavPropTo<${navInnerType}>;\n`;
96
+ }
97
+ }
98
+ result += '}\n';
99
+ result += `export type ${entityType.name}Keys = {\n`;
100
+ for (const prop of entityType.keys) {
101
+ const tsType = mapEdmTypeToTsType(prop.type, typeMaps);
102
+ result += ` ${prop.name}${prop.nullable ? '?' : ''}: ${tsType};\n`;
103
+ }
104
+ result += '}\n';
105
+ return result;
106
+ }
107
+ // Generate TypeScript type for a complex type
108
+ function generateComplexType(complexType, typeMaps) {
109
+ let result = `export type ${complexType.name} = {\n`;
110
+ for (const prop of complexType.properties) {
111
+ const tsType = mapEdmTypeToTsType(prop.type, typeMaps);
112
+ result += ` ${prop.name}${prop.nullable ? '?' : ''}: ${tsType};\n`;
113
+ }
114
+ result += '}\n';
115
+ return result;
116
+ }
117
+ // Generate TypeScript type alias for a type definition
118
+ function generateTypeDefinition(typeDefinition, typeMaps) {
119
+ const tsType = mapEdmTypeToTsType(typeDefinition.underlyingType, typeMaps);
120
+ return `export type ${typeDefinition.name} = ${tsType};\n`;
121
+ }
122
+ async function generateTypes(METADATA_PATH, OUTPUT_DIR) {
123
+ try {
124
+ console.log('Loading metadata.xml...');
125
+ const metadataContent = fs_1.default.readFileSync(METADATA_PATH, 'utf8');
126
+ console.log('Parsing EDMX...');
127
+ const parsedMetadata = (0, edmx_parser_1.parse)(metadataContent);
128
+ console.log('Converting metadata with annotation converter...');
129
+ const convertedMetadata = (0, annotation_converter_1.convert)(parsedMetadata);
130
+ // Build type maps for reference resolution
131
+ const typeMaps = buildTypeMaps(convertedMetadata);
132
+ let typeDefinitions = 'export type NavPropTo<T> = T;';
133
+ // Generate TS files for each entity set
134
+ typeDefinitions += '// ====== Entity Types ======\n\n';
135
+ for (const entityType of convertedMetadata.entityTypes) {
136
+ console.log(`Generating TS file for ${entityType.name}...`);
137
+ typeDefinitions += '// Type definitions for ' + entityType.name + '\n';
138
+ typeDefinitions += generateEntityType(entityType, typeMaps);
139
+ typeDefinitions += '\n';
140
+ }
141
+ if (convertedMetadata.complexTypes.length > 0) {
142
+ typeDefinitions += '// ====== Complex Types ======\n\n';
143
+ for (const complexType of convertedMetadata.complexTypes) {
144
+ console.log(`Generating TS file for ${complexType.name}...`);
145
+ typeDefinitions += '// Type definitions for ' + complexType.name + '\n';
146
+ typeDefinitions += generateComplexType(complexType, typeMaps);
147
+ typeDefinitions += '\n';
148
+ }
149
+ }
150
+ if (convertedMetadata.typeDefinitions.length > 0) {
151
+ typeDefinitions += '// ====== Type Definition ===\n\n';
152
+ for (const typeDefinition of convertedMetadata.typeDefinitions) {
153
+ console.log(`Generating TS file for ${typeDefinition.name}...`);
154
+ typeDefinitions += '// Type definitions for ' + typeDefinition.name + '\n';
155
+ typeDefinitions += generateTypeDefinition(typeDefinition, typeMaps);
156
+ typeDefinitions += '\n';
157
+ }
158
+ }
159
+ const outputPath = `${OUTPUT_DIR}/ODataTypes.d.ts`;
160
+ fs_1.default.writeFileSync(outputPath, typeDefinitions, 'utf8');
161
+ console.log(`Type definitions written to ${outputPath}`);
162
+ }
163
+ catch (error) {
164
+ console.error('Error generating entity files:', error);
165
+ process.exit(1);
166
+ }
167
+ }
168
+ exports.generateTypes = generateTypes;
169
+ //# sourceMappingURL=generate-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-types.js","sourceRoot":"","sources":["../src/generate-types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
- import type { MockEntityContainerContributor } from '@sap-ux/fe-mockserver-core';
2
- declare const MockEntityContainer: MockEntityContainerContributor;
3
- export default MockEntityContainer;
1
+ import type { ODataRequest } from '@sap-ux/fe-mockserver-core';
2
+ import { MockEntityContainerContributorClass } from '@sap-ux/fe-mockserver-core';
3
+ export default class MockEntityContainer extends MockEntityContainerContributorClass {
4
+ handleRequest(odataRequest: ODataRequest): Promise<unknown>;
5
+ myMethod(): void;
6
+ }
4
7
  //# sourceMappingURL=EntityContainer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntityContainer.d.ts","sourceRoot":"","sources":["../../src/mockdata/EntityContainer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAgB,MAAM,4BAA4B,CAAC;AAE/F,QAAA,MAAM,mBAAmB,EAAE,8BAK1B,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"EntityContainer.d.ts","sourceRoot":"","sources":["../../src/mockdata/EntityContainer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,mCAAmC,EAAE,MAAM,4BAA4B,CAAC;AAEjF,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,mCAAmC;IAC1E,aAAa,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAMjE,QAAQ,IAAI,IAAI;CAGnB"}
@@ -1,10 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const MockEntityContainer = {
3
+ const fe_mockserver_core_1 = require("@sap-ux/fe-mockserver-core");
4
+ class MockEntityContainer extends fe_mockserver_core_1.MockEntityContainerContributorClass {
4
5
  async handleRequest(odataRequest) {
6
+ this.myMethod();
7
+ // Example of handling a request and returning a custom response
5
8
  odataRequest.addResponseHeader('content-type', 'text/html ;charset=utf-8');
6
9
  return `<html><body><h1>Hello</h1></body></html>`;
7
10
  }
8
- };
11
+ myMethod() {
12
+ this.base.getEntityInterface('eoeoe');
13
+ }
14
+ }
9
15
  exports.default = MockEntityContainer;
10
16
  //# sourceMappingURL=EntityContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntityContainer.js","sourceRoot":"","sources":["../../src/mockdata/EntityContainer.ts"],"names":[],"mappings":";;AAEA,MAAM,mBAAmB,GAAmC;IACxD,KAAK,CAAC,aAAa,CAAC,YAA0B;QAC1C,YAAY,CAAC,iBAAiB,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;QAC3E,OAAO,0CAA0C,CAAC;IACtD,CAAC;CACJ,CAAC;AAEF,kBAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"EntityContainer.js","sourceRoot":"","sources":["../../src/mockdata/EntityContainer.ts"],"names":[],"mappings":";;AACA,mEAAiF;AAEjF,MAAqB,mBAAoB,SAAQ,wDAAmC;IAChF,KAAK,CAAC,aAAa,CAAC,YAA0B;QAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,gEAAgE;QAChE,YAAY,CAAC,iBAAiB,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;QAC3E,OAAO,0CAA0C,CAAC;IACtD,CAAC;IACD,QAAQ;QACJ,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;CACJ;AAVD,sCAUC"}
@@ -1,4 +1,5 @@
1
- import type { MockDataContributor } from '@sap-ux/fe-mockserver-core';
1
+ import { MockDataContributorClass } from '@sap-ux/fe-mockserver-core';
2
+ import type ODataRequest from '@sap-ux/fe-mockserver-core/dist/request/odataRequest';
2
3
  type ServiceDefinition = {
3
4
  url: string;
4
5
  alias?: string;
@@ -6,6 +7,14 @@ type ServiceDefinition = {
6
7
  /**
7
8
  * Mock data contributor for services.
8
9
  */
9
- declare const Services: MockDataContributor<ServiceDefinition>;
10
- export default Services;
10
+ export default class Services extends MockDataContributorClass<ServiceDefinition> {
11
+ /**
12
+ * Return all the service definitions.
13
+ * @param __odataRequest
14
+ * @returns A promise that resolves to an array of service definitions.
15
+ */
16
+ getAllEntries(__odataRequest: ODataRequest): Promise<ServiceDefinition[]>;
17
+ doSomething(): Promise<void>;
18
+ }
19
+ export {};
11
20
  //# sourceMappingURL=Services.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Services.d.ts","sourceRoot":"","sources":["../../src/mockdata/Services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAiB,MAAM,4BAA4B,CAAC;AAIrF,KAAK,iBAAiB,GAAG;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AACF;;GAEG;AACH,QAAA,MAAM,QAAQ,EAAE,mBAAmB,CAAC,iBAAiB,CA2BpD,CAAC;AACF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Services.d.ts","sourceRoot":"","sources":["../../src/mockdata/Services.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,YAAY,MAAM,sDAAsD,CAAC;AAGrF,KAAK,iBAAiB,GAAG;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AACF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,wBAAwB,CAAC,iBAAiB,CAAC;IAC7E;;;;OAIG;IACG,aAAa,CAAC,cAAc,EAAE,YAAY,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAoBzE,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;CAGrC"}
@@ -3,20 +3,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fe_mockserver_core_1 = require("@sap-ux/fe-mockserver-core");
6
7
  const node_path_1 = __importDefault(require("node:path"));
7
8
  /**
8
9
  * Mock data contributor for services.
9
10
  */
10
- const Services = {
11
+ class Services extends fe_mockserver_core_1.MockDataContributorClass {
11
12
  /**
12
13
  * Return all the service definitions.
13
14
  * @param __odataRequest
14
15
  * @returns A promise that resolves to an array of service definitions.
15
16
  */
16
17
  async getAllEntries(__odataRequest) {
17
- var _a, _b, _c;
18
- const configs = (_b = (_a = this.base) === null || _a === void 0 ? void 0 : _a.getServiceRegistry().getServices()) !== null && _b !== void 0 ? _b : [];
19
- (_c = this.base) === null || _c === void 0 ? void 0 : _c.getServiceRegistry().loadServices([
18
+ var _a;
19
+ this.doSomething();
20
+ const configs = (_a = this.base.getServiceRegistry().getServices()) !== null && _a !== void 0 ? _a : [];
21
+ this.base.getServiceRegistry().loadServices([
20
22
  {
21
23
  alias: `AdminService${configs.length}`,
22
24
  urlPath: `/admin-${configs.length}`,
@@ -32,6 +34,9 @@ const Services = {
32
34
  };
33
35
  });
34
36
  }
35
- };
37
+ async doSomething() {
38
+ await this.base.getServiceRegistry().loadServices([]);
39
+ }
40
+ }
36
41
  exports.default = Services;
37
42
  //# sourceMappingURL=Services.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Services.js","sourceRoot":"","sources":["../../src/mockdata/Services.ts"],"names":[],"mappings":";;;;;AAEA,0DAA6B;AAM7B;;GAEG;AACH,MAAM,QAAQ,GAA2C;IACrD;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAEf,cAA4B;;QAE5B,MAAM,OAAO,GAAoB,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,kBAAkB,GAAG,WAAW,EAAE,mCAAI,EAAE,CAAC;QACrF,MAAA,IAAI,CAAC,IAAI,0CAAE,kBAAkB,GAAG,YAAY,CAAC;YACzC;gBACI,KAAK,EAAE,eAAe,OAAO,CAAC,MAAM,EAAE;gBACtC,OAAO,EAAE,UAAU,OAAO,CAAC,MAAM,EAAE;gBACnC,YAAY,EAAE,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC;gBACrD,YAAY,EAAE,mBAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBAClC,gBAAgB,EAAE,KAAK;aAC1B;SACJ,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1B,OAAO;gBACH,GAAG,EAAE,MAAM,CAAC,OAAO;gBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;aACtB,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAC;AACF,kBAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Services.js","sourceRoot":"","sources":["../../src/mockdata/Services.ts"],"names":[],"mappings":";;;;;AACA,mEAAsE;AAEtE,0DAA6B;AAM7B;;GAEG;AACH,MAAqB,QAAS,SAAQ,6CAA2C;IAC7E;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,cAA4B;;QAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,OAAO,GAAoB,MAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,WAAW,EAAE,mCAAI,EAAE,CAAC;QACpF,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,YAAY,CAAC;YACxC;gBACI,KAAK,EAAE,eAAe,OAAO,CAAC,MAAM,EAAE;gBACtC,OAAO,EAAE,UAAU,OAAO,CAAC,MAAM,EAAE;gBACnC,YAAY,EAAE,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC;gBACrD,YAAY,EAAE,mBAAI,CAAC,IAAI,CAAC,SAAS,CAAC;gBAClC,gBAAgB,EAAE,KAAK;aAC1B;SACJ,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1B,OAAO;gBACH,GAAG,EAAE,MAAM,CAAC,OAAO;gBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;aACtB,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,WAAW;QACb,MAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;CACJ;AA7BD,2BA6BC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sap-ux/fe-mockserver-admin",
3
- "version": "0.0.11",
3
+ "version": "0.0.13",
4
4
  "description": "SAP Fiori OData - Mockserver admin service to list running services",
5
5
  "repository": {
6
6
  "type": "git",
@@ -19,10 +19,10 @@
19
19
  "dependencies": {
20
20
  "commander": "^11.1.0",
21
21
  "router": "2.0.0",
22
- "@sap-ux/fe-mockserver-core": "1.6.15",
23
- "@sap-ux/edmx-parser": "0.9.6",
24
22
  "@sap-ux/annotation-converter": "0.10.7",
25
- "@sap-ux/vocabularies-types": "0.13.0"
23
+ "@sap-ux/vocabularies-types": "0.13.0",
24
+ "@sap-ux/edmx-parser": "0.9.6",
25
+ "@sap-ux/fe-mockserver-core": "1.6.17"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@ui5/logger": "^4.0.1",