export function insertSpan()

in src/util/spans.ts [105:126]


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;
}