@@ -41,11 +41,10 @@ function wrapResolverInMiddleware<TSource, TContext, TArgs>(
4141}
4242
4343function parseField ( field : GraphQLField < any , any , any > ) {
44- const argsMap = field . args . reduce (
45- ( acc , cur ) => {
46- acc [ cur . name ] = cur ;
47- return acc ;
48- } , { } as Record < string , GraphQLArgument > ,
44+ const argsMap = Object . fromEntries (
45+ field . args . map (
46+ ( cur ) => [ cur . name , cur ]
47+ )
4948 )
5049 return {
5150 ...field ,
@@ -129,34 +128,28 @@ function applyMiddlewareToType<TSource, TContext, TArgs>(
129128 middleware :
130129 | IMiddlewareFunction < TSource , TContext , TArgs >
131130 | IMiddlewareFieldMap < TSource , TContext , TArgs > ,
132- ) : IResolvers {
131+ ) : Record < string , IResolverOptions > {
133132 const fieldMap = type . getFields ( )
134133
135134 if ( isMiddlewareFunction ( middleware ) ) {
136- const resolvers = Object . keys ( fieldMap ) . reduce (
137- ( resolvers , fieldName ) => {
138- resolvers [ fieldName ] = applyMiddlewareToField (
139- fieldMap [ fieldName ] ,
135+ const resolvers = Object . fromEntries (
136+ Object . entries ( fieldMap ) . map ( ( [ fieldName , field ] ) => [
137+ fieldName ,
138+ applyMiddlewareToField (
139+ field ,
140140 options ,
141141 middleware as IMiddlewareFunction < TSource , TContext , TArgs > ,
142- ) ;
143- return resolvers ;
144- } ,
145- { } ,
142+ ) ,
143+ ] ) ,
146144 )
147145
148146 return resolvers
149147 } else {
150- const resolvers = Object . keys ( middleware ) . reduce (
151- ( resolvers , fieldName ) => {
152- resolvers [ fieldName ] = applyMiddlewareToField (
153- fieldMap [ fieldName ] ,
154- options ,
155- middleware [ fieldName ] ,
156- ) ;
157- return resolvers ;
158- } ,
159- { } ,
148+ const resolvers = Object . fromEntries (
149+ Object . entries ( middleware ) . map ( ( [ fieldName , middlewareFn ] ) => [
150+ fieldName ,
151+ applyMiddlewareToField ( fieldMap [ fieldName ] , options , middlewareFn ) ,
152+ ] ) ,
160153 )
161154
162155 return resolvers
@@ -170,23 +163,21 @@ function applyMiddlewareToSchema<TSource, TContext, TArgs>(
170163) : IResolvers {
171164 const typeMap = schema . getTypeMap ( )
172165
173- const resolvers = Object . keys ( typeMap )
174- . filter (
175- ( type ) =>
176- isGraphQLObjectType ( typeMap [ type ] ) &&
177- ! isIntrospectionType ( typeMap [ type ] ) ,
178- )
179- . reduce (
180- ( resolvers , type ) => {
181- resolvers [ type ] = applyMiddlewareToType (
182- typeMap [ type ] as GraphQLObjectType ,
166+ const resolvers = Object . fromEntries (
167+ Object . entries ( typeMap )
168+ . filter (
169+ ( [ , typeValue ] ) =>
170+ isGraphQLObjectType ( typeValue ) && ! isIntrospectionType ( typeValue ) ,
171+ )
172+ . map ( ( [ typeName , type ] ) => [
173+ typeName ,
174+ applyMiddlewareToType (
175+ type as GraphQLObjectType ,
183176 options ,
184177 middleware ,
185- ) ;
186- return resolvers ;
187- } ,
188- { } ,
189- )
178+ ) ,
179+ ] ) ,
180+ )
190181
191182 return resolvers
192183}
@@ -211,18 +202,17 @@ export function generateResolverFromSchemaAndMiddleware<
211202 } else {
212203 const typeMap = schema . getTypeMap ( )
213204
214- const resolvers = Object . keys ( middleware ) . reduce (
215- ( resolvers , type ) => {
216- resolvers [ type ] = applyMiddlewareToType (
217- typeMap [ type ] as GraphQLObjectType ,
205+ const resolvers = Object . fromEntries (
206+ Object . entries ( middleware ) . map ( ( [ typeName , middlewareFn ] ) => [
207+ typeName ,
208+ applyMiddlewareToType (
209+ typeMap [ typeName ] as GraphQLObjectType ,
218210 options ,
219- middleware [ type ] ,
220- ) ;
221- return resolvers ;
222- } ,
223- { } ,
211+ middlewareFn ,
212+ ) ,
213+ ] ) ,
224214 )
225215
226216 return resolvers
227217 }
228- }
218+ }
0 commit comments