Validate Plugin Configuration
Each plugin can also provide a function to validate the configuration before executing it.
You can use this function to:
- test for other plugin's existence (for example, if your plugin requires another plugin to function correctly)
- validate the name and path of the output file
- validate the schema or documents
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) {}
}
💡
outputFile
is the name of the output file, and you can use it to enforce the specific filename of a specific file
extension.
💡
allPlugins
is a list of all plugins requested in this specific output file - use it to create dependencies between
plugins.
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!`)
}
}
}