export function insertSpan()

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
}