protected function ImageDerivative::resolveValues in GraphQL 8.3
Retrieve the list of field values.
Always returns a list of field values. Even for single value fields. Single/multi field handling is responsibility of the base class.
Parameters
mixed $value: The current object value.
array $args: Field arguments.
$context: The resolve context.
\GraphQL\Type\Definition\ResolveInfo $info: The resolve info object.
Return value
\Generator The value generator.
Overrides FieldPluginBase::resolveValues
File
- modules/
graphql_core/ src/ Plugin/ GraphQL/ Fields/ Entity/ Fields/ Image/ ImageDerivative.php, line 71
Class
- ImageDerivative
- Retrieve the image field derivative (image style).
Namespace
Drupal\graphql_core\Plugin\GraphQL\Fields\Entity\Fields\ImageCode
protected function resolveValues($value, array $args, ResolveContext $context, ResolveInfo $info) {
if ($value instanceof ImageItem && $value->entity && $value->entity
->access('view') && ($style = ImageStyle::load($args['style']))) {
assert($style instanceof ImageStyle);
$file = $value->entity;
assert($file instanceof File);
// Determine the dimensions of the styled image.
$dimensions = [
'width' => $value->width,
'height' => $value->height,
];
if ($style
->supportsUri($file
->getFileUri())) {
$style
->transformDimensions($dimensions, $file
->getFileUri());
$url = $style
->buildUrl($file
->getFileUri());
}
else {
$url = $file
->url();
}
(yield new CacheableValue([
'url' => $url,
'width' => $dimensions['width'],
'height' => $dimensions['height'],
], [
$style,
]));
}
}