getsentry / getsentry/sentry-javascript

Make it easier to opt-out of default integrations

Abierto
#14,950 0 comentarios 2 reacciones 0 asignados Ver en GitHub
Improvement
Lenguaje dominante
TypeScript
Estrellas
8.7k
Forks
1.8k
Merge medio
1 d 17 h
PR fusionados (30 d)
515

Descripción

### Description

Today, it is rather annoying to opt-out of individual default integrations. You have to do something like this:

```js
Sentry.init({
integrations: (integrations) => integrations.filter(integration => intergation.name !== 'InboundFilters')
});
```

This becomes even more annoying when you _also_ want to add pluggable intergations, as then instead of this: `integrations: [Sentry.replayIntegration()]` you suddenly have to do this:

```js
Sentry.init({
integrations: (integrations) => {
integrations.push(Sentry.replayIntegration);
return integrations.filter(integration => intergation.name !== 'InboundFilters');
}
});
```

which really does not feel ideal.

I propose to add a new way to disable individual default integrations, similar to how https://www.npmjs.com/package/@opentelemetry/auto-instrumentations-node does this:

You can fully opt-out of default integrations via `defaultIntegrations: false`. In addition to this, we can allow users to pass an object, which allows to disable individual keys:

```js
Sentry.init({
defaultIntegrations: {
'InboundFilters': false,
'GlobalHandlers': false
},
// you can then continue to add integrations as normally
integrations: [Sentry.replayIntegration()]
});
```

This would be backwards compatible, but simply be a new and easier way to solve this problem.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.