getsentry / getsentry/sentry-javascript
Make it easier to opt-out of default integrations
- 主要语言
- TypeScript
- 星标
- 8.7k
- 派生
- 1.8k
- 平均合并
- 1 天 17 小时
- 30 天内合并 PR
- 523
描述
### 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.
贡献指南
评估
这个 Issue 还没有评估数据。