All files rebase.js

100% Statements 5/5
100% Branches 0/0
100% Functions 2/2
100% Lines 4/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17                      10x 19x 10x 10x    
import diff from './diff'
import jsonClone from './jsonClone'
import merge from './merge'
import tail from 'lodash/tail'
 
/**
 * @param {Object} base
 * @param {...Object} checkpoints
 * @returns {Object}
 */
export default function () {
  const base = arguments[0]
  const diffs = tail(arguments).map((checkpoint) => diff(base, checkpoint))
  const patch = merge({}, ...diffs)
  return merge(jsonClone(base), patch)
}