Catch the highlights of GraphQLConf 2023! Click for recordings. Or check out our recap blog post.
Docs
API Reference

API Reference

CONTEXT

source file

CONTEXT is an InjectionToken representing the provided GraphQLModules.GlobalContext

import { CONTEXT, Inject, Injectable } from 'graphql-modules'
 
@Injectable()
export class Data {
  constructor(@Inject(CONTEXT) private context: GraphQLModules.GlobalContext) {}
}

MODULE_ID

source file

MODULE_ID is an InjectionToken representing module's ID

import { MODULE_ID, Inject, Injectable } from 'graphql-modules'
 
@Injectable()
export class Data {
  constructor(@Inject(MODULE_ID) moduleId: string) {
    console.log(`Data used in ${moduleId} module`)
  }
}

Application

source file

A return type of createApplication function.

  • typeDefs - A list of type definitions defined by modules.
  • resolvers - An object with resolve functions defined by modules.
  • schema - Ready to use GraphQLSchema object combined from modules.
  • injector - The application (Singleton) injector.
  • createOperationController - Take over control of GraphQL Operation
  • createSubscription - Creates a subscribe function that runs the subscription phase of GraphQL. Important when using GraphQL Subscriptions.
  • createExecution - Creates a execute function that runs the execution phase of GraphQL. Important when using GraphQL Queries and Mutations.
  • createApolloExecutor - Creates an executor for ApolloServer

ApplicationConfig

source file

Application's configuration object. Represents the first argument of createApplication function.

  • modules - A list of GraphQL Modules
  • providers - A list of Providers - read the "Providers and Tokens" chapter.
  • middlewares - A map of middlewares - read the "Middlewares" chapter.
  • schemaBuilder - Creates a GraphQLSchema object out of typeDefs and resolvers

createApplication

source file

Creates Application out of Modules. Accepts ApplicationConfig.

import { createApplication } from 'graphql-modules'
import { usersModule } from './users'
import { postsModule } from './posts'
import { commentsModule } from './comments'
 
const app = createApplication({
  modules: [usersModule, postsModule, commentsModule]
})

createModule

source file

Creates a Module, an element used by Application. Accepts ModuleConfig.

import { createModule, gql } from 'graphql-modules'
 
export const usersModule = createModule({
  id: 'users',
  typeDefs: gql`
    // GraphQL SDL
  `,
  resolvers: {
    // ...
  }
})

ModuleConfig

source file

Module's configuration object. Represents the first argument of createModule function.

  • id - Unique identifier of a module
  • dirname - Pass __dirname variable as a value to get better error messages.
  • typeDefs - An object or a list of GraphQL type definitions (SDL).
  • resolvers - An object or a list of GraphQL resolve functions.
  • middlewares - A map of middlewares - read the "Middlewares" chapter.
  • providers - A list of Providers - read the "Providers and Tokens" chapter.