Skip to content

Commit bdcb52a

Browse files
committed
refactor: switch from object.keys/reduce to object.entries/map/object.fromEntries
1 parent c8f85c1 commit bdcb52a

File tree

1 file changed

+39
-49
lines changed

1 file changed

+39
-49
lines changed

src/applicator.ts

Lines changed: 39 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,10 @@ function wrapResolverInMiddleware<TSource, TContext, TArgs>(
4141
}
4242

4343
function 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

Comments
 (0)