export interface StringChange {
start: number
end: number
replacement: string
}
export function spliceChangesIntoString(str: string, changes: StringChange[]) {
if (!changes[0]) return str
changes.sort((a, b) => {
return a.end - b.end || a.start - b.start
})
let result = ''
let previous = changes[0]
result += str.slice(0, previous.start)
result += previous.replacement
for (let i = 1; i < changes.length; ++i) {
let change = changes[i]
result += str.slice(previous.end, change.start)
result += change.replacement
previous = change
}
result += str.slice(previous.end)
return result
}