UNPKG

846 Btext/coffeescriptView Raw
1makePath = require './make-path'
2CouldNotLoad = require './could-not-load'
3
4findModule = (base, fileName, callers) ->
5 fullPath = makePath base, fileName, callers
6 try
7 instance: require fullPath
8 path: fullPath
9 catch e
10 if callers.length > 0
11 findModule base, fileName, callers[0..-2]
12 else
13 throw e
14
15tryFind = (base, fileName, callers) ->
16 try
17 instance: require fileName
18 path: fileName
19 catch e
20 if e.code == 'MODULE_NOT_FOUND'
21 try
22 findModule(base, fileName, callers)
23 catch e2
24 throw new CouldNotLoad base, fileName, callers
25 else
26 instance: {}
27 path: makePath base, fileName, callers
28
29
30exports.instance = (base, fileName, callers) ->
31 tryFind(base, fileName, callers).instance
32
33exports.path = (base, fileName, callers) ->
34 tryFind(base, fileName, callers).path