FrontPastel/node_modules/find-root/index.js

32 lines
659 B
JavaScript

var path = require('path')
var fs = require('fs')
function defaultCheck (dir) {
return fs.existsSync(path.join(dir, 'package.json'))
}
function findRoot (start, check) {
start = start || module.parent.filename
check = check || defaultCheck
if (typeof start === 'string') {
if (start[start.length - 1] !== path.sep) {
start += path.sep
}
start = start.split(path.sep)
}
if (!start.length) {
throw new Error('package.json not found in path')
}
start.pop()
var dir = start.join(path.sep)
try {
if (check(dir)) {
return dir
}
} catch (e) {}
return findRoot(start, check)
}
module.exports = findRoot