GraphQL\Executor\Executor::completeListValue PHP Method

completeListValue() private static method

Complete a list value by completing each item in the list with the inner type
private static completeListValue ( ExecutionContext $exeContext, ListOfType $returnType, $fieldNodes, ResolveInfo $info, array $path, &$result ) : array | GraphQL\Executor\Promise\Promise
$exeContext ExecutionContext
$returnType GraphQL\Type\Definition\ListOfType
$fieldNodes
$info GraphQL\Type\Definition\ResolveInfo
$path array
$result
return array | GraphQL\Executor\Promise\Promise
    private static function completeListValue(ExecutionContext $exeContext, ListOfType $returnType, $fieldNodes, ResolveInfo $info, $path, &$result)
    {
        $itemType = $returnType->getWrappedType();
        Utils::invariant(is_array($result) || $result instanceof \Traversable, 'User Error: expected iterable, but did not find one for field ' . $info->parentType . '.' . $info->fieldName . '.');
        $containsPromise = false;
        $i = 0;
        $completedItems = [];
        foreach ($result as $item) {
            $fieldPath = $path;
            $fieldPath[] = $i++;
            $completedItem = self::completeValueCatchingError($exeContext, $itemType, $fieldNodes, $info, $fieldPath, $item);
            if (!$containsPromise && self::$promiseAdapter->isPromise($completedItem)) {
                $containsPromise = true;
            }
            $completedItems[] = $completedItem;
        }
        return $containsPromise ? self::$promiseAdapter->createPromiseAll($completedItems) : $completedItems;
    }