@@ -162,7 +162,7 @@ function parse (opts, cb) {
162
162
if ( paths . length === 0 ) return cb ( new Error ( 'No entry paths found' ) )
163
163
164
164
asyncMap ( paths , function ( file , cb ) {
165
- getDeps ( file , path . dirname ( pkgPath ) , cb )
165
+ resolveDep ( file , cb )
166
166
} , function ( err , allDeps ) {
167
167
if ( err ) return cb ( err )
168
168
var used = { }
@@ -177,28 +177,33 @@ function parse (opts, cb) {
177
177
cb ( null , { package : pkg , used : Object . keys ( used ) } )
178
178
} )
179
179
180
- function getDeps ( file , basedir , callback ) {
180
+ function resolveDep ( file , callback ) {
181
181
if ( isNotRelative ( file ) ) {
182
182
return callback ( null )
183
183
}
184
184
185
- if ( ! fs . existsSync ( file ) || fs . statSync ( file ) . isDirectory ( ) ) {
186
- var filename = './' + path . basename ( file )
187
- debug ( 'resolve' , [ path . dirname ( file ) , filename ] )
188
- file = resolve . sync ( filename , { basedir : path . dirname ( file ) , extensions : Object . keys ( extensions ) } )
189
- }
185
+ return resolve ( file , {
186
+ basedir : path . dirname ( file ) ,
187
+ extensions : Object . keys ( extensions )
188
+ } , function ( err , path ) {
189
+ if ( err ) return callback ( err )
190
+
191
+ return getDeps ( path , callback )
192
+ } )
193
+ }
190
194
195
+ function getDeps ( file , callback ) {
191
196
var ext = path . extname ( file )
192
- var detective = extensions [ ext ]
197
+ var detective = extensions [ ext ] || extensions [ '.js' ]
193
198
194
- if ( typeof detective !== 'function' ) return callback ( new Error ( 'Detective function missing for "' + ext + '"' ) )
199
+ if ( typeof detective !== 'function' ) {
200
+ return callback ( new Error ( 'Detective function missing for "' + file + '"' ) )
201
+ }
195
202
196
203
fs . readFile ( file , 'utf8' , read )
197
204
198
205
function read ( err , contents ) {
199
- if ( err ) {
200
- return callback ( err )
201
- }
206
+ if ( err ) return callback ( err )
202
207
203
208
var requires = detective ( contents )
204
209
var relatives = [ ]
@@ -228,15 +233,12 @@ function parse (opts, cb) {
228
233
} )
229
234
230
235
asyncMap ( relatives , function ( name , cb ) {
231
- getDeps ( name , basedir , cb )
236
+ resolveDep ( name , cb )
232
237
} , done )
233
238
}
234
239
235
240
function done ( err ) {
236
- if ( err ) {
237
- return callback ( err )
238
- }
239
- callback ( null , deps )
241
+ return callback ( err , deps )
240
242
}
241
243
}
242
244
}
0 commit comments