UNPKG

@graphql-tools/executor-yoga

Version:

A set of utils for faster development of GraphQL tools

28 lines (27 loc) • 1 kB
import { useExecutor as useEnvelopExecutor, } from '@graphql-tools/executor-envelop'; export function useExecutor(executor, opts) { const envelopPlugin = useEnvelopExecutor(executor, opts); return { ...envelopPlugin, onRequestParse({ serverContext }) { return { onRequestParseDone() { envelopPlugin.ensureSchema(serverContext); if (envelopPlugin.pluginCtx.schemaSetPromise$) { return envelopPlugin.pluginCtx.schemaSetPromise$; } }, }; }, onDispose() { const asyncDispose = executor[Symbol.asyncDispose]; if (typeof asyncDispose === 'function') { return asyncDispose.call(executor); } const dispose = executor[Symbol.dispose]; if (typeof dispose === 'function') { return dispose.call(executor); } }, }; }