Transformer API
Transformers are used by the source plugins to parse content. They are automatically used as long as they are installed and found in package.json
.
Mime types
transformer.mimeTypes()
A transformer must have a static mimeTypes
method which returns an array of mime types the transformer should be able to parse.
Parse content
transformer.parse(source)
A transformer must also implement a parse
method that will be executed be source plugins to parse content. The method must return a node.
Add GraphQL fields
transformer.extendNodeType()
Transformers can also extend nodes in the GraphQL schema with additional fields by implementing a extendNodeType
method. The fields will only be added to nodes it has transformed.
Example
class Transformer { static mimeTypes () { return ['application/json'] } parse (source) { const { title, ...fields } = JSON.parse(source) return { title, fields } } extendNodeType ({ graphql }) { return { // custom GraphQL fields for transformed node } } } module.exports = Transformer