Skip to content

Commit a567f82

Browse files
authored
fix(tracing): merge user's tracing configuration (#463)
1 parent 07fb5ce commit a567f82

File tree

5 files changed

+18
-21
lines changed

5 files changed

+18
-21
lines changed

lib/core/options.js

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,14 @@ function resolveLazyOptions (options, apiMethods, logger) {
8686
}
8787

8888
/**
89-
* @param {import('../../types/sentry').ModuleConfiguration['tracing']} tracing
89+
* @param {import('../../types/sentry').ModuleConfiguration} options
9090
* @param {NonNullable<import('../../types/sentry').ModuleConfiguration['config']>} config
9191
*/
92-
function resolveTracingOptions (tracing, config) {
93-
if (!tracing) {
92+
function resolveTracingOptions (options, config) {
93+
if (!options.tracing) {
9494
return
9595
}
96+
const userOptions = typeof options.tracing === 'boolean' ? {} : options.tracing
9697
/** @type {NonNullable<import('../../types/sentry').TracingConfiguration>} */
9798
const tracingOptions = merge(
9899
{
@@ -107,11 +108,12 @@ function resolveTracingOptions (tracing, config) {
107108
},
108109
browserOptions: {},
109110
},
110-
typeof tracing === 'boolean' ? {} : tracing,
111+
userOptions,
111112
)
112-
if (tracingOptions && !config.tracesSampleRate) {
113+
if (!config.tracesSampleRate) {
113114
config.tracesSampleRate = tracingOptions.tracesSampleRate
114115
}
116+
options.tracing = tracingOptions
115117
}
116118

117119
/**
@@ -128,7 +130,7 @@ export async function resolveClientOptions (moduleContainer, moduleOptions, logg
128130

129131
const apiMethods = await getApiMethods('@sentry/browser')
130132
resolveLazyOptions(options, apiMethods, logger)
131-
resolveTracingOptions(options.tracing, options.config)
133+
resolveTracingOptions(options, options.config)
132134

133135
for (const name of Object.keys(options.clientIntegrations)) {
134136
if (!PLUGGABLE_INTEGRATIONS.includes(name) && !BROWSER_INTEGRATIONS.includes(name)) {
@@ -213,7 +215,7 @@ export async function resolveServerOptions (moduleContainer, moduleOptions, logg
213215

214216
const apiMethods = await getApiMethods('@sentry/node')
215217
resolveLazyOptions(options, apiMethods, logger)
216-
resolveTracingOptions(options.tracing, options.config)
218+
resolveTracingOptions(options, options.config)
217219

218220
return {
219221
config: options.config,

lib/plugin.client.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import VueLib from 'vue'
22
import merge from 'lodash.mergewith'
33
import * as Sentry from '@sentry/browser'
4+
<% if (options.tracing) { %>import { Integrations as TracingIntegrations } from '@sentry/tracing'<% } %>
45
<%
56
if (options.initialize) {
67
let integrations = options.PLUGGABLE_INTEGRATIONS.filter(key => key in options.integrations)
@@ -14,9 +15,6 @@ const { <%= integrations.join(', ') %> } = Sentry.Integrations
1415
<%}
1516
}
1617
%>
17-
<% if (options.tracing) { %>
18-
import { Integrations as TracingIntegrations } from '@sentry/tracing'
19-
<% } %>
2018

2119
// eslint-disable-next-line require-await
2220
export default async function (ctx, inject) {
@@ -54,7 +52,7 @@ export default async function (ctx, inject) {
5452
}).join(',\n ')%>,
5553
]
5654
<% if (options.tracing) { %>
57-
config.integrations.push(<%= `new TracingIntegrations.BrowserTracing(${serialize(options.tracing.browserOptions)})` %>)
55+
config.integrations.push(<%= `new TracingIntegrations.BrowserTracing(${Object.keys(options.tracing.browserOptions).length ? serialize(options.tracing.browserOptions) : ''})` %>)
5856
<% } %>
5957
<% if (options.customClientIntegrations) { %>
6058
const customIntegrations = await getCustomIntegrations(ctx)

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"main": "lib/module.js",
2323
"types": "types/index.d.ts",
2424
"scripts": {
25-
"dev:fixture": "node ./node_modules/nuxt/bin/nuxt.js -c ./test/fixture/lazy/nuxt.config.js",
25+
"dev:fixture": "node ./node_modules/nuxt/bin/nuxt.js -c ./test/fixture/default/nuxt.config.js",
2626
"dev:fixture:build": "node ./node_modules/nuxt/bin/nuxt.js build -c ./test/fixture/default/nuxt.config.js",
2727
"dev:fixture:start": "node ./node_modules/nuxt/bin/nuxt.js start -c ./test/fixture/default/nuxt.config.js",
2828
"dev:generate": "nuxt generate -c ./test/fixture/default/nuxt.config.js --force-build",

test/fixture/default/nuxt.config.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,13 @@ const config = {
1515
SentryModule,
1616
],
1717
sentry: {
18+
dsn: 'https://[email protected]/1429779',
1819
clientIntegrations: {
1920
// Integration from @Sentry/browser package.
2021
TryCatch: { eventTarget: false },
2122
},
2223
customClientIntegrations: '~/config/custom-client-integrations.js',
24+
tracing: true,
2325
publishRelease: {
2426
authToken: 'fakeToken',
2527
org: 'MyCompany',

yarn.lock

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5332,15 +5332,10 @@ caniuse-api@^3.0.0:
53325332
lodash.memoize "^4.1.2"
53335333
lodash.uniq "^4.5.0"
53345334

5335-
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001093, caniuse-lite@^1.0.30001097, caniuse-lite@^1.0.30001164, caniuse-lite@^1.0.30001228, caniuse-lite@^1.0.30001332:
5336-
version "1.0.30001342"
5337-
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001342.tgz#87152b1e3b950d1fbf0093e23f00b6c8e8f1da96"
5338-
integrity sha512-bn6sOCu7L7jcbBbyNhLg0qzXdJ/PMbybZTH/BA6Roet9wxYRm6Tr9D0s0uhLkOZ6MSG+QU6txUgdpr3MXIVqjA==
5339-
5340-
caniuse-lite@^1.0.30001400:
5341-
version "1.0.30001412"
5342-
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001412.tgz#30f67d55a865da43e0aeec003f073ea8764d5d7c"
5343-
integrity sha512-+TeEIee1gS5bYOiuf+PS/kp2mrXic37Hl66VY6EAfxasIk5fELTktK2oOezYed12H8w7jt3s512PpulQidPjwA==
5335+
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001093, caniuse-lite@^1.0.30001097, caniuse-lite@^1.0.30001164, caniuse-lite@^1.0.30001228, caniuse-lite@^1.0.30001332, caniuse-lite@^1.0.30001400:
5336+
version "1.0.30001439"
5337+
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz"
5338+
integrity sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==
53445339

53455340
caseless@~0.12.0:
53465341
version "0.12.0"

0 commit comments

Comments
 (0)