ra-data-opencrud
Version:
A Prisma/GraphCMS data provider for react-admin
26 lines (22 loc) • 612 B
text/typescript
import {
TypeKind,
IntrospectionTypeRef,
IntrospectionListTypeRef,
IntrospectionNonNullTypeRef,
IntrospectionNamedTypeRef
} from 'graphql';
/**
* Ensure we get the real type even if the root type is NON_NULL or LIST
* @param {GraphQLType} type
*/
const getFinalType = (
type: IntrospectionTypeRef
): IntrospectionNamedTypeRef => {
if (type.kind === TypeKind.NON_NULL || type.kind === TypeKind.LIST) {
return getFinalType(
(type as IntrospectionListTypeRef | IntrospectionNonNullTypeRef).ofType!
);
}
return type as IntrospectionNamedTypeRef;
};
export default getFinalType;