Skip to content

Commit 385635d

Browse files
authored
perf improvements for big schemas RE (#92)
1 parent a43f56a commit 385635d

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

forward_engineering/config.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,7 @@
4343
"value": false
4444
}
4545
],
46-
"isApiSchema": true
46+
"isApiSchema": true,
47+
"disableJSONDataGeneration": true,
48+
"disableAttributesSorting": true
4749
}

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,8 @@
117117
"propertyNames": [
118118
"schemas"
119119
]
120-
}
120+
},
121+
"collapseEntityAttributesInRE": true
121122
}
122123
},
123124
"description": "Hackolade plugin for OpenAPI",

reverse_engineering/api.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,11 +167,16 @@ const handleOpenAPIData = (openAPISchema, fieldOrder) =>
167167
try {
168168
const convertedData = convertOpenAPISchemaToHackolade(openAPISchema, fieldOrder);
169169
const { modelData, modelContent, definitions } = convertedData;
170+
let modelDefinitionsWereSet = false;
170171
const hackoladeData = modelContent.containers.reduce((accumulator, container) => {
171172
const currentEntities = modelContent.entities[container.name];
172173
return [
173174
...accumulator,
174175
...currentEntities.map((entity, index) => {
176+
const shouldSetModelDefinitions = !modelDefinitionsWereSet;
177+
if (shouldSetModelDefinitions) {
178+
modelDefinitionsWereSet = true;
179+
}
175180
const packageData = {
176181
objectNames: {
177182
collectionName: entity.collectionName,
@@ -180,7 +185,7 @@ const handleOpenAPIData = (openAPISchema, fieldOrder) =>
180185
dbName: container.name,
181186
collectionName: entity.collectionName,
182187
bucketInfo: container,
183-
...(index === 0 && { modelDefinitions: definitions }),
188+
...(shouldSetModelDefinitions && { modelDefinitions: definitions }),
184189
},
185190
jsonSchema: JSON.stringify(entity),
186191
};

0 commit comments

Comments
 (0)