From 0e0e210257f926cb904c53758c2e9ab1be3c4f25 Mon Sep 17 00:00:00 2001 From: Mathias Quintero Date: Fri, 25 Dec 2020 22:11:26 +0100 Subject: [PATCH] Fixing type resolution --- Sources/GraphZahl/Resolution/Resolution.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Sources/GraphZahl/Resolution/Resolution.swift b/Sources/GraphZahl/Resolution/Resolution.swift index 264b515..cefc6e7 100644 --- a/Sources/GraphZahl/Resolution/Resolution.swift +++ b/Sources/GraphZahl/Resolution/Resolution.swift @@ -213,10 +213,10 @@ extension Resolution.Context { let interfaceReference = GraphQLTypeReference(interfaceName) let interface = try GraphQLInterfaceType(name: interfaceName, fields: interfaceFields) { (value, eventLoop, info: GraphQLResolveInfo) in let schema = info.schema - let interface = schema.getType(name: name) as! GraphQLInterfaceType + let interface = schema.getType(name: interfaceName) as! GraphQLInterfaceType let objects = schema.getPossibleTypes(abstractType: interface) - let sorted = objects.sorted { $0.interfaces.count > $1.interfaces.count } - return try sorted.first { try $0.isTypeOf.map { try $0(value, eventLoop, info) } ?? false } ?? "__\(name)" + let sorted = objects.sorted { $0.name != name && $0.interfaces.count > $1.interfaces.count } + return try sorted.first { try $0.isTypeOf.map { try $0(value, eventLoop, info) } ?? false } ?? name } let newObjectFields = object.fields.mapValues { field in