generator
Core generator functionality for GraphQL Markdown documentation.
This module contains the main functionality for generating markdown documentation from GraphQL schemas. It handles schema loading, processing, and markdown generation through appropriate printers and renderers.
FILE_EXTENSION
const FILE_EXTENSION: object;
Defined in: generator.ts:62
Supported file extensions for generated documentation files.
Type Declaration
MD
readonly MD: ".md" = ".md";
MDX
readonly MDX: ".mdx" = ".mdx";
Remarks
- MDX: MDX file extension (.mdx) for React component-enabled markdown
- MD: Standard markdown file extension (.md)
checkSchemaDifferences()
function checkSchemaDifferences(
schema,
schemaLocation,
diffMethod,
tmpDir,
): Promise<boolean>;
Defined in: generator.ts:264
Checks if there are differences in the GraphQL schema compared to a previous version.
Parameters
schema
GraphQLSchema
The GraphQL schema to check for differences.
schemaLocation
string
The location/path of the schema file for logging purposes.
diffMethod
Maybe<TypeDiffMethod>
The method to use for detecting differences. If set to NONE, changes detection is skipped.
tmpDir
string
The temporary directory path used for storing and comparing schema versions.
Returns
Promise<boolean>
A promise that resolves to true if changes are detected or if diff method is NONE,
or false if no changes are detected.
Remarks
When no changes are detected, a log message is generated indicating that the schema is unchanged.
generateDocFromSchema()
function generateDocFromSchema(options): Promise<void>;
Defined in: generator.ts:336
Main entry point for generating Markdown documentation from a GraphQL schema.
This function coordinates the entire documentation generation process:
- Loads and validates the schema
- Checks for schema changes if diffing is enabled
- Processes directives and groups
- Initializes printers and renderers
- Generates markdown files
Parameters
options
GeneratorOptions
Complete configuration for the documentation generation
Returns
Promise<void>
Promise that resolves when documentation is fully generated
getFormatterFromMDXModule()
function getFormatterFromMDXModule(
mdxModule,
meta?,
): Partial<Formatter> | undefined;
Defined in: generator.ts:169
Internal
Extracts a formatter from an MDX module.
Checks for formatter functions in the following order:
- A
createMDXFormatterfactory function (for internal/advanced usage) - Individual exported formatter functions (e.g.,
formatMDXBadge,formatMDXAdmonition)
Parameters
mdxModule
unknown
The loaded MDX module that may contain formatter exports
meta?
MetaInfo
Optional metadata to pass to the formatter factory
Returns
Partial<Formatter> | undefined
A partial Formatter with the found functions, or undefined if none found
getMDXModuleProperty()
function getMDXModuleProperty<T>(mdxModule, propertyName): T | undefined;
Defined in: generator.ts:132
Internal
Gets a property from an MDX module, checking both the module directly and module.default.
This handles the differences between ESM and CommonJS module exports when dynamically importing.
Type Parameters
T
T
Parameters
mdxModule
unknown
The loaded MDX module
propertyName
string
The name of the property to extract
Returns
T | undefined
The property value if found, otherwise undefined
loadGraphqlSchema()
function loadGraphqlSchema(
schemaLocation,
loadersList,
): Promise<Maybe<GraphQLSchema>>;
Defined in: generator.ts:233
Internal
Loads a GraphQL schema from the specified location using configured document loaders.
Parameters
schemaLocation
string
The location/path of the GraphQL schema to load (e.g., file path, URL, or glob pattern).
loadersList
Maybe<LoaderOption>
Optional loader configuration for customizing how the schema is loaded.
Returns
Promise<Maybe<GraphQLSchema>>
A promise that resolves to the loaded GraphQL schema, or undefined if:
- The loaders cannot be initialized
- An error occurs during schema loading
loadMDXModule()
function loadMDXModule(mdxParser): Promise<unknown>;
Defined in: generator.ts:91
Internal
Asynchronously loads an MDX module dynamically.
Parameters
mdxParser
Maybe<string | PackageName>
The MDX parser package name or path to import. Can be null or undefined.
Returns
Promise<unknown>
A promise that resolves to the imported module, or undefined if:
- The mdxParser parameter is null or undefined
- An error occurs during import (logs a warning and returns undefined)
resolveSkipAndOnlyDirectives()
function resolveSkipAndOnlyDirectives(
onlyDocDirective,
skipDocDirective,
schema,
): GraphQLDirective[][];
Defined in: generator.ts:295
Resolves and retrieves GraphQL directive objects from the schema based on their names.
Takes two lists of directive names (for "only" and "skip" documentation directives), looks them up in the provided GraphQL schema, and returns the resolved directive objects.
Parameters
onlyDocDirective
Maybe<DirectiveName | DirectiveName[]>
A directive name or array of directive names for "only" documentation filtering
skipDocDirective
Maybe<DirectiveName | DirectiveName[]>
A directive name or array of directive names for "skip" documentation filtering
schema
GraphQLSchema
The GraphQL schema to resolve directives from
Returns
GraphQLDirective[][]
A tuple containing two arrays: the first with resolved "only" directives, the second with resolved "skip" directives. Only defined directives are included.