Skip to content
Snippets Groups Projects

Issue #3504488: Slim down schema by moving common properties to a metadata field

Files
29
@@ -137,15 +137,20 @@ class WebformExtension extends SdlSchemaExtensionPluginBase {
->map('id', $builder->fromArgument('id'))
);
$registry->addFieldResolver('WebformElement', 'key', $builder->callback(
// Expose the metadata of the webform element.
$registry->addFieldResolver('WebformElement', 'metadata', $builder->callback(
static fn (array $value): array => $value
));
$registry->addFieldResolver('WebformElementMetadata', 'key', $builder->callback(
static fn (array $value): string => $value['#webform_key'] ?? ''
));
$registry->addFieldResolver('WebformElement', 'type', $builder->callback(
$registry->addFieldResolver('WebformElementMetadata', 'type', $builder->callback(
static fn (array $value): string => $value['#webform_plugin_id'] ?? ''
));
$registry->addFieldResolver('WebformElement', 'name', $builder->callback(
$registry->addFieldResolver('WebformElementMetadata', 'name', $builder->callback(
static function ($value) {
$name = $value['#name'] ?? '';
// When an element can be multiple, we remove the nested name of the
@@ -155,12 +160,12 @@ class WebformExtension extends SdlSchemaExtensionPluginBase {
}
));
$registry->addFieldResolver('WebformElement', 'element', $builder->callback(
$registry->addFieldResolver('WebformElementMetadata', 'element', $builder->callback(
static fn (array $value): array => $value
));
$typeFields = [
'WebformElement' => [
'WebformElementMetadata' => [
'title' => 'string',
'description' => 'string',
'multiple' => 'int',
@@ -195,7 +200,7 @@ class WebformExtension extends SdlSchemaExtensionPluginBase {
}
// Expose information in case the field is required.
$registry->addFieldResolver('WebformElement', 'required', $builder->callback(
$registry->addFieldResolver('WebformElementMetadata', 'required', $builder->callback(
static fn (array $value): ?array => $value['#required'] ? $value : NULL
));
Loading