INNER CODE UNIT · TypeScript
getGraphQLFilterType
OS-Guild/graphql-to-mongodb · src/graphQLFilterType.ts:32
export function getGraphQLFilterType(type: GraphQLFieldsType, ...excludedFields: string[]): GraphQLInputObjectType {
const filterTypeName = setSuffix(type.name, 'Type', 'FilterType');
return cache(typesCache, filterTypeName, () => new GraphQLInputObjectType({
name: filterTypeName,
fields: getOrAndFields(type, ...excludedFields)
}));
}
function getOrAndFields(type: GraphQLFieldsType, ...excludedFields: string[]): () => FieldMap<GraphQLInputType> {
return () => {
const generatedFields = getUnresolvedFieldsTypes(type, getGraphQLObjectFilterType, ...excludedFields)();
warnOfIndependentResolveFields(type);
generatedFields['OR'] = { type: new GraphQLList(getGraphQLFilterType(type, ...excludedFields)) };
generatedFields['AND'] = { type: new GraphQLList(getGraphQLFilterType(type, ...excludedFields)) };
generatedFields['NOR'] = { type: new GraphQLList(getGraphQLFilterType(type, ...excludedFields)) };