diff --git a/forward_engineering/config.json b/forward_engineering/config.json index 5ff66dd..894819f 100644 --- a/forward_engineering/config.json +++ b/forward_engineering/config.json @@ -11,5 +11,7 @@ "model": false }, "mode": "graphqlschema", - "isApiSchema": false + "isApiSchema": false, + "disableJSONDataGeneration": true, + "disableAttributesSorting": true } diff --git a/forward_engineering/mappers/fields.js b/forward_engineering/mappers/fields.js index be47d74..84de679 100644 --- a/forward_engineering/mappers/fields.js +++ b/forward_engineering/mappers/fields.js @@ -85,7 +85,7 @@ function mapField({ name, fieldData, required, definitionsIdToNameMap, addArgume */ function getFieldType({ field, required }) { if ('$ref' in field && field.$ref) { - const definitionName = getDefinitionNameFromReferencePath({ referencePath: field.$ref }); + const definitionName = getDefinitionNameFromReferencePath({ referencePath: field.$ref }) || 'String'; return addRequired({ type: definitionName, required }); } diff --git a/reverse_engineering/helpers/getDefinitionCategoryByNameMap.js b/reverse_engineering/helpers/getDefinitionCategoryByNameMap.js index 021fbae..48f8843 100644 --- a/reverse_engineering/helpers/getDefinitionCategoryByNameMap.js +++ b/reverse_engineering/helpers/getDefinitionCategoryByNameMap.js @@ -20,14 +20,18 @@ const kindToDefinitionTypeName = { * * @param {object} options * @param {DefinitionNode[]} options.nodes - The nodes to search + * @param {string[]} options.rootTypeNames - The root type names to exclude * @returns {DefinitionNameToTypeNameMap} The found nodes with proper type */ -function getDefinitionCategoryByNameMap({ nodes }) { +function getDefinitionCategoryByNameMap({ nodes, rootTypeNames }) { return nodes .filter(node => kindToDefinitionTypeName[node.kind]) .reduce((acc, node) => { if ('name' in node && node.name !== undefined) { - acc[node.name.value] = kindToDefinitionTypeName[node.kind]; + const isRootType = rootTypeNames.includes(node.name.value); + if (!isRootType) { + acc[node.name.value] = kindToDefinitionTypeName[node.kind]; + } } return acc; }, {}); diff --git a/reverse_engineering/mappers/schema.js b/reverse_engineering/mappers/schema.js index 896eab1..ded9f89 100644 --- a/reverse_engineering/mappers/schema.js +++ b/reverse_engineering/mappers/schema.js @@ -33,7 +33,7 @@ function getMappedSchema({ schemaItems, graphName, fieldsOrder }) { container.schemaRootTypes?.rootSubscription || 'Subscription', ]; - const definitionCategoryByNameMap = getDefinitionCategoryByNameMap({ nodes: schemaItems }); + const definitionCategoryByNameMap = getDefinitionCategoryByNameMap({ nodes: schemaItems, rootTypeNames }); const rootTypeNodes = findNodesByKind({ nodes: schemaItems,