From 991cb710ca1ba1af7ef7da0495effe83467c0af2 Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Tue, 24 Sep 2024 16:59:25 +0200 Subject: [PATCH] refactor --- .../node/src/integrations/tracing/graphql.ts | 29 ++++++++----------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/packages/node/src/integrations/tracing/graphql.ts b/packages/node/src/integrations/tracing/graphql.ts index bd596c87496a..f4d817145cf2 100644 --- a/packages/node/src/integrations/tracing/graphql.ts +++ b/packages/node/src/integrations/tracing/graphql.ts @@ -40,14 +40,7 @@ const INTEGRATION_NAME = 'Graphql'; export const instrumentGraphql = generateInstrumentOnce( INTEGRATION_NAME, (_options: GraphqlOptions = {}) => { - // We set default values here, which are used in the case that this is preloaded - // In that case, no options are passed in, and we want to use the defaults - const options = { - ignoreResolveSpans: true, - ignoreTrivialResolveSpans: true, - useOperationNameForRootSpan: true, - ..._options, - }; + const options = getOptionsWithDefaults(_options); return new GraphQLInstrumentation({ ...options, @@ -87,21 +80,14 @@ export const instrumentGraphql = generateInstrumentOnce( }, ); -const _graphqlIntegration = ((_options: GraphqlOptions = {}) => { +const _graphqlIntegration = ((options: GraphqlOptions = {}) => { return { name: INTEGRATION_NAME, setupOnce() { // We set defaults here, too, because otherwise we'd update the instrumentation config // to the config without defaults, as `generateInstrumentOnce` automatically calls `setConfig(options)` // when being called the second time - const options = { - ignoreResolveSpans: true, - ignoreTrivialResolveSpans: true, - useOperationNameForRootSpan: true, - ..._options, - }; - - instrumentGraphql(options); + instrumentGraphql(getOptionsWithDefaults(options)); }, }; }) satisfies IntegrationFn; @@ -112,3 +98,12 @@ const _graphqlIntegration = ((_options: GraphqlOptions = {}) => { * Capture tracing data for GraphQL. */ export const graphqlIntegration = defineIntegration(_graphqlIntegration); + +function getOptionsWithDefaults(options?: GraphqlOptions): GraphqlOptions { + return { + ignoreResolveSpans: true, + ignoreTrivialResolveSpans: true, + useOperationNameForRootSpan: true, + ...options, + }; +}