@@ -13,19 +13,20 @@ function getSdkMetadataForEnvelopeHeader(api: API): SdkInfo | undefined {
13
13
}
14
14
15
15
/**
16
- * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.
17
- * Merge with existing data if any.
16
+ * Add SDK metadata (name, version, packages, integrations) to the event.
17
+ *
18
+ * Mutates the object in place. If prior metadata exists, it will be merged with the given metadata.
18
19
**/
19
- function enhanceEventWithSdkInfo ( event : Event , sdkInfo ?: SdkInfo ) : Event {
20
+ function enhanceEventWithSdkInfo ( event : Event , sdkInfo ?: SdkInfo ) : void {
20
21
if ( ! sdkInfo ) {
21
- return event ;
22
+ return ;
22
23
}
23
24
event . sdk = event . sdk || { } ;
24
25
event . sdk . name = event . sdk . name || sdkInfo . name ;
25
26
event . sdk . version = event . sdk . version || sdkInfo . version ;
26
27
event . sdk . integrations = [ ...( event . sdk . integrations || [ ] ) , ...( sdkInfo . integrations || [ ] ) ] ;
27
28
event . sdk . packages = [ ...( event . sdk . packages || [ ] ) , ...( sdkInfo . packages || [ ] ) ] ;
28
- return event ;
29
+ return ;
29
30
}
30
31
31
32
/** Creates a SentryRequest from a Session. */
@@ -55,11 +56,7 @@ export function eventToSentryRequest(event: Event, api: API): SentryRequest {
55
56
const eventType = event . type || 'event' ;
56
57
const useEnvelope = eventType === 'transaction' || api . forceEnvelope ( ) ;
57
58
58
- const req : SentryRequest = {
59
- body : JSON . stringify ( sdkInfo ? enhanceEventWithSdkInfo ( event , api . metadata . sdk ) : event ) ,
60
- type : eventType ,
61
- url : useEnvelope ? api . getEnvelopeEndpointWithUrlEncodedAuth ( ) : api . getStoreEndpointWithUrlEncodedAuth ( ) ,
62
- } ;
59
+ enhanceEventWithSdkInfo ( event , api . metadata . sdk ) ;
63
60
64
61
// Since we don't need to manipulate envelopes nor store them, there is no exported concept of an Envelope with
65
62
// operations including serialization and deserialization. Instead, we only implement a minimal subset of the spec to
@@ -118,11 +115,22 @@ export function eventToSentryRequest(event: Event, api: API): SentryRequest {
118
115
119
116
const itemHeaders = JSON . stringify ( itemHeaderEntries ) ;
120
117
118
+ const eventJSON = JSON . stringify ( event ) ;
119
+
121
120
// The trailing newline is optional; leave it off to avoid sending unnecessary bytes. (Would be
122
121
// `const envelope = `${envelopeHeaders}\n${itemHeaders}\n${req.body}\n`;`.)
123
- const envelope = `${ envelopeHeaders } \n${ itemHeaders } \n${ req . body } ` ;
124
- req . body = envelope ;
122
+ const envelope = `${ envelopeHeaders } \n${ itemHeaders } \n${ eventJSON } ` ;
123
+
124
+ return {
125
+ body : envelope ,
126
+ type : eventType ,
127
+ url : api . getEnvelopeEndpointWithUrlEncodedAuth ( ) ,
128
+ } ;
125
129
}
126
130
127
- return req ;
131
+ return {
132
+ body : JSON . stringify ( event ) ,
133
+ type : eventType ,
134
+ url : api . getStoreEndpointWithUrlEncodedAuth ( ) ,
135
+ } ;
128
136
}
0 commit comments