Oxide::Introspection
Constants
DirectiveLocationType = Oxide::Types::EnumType.new(name: "__DirectiveLocation", values: [Oxide::Types::EnumValue.new(name: "QUERY"), Oxide::Types::EnumValue.new(name: "MUTATION"), Oxide::Types::EnumValue.new(name: "SUBSCRIPTION"), Oxide::Types::EnumValue.new(name: "FIELD"), Oxide::Types::EnumValue.new(name: "FRAGMENT_DEFINITION"), Oxide::Types::EnumValue.new(name: "FRAGMENT_SPREAD"), Oxide::Types::EnumValue.new(name: "INLINE_FRAGMENT"), Oxide::Types::EnumValue.new(name: "SCHEMA"), Oxide::Types::EnumValue.new(name: "SCALAR"), Oxide::Types::EnumValue.new(name: "OBJECT"), Oxide::Types::EnumValue.new(name: "FIELD_DEFINITION"), Oxide::Types::EnumValue.new(name: "ARGUMENT_DEFINITION"), Oxide::Types::EnumValue.new(name: "INTERFACE"), Oxide::Types::EnumValue.new(name: "UNION"), Oxide::Types::EnumValue.new(name: "ENUM"), Oxide::Types::EnumValue.new(name: "ENUM_VALUE"), Oxide::Types::EnumValue.new(name: "INPUT_OBJECT"), Oxide::Types::EnumValue.new(name: "INPUT_FIELD_DEFINITION")])
DirectiveType = Oxide::Types::ObjectType.new(name: "__Directive", fields: {"name" => Oxide::Field.new(type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::StringType.new), resolve: ->(object : Directive, resolution : Oxide::Resolution) do
object.name
end), "description" => Oxide::Field.new(type: Oxide::Types::StringType.new, resolve: ->(object : Directive, resolution : Oxide::Resolution) do
nil
end), "locations" => Oxide::Field.new(type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::ListType.new(of_type: Oxide::Types::NonNullType.new(of_type: DirectiveLocationType))), resolve: ->(object : Directive, resolution : Oxide::Resolution) do
object.locations.map(&.to_s)
end), "args" => Oxide::Field.new(type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::ListType.new(of_type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::LateBoundType.new("__InputValue")))), arguments: {"includeDeprecated" => Oxide::Argument.new(type: Oxide::Types::BooleanType.new, default_value: false)}, resolve: ->(object : Directive, resolution : Oxide::Resolution) do
if resolution.arguments["includeDeprecated"]?
object.arguments.map do |name, argument|
Introspection::ArgumentInfo.new(name, argument)
end
else
object.arguments.reject do |_, argument| argument.deprecated? end.map do |name, argument|
Introspection::ArgumentInfo.new(name, argument)
end
end
end), "isRepeatable" => Oxide::Field.new(type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::BooleanType.new), resolve: ->(object : Directive, resolution : Oxide::Resolution) do
object.repeatable
end)})
EnumValueType = Oxide::Types::ObjectType.new(name: "__EnumValue", fields: {"name" => Oxide::Field.new(type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::StringType.new), resolve: ->(object : Types::EnumValue, resolution : Oxide::Resolution) do
object.name
end), "description" => Oxide::Field.new(type: Oxide::Types::StringType.new, resolve: ->(object : Types::EnumValue, resolution : Oxide::Resolution) do
object.description
end), "isDeprecated" => Oxide::Field.new(type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::BooleanType.new), resolve: ->(object : Types::EnumValue, resolution : Oxide::Resolution) do
object.deprecated?
end), "deprecationReason" => Oxide::Field.new(type: Oxide::Types::StringType.new, resolve: ->(object : Types::EnumValue, resolution : Oxide::Resolution) do
object.deprecation_reason
end)})
FieldType = Oxide::Types::ObjectType.new(name: "__Field", fields: {"name" => Oxide::Field.new(type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::StringType.new), resolve: ->(object : FieldInfo, resolution : Oxide::Resolution) do
object.name
end), "description" => Oxide::Field.new(type: Oxide::Types::StringType.new, resolve: ->(object : FieldInfo, resolution : Oxide::Resolution) do
object.description
end), "args" => Oxide::Field.new(arguments: {"includeDeprecated" => Oxide::Argument.new(type: Oxide::Types::BooleanType.new, default_value: false)}, type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::ListType.new(of_type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::LateBoundType.new("__InputValue")))), resolve: ->(object : FieldInfo, resolution : Oxide::Resolution) do
if resolution.arguments["includeDeprecated"]?
object.arguments.map do |name, argument|
Introspection::ArgumentInfo.new(name, argument)
end
else
object.arguments.reject do |_, argument| argument.deprecated? end.map do |name, argument|
Introspection::ArgumentInfo.new(name, argument)
end
end
end), "type" => Oxide::Field.new(type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::LateBoundType.new("__Type")), resolve: ->(object : FieldInfo, resolution : Oxide::Resolution) do
object.type
end), "isDeprecated" => Oxide::Field.new(type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::BooleanType.new), resolve: ->(object : FieldInfo, resolution : Oxide::Resolution) do
object.deprecated?
end), "deprecationReason" => Oxide::Field.new(type: Oxide::Types::StringType.new, resolve: ->(object : FieldInfo, resolution : Oxide::Resolution) do
object.deprecation_reason
end)})
InputValueType = Oxide::Types::ObjectType.new(name: "__InputValue", fields: {"name" => Oxide::Field.new(type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::StringType.new), resolve: ->(object : ArgumentInfo, resolution : Oxide::Resolution) do
object.name
end), "description" => Oxide::Field.new(type: Oxide::Types::StringType.new, resolve: ->(object : ArgumentInfo, resolution : Oxide::Resolution) do
object.description
end), "type" => Oxide::Field.new(type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::LateBoundType.new("__Type")), resolve: ->(object : ArgumentInfo, resolution : Oxide::Resolution) do
object.type
end), "defaultValue" => Oxide::Field.new(type: Oxide::Types::StringType.new, resolve: ->(object : ArgumentInfo, resolution : Oxide::Resolution) do
if default_value = object.default_value
case default_value
when Types::EnumValue
default_value.value
when String
"\"#{default_value}\""
else
default_value
end
end
end), "isDeprecated" => Oxide::Field.new(type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::BooleanType.new), resolve: ->(object : ArgumentInfo, resolution : Oxide::Resolution) do
object.deprecated?
end), "deprecationReason" => Oxide::Field.new(type: Oxide::Types::StringType.new, resolve: ->(object : ArgumentInfo, resolution : Oxide::Resolution) do
object.deprecation_reason
end)})
QueryType = Oxide::Types::ObjectType.new(name: "__IntrospectionQuery", fields: {"__schema" => Oxide::Field.new(type: Oxide::Types::LateBoundType.new("__Schema"), resolve: ->(object : Query, resolution : Oxide::Resolution) do
resolution.schema
end)})
Schema = ::Oxide::Schema.new(query: Introspection::QueryType, mutation: nil)
SchemaType = Oxide::Types::ObjectType.new(name: "__Schema", fields: {"description" => Oxide::Field.new(type: Oxide::Types::StringType.new, resolve: ->(object : Oxide::Schema, resolution : Oxide::Resolution) do
nil
end), "types" => Oxide::Field.new(type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::ListType.new(of_type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::LateBoundType.new("__Type")))), resolve: ->(object : Oxide::Schema, resolution : Oxide::Resolution) do
object.types
end), "queryType" => Oxide::Field.new(type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::LateBoundType.new("__Type")), resolve: ->(object : Oxide::Schema, resolution : Oxide::Resolution) do
object.query
end), "mutationType" => Oxide::Field.new(type: Oxide::Types::LateBoundType.new("__Type"), resolve: ->(object : Oxide::Schema, resolution : Oxide::Resolution) do
object.mutation
end), "subscriptionType" => Oxide::Field.new(type: Oxide::Types::LateBoundType.new("__Type"), resolve: ->(object : Oxide::Schema, resolution : Oxide::Resolution) do
nil
end), "directives" => Oxide::Field.new(type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::ListType.new(of_type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::LateBoundType.new("__Directive")))), resolve: ->(object : Oxide::Schema, resolution : Oxide::Resolution) do
object.directives
end)})
TypeKindType = Oxide::Types::EnumType.new(name: "__TypeKind", values: [Oxide::Types::EnumValue.new(name: "SCALAR"), Oxide::Types::EnumValue.new(name: "OBJECT"), Oxide::Types::EnumValue.new(name: "INTERFACE"), Oxide::Types::EnumValue.new(name: "UNION"), Oxide::Types::EnumValue.new(name: "ENUM"), Oxide::Types::EnumValue.new(name: "INPUT_OBJECT"), Oxide::Types::EnumValue.new(name: "LIST"), Oxide::Types::EnumValue.new(name: "NON_NULL")])
TypeType = Oxide::Types::ObjectType.new(name: "__Type", fields: {"kind" => Oxide::Field.new(type: Oxide::Types::NonNullType.new(of_type: TypeKindType), resolve: ->(object : Type, resolution : Oxide::Resolution) do
(object.unwrap(resolution.schema)).kind
end), "name" => Oxide::Field.new(type: Oxide::Types::StringType.new, resolve: ->(object : Type, resolution : Oxide::Resolution) do
(object.unwrap(resolution.schema)).name
end), "description" => Oxide::Field.new(type: Oxide::Types::StringType.new, resolve: ->(object : Type, resolution : Oxide::Resolution) do
(object.unwrap(resolution.schema)).description
end), "fields" => Oxide::Field.new(arguments: {"includeDeprecated" => Oxide::Argument.new(type: Oxide::Types::BooleanType.new, default_value: false)}, type: Oxide::Types::ListType.new(of_type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::LateBoundType.new("__Field"))), resolve: ->(object : Type, resolution : Oxide::Resolution) do
type = object.unwrap(resolution.schema)
case type
when Types::ObjectType, Types::InterfaceType
if resolution.arguments["includeDeprecated"]?
type.all_fields.map do |name, field|
FieldInfo.new(name, field)
end
else
type.fields.reject do |_, field| field.deprecated? end.map do |name, field|
FieldInfo.new(name, field)
end
end
end
end), "interfaces" => Oxide::Field.new(type: Oxide::Types::ListType.new(of_type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::LateBoundType.new("__Type"))), resolve: ->(object : Type, resolution : Oxide::Resolution) do
type = object.unwrap(resolution.schema)
case type
when Types::ObjectType, Types::InterfaceType
type.interfaces
end
end), "possibleTypes" => Oxide::Field.new(type: Oxide::Types::ListType.new(of_type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::LateBoundType.new("__Type"))), resolve: ->(object : Type, resolution : Oxide::Resolution) do
type = object.unwrap(resolution.schema)
case type
when Types::UnionType
type.possible_types
when Types::InterfaceType
resolution.schema.not_nil!.type_map.each_with_object([] of Oxide::Type) do |__temp_92, memo|
_, potential = __temp_92
if (potential.responds_to?(:interfaces)) && (potential.interfaces.includes?(type))
memo << type
end
end
end
end), "enumValues" => Oxide::Field.new(arguments: {"includeDeprecated" => Oxide::Argument.new(type: Oxide::Types::BooleanType.new, default_value: false)}, type: Oxide::Types::ListType.new(of_type: Oxide::Types::NonNullType.new(of_type: Introspection::EnumValueType)), resolve: ->(object : Type, resolution : Oxide::Resolution) do
type = object.unwrap(resolution.schema)
case type
when Types::EnumType
if resolution.arguments["includeDeprecated"]?
type.values
else
type.values.reject(&.deprecated?)
end
end
end), "inputFields" => Oxide::Field.new(arguments: {"includeDeprecated" => Oxide::Argument.new(type: Oxide::Types::BooleanType.new, default_value: false)}, type: Oxide::Types::ListType.new(of_type: Oxide::Types::NonNullType.new(of_type: Oxide::Types::LateBoundType.new("__InputValue"))), resolve: ->(object : Type, resolution : Oxide::Resolution) do
type = object.unwrap(resolution.schema)
case type
when Types::InputObjectType
if resolution.arguments["includeDeprecated"]?
type.input_fields.map do |name, argument|
Introspection::ArgumentInfo.new(name, argument)
end
else
type.input_fields.reject do |_, argument| argument.deprecated? end.map do |name, argument|
Introspection::ArgumentInfo.new(name, argument)
end
end
end
end), "ofType" => Oxide::Field.new(type: Oxide::Types::LateBoundType.new("__Type"), resolve: ->(object : Type, resolution : Oxide::Resolution) do
type = object.unwrap(resolution.schema)
case type
when Types::NonNullType, Types::ListType
type.of_type
end
end), "specifiedByURL" => Oxide::Field.new(type: Oxide::Types::StringType.new, resolve: ->(object : Type, resolution : Oxide::Resolution) do
nil
end)})