graphdoc plugins

Follow me on GitHub


GraphQL schema HTML documentation generation, erasing unwanted types using graphdoc

graphdoc-plugin-erase graphdoc-plugin-erase  License   Github repo Gitlab repo


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 in graphdoc.


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 on name.
  • eraseByDescriptionRegex: Regular Expression to be used to remove types, based on description.
  • eraseByKindRegex: Regular Expression to be used to remove types, based on kind.

graphdoc-plugin-erase plugin should be add before the plugins we want to have filtered types.

Online Examples


Prerequisites

graphdoc can work with older versions of GraphQL (description syntax: #), and new versions (description syntax: “””), How to configure graphdoc.


Main documentation

Back to homepage