GraphQL schema HTML documentation generation, erasing unwanted types using graphdoc
Quick Start
1 . Add dependencies:
package.json:
"devDependencies": {
"@2fd/graphdoc": "2.4.0",
"graphdoc-plugin-erase": "1.1.0",
2 . If default options are not suitable, then Configure graphdoc-plugin-erase:
package.json:
{
"graphdoc-plugin-erase": {
"eraseByNameRegex": "\\w*No",
"eraseByDescriptionRegex": "@RemoveFromDocumentation",
"eraseByKindRegex": "(?:UNION|SCALAR)"
}
}
3 Use graphdoc-plugin-erase:
package.json:
"scripts": {
"doc": "graphdoc -p graphdoc/../../graphdoc-plugin-erase -p graphdoc/plugins/default -s ./schema.graphql -o ./build/documentation"
}
or if using graphdoc-plugin-flexible instead of graphdoc default plugins
"scripts": {
"doc": "graphdoc -p graphdoc/../../graphdoc-plugin-erase -p graphdoc/../../graphdoc-plugin-flexible -s ./schema.graphql -o ./build/documentation"
}
graphdoc/../../this is required to get external plugins working ingraphdoc.
Goals
graphdoc-plugin-erase provides a way to use graphdoc and remove some types that are not required in the documentation, e.g. __Directive, __EnumValue, __DirectiveLocation, etc.
Options
package.json:
(default values)
{
"graphdoc-plugin-erase": {
"eraseByNameRegex": "^__",
"eraseByDescriptionRegex": "^$",
"eraseByKindRegex": "^$"
}
}
eraseByNameRegex: Regular Expression to be used to remove types, based onname.eraseByDescriptionRegex: Regular Expression to be used to remove types, based ondescription.eraseByKindRegex: Regular Expression to be used to remove types, based onkind.
graphdoc-plugin-eraseplugin should be add before the plugins we want to have filtered types.
Online Examples
- Pokemon GraphQL schema: Project and Online generated documentation.
- Github GraphQL schema: Project and Online generated documentation.
Prerequisites
graphdoc can work with older versions of GraphQL (description syntax: #), and new versions (description syntax: “””), How to configure graphdoc.
