@graphql-tools/executor-yoga
Version:
A set of utils for faster development of GraphQL tools
31 lines (30 loc) • 1.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useExecutor = useExecutor;
const executor_envelop_1 = require("@graphql-tools/executor-envelop");
function useExecutor(executor, opts) {
const envelopPlugin = (0, executor_envelop_1.useExecutor)(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);
}
},
};
}