lib/generators/graphql/object_generator.rb
# frozen_string_literal: true require 'generators/graphql/type_generator' require 'generators/graphql/field_extractor' module Graphql module Generators # Generate an object type by name, # with the specified fields. # # ``` # rails g graphql:object PostType name:String! # ``` # # Add the Node interface with `--node`. class ObjectGenerator < TypeGeneratorBase desc "Create a GraphQL::ObjectType with the given name and fields." \ "If the given type name matches an existing ActiveRecord model, the generated type will automatically include fields for the models database columns." source_root File.expand_path('../templates', __FILE__) include FieldExtractor class_option :node, type: :boolean, default: false, desc: "Include the Relay Node interface" def self.normalize_type_expression(type_expression, mode:, null: true) case type_expression.camelize when "Text", "Citext" ["String", null] when "Decimal" ["Float", null] when "DateTime", "Datetime" ["GraphQL::Types::ISO8601DateTime", null] when "Date" ["GraphQL::Types::ISO8601Date", null] when "Json", "Jsonb", "Hstore" ["GraphQL::Types::JSON", null] else super end end private def graphql_type "object" end end end end
Source Files
- lib/generators/graphql/core.rb
- lib/generators/graphql/enum_generator.rb
- lib/generators/graphql/field_extractor.rb
- lib/generators/graphql/input_generator.rb
- lib/generators/graphql/install/mutation_root_generator.rb
- lib/generators/graphql/install_generator.rb
- lib/generators/graphql/interface_generator.rb
- lib/generators/graphql/loader_generator.rb
- lib/generators/graphql/mutation_create_generator.rb
- lib/generators/graphql/mutation_delete_generator.rb
- lib/generators/graphql/mutation_generator.rb
- lib/generators/graphql/mutation_update_generator.rb
- lib/generators/graphql/object_generator.rb
- lib/generators/graphql/orm_mutations_base.rb
- lib/generators/graphql/relay.rb
- lib/generators/graphql/relay_generator.rb
- lib/generators/graphql/scalar_generator.rb
- lib/generators/graphql/type_generator.rb
- lib/generators/graphql/union_generator.rb
- lib/graphql.rb
- lib/graphql/analysis.rb
- lib/graphql/analysis/ast.rb
- lib/graphql/analysis/ast/analyzer.rb
- lib/graphql/analysis/ast/field_usage.rb
- lib/graphql/analysis/ast/max_query_complexity.rb
- lib/graphql/analysis/ast/max_query_depth.rb
- lib/graphql/analysis/ast/query_complexity.rb
- lib/graphql/analysis/ast/query_depth.rb
- lib/graphql/analysis/ast/visitor.rb
- lib/graphql/analysis_error.rb
- lib/graphql/backtrace.rb
- lib/graphql/backtrace/inspect_result.rb
- lib/graphql/backtrace/table.rb
- lib/graphql/backtrace/traced_error.rb
- lib/graphql/backtrace/tracer.rb
- lib/graphql/coercion_error.rb
- lib/graphql/dataloader.rb
- lib/graphql/dataloader/null_dataloader.rb
- lib/graphql/dataloader/request.rb
- lib/graphql/dataloader/request_all.rb
- lib/graphql/dataloader/source.rb
- lib/graphql/date_encoding_error.rb
- lib/graphql/deprecation.rb
- lib/graphql/dig.rb
- lib/graphql/execution.rb
- lib/graphql/execution/directive_checks.rb
- lib/graphql/execution/errors.rb
- lib/graphql/execution/instrumentation.rb
- lib/graphql/execution/interpreter.rb
- lib/graphql/execution/interpreter/argument_value.rb
- lib/graphql/execution/interpreter/arguments.rb
- lib/graphql/execution/interpreter/arguments_cache.rb
- lib/graphql/execution/interpreter/execution_errors.rb
- lib/graphql/execution/interpreter/handles_raw_value.rb
- lib/graphql/execution/interpreter/resolve.rb
- lib/graphql/execution/interpreter/runtime.rb
- lib/graphql/execution/lazy.rb
- lib/graphql/execution/lazy/lazy_method_map.rb
- lib/graphql/execution/lazy/resolve.rb
- lib/graphql/execution/lookahead.rb
- lib/graphql/execution/multiplex.rb
- lib/graphql/execution_error.rb
- lib/graphql/filter.rb
- lib/graphql/integer_decoding_error.rb
- lib/graphql/integer_encoding_error.rb
- lib/graphql/introspection.rb
- lib/graphql/introspection/base_object.rb
- lib/graphql/introspection/directive_location_enum.rb
- lib/graphql/introspection/directive_type.rb
- lib/graphql/introspection/dynamic_fields.rb
- lib/graphql/introspection/entry_points.rb
- lib/graphql/introspection/enum_value_type.rb
- lib/graphql/introspection/field_type.rb
- lib/graphql/introspection/input_value_type.rb
- lib/graphql/introspection/introspection_query.rb
- lib/graphql/introspection/schema_type.rb
- lib/graphql/introspection/type_kind_enum.rb
- lib/graphql/introspection/type_type.rb
- lib/graphql/invalid_name_error.rb
- lib/graphql/invalid_null_error.rb
- lib/graphql/language.rb
- lib/graphql/language/block_string.rb
- lib/graphql/language/cache.rb
- lib/graphql/language/definition_slice.rb
- lib/graphql/language/document_from_schema_definition.rb
- lib/graphql/language/generation.rb
- lib/graphql/language/lexer.rb
- lib/graphql/language/nodes.rb
- lib/graphql/language/parser.rb
- lib/graphql/language/printer.rb
- lib/graphql/language/sanitized_printer.rb
- lib/graphql/language/token.rb
- lib/graphql/language/visitor.rb
- lib/graphql/load_application_object_failed_error.rb
- lib/graphql/name_validator.rb
- lib/graphql/pagination.rb
- lib/graphql/pagination/active_record_relation_connection.rb
- lib/graphql/pagination/array_connection.rb
- lib/graphql/pagination/connection.rb
- lib/graphql/pagination/connections.rb
- lib/graphql/pagination/mongoid_relation_connection.rb
- lib/graphql/pagination/relation_connection.rb
- lib/graphql/pagination/sequel_dataset_connection.rb
- lib/graphql/parse_error.rb
- lib/graphql/query.rb
- lib/graphql/query/context.rb
- lib/graphql/query/fingerprint.rb
- lib/graphql/query/input_validation_result.rb
- lib/graphql/query/null_context.rb
- lib/graphql/query/result.rb
- lib/graphql/query/validation_pipeline.rb
- lib/graphql/query/variable_validation_error.rb
- lib/graphql/query/variables.rb
- lib/graphql/railtie.rb
- lib/graphql/rake_task.rb
- lib/graphql/rake_task/validate.rb
- lib/graphql/relay.rb
- lib/graphql/relay/range_add.rb
- lib/graphql/rubocop.rb
- lib/graphql/rubocop/graphql/base_cop.rb
- lib/graphql/rubocop/graphql/default_null_true.rb
- lib/graphql/rubocop/graphql/default_required_true.rb
- lib/graphql/runtime_type_error.rb
- lib/graphql/schema.rb
- lib/graphql/schema/addition.rb
- lib/graphql/schema/argument.rb
- lib/graphql/schema/base_64_bp.rb
- lib/graphql/schema/base_64_encoder.rb
- lib/graphql/schema/build_from_definition.rb
- lib/graphql/schema/build_from_definition/resolve_map.rb
- lib/graphql/schema/build_from_definition/resolve_map/default_resolve.rb
- lib/graphql/schema/built_in_types.rb
- lib/graphql/schema/directive.rb
- lib/graphql/schema/directive/deprecated.rb
- lib/graphql/schema/directive/feature.rb
- lib/graphql/schema/directive/flagged.rb
- lib/graphql/schema/directive/include.rb
- lib/graphql/schema/directive/skip.rb
- lib/graphql/schema/directive/transform.rb
- lib/graphql/schema/enum.rb
- lib/graphql/schema/enum_value.rb
- lib/graphql/schema/field.rb
- lib/graphql/schema/field/connection_extension.rb
- lib/graphql/schema/field/scope_extension.rb
- lib/graphql/schema/field_extension.rb
- lib/graphql/schema/find_inherited_value.rb
- lib/graphql/schema/finder.rb
- lib/graphql/schema/input_object.rb
- lib/graphql/schema/interface.rb
- lib/graphql/schema/introspection_system.rb
- lib/graphql/schema/invalid_type_error.rb
- lib/graphql/schema/late_bound_type.rb
- lib/graphql/schema/list.rb
- lib/graphql/schema/loader.rb
- lib/graphql/schema/member.rb
- lib/graphql/schema/member/base_dsl_methods.rb
- lib/graphql/schema/member/build_type.rb
- lib/graphql/schema/member/graphql_type_names.rb
- lib/graphql/schema/member/has_arguments.rb
- lib/graphql/schema/member/has_ast_node.rb
- lib/graphql/schema/member/has_deprecation_reason.rb
- lib/graphql/schema/member/has_directives.rb
- lib/graphql/schema/member/has_fields.rb
- lib/graphql/schema/member/has_interfaces.rb
- lib/graphql/schema/member/has_path.rb
- lib/graphql/schema/member/has_unresolved_type_error.rb
- lib/graphql/schema/member/has_validators.rb
- lib/graphql/schema/member/relay_shortcuts.rb
- lib/graphql/schema/member/scoped.rb
- lib/graphql/schema/member/type_system_helpers.rb
- lib/graphql/schema/member/validates_input.rb
- lib/graphql/schema/mutation.rb
- lib/graphql/schema/non_null.rb
- lib/graphql/schema/null_mask.rb
- lib/graphql/schema/object.rb
- lib/graphql/schema/printer.rb
- lib/graphql/schema/relay_classic_mutation.rb
- lib/graphql/schema/resolver.rb
- lib/graphql/schema/resolver/has_payload_type.rb
- lib/graphql/schema/scalar.rb
- lib/graphql/schema/subscription.rb
- lib/graphql/schema/timeout.rb
- lib/graphql/schema/type_expression.rb
- lib/graphql/schema/type_membership.rb
- lib/graphql/schema/union.rb
- lib/graphql/schema/unique_within_type.rb
- lib/graphql/schema/validator.rb
- lib/graphql/schema/validator/allow_blank_validator.rb
- lib/graphql/schema/validator/allow_null_validator.rb
- lib/graphql/schema/validator/exclusion_validator.rb
- lib/graphql/schema/validator/format_validator.rb
- lib/graphql/schema/validator/inclusion_validator.rb
- lib/graphql/schema/validator/length_validator.rb
- lib/graphql/schema/validator/numericality_validator.rb
- lib/graphql/schema/validator/required_validator.rb
- lib/graphql/schema/warden.rb
- lib/graphql/schema/wrapper.rb
- lib/graphql/static_validation.rb
- lib/graphql/static_validation/all_rules.rb
- lib/graphql/static_validation/base_visitor.rb
- lib/graphql/static_validation/definition_dependencies.rb
- lib/graphql/static_validation/error.rb
- lib/graphql/static_validation/interpreter_visitor.rb
- lib/graphql/static_validation/literal_validator.rb
- lib/graphql/static_validation/rules/argument_literals_are_compatible.rb
- lib/graphql/static_validation/rules/argument_literals_are_compatible_error.rb
- lib/graphql/static_validation/rules/argument_names_are_unique.rb
- lib/graphql/static_validation/rules/argument_names_are_unique_error.rb
- lib/graphql/static_validation/rules/arguments_are_defined.rb
- lib/graphql/static_validation/rules/arguments_are_defined_error.rb
- lib/graphql/static_validation/rules/directives_are_defined.rb
- lib/graphql/static_validation/rules/directives_are_defined_error.rb
- lib/graphql/static_validation/rules/directives_are_in_valid_locations.rb
- lib/graphql/static_validation/rules/directives_are_in_valid_locations_error.rb
- lib/graphql/static_validation/rules/fields_are_defined_on_type.rb
- lib/graphql/static_validation/rules/fields_are_defined_on_type_error.rb
- lib/graphql/static_validation/rules/fields_have_appropriate_selections.rb
- lib/graphql/static_validation/rules/fields_have_appropriate_selections_error.rb
- lib/graphql/static_validation/rules/fields_will_merge.rb
- lib/graphql/static_validation/rules/fields_will_merge_error.rb
- lib/graphql/static_validation/rules/fragment_names_are_unique.rb
- lib/graphql/static_validation/rules/fragment_names_are_unique_error.rb
- lib/graphql/static_validation/rules/fragment_spreads_are_possible.rb
- lib/graphql/static_validation/rules/fragment_spreads_are_possible_error.rb
- lib/graphql/static_validation/rules/fragment_types_exist.rb
- lib/graphql/static_validation/rules/fragment_types_exist_error.rb
- lib/graphql/static_validation/rules/fragments_are_finite.rb
- lib/graphql/static_validation/rules/fragments_are_finite_error.rb
- lib/graphql/static_validation/rules/fragments_are_named.rb
- lib/graphql/static_validation/rules/fragments_are_named_error.rb
- lib/graphql/static_validation/rules/fragments_are_on_composite_types.rb
- lib/graphql/static_validation/rules/fragments_are_on_composite_types_error.rb
- lib/graphql/static_validation/rules/fragments_are_used.rb
- lib/graphql/static_validation/rules/fragments_are_used_error.rb
- lib/graphql/static_validation/rules/input_object_names_are_unique.rb
- lib/graphql/static_validation/rules/input_object_names_are_unique_error.rb
- lib/graphql/static_validation/rules/mutation_root_exists.rb
- lib/graphql/static_validation/rules/mutation_root_exists_error.rb
- lib/graphql/static_validation/rules/no_definitions_are_present.rb
- lib/graphql/static_validation/rules/no_definitions_are_present_error.rb
- lib/graphql/static_validation/rules/operation_names_are_valid.rb
- lib/graphql/static_validation/rules/operation_names_are_valid_error.rb
- lib/graphql/static_validation/rules/query_root_exists.rb
- lib/graphql/static_validation/rules/query_root_exists_error.rb
- lib/graphql/static_validation/rules/required_arguments_are_present.rb
- lib/graphql/static_validation/rules/required_arguments_are_present_error.rb
- lib/graphql/static_validation/rules/required_input_object_attributes_are_present.rb
- lib/graphql/static_validation/rules/required_input_object_attributes_are_present_error.rb
- lib/graphql/static_validation/rules/subscription_root_exists.rb
- lib/graphql/static_validation/rules/subscription_root_exists_error.rb
- lib/graphql/static_validation/rules/unique_directives_per_location.rb
- lib/graphql/static_validation/rules/unique_directives_per_location_error.rb
- lib/graphql/static_validation/rules/variable_default_values_are_correctly_typed.rb
- lib/graphql/static_validation/rules/variable_default_values_are_correctly_typed_error.rb
- lib/graphql/static_validation/rules/variable_names_are_unique.rb
- lib/graphql/static_validation/rules/variable_names_are_unique_error.rb
- lib/graphql/static_validation/rules/variable_usages_are_allowed.rb
- lib/graphql/static_validation/rules/variable_usages_are_allowed_error.rb
- lib/graphql/static_validation/rules/variables_are_input_types.rb
- lib/graphql/static_validation/rules/variables_are_input_types_error.rb
- lib/graphql/static_validation/rules/variables_are_used_and_defined.rb
- lib/graphql/static_validation/rules/variables_are_used_and_defined_error.rb
- lib/graphql/static_validation/type_stack.rb
- lib/graphql/static_validation/validation_context.rb
- lib/graphql/static_validation/validation_timeout_error.rb
- lib/graphql/static_validation/validator.rb
- lib/graphql/string_encoding_error.rb
- lib/graphql/subscriptions.rb
- lib/graphql/subscriptions/action_cable_subscriptions.rb
- lib/graphql/subscriptions/broadcast_analyzer.rb
- lib/graphql/subscriptions/default_subscription_resolve_extension.rb
- lib/graphql/subscriptions/event.rb
- lib/graphql/subscriptions/instrumentation.rb
- lib/graphql/subscriptions/serialize.rb
- lib/graphql/tracing.rb
- lib/graphql/tracing/active_support_notifications_tracing.rb
- lib/graphql/tracing/appoptics_tracing.rb
- lib/graphql/tracing/appsignal_tracing.rb
- lib/graphql/tracing/data_dog_tracing.rb
- lib/graphql/tracing/new_relic_tracing.rb
- lib/graphql/tracing/notifications_tracing.rb
- lib/graphql/tracing/platform_tracing.rb
- lib/graphql/tracing/prometheus_tracing.rb
- lib/graphql/tracing/prometheus_tracing/graphql_collector.rb
- lib/graphql/tracing/scout_tracing.rb
- lib/graphql/tracing/statsd_tracing.rb
- lib/graphql/type_kinds.rb
- lib/graphql/types.rb
- lib/graphql/types/big_int.rb
- lib/graphql/types/boolean.rb
- lib/graphql/types/float.rb
- lib/graphql/types/id.rb
- lib/graphql/types/int.rb
- lib/graphql/types/iso_8601_date.rb
- lib/graphql/types/iso_8601_date_time.rb
- lib/graphql/types/json.rb
- lib/graphql/types/relay.rb
- lib/graphql/types/relay/base_connection.rb
- lib/graphql/types/relay/base_edge.rb
- lib/graphql/types/relay/connection_behaviors.rb
- lib/graphql/types/relay/default_relay.rb
- lib/graphql/types/relay/edge_behaviors.rb
- lib/graphql/types/relay/has_node_field.rb
- lib/graphql/types/relay/has_nodes_field.rb
- lib/graphql/types/relay/node.rb
- lib/graphql/types/relay/node_behaviors.rb
- lib/graphql/types/relay/page_info.rb
- lib/graphql/types/relay/page_info_behaviors.rb
- lib/graphql/types/string.rb
- lib/graphql/unauthorized_error.rb
- lib/graphql/unauthorized_field_error.rb
- lib/graphql/unresolved_type_error.rb
- lib/graphql/version.rb