Options
All
  • Public
  • Public/Protected
  • All
Menu

External module "definition"

Index

Variables

builtinTypes

builtinTypes: string[] = ['String', 'Float', 'Int', 'Boolean', 'ID']

Functions

collectNewTypeDefinitions

  • collectNewTypeDefinitions(allDefinitions: TypeDefinitionNode[], definitionPool: TypeDefinitionNode[], newDefinition: TypeDefinitionNode, schemaMap: DefinitionMap): TypeDefinitionNode[]
  • Processes a single type definition, and performs a number of checks:

    • Add missing interface implementations
    • Add missing referenced types
    • Remove unused type definitions

    Parameters

    • allDefinitions: TypeDefinitionNode[]

      All definitions from all schemas (only used to find missing interface implementations)

    • definitionPool: TypeDefinitionNode[]

      Resulting definitions

    • newDefinition: TypeDefinitionNode

      All imported definitions

    • schemaMap: DefinitionMap

      Map of all definitions for easy lookup

    Returns TypeDefinitionNode[]

    All relevant type definitions to add to the final schema

completeDefinitionPool

  • completeDefinitionPool(allDefinitions: TypeDefinitionNode[], definitionPool: TypeDefinitionNode[], newTypeDefinitions: TypeDefinitionNode[]): TypeDefinitionNode[]
  • Post processing of all imported type definitions. Loops over each of the imported type definitions, and processes it using collectNewTypeDefinitions.

    Parameters

    • allDefinitions: TypeDefinitionNode[]

      All definitions from all schemas

    • definitionPool: TypeDefinitionNode[]

      Current definitions (from first schema)

    • newTypeDefinitions: TypeDefinitionNode[]

      All imported definitions

    Returns TypeDefinitionNode[]

    Final collection of type definitions for the resulting schema

getNamedType

  • getNamedType(type: TypeNode): NamedTypeNode
  • Nested visitor for a type node to get to the final NamedType

    Parameters

    • type: TypeNode

      Type node to get NamedTypeNode for

    Returns NamedTypeNode

    The found NamedTypeNode