directiveArgValue('context'); if (! $contextAttributeName) { throw new DirectiveException( "The `inject` directive on {$fieldValue->getParentName()} [{$fieldValue->getFieldName()}] must have a `context` argument" ); } $argumentName = $this->directiveArgValue('name'); if (! $argumentName) { throw new DirectiveException( "The `inject` directive on {$fieldValue->getParentName()} [{$fieldValue->getFieldName()}] must have a `name` argument" ); } $previousResolver = $fieldValue->getResolver(); return $next( $fieldValue->setResolver( function ($rootValue, array $args, GraphQLContext $context, ResolveInfo $resolveInfo) use ($contextAttributeName, $argumentName, $previousResolver) { return $previousResolver( $rootValue, Arr::add($args, $argumentName, data_get($context, $contextAttributeName)), $context, $resolveInfo ); } ) ); } }