in packages/dag-history-component/src/util/spans.ts [107:128]
export function insertSpan(spans: Span[], newSpan: Span) {
if (!newSpan) {
throw new Error('could not insert span that is undefined/null')
}
for (let i = 0; i < spans.length; i += 1) {
const span = spans[i]
if (span.areBoundsEqual(newSpan)) {
return replaceSpan(spans, newSpan, i)
}
if (span.contains(newSpan.start)) {
if (newSpan.end === span.end) {
return insertSpanAtTail(spans, newSpan, i)
} else if (newSpan.end > span.end) {
return insertBridgingSpan(spans, newSpan, i)
}
return insertSplittingSpan(spans, newSpan, i)
}
}
log(`Could not insert span ${newSpan} into spanset ${spans}`)
return spans
}