12345678910111213141516171819202122232425262728293031 |
- 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
|