Skip to main content

printer

GraphQL Schema Printer Module

This module provides functionality for printing GraphQL schema types into Markdown documentation. It includes utilities for handling various GraphQL types, custom directives, and formatting options.

Printer

Defined in: printer-legacy/src/printer.ts:119

The Printer class implements the core functionality for generating Markdown documentation from GraphQL schema types.

Remarks

This class provides static methods for rendering different components of the documentation:

  • Headers and frontmatter
  • Type descriptions and code blocks
  • Custom directives and metadata
  • Examples and relations

Example

const printer = new Printer();
await printer.init(schema, "/docs", "graphql", options);
const docs = printer.printType("Query", queryType);

Implements

  • IPrinter

Constructors

Constructor

new Printer(): Printer;
Returns

Printer

Properties

eventEmitter

static eventEmitter: Maybe<PrinterEventEmitter>;

Defined in: printer-legacy/src/printer.ts:130

Optional event emitter for print events. When set, the printer will emit events before/after printCode and printType, allowing external code to intercept and modify the output.

mdxDeclaration

static mdxDeclaration: Readonly<Maybe<string>>;

Defined in: printer-legacy/src/printer.ts:150

Prints mdx modules import declaration

options

static options: Readonly<Maybe<PrintTypeOptions>>;

Defined in: printer-legacy/src/printer.ts:123

Global printer configuration options

printCustomDirectives()

readonly static printCustomDirectives: (type, options) => string;

Defined in: printer-legacy/src/printer.ts:140

Prints custom directives

Prints all custom directives for a type as a Markdown section

Parameters
type

unknown

The GraphQL type to print directives for

options

PrintTypeOptions

General printing options

Returns

string

Markdown string containing all formatted directives

printCustomTags()

readonly static printCustomTags: (type, options) => string | MDXString;

Defined in: printer-legacy/src/printer.ts:145

Prints custom tags

Prints custom directive tags as Markdown badges

Parameters
type

unknown

The GraphQL type to print tags for

options

PrintTypeOptions

General printing options

Returns

string | MDXString

Formatted Markdown string of badges or empty string

printDescription()

readonly static printDescription: (type, options, noText?) => string | MDXString;

Defined in: printer-legacy/src/printer.ts:135

Prints type descriptions

Prints the complete description for a GraphQL type, including deprecation warnings and custom directives.

Parameters
type

unknown

The GraphQL type to document

options

PrintTypeOptions

Configuration options for printing

noText?

string

Optional text to display when no description exists

Returns

string | MDXString

Combined description, deprecation notices, and custom directives as MDX content

Methods

init()

static init(
schema,
baseURL?,
linkRoot?,
options?,
formatter?,
mdxDeclaration?,
eventEmitter?): Promise<void>;

Defined in: printer-legacy/src/printer.ts:163

Initializes the printer with the given schema and configuration.

Parameters
schema

Maybe<GraphQLSchema>

GraphQL schema to generate documentation for

baseURL?

Maybe<string> = "schema"

Base URL path for documentation, e.g. '/docs'

linkRoot?

Maybe<string> = "/"

Root path for generating links between types

options?

Configuration options for the printer

customDirectives?

CustomDirectiveMap

deprecated?

TypeDeprecatedOption

groups?

Partial<Record<SchemaEntity, Record<string, Maybe<string>>>>

meta?

Maybe<MetaInfo>

metatags?

Record<string, string>[]

onlyDocDirectives?

GraphQLDirective[]

printTypeOptions?

PrinterConfigPrintTypeOptions

sectionHeaderId?

boolean

skipDocDirectives?

GraphQLDirective[]

formatter?

Partial<Formatter>

Optional formatter functions for customizing output format

mdxDeclaration?

Maybe<string>

Optional MDX import declaration

eventEmitter?

Maybe<PrinterEventEmitter>

Optional event emitter for print events interception

Returns

Promise<void>

printCode()

readonly static printCode(type, options): string;

Defined in: printer-legacy/src/printer.ts:263

Prints the GraphQL type definition as code block

Parameters
type

unknown

GraphQL type to print

options

PrintTypeOptions

Printer configuration options

Returns

string

Formatted code block string with type definition

printCodeAsync()

readonly static printCodeAsync(
type,
typeName,
options): Promise<string>;

Defined in: printer-legacy/src/printer.ts:323

Prints the GraphQL type definition as code block with event emission support.

Parameters
type

unknown

GraphQL type to print

typeName

string

Name of the type being printed

options

PrintTypeOptions

Printer configuration options

Returns

Promise<string>

Promise resolving to formatted code block string with type definition

Remarks

This async version emits events before and after code generation:

  • print:beforePrintCode - Emitted before generating code (can modify inputs or prevent default)
  • print:afterPrintCode - Emitted after generating code (can modify output)

Event handlers can:

  • Modify event.data.options in BEFORE to affect code generation
  • Call event.preventDefault() in BEFORE to skip default generation and provide custom output
  • Modify event.output in AFTER to change the final result

printExample()

readonly static printExample(type, options): string;

Defined in: printer-legacy/src/printer.ts:378

Prints example usage of the type if available

Parameters
type

unknown

GraphQL type to generate example for

options

PrintTypeOptions

Printer configuration options

Returns

string

Formatted example section string or empty string if no example

printHeader()

readonly static printHeader(
id,
title,
options): string;

Defined in: printer-legacy/src/printer.ts:242

Prints the header section of a type documentation

Parameters
id

string

Unique identifier for the type

title

string

Display title for the type

options

PrintTypeOptions

Printer configuration options

Returns

string

Formatted header string with optional frontmatter

printMetaTags()

readonly static printMetaTags(_type, options): string | MDXString;

Defined in: printer-legacy/src/printer.ts:460

Prints HTML meta tags for the documentation

Parameters
_type

unknown

GraphQL type (unused)

options

PrintTypeOptions

Printer configuration options containing metatags

Returns

string | MDXString

Formatted HTML meta tags string

printRelations()

readonly static printRelations(type, options): string | MDXString;

Defined in: printer-legacy/src/printer.ts:443

Prints related type information

Parameters
type

unknown

GraphQL type to find relations for

options

PrintTypeOptions

Printer configuration options

Returns

string | MDXString

Formatted relations section as MDX or plain string

printType()

readonly static printType(
name,
type,
options?): Promise<Maybe<MDXString>>;

Defined in: printer-legacy/src/printer.ts:510

Main method to print complete documentation for a GraphQL type

Parameters
name

Maybe<string>

Name identifier for the type

type

unknown

GraphQL type to generate documentation for

options?

Maybe<Partial<PrintTypeOptions>>

Optional printer configuration options

Returns

Promise<Maybe<MDXString>>

Complete documentation as MDX string or undefined if type should be skipped

Example
const doc = await Printer.printType("User", UserType, {
frontMatter: true,
codeSection: true,
});
Remarks

The method combines multiple sections:

  • Header with frontmatter
  • Meta tags
  • Description
  • Code definition
  • Custom directives
  • Type metadata
  • Example usage
  • Related types

When an event emitter is configured, emits events:

  • print:beforePrintType - Before generating documentation
  • print:afterPrintType - After generating documentation (output can be modified)

printTypeMetadata()

readonly static printTypeMetadata(type, options): string | MDXString;

Defined in: printer-legacy/src/printer.ts:407

Prints metadata information for a GraphQL type

Parameters
type

unknown

GraphQL type to print metadata for

options

PrintTypeOptions

Printer configuration options

Returns

string | MDXString

Formatted metadata string as MDX or plain string

Throws

When type is not supported