in src/Epam.GraphQL/Extensions/TypeExtensions.cs [83:108]
public static string GraphQLTypeName(this Type type, bool isInput)
{
var prefix = isInput ? "Input" : string.Empty;
if (_typeNameMap.TryGetValue(type, out var result))
{
return $"{prefix}{result.CapitalizeFirstLetter()}";
}
if (type != typeof(string) && type.IsEnumerableType())
{
var elementTypeName = type.GetEnumerableElementType().GraphQLTypeName(false);
return $"{prefix}ListOf{elementTypeName}";
}
var typeName = type.IsAnonymousType()
? "AnonymousType"
: SanitizeTypeName(type.GetTypeName());
if (type.IsGenericType)
{
return $"{prefix}{typeName}Of{string.Join("And", type.GetGenericArguments().Select(t => t.GraphQLTypeName(false)))}";
}
return $"{prefix}{typeName}";
}