|
@@ 245-255 (lines=11) @@
|
| 242 |
|
* @return \Drupal\Core\Cache\CacheableMetadata |
| 243 |
|
* The cache metadata collected from the schema's types. |
| 244 |
|
*/ |
| 245 |
|
protected function extractSchemaCacheMetadata(AbstractSchema $schema) { |
| 246 |
|
$metadata = new CacheableMetadata(); |
| 247 |
|
$metadata->setCacheMaxAge(Cache::PERMANENT); |
| 248 |
|
$metadata->addCacheTags(['graphql_schema']); |
| 249 |
|
|
| 250 |
|
$metadata->addCacheableDependency($this->collectCacheMetadata($schema, function (CacheableEdgeInterface $item, AbstractSchema $schema) { |
| 251 |
|
return $item->getSchemaCacheMetadata($schema); |
| 252 |
|
})); |
| 253 |
|
|
| 254 |
|
return $metadata; |
| 255 |
|
} |
| 256 |
|
|
| 257 |
|
/** |
| 258 |
|
* Collects result cache metadata from all types registered with the schema. |
|
@@ 269-280 (lines=12) @@
|
| 266 |
|
* @return \Drupal\Core\Cache\CacheableMetadata |
| 267 |
|
* The cache metadata collected from the schema's types. |
| 268 |
|
*/ |
| 269 |
|
protected function extractResponseCacheMetadata(AbstractSchema $schema) { |
| 270 |
|
$metadata = new CacheableMetadata(); |
| 271 |
|
$metadata->setCacheMaxAge(Cache::PERMANENT); |
| 272 |
|
$metadata->addCacheTags(['graphql_response']); |
| 273 |
|
$metadata->addCacheContexts(['gql']); |
| 274 |
|
|
| 275 |
|
$metadata->addCacheableDependency($this->collectCacheMetadata($schema, function (CacheableEdgeInterface $item, AbstractSchema $schema) { |
| 276 |
|
return $item->getResponseCacheMetadata($schema); |
| 277 |
|
})); |
| 278 |
|
|
| 279 |
|
return $metadata; |
| 280 |
|
} |
| 281 |
|
|
| 282 |
|
/** |
| 283 |
|
* Recursively collects cache metadata from the generated schema. |