UNPKG

@envelop/execute-subscription-event

Version:

Utilities for hooking into the [ExecuteSubscriptionEvent](<https://spec.graphql.org/draft/#ExecuteSubscriptionEvent()>) phase.

30 lines (29 loc) 1.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useExtendContextValuePerExecuteSubscriptionEvent = void 0; const graphql_1 = require("graphql"); const core_1 = require("@envelop/core"); const subscribe_js_1 = require("./subscribe.js"); const useExtendContextValuePerExecuteSubscriptionEvent = (createContext) => { return { onSubscribe({ args, setSubscribeFn }) { const executeNew = (0, core_1.makeExecute)(async (executionArgs) => { const context = await createContext({ args }); try { return await (0, graphql_1.execute)({ ...executionArgs, // GraphQL.js 16 changed the type of contextValue to unknown // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore contextValue: { ...executionArgs.contextValue, ...context?.contextPartial }, }); } finally { context?.onEnd?.(); } }); setSubscribeFn((0, subscribe_js_1.subscribe)(executeNew)); }, }; }; exports.useExtendContextValuePerExecuteSubscriptionEvent = useExtendContextValuePerExecuteSubscriptionEvent;