all files / lib/deps/merge/ compactTree.js

100% Statements 14/14
87.5% Branches 7/8
100% Functions 3/3
100% Lines 13/13
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27                    3778× 3778× 5185× 619× 619×     3778×    
'use strict';
 
Object.defineProperty(exports, "__esModule", {
  value: true
});
 
var _traverseRevTree = require('./traverseRevTree');
 
var _traverseRevTree2 = _interopRequireDefault(_traverseRevTree);
 
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
// compact a tree by marking its non-leafs as missing,
// and return a list of revs to delete
function compactTree(metadata) {
  var revs = [];
  (0, _traverseRevTree2.default)(metadata.rev_tree, function (isLeaf, pos, revHash, ctx, opts) {
    if (opts.status === 'available' && !isLeaf) {
      revs.push(pos + '-' + revHash);
      opts.status = 'missing';
    }
  });
  return revs;
}
 
exports.default = compactTree;
module.exports = exports['default'];