diff --git a/forward_engineering/config.json b/forward_engineering/config.json index f7680cb..55aa6eb 100644 --- a/forward_engineering/config.json +++ b/forward_engineering/config.json @@ -43,5 +43,7 @@ "value": false } ], - "isApiSchema": true + "isApiSchema": true, + "disableJSONDataGeneration": true, + "disableAttributesSorting": true } diff --git a/package.json b/package.json index e59d55d..5b0bd00 100644 --- a/package.json +++ b/package.json @@ -117,7 +117,8 @@ "propertyNames": [ "schemas" ] - } + }, + "collapseEntityAttributesInRE": true } }, "description": "Hackolade plugin for OpenAPI", diff --git a/reverse_engineering/api.js b/reverse_engineering/api.js index e391b5f..14dcb4e 100644 --- a/reverse_engineering/api.js +++ b/reverse_engineering/api.js @@ -167,11 +167,16 @@ const handleOpenAPIData = (openAPISchema, fieldOrder) => try { const convertedData = convertOpenAPISchemaToHackolade(openAPISchema, fieldOrder); const { modelData, modelContent, definitions } = convertedData; + let modelDefinitionsWereSet = false; const hackoladeData = modelContent.containers.reduce((accumulator, container) => { const currentEntities = modelContent.entities[container.name]; return [ ...accumulator, ...currentEntities.map((entity, index) => { + const shouldSetModelDefinitions = !modelDefinitionsWereSet; + if (shouldSetModelDefinitions) { + modelDefinitionsWereSet = true; + } const packageData = { objectNames: { collectionName: entity.collectionName, @@ -180,7 +185,7 @@ const handleOpenAPIData = (openAPISchema, fieldOrder) => dbName: container.name, collectionName: entity.collectionName, bucketInfo: container, - ...(index === 0 && { modelDefinitions: definitions }), + ...(shouldSetModelDefinitions && { modelDefinitions: definitions }), }, jsonSchema: JSON.stringify(entity), };