1 | {join, dirname} = require 'path'
|
2 |
|
3 | # for a given directory:
|
4 | # Walk backwards, looking for 'package.json' or equivalent
|
5 | module.exports = findProjectRoot = (dir) ->
|
6 |
|
7 | # If we hit root, we've failed to find any 'package.*'.
|
8 | return undefined if (not dir) or (dir is '/')
|
9 |
|
10 | try
|
11 |
|
12 | # If this doesn't throw, then it exists.
|
13 | # We've found a 'package.*', so we're done!
|
14 | resolved = require.resolve join(dir, 'package')
|
15 | return dir
|
16 |
|
17 | catch err
|
18 |
|
19 | # No luck here, so walk back up and check the parent directory
|
20 | return findProjectRoot dirname(dir)
|