lib/generators/graphql/union_generator.rb
# frozen_string_literal: true require 'generators/graphql/type_generator' module Graphql module Generators # Generate a union type by name # with the specified member types. # # ``` # rails g graphql:union SearchResultType ImageType AudioType # ``` class UnionGenerator < TypeGeneratorBase desc "Create a GraphQL::UnionType with the given name and possible types" source_root File.expand_path('../templates', __FILE__) argument :possible_types, type: :array, default: [], banner: "type type ...", desc: "Possible types for this union (expressed as Ruby or GraphQL)" def create_type_file template "union.erb", "app/graphql/types/#{type_file_name}.rb" end private def normalized_possible_types possible_types.map { |t| self.class.normalize_type_expression(t, mode: :ruby) } end end end end
Source Files
- lib/generators/graphql/enum_generator.rb
- lib/generators/graphql/function_generator.rb
- lib/generators/graphql/install_generator.rb
- lib/generators/graphql/interface_generator.rb
- lib/generators/graphql/loader_generator.rb
- lib/generators/graphql/mutation_generator.rb
- lib/generators/graphql/object_generator.rb
- lib/generators/graphql/type_generator.rb
- lib/generators/graphql/union_generator.rb
- lib/graphql.rb
- lib/graphql/analysis.rb
- lib/graphql/analysis/analyze_query.rb
- lib/graphql/analysis/field_usage.rb
- lib/graphql/analysis/max_query_complexity.rb
- lib/graphql/analysis/max_query_depth.rb
- lib/graphql/analysis/query_complexity.rb
- lib/graphql/analysis/query_depth.rb
- lib/graphql/analysis/reducer_state.rb
- lib/graphql/analysis_error.rb
- lib/graphql/argument.rb
- lib/graphql/base_type.rb
- lib/graphql/boolean_type.rb
- lib/graphql/compatibility.rb
- lib/graphql/compatibility/execution_specification.rb
- lib/graphql/compatibility/execution_specification/counter_schema.rb
- lib/graphql/compatibility/execution_specification/specification_schema.rb
- lib/graphql/compatibility/lazy_execution_specification.rb
- lib/graphql/compatibility/lazy_execution_specification/lazy_schema.rb
- lib/graphql/compatibility/query_parser_specification.rb
- lib/graphql/compatibility/query_parser_specification/parse_error_specification.rb
- lib/graphql/compatibility/query_parser_specification/query_assertions.rb
- lib/graphql/compatibility/schema_parser_specification.rb
- lib/graphql/define.rb
- lib/graphql/define/assign_argument.rb
- lib/graphql/define/assign_connection.rb
- lib/graphql/define/assign_enum_value.rb
- lib/graphql/define/assign_global_id_field.rb
- lib/graphql/define/assign_mutation_function.rb
- lib/graphql/define/assign_object_field.rb
- lib/graphql/define/defined_object_proxy.rb
- lib/graphql/define/instance_definable.rb
- lib/graphql/define/non_null_with_bang.rb
- lib/graphql/define/type_definer.rb
- lib/graphql/directive.rb
- lib/graphql/directive/deprecated_directive.rb
- lib/graphql/directive/include_directive.rb
- lib/graphql/directive/skip_directive.rb
- lib/graphql/enum_type.rb
- lib/graphql/execution.rb
- lib/graphql/execution/directive_checks.rb
- lib/graphql/execution/execute.rb
- lib/graphql/execution/field_result.rb
- lib/graphql/execution/lazy.rb
- lib/graphql/execution/lazy/lazy_method_map.rb
- lib/graphql/execution/lazy/resolve.rb
- lib/graphql/execution/selection_result.rb
- lib/graphql/execution/typecast.rb
- lib/graphql/execution_error.rb
- lib/graphql/field.rb
- lib/graphql/field/resolve.rb
- lib/graphql/float_type.rb
- lib/graphql/function.rb
- lib/graphql/id_type.rb
- lib/graphql/input_object_type.rb
- lib/graphql/int_type.rb
- lib/graphql/interface_type.rb
- lib/graphql/internal_representation.rb
- lib/graphql/internal_representation/node.rb
- lib/graphql/internal_representation/rewrite.rb
- lib/graphql/internal_representation/scope.rb
- lib/graphql/internal_representation/visit.rb
- lib/graphql/introspection.rb
- lib/graphql/introspection/arguments_field.rb
- lib/graphql/introspection/directive_location_enum.rb
- lib/graphql/introspection/directive_type.rb
- lib/graphql/introspection/enum_value_type.rb
- lib/graphql/introspection/enum_values_field.rb
- lib/graphql/introspection/field_type.rb
- lib/graphql/introspection/fields_field.rb
- lib/graphql/introspection/input_fields_field.rb
- lib/graphql/introspection/input_value_type.rb
- lib/graphql/introspection/interfaces_field.rb
- lib/graphql/introspection/introspection_query.rb
- lib/graphql/introspection/of_type_field.rb
- lib/graphql/introspection/possible_types_field.rb
- lib/graphql/introspection/schema_field.rb
- lib/graphql/introspection/schema_type.rb
- lib/graphql/introspection/type_by_name_field.rb
- lib/graphql/introspection/type_kind_enum.rb
- lib/graphql/introspection/type_type.rb
- lib/graphql/introspection/typename_field.rb
- lib/graphql/invalid_null_error.rb
- lib/graphql/language.rb
- lib/graphql/language/comments.rb
- lib/graphql/language/definition_slice.rb
- lib/graphql/language/generation.rb
- lib/graphql/language/lexer.rb
- lib/graphql/language/nodes.rb
- lib/graphql/language/parser.rb
- lib/graphql/language/token.rb
- lib/graphql/language/visitor.rb
- lib/graphql/list_type.rb
- lib/graphql/non_null_type.rb
- lib/graphql/object_type.rb
- lib/graphql/query.rb
- lib/graphql/query/arguments.rb
- lib/graphql/query/arguments_cache.rb
- lib/graphql/query/context.rb
- lib/graphql/query/executor.rb
- lib/graphql/query/input_validation_result.rb
- lib/graphql/query/literal_input.rb
- lib/graphql/query/null_context.rb
- lib/graphql/query/serial_execution.rb
- lib/graphql/query/serial_execution/field_resolution.rb
- lib/graphql/query/serial_execution/operation_resolution.rb
- lib/graphql/query/serial_execution/selection_resolution.rb
- lib/graphql/query/serial_execution/value_resolution.rb
- lib/graphql/query/validation_pipeline.rb
- lib/graphql/query/variable_validation_error.rb
- lib/graphql/query/variables.rb
- lib/graphql/relay.rb
- lib/graphql/relay/array_connection.rb
- lib/graphql/relay/base_connection.rb
- lib/graphql/relay/connection_field.rb
- lib/graphql/relay/connection_resolve.rb
- lib/graphql/relay/connection_type.rb
- lib/graphql/relay/edge.rb
- lib/graphql/relay/edge_type.rb
- lib/graphql/relay/global_id_resolve.rb
- lib/graphql/relay/mutation.rb
- lib/graphql/relay/node.rb
- lib/graphql/relay/page_info.rb
- lib/graphql/relay/range_add.rb
- lib/graphql/relay/relation_connection.rb
- lib/graphql/runtime_type_error.rb
- lib/graphql/scalar_type.rb
- lib/graphql/schema.rb
- lib/graphql/schema/base_64_encoder.rb
- lib/graphql/schema/build_from_definition.rb
- lib/graphql/schema/catchall_middleware.rb
- lib/graphql/schema/default_parse_error.rb
- lib/graphql/schema/default_type_error.rb
- lib/graphql/schema/instrumented_field_map.rb
- lib/graphql/schema/invalid_type_error.rb
- lib/graphql/schema/loader.rb
- lib/graphql/schema/mask.rb
- lib/graphql/schema/middleware_chain.rb
- lib/graphql/schema/null_mask.rb
- lib/graphql/schema/possible_types.rb
- lib/graphql/schema/printer.rb
- lib/graphql/schema/reduce_types.rb
- lib/graphql/schema/rescue_middleware.rb
- lib/graphql/schema/timeout_middleware.rb
- lib/graphql/schema/type_expression.rb
- lib/graphql/schema/type_map.rb
- lib/graphql/schema/unique_within_type.rb
- lib/graphql/schema/validation.rb
- lib/graphql/schema/warden.rb
- lib/graphql/static_validation.rb
- lib/graphql/static_validation/all_rules.rb
- lib/graphql/static_validation/arguments_validator.rb
- lib/graphql/static_validation/definition_dependencies.rb
- lib/graphql/static_validation/literal_validator.rb
- lib/graphql/static_validation/message.rb
- lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
- lib/graphql/static_validation/rules/arguments_are_defined.rb
- lib/graphql/static_validation/rules/directives_are_defined.rb
- lib/graphql/static_validation/rules/directives_are_in_valid_locations.rb
- lib/graphql/static_validation/rules/fields_are_defined_on_type.rb
- lib/graphql/static_validation/rules/fields_have_appropriate_selections.rb
- lib/graphql/static_validation/rules/fields_will_merge.rb
- lib/graphql/static_validation/rules/fragment_names_are_unique.rb
- lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb
- lib/graphql/static_validation/rules/fragment_types_exist.rb
- lib/graphql/static_validation/rules/fragments_are_finite.rb
- lib/graphql/static_validation/rules/fragments_are_named.rb
- lib/graphql/static_validation/rules/fragments_are_on_composite_types.rb
- lib/graphql/static_validation/rules/fragments_are_used.rb
- lib/graphql/static_validation/rules/mutation_root_exists.rb
- lib/graphql/static_validation/rules/no_definitions_are_present.rb
- lib/graphql/static_validation/rules/operation_names_are_valid.rb
- lib/graphql/static_validation/rules/required_arguments_are_present.rb
- lib/graphql/static_validation/rules/subscription_root_exists.rb
- lib/graphql/static_validation/rules/unique_directives_per_location.rb
- lib/graphql/static_validation/rules/variable_default_values_are_correctly_typed.rb
- lib/graphql/static_validation/rules/variable_usages_are_allowed.rb
- lib/graphql/static_validation/rules/variables_are_input_types.rb
- lib/graphql/static_validation/rules/variables_are_used_and_defined.rb
- lib/graphql/static_validation/type_stack.rb
- lib/graphql/static_validation/validation_context.rb
- lib/graphql/static_validation/validator.rb
- lib/graphql/string_encoding_error.rb
- lib/graphql/string_type.rb
- lib/graphql/type_kinds.rb
- lib/graphql/union_type.rb
- lib/graphql/unresolved_type_error.rb
- lib/graphql/version.rb