all files / lib/ get-root.js

94.44% Statements 17/18
75% Branches 9/12
100% Functions 1/1
94.44% Lines 17/18
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 28 29 30 31 32 33      11× 11×   11×       11×       11× 11×   11×          
'use strict';
 
var path = require('path');
var fs = require('fs');
var _ = require('lodash');
 
function getRoot(start, filename) {
  start = start || process.cwd();
  filename = filename || 'package.json';
 
  if (_(start).isString()) {
    Eif (start[start.length - 1] !== path.sep) {
      start += path.sep;
    }
    start = start.split(path.sep);
  }
 
  Iif (!start.length) {
    throw new Error(filename + ' not found in path.');
  }
 
  start.pop();
  var dir = start.join(path.sep);
 
  if (fs.existsSync(path.join(dir, filename))) {
    return dir;
  }
 
  return getRoot(start, filename);
}
 
module.exports = getRoot;