UNPKG

@sentry/core

Version:
47 lines (39 loc) 1.31 kB
import { dsnToString } from '../../utils/dsn.js'; import { getSdkMetadataForEnvelopeHeader, createEnvelope } from '../../utils/envelope.js'; import { isBrowser } from '../../utils/isBrowser.js'; /** * Creates a span v2 span streaming envelope */ function createStreamedSpanEnvelope( serializedSpans, dsc, client, ) { const options = client.getOptions(); const dsn = client.getDsn(); const tunnel = options.tunnel; const sdk = getSdkMetadataForEnvelopeHeader(options._metadata); const headers = { sent_at: new Date().toISOString(), ...(dscHasRequiredProps(dsc) && { trace: dsc }), ...(sdk && { sdk }), ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }), }; const inferSetting = options.sendDefaultPii ? 'auto' : 'never'; const spanContainer = [ { type: 'span', item_count: serializedSpans.length, content_type: 'application/vnd.sentry.items.span.v2+json' }, { version: 2, ...(isBrowser() && { ingest_settings: { infer_ip: inferSetting, infer_user_agent: inferSetting }, }), items: serializedSpans, }, ]; return createEnvelope(headers, [spanContainer]); } function dscHasRequiredProps(dsc) { return !!dsc.trace_id && !!dsc.public_key; } export { createStreamedSpanEnvelope }; //# sourceMappingURL=envelope.js.map