Skip to content

Commit

Permalink
ref(nuxt): Revert Sentry Pinia plugin (#14134)
Browse files Browse the repository at this point in the history
reverts #14047

This change needs to be re-evaluated as it currently adds bundle size
for all users.
  • Loading branch information
s1gr1d authored Oct 30, 2024
1 parent c98377b commit 472c228
Show file tree
Hide file tree
Showing 8 changed files with 6 additions and 195 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ export default defineNuxtConfig({
compatibilityDate: '2024-04-03',
imports: { autoImport: false },

modules: ['@pinia/nuxt', '@sentry/nuxt/module'],
modules: ['@sentry/nuxt/module'],

runtimeConfig: {
public: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
"test:assert": "pnpm test"
},
"dependencies": {
"@pinia/nuxt": "^0.5.5",
"@sentry/nuxt": "latest || *",
"nuxt": "^3.13.2"
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,4 @@ Sentry.init({
tunnel: `http://localhost:3031/`, // proxy server
tracesSampleRate: 1.0,
trackComponents: true,
trackPinia: {
actionTransformer: action => `Transformed: ${action}`,
stateTransformer: state => ({
transformed: true,
...state,
}),
},
});
43 changes: 0 additions & 43 deletions dev-packages/e2e-tests/test-applications/nuxt-4/stores/cart.ts

This file was deleted.

This file was deleted.

15 changes: 2 additions & 13 deletions packages/nuxt/src/common/types.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,10 @@
import type { init as initNode } from '@sentry/node';
import type { SentryRollupPluginOptions } from '@sentry/rollup-plugin';
import type { SentryVitePluginOptions } from '@sentry/vite-plugin';
import type { createSentryPiniaPlugin, init as initVue } from '@sentry/vue';
import type { init as initVue } from '@sentry/vue';

// Omitting 'app' as the Nuxt SDK will add the app instance in the client plugin (users do not have to provide this)
export type SentryNuxtClientOptions = Omit<Parameters<typeof initVue>[0] & object, 'app'> & {
/**
* Control if an existing Pinia store should be monitored.
* Set this to `true` to track with default options or provide your custom Pinia plugin options.
*
* This only works if "@pinia/nuxt" is added to the `modules` array.
*
* @default false
*/
trackPinia?: true | Parameters<typeof createSentryPiniaPlugin>[0];
};

export type SentryNuxtClientOptions = Omit<Parameters<typeof initVue>[0] & object, 'app'>;
export type SentryNuxtServerOptions = Omit<Parameters<typeof initNode>[0] & object, 'app'>;

type SourceMapsOptions = {
Expand Down
25 changes: 3 additions & 22 deletions packages/nuxt/src/runtime/plugins/sentry.client.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { getClient } from '@sentry/core';
import { consoleSandbox } from '@sentry/utils';
import { browserTracingIntegration, createSentryPiniaPlugin, vueIntegration } from '@sentry/vue';
import { browserTracingIntegration, vueIntegration } from '@sentry/vue';
import { defineNuxtPlugin } from 'nuxt/app';
import { reportNuxtError } from '../utils';

Expand Down Expand Up @@ -35,36 +34,18 @@ export default defineNuxtPlugin({
name: 'sentry-client-integrations',
dependsOn: ['sentry-client-config'],
async setup(nuxtApp) {
const sentryClient = getClient();
const clientOptions = sentryClient && sentryClient.getOptions();

// This evaluates to true unless __SENTRY_TRACING__ is text-replaced with "false", in which case everything inside
// will get tree-shaken away
if (typeof __SENTRY_TRACING__ === 'undefined' || __SENTRY_TRACING__) {
const sentryClient = getClient();

if (sentryClient && '$router' in nuxtApp) {
sentryClient.addIntegration(
browserTracingIntegration({ router: nuxtApp.$router as VueRouter, routeLabel: 'path' }),
);
}
}

if (clientOptions && 'trackPinia' in clientOptions && clientOptions.trackPinia) {
if ('$pinia' in nuxtApp) {
(nuxtApp.$pinia as { use: (plugin: unknown) => void }).use(
// `trackPinia` is an object with custom options or `true` (pass `undefined` to use default options)
createSentryPiniaPlugin(clientOptions.trackPinia === true ? undefined : clientOptions.trackPinia),
);
} else {
clientOptions.debug &&
consoleSandbox(() => {
// eslint-disable-next-line no-console
console.warn(
'[Sentry] You set `trackPinia`, but the Pinia module was not found. Make sure to add `"@pinia/nuxt"` to your modules array.',
);
});
}
}

nuxtApp.hook('app:created', vueApp => {
const sentryClient = getClient();

Expand Down

0 comments on commit 472c228

Please sign in to comment.