@graphql-mesh/serve-runtime
Version:
29 lines (28 loc) • 1.08 kB
JavaScript
import { isAsyncIterable } from 'graphql-yoga';
import { defaultPrintFn } from '@graphql-mesh/transport-common';
export function useSubgraphExecuteDebug(opts) {
return {
onSubgraphExecute({ executionRequest, logger = opts.logger }) {
logger.debug(`subgraph-execute`, () => ({
query: defaultPrintFn(executionRequest.document),
variables: executionRequest.variables,
}));
return function onSubgraphExecuteDone({ result }) {
if (isAsyncIterable(result)) {
return {
onNext(value) {
logger.debug(`subgraph-response-next`, value);
},
onEnd() {
logger.debug(`subgraph-response-end`);
},
};
}
logger.debug(`subgraph-response`, {
data: result.data,
errors: result.errors,
});
};
},
};
}