Envelop v2 documentation (superseded by v4): Sharing Envelops
Sharing / Composing envelop Instances
After an envelop has been created, you can re-use the envelop and compose it with different
envelops or plugins. This is useful if you wish to create a predefined layer of plugins and share it
with others. This allows writing shareable pieces that can be used.
Here’s a small example for sharing envelops:
import * as GraphQLJS from 'graphql'import { envelop, useEngine, useEnvelop, useSchema } from '@envelop/core'// Somewhere where you wish to create the basics of what you wish to share// This defined the base plugins you wish to use as a base.const myBaseEnvelop = envelop({ plugins: [useOrgAuth(), useOrgTracing(), useOrgLogsCollector()]})// Later, when you create your own Envelop, you can extend that and add custom plugins.// You can also specify the schema only at this pointconst myEnvelop = envelop({ plugins: [ useEngine(GraphQLJS), useEnvelop(myBaseEnvelop), useSchema(myServerSchema), useMyCustomPlugin() ]})
This approach allows developers to create a base Envelop and share it across the organization: you
can define your monitoring setup, logging, authentication, etc., only once in a shared package and
share it with others without losing the ability to extend it.
This site uses cookies for analytics and improving your experience.