return reduce(object._typeConfig, (def, value, key) => { if (value !== undefined) { switch (key) { case 'fields': def.fields = reduce(object.getFields(), (fields, field, name) => { fields[name] = processArg(field).arg; return fields; }, Object.create(null)); break; case 'description': set(def, key, value, (value !== '')); break; case 'astNode': const directives = extractDirectives(get(object, [ 'astNode' ])); set(def, '@directives', directives, Boolean(directives)); break; default: break; } } return def; }, {
import { GraphQLInputObjectType } from 'graphql'; import { OrderDirectionType } from '../enum/OrderDirectionType'; import { DateTimeField } from '../enum/DateTimeField'; export const ChronologicalOrder = new GraphQLInputObjectType({ name: 'ChronologicalOrder', description: 'Input to order results chronologically', fields: { field: { description: 'Field to chronologically order by.', defaultValue: 'createdAt', type: DateTimeField, }, direction: { description: 'Ordering direction.', defaultValue: 'DESC', type: OrderDirectionType, }, }, }); ChronologicalOrder.defaultValue = Object.entries(ChronologicalOrder.getFields()).reduce( (values, [key, value]) => ({ ...values, [key]: value.defaultValue, }), {}, );
}, }); export const TransactionOrder = new GraphQLInputObjectType({ name: 'TransactionOrder', description: 'Ordering options for transactions', fields: { field: { description: 'The field to order transactions by.', defaultValue: 'createdAt', type: new GraphQLEnumType({ name: 'TransactionOrderField', description: 'Properties by which transactions can be ordered.', values: { CREATED_AT: { value: 'createdAt', description: 'Order transactions by creation time.', }, }, }), }, direction: { description: 'The ordering direction.', defaultValue: 'DESC', type: OrderDirectionType, }, }, }); TransactionOrder.defaultValue = Object.entries(TransactionOrder.getFields()).reduce( (values, [key, value]) => ({