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-erase
plugin 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.