UNPKG

@zendesk/retrace

Version:

define and capture Product Operation Traces along with computed metrics with an optional friendly React beacon API

24 lines 975 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.processSpans = processSpans; function processSpans(spans, traceManager) { const startSpansByKey = new Map(); const sortedByEndTime = [...spans].sort((a, b) => { return a.startTime.now + a.duration - (b.startTime.now + b.duration); }); sortedByEndTime.forEach((span, i) => { const spanKey = `${span.type.replace(/-start$/, '')}|${span.name}`; const existing = startSpansByKey.get(spanKey); if (existing) { // span.duration += (existing.span.startTime.now - span.startTime.now) traceManager.endSpan(existing.span, span); startSpansByKey.delete(spanKey); return; } const processed = traceManager.createAndProcessSpan(span); if (span.type.endsWith('-start')) { startSpansByKey.set(spanKey, processed); } }); } //# sourceMappingURL=processSpans.js.map