website/src/pages/docs/custom-codegen/validate-configuration.mdx
import { Callout } from '@theguild/components'
Each plugin can also provide a function to validate the configuration before executing it.
You can use this function to:
And much more!
To add your plugin validation method, export a function called validate from your plugin file:
module.exports = {
plugin(schema, documents, config, info) {
const typesMap = schema.getTypeMap()
return Object.keys(typesMap).join('\n')
},
validate(schema, documents, config, outputFile, allPlugins) {}
}
You can now check the schema, documents, configuration, output file and sibling plugins, and in case something does not fits your requirements, throw an Error:
module.exports = {
plugin(schema, documents, config, info) {
const typesMap = schema.getTypeMap()
return Object.keys(typesMap).join('\n')
},
validate(schema, documents, config, outputFile, allPlugins) {
if (!config.mustHave) {
throw new Error(`You must specify "mustHave" in my plugin configuration!`)
}
}
}