envelop plugins are based on a simple event-based contact that allows you to add more logic to your app.
You can easily share and collaborate on plugins that you find generic.
By extending the GraphQL execution pipeline, we allow developers to write reusable plugins that can be shared with others easily, as NPM packages.
So instead of delivering a bloated GraphQL server with tons of features, we allow you to choose the HTTP server you prefer, the request pipeline you like, and the features you want.
You can find a list of all plugins, their documentation and installation instructions in our Plugin Hub!
The plugin interface#
You can find it here: https://github.com/dotansimha/envelop/blob/main/packages/types/src/plugin.ts#L12
What plugins can do?#
Plugins are capable to modify/alter evert aspect of the GraphQL execution flow, including the way you do
subscribe and build your GraphQL context.
We also allow you to change the GraphQL schema during execution - so if your server has a schema that could change dynamically, you can constantly update it. As a result, we trigger a
schemaChange event that allows plugins to respond accordingly.