INNER CODE UNIT · TypeScript
getTypeFields
OS-Guild/graphql-to-mongodb · src/common.ts:63
export function getTypeFields<T extends GraphQLType>(
graphQLType: GraphQLFieldsType,
filter: FieldFilter = null,
typeResolver: TypeResolver<T> = (type: T) => type,
...excludedFields: string[])
: () => FieldMap<T> {
return () => {
const typeFields = graphQLType.getFields();
const generatedFields: FieldMap<T> = {};
Object.keys(typeFields)
.filter(key => !excludedFields.includes(key))
.filter(key => !filter || filter(key, typeFields[key]))
.forEach(key => {
const field = typeFields[key];
const type = typeResolver(field.type);
if (type) generatedFields[key] = { ...field, type: type }