Skip to main content
Module

x/graphql_deno/mod.ts>GraphQLObjectType

GraphQL-JS ported to Deno
Latest
class GraphQLObjectType
import { GraphQLObjectType } from "https://deno.land/x/graphql_deno@v15.0.0/mod.ts";

Object Type Definition

Almost all of the GraphQL types you define will be object types. Object types have a name, but most importantly describe their fields.

Example:

const AddressType = new GraphQLObjectType({
  name: 'Address',
  fields: {
    street: { type: GraphQLString },
    number: { type: GraphQLInt },
    formatted: {
      type: GraphQLString,
      resolve(obj) {
        return obj.number + ' ' + obj.street
      }
    }
  }
});

When two types need to refer to each other, or a type needs to refer to itself in a field, you can use a function expression (aka a closure or a thunk) to supply the fields lazily.

Example:

const PersonType = new GraphQLObjectType({
  name: 'Person',
  fields: () => ({
    name: { type: GraphQLString },
    bestFriend: { type: PersonType },
  })
});

Constructors

new
GraphQLObjectType(config: Readonly<GraphQLObjectTypeConfig<TSource, TContext>>)

Type Parameters

optional
TSource = any
optional
TContext = any

Properties

astNode: Maybe<ObjectTypeDefinitionNode>
description: Maybe<string>
extensionASTNodes: Maybe<ReadonlyArray<ObjectTypeExtensionNode>>
extensions: Maybe<Readonly<Record<string, any>>>
name: string

Methods

inspect(): string
toConfig(): GraphQLObjectTypeConfig<any, any> & { interfaces: Array<GraphQLInterfaceType>; fields: GraphQLFieldConfigMap<any, any>; extensions: Maybe<Readonly<Record<string, any>>>; extensionASTNodes: ReadonlyArray<ObjectTypeExtensionNode>; }
toJSON(): string
toString(): string