UNPKG

@graphql-hive/envelop

Version:
64 lines (63 loc) 2.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createServicesFetcher = exports.createSchemaFetcher = exports.atLeastOnceSampler = void 0; exports.createHive = createHive; exports.useHive = useHive; const core_1 = require("@graphql-hive/core"); var core_2 = require("@graphql-hive/core"); Object.defineProperty(exports, "atLeastOnceSampler", { enumerable: true, get: function () { return core_2.atLeastOnceSampler; } }); Object.defineProperty(exports, "createSchemaFetcher", { enumerable: true, get: function () { return core_2.createSchemaFetcher; } }); Object.defineProperty(exports, "createServicesFetcher", { enumerable: true, get: function () { return core_2.createServicesFetcher; } }); function createHive(clientOrOptions) { return (0, core_1.createHive)(Object.assign(Object.assign({}, clientOrOptions), { agent: Object.assign({ name: 'hive-client-envelop' }, clientOrOptions.agent) })); } function useHive(clientOrOptions) { const hive = (0, core_1.isHiveClient)(clientOrOptions) ? clientOrOptions : createHive(Object.assign(Object.assign({}, clientOrOptions), { agent: Object.assign({ name: 'hive-client-envelop' }, clientOrOptions.agent) })); void hive.info(); if (hive[core_1.autoDisposeSymbol]) { if (global.process) { const signals = Array.isArray(hive[core_1.autoDisposeSymbol]) ? hive[core_1.autoDisposeSymbol] : ['SIGINT', 'SIGTERM']; for (const signal of signals) { process.once(signal, () => hive.dispose()); } } else { console.error('It seems that GraphQL Hive is not being executed in Node.js. ' + 'Please attempt manual client disposal and use autoDispose: false option.'); } } return { onSchemaChange({ schema }) { hive.reportSchema({ schema }); }, onExecute({ args }) { const complete = hive.collectUsage(); return { onExecuteDone({ result }) { if (!(0, core_1.isAsyncIterable)(result)) { void complete(args, result); return; } const errors = []; return { onNext(ctx) { if (ctx.result.errors) { errors.push(...ctx.result.errors); } }, onEnd() { void complete(args, errors.length ? { errors } : {}); }, }; }, }; }, onSubscribe({ args }) { hive.collectSubscriptionUsage({ args }); }, }; }