From 7354d56208d6da4168363d58d5fd096dc0d7c9ca Mon Sep 17 00:00:00 2001 From: JonasBa Date: Mon, 13 Mar 2023 16:23:18 -0400 Subject: [PATCH 1/2] feat(sdk): emit beforeEnvelope --- packages/core/src/transports/base.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/core/src/transports/base.ts b/packages/core/src/transports/base.ts index 4a3be77e8531..138f1a07886c 100644 --- a/packages/core/src/transports/base.ts +++ b/packages/core/src/transports/base.ts @@ -24,6 +24,8 @@ import { updateRateLimits, } from '@sentry/utils'; +import { getCurrentHub } from '../hub'; + export const DEFAULT_TRANSPORT_BUFFER_SIZE = 30; /** @@ -40,14 +42,18 @@ export function createTransport( ), ): Transport { let rateLimits: RateLimits = {}; - const flush = (timeout?: number): PromiseLike => buffer.drain(timeout); + const client = getCurrentHub().getClient(); function send(envelope: Envelope): PromiseLike { const filteredEnvelopeItems: EnvelopeItem[] = []; // Drop rate limited items from envelope forEachEnvelopeItem(envelope, (item, type) => { + if (client && client.emit) { + client.emit('beforeEnvelope', envelope); + } + const envelopeItemDataCategory = envelopeItemTypeToDataCategory(type); if (isRateLimited(rateLimits, envelopeItemDataCategory)) { const event: Event | undefined = getEventForEnvelopeItem(item, type); From 4987eacc6ac9ae7f73a6492ddad00f81a74fd343 Mon Sep 17 00:00:00 2001 From: JonasBa Date: Tue, 14 Mar 2023 08:39:00 -0400 Subject: [PATCH 2/2] ref(core): move beforeEnvelope outside of loop --- packages/core/src/transports/base.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/core/src/transports/base.ts b/packages/core/src/transports/base.ts index 138f1a07886c..19a92ebc8599 100644 --- a/packages/core/src/transports/base.ts +++ b/packages/core/src/transports/base.ts @@ -47,13 +47,12 @@ export function createTransport( function send(envelope: Envelope): PromiseLike { const filteredEnvelopeItems: EnvelopeItem[] = []; + if (client && client.emit) { + client.emit('beforeEnvelope', envelope); + } // Drop rate limited items from envelope forEachEnvelopeItem(envelope, (item, type) => { - if (client && client.emit) { - client.emit('beforeEnvelope', envelope); - } - const envelopeItemDataCategory = envelopeItemTypeToDataCategory(type); if (isRateLimited(rateLimits, envelopeItemDataCategory)) { const event: Event | undefined = getEventForEnvelopeItem(item, type);