The Guild LogoThe Guild Monogram
Envelop Logo

Envelop

Get Started

Plugin Hub > useGraphQLJit

yarn add @envelop/graphql-jit

@envelop/graphql-jit#

This plugins replaces the original execute of GraphQL with graphql-jit.

Getting Started#

yarn add @envelop/graphql-jit

Usage Example#

import { envelop } from '@envelop/core'; import { useGraphQlJit } from '@envelop/graphql-jit'; const getEnveloped = envelop({ plugins: [ // ... other plugins ... useGraphQlJit( { // your compiler options here. See https://github.com/zalando-incubator/graphql-jit#compiledquery--compilequeryschema-document-operationname-compileroptions }, { onError: (e: Error) => { ... } // custom error handler } ), ], });

Conditional Execution#

If you wish to conditionally use the JIT executor based on the incoming request, you can use enableIf config flag and return a boolean based on the ExecutionArgs:

import { envelop } from '@envelop/core'; import { useGraphQlJit } from '@envelop/graphql-jit'; const getEnveloped = envelop({ plugins: [ // ... other plugins ... useGraphQlJit( { // your compiler options here. See https://github.com/zalando-incubator/graphql-jit#compiledquery--compilequeryschema-document-operationname-compileroptions }, { enableIf: executionArgs => executionArgs.contextValue.shouldUseJit, } ), ], });

## Configuring JIT cache

You can configure the JIT cache with the following options:

import { envelop } from '@envelop/core'; import { useGraphQlJit } from '@envelop/graphql-jit'; const getEnveloped = envelop({ plugins: [ // ... other plugins ... useGraphQlJit( { // your compiler options here }, { cache: lru(), // Pass in a custom cache instance, by default a new LRU cache is created which uses the default `max` and `ttl` settings } ), ], });

Notes#

You can find more details here: https://github.com/zalando-incubator/graphql-jit

Plugin Details

Edit on GitHub