MCPcopy Create free account
hub / github.com/getsentry/sentry-javascript / send

Function send

packages/core/src/transports/multiplexed.ts:139–164  ·  view source on GitHub ↗
(envelope: Envelope)

Source from the content-addressed store, hash-verified

137 }
138
139 async function send(envelope: Envelope): Promise<TransportMakeRequestResponse> {
140 function getEvent(types?: EnvelopeItemType[]): Event | undefined {
141 const eventTypes: EnvelopeItemType[] = types?.length ? types : ['event'];
142 return eventFromEnvelope(envelope, eventTypes);
143 }
144
145 const transports = actualMatcher({ envelope, getEvent })
146 .map(result => {
147 if (typeof result === 'string') {
148 return getTransport(result, undefined);
149 } else {
150 return getTransport(result.dsn, result.release);
151 }
152 })
153 .filter((t): t is [string, Transport] => !!t);
154
155 // If we have no transports to send to, use the fallback transport
156 // Don't override the DSN in the header for the fallback transport. '' is falsy
157 const transportsWithFallback: [string, Transport][] = transports.length ? transports : [['', fallbackTransport]];
158
159 const results = (await Promise.all(
160 transportsWithFallback.map(([dsn, transport]) => transport.send(overrideDsn(envelope, dsn))),
161 )) as [TransportMakeRequestResponse, ...TransportMakeRequestResponse[]];
162
163 return results[0];
164 }
165
166 async function flush(timeout: number | undefined): Promise<boolean> {
167 const allTransports = [...otherTransports.values(), fallbackTransport];

Callers

nothing calls this directly

Calls 3

overrideDsnFunction · 0.85
getTransportFunction · 0.70
sendMethod · 0.65

Tested by

no test coverage detected