@@ 208-210 (lines=3) @@ | ||
205 | if ($type['type'] === 'interface') { |
|
206 | return [$type['definition']['name'] => array_values(array_map(function ($type) { |
|
207 | return $type['definition']['name']; |
|
208 | }, array_filter($types, function ($subType) use ($type) { |
|
209 | return $subType['type'] === 'type' && in_array($type['definition']['name'], $subType['definition']['interfaces']); |
|
210 | })))]; |
|
211 | } |
|
212 | ||
213 | // Union types combine the two approaches above. |
|
@@ 219-221 (lines=3) @@ | ||
216 | ||
217 | $implicit = array_values(array_map(function ($type) { |
|
218 | return $type['definition']['name']; |
|
219 | }, array_filter($types, function ($subType) use ($type) { |
|
220 | return $subType['type'] === 'type' && in_array($type['definition']['name'], $subType['definition']['unions']); |
|
221 | }))); |
|
222 | ||
223 | return [$type['definition']['name'] => array_merge($explicit, $implicit)]; |
|
224 | } |