Skip to content
This repository was archived by the owner on Jul 25, 2024. It is now read-only.

Commit 3e87d62

Browse files
committed
Extract case statement into multiple function heads
1 parent a24e809 commit 3e87d62

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

lib/graphql/execution/executor.ex

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,13 +116,16 @@ defmodule GraphQL.Execution.Executor do
116116
@spec execute_fields(ExecutionContext.t, atom | Map, any, any) :: {ExecutionContext.t, map}
117117
defp execute_fields(context, parent_type, source_value, fields) do
118118
Enum.reduce fields, {context, %{}}, fn({field_name_ast, field_asts}, {context, results}) ->
119-
case resolve_field(context, unwrap_type(parent_type), source_value, field_asts) do
120-
{context, :undefined} -> {context, results}
121-
{context, value} -> {context, Map.put(results, field_name_ast.value, value)}
122-
end
119+
resolve_field(context, unwrap_type(parent_type), source_value, field_asts)
120+
|> unwrap_result(results, field_name_ast)
123121
end
124122
end
125123

124+
defp unwrap_result({context, :undefined}, results, _), do: {context, results}
125+
defp unwrap_result({context, value}, results, field_name_ast) do
126+
{context, Map.put(results, field_name_ast.value, value)}
127+
end
128+
126129
@spec execute_fields_serially(ExecutionContext.t, atom, map, any) :: {ExecutionContext.t, map}
127130
defp execute_fields_serially(context, parent_type, source_value, fields) do
128131
# call execute_fields because no async operations yet

0 commit comments

Comments
 (0)