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.ts:96

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​

options​

static options: Readonly<Maybe<PrintTypeOptions>>;

Defined in: printer.ts:101

Global printer configuration options

Static​

printCustomDirectives()​

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

Defined in: printer.ts:113

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

Static​

printCustomTags()​

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

Defined in: printer.ts:119

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

Static​

printDescription()​

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

Defined in: printer.ts:107

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

Static​

printMDXModule​

static printMDXModule: Readonly<MDXSupportType>;

Defined in: printer.ts:125

MDX module configuration

Static​

Methods​

init()​

static init(
schema,
baseURL,
linkRoot,
options,
mdxParser?): Promise<void>

Defined in: printer.ts:136

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<MetaOptions>

metatags?​

Record<string, string>[]

onlyDocDirectives?​

GraphQLDirective[]

printTypeOptions?​

PrinterConfigPrintTypeOptions

skipDocDirectives?​

GraphQLDirective[]

mdxParser?​

Record<string, unknown>

Optional MDX parser module for MDX output support

Returns​

Promise<void>

printCode()​

readonly static printCode(type, options): string

Defined in: printer.ts:228

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

printExample()​

readonly static printExample(type, options): string

Defined in: printer.ts:280

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.ts:207

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.ts:362

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.ts:345

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?): Maybe<MDXString>

Defined in: printer.ts:408

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​

Maybe<MDXString>

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

Example​
const doc = 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

printTypeMetadata()​

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

Defined in: printer.ts:309

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