| 1234567891011121314151617181920 |
- export function compressOperations(operations) {
- if (!operations.length) return []
- const newOperations = []
- let currentOperation = operations[0]
- for (let operationId = 1; operationId < operations.length; operationId++) {
- const nextOperation = operations[operationId]
- if (currentOperation.canBeComposedWith(nextOperation)) {
- currentOperation = currentOperation.compose(nextOperation)
- } else {
- // currentOperation and nextOperation cannot be composed. Push the
- // currentOperation and start over with nextOperation.
- newOperations.push(currentOperation)
- currentOperation = nextOperation
- }
- }
- newOperations.push(currentOperation)
- return newOperations
- }
|