@envelop/graphql-jit
This plugins replaces the original execute
of GraphQL with
graphql-jit
.
Getting Started
yarn add @envelop/graphql-jit
Usage Example
import { execute, parse, specifiedRules, subscribe, validate } from 'graphql'
import { envelop, useEngine } from '@envelop/core'
import { useGraphQlJit } from '@envelop/graphql-jit'
const getEnveloped = envelop({
plugins: [
useEngine({ parse, validate, specifiedRules, execute, subscribe }),
useGraphQlJit(
{
},
{
onError: (e: Error) => {}
}
)
]
})
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 { execute, parse, specifiedRules, subscribe, validate } from 'graphql'
import { envelop, useEngine } from '@envelop/core'
import { useGraphQlJit } from '@envelop/graphql-jit'
const getEnveloped = envelop({
plugins: [
useEngine({ parse, validate, specifiedRules, execute, subscribe }),
useGraphQlJit(
{
},
{
enableIf: executionArgs => executionArgs.contextValue.shouldUseJit
}
)
]
})
## Configuring JIT cache
You can configure the JIT cache with the following options:
import { execute, parse, specifiedRules, subscribe, validate } from 'graphql'
import { envelop, useEngine } from '@envelop/core'
import { useGraphQlJit } from '@envelop/graphql-jit'
const getEnveloped = envelop({
plugins: [
useEngine({ parse, validate, specifiedRules, execute, subscribe }),
useGraphQlJit(
{
},
{
cache: lru()
}
)
]
})
Notes
You can find more details here: https://github.com/zalando-incubator/graphql-jit