Skip to content
This repository was archived by the owner on Mar 13, 2024. It is now read-only.

Commit 1f45ddd

Browse files
committed
Async resolve, fix -e test, .js fallback
1 parent 4315b35 commit 1f45ddd

File tree

2 files changed

+21
-19
lines changed

2 files changed

+21
-19
lines changed

index.js

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ function parse (opts, cb) {
162162
if (paths.length === 0) return cb(new Error('No entry paths found'))
163163

164164
asyncMap(paths, function (file, cb) {
165-
getDeps(file, path.dirname(pkgPath), cb)
165+
resolveDep(file, cb)
166166
}, function (err, allDeps) {
167167
if (err) return cb(err)
168168
var used = {}
@@ -177,28 +177,33 @@ function parse (opts, cb) {
177177
cb(null, {package: pkg, used: Object.keys(used)})
178178
})
179179

180-
function getDeps (file, basedir, callback) {
180+
function resolveDep (file, callback) {
181181
if (isNotRelative(file)) {
182182
return callback(null)
183183
}
184184

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+
}
190194

195+
function getDeps (file, callback) {
191196
var ext = path.extname(file)
192-
var detective = extensions[ext]
197+
var detective = extensions[ext] || extensions['.js']
193198

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+
}
195202

196203
fs.readFile(file, 'utf8', read)
197204

198205
function read (err, contents) {
199-
if (err) {
200-
return callback(err)
201-
}
206+
if (err) return callback(err)
202207

203208
var requires = detective(contents)
204209
var relatives = []
@@ -228,15 +233,12 @@ function parse (opts, cb) {
228233
})
229234

230235
asyncMap(relatives, function (name, cb) {
231-
getDeps(name, basedir, cb)
236+
resolveDep(name, cb)
232237
}, done)
233238
}
234239

235240
function done (err) {
236-
if (err) {
237-
return callback(err)
238-
}
239-
callback(null, deps)
241+
return callback(err, deps)
240242
}
241243
}
242244
}

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"dependency-check": "cli.js"
88
},
99
"scripts": {
10-
"test": "standard && node cli.js test/ && node cli.js . && node cli.js . --extra --no-dev && node cli.js . -e js,jsx:detective-es6"
10+
"test": "standard && node cli.js test/ && node cli.js . && node cli.js . --missing --extra --no-dev -e js:detective-cjs"
1111
},
1212
"author": "max ogden",
1313
"dependencies": {
@@ -21,7 +21,7 @@
2121
"resolve": "^1.1.7"
2222
},
2323
"devDependencies": {
24-
"detective-es6": "^1.1.6",
24+
"detective-cjs": "^2.0.0",
2525
"standard": "^10.0.2"
2626
},
2727
"directories": {

0 commit comments

Comments
 (0)