aboutsummaryrefslogtreecommitdiff
path: root/deps/node/deps/npm/lib/utils/completion/file-completion.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/node/deps/npm/lib/utils/completion/file-completion.js')
-rw-r--r--deps/node/deps/npm/lib/utils/completion/file-completion.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/deps/node/deps/npm/lib/utils/completion/file-completion.js b/deps/node/deps/npm/lib/utils/completion/file-completion.js
new file mode 100644
index 00000000..e16b636a
--- /dev/null
+++ b/deps/node/deps/npm/lib/utils/completion/file-completion.js
@@ -0,0 +1,24 @@
+module.exports = fileCompletion
+
+var mkdir = require('mkdirp')
+var glob = require('glob')
+
+function fileCompletion (root, req, depth, cb) {
+ if (typeof cb !== 'function') {
+ cb = depth
+ depth = Infinity
+ }
+ mkdir(root, function (er) {
+ if (er) return cb(er)
+
+ // can be either exactly the req, or a descendent
+ var pattern = root + '/{' + req + ',' + req + '/**/*}'
+ var opts = { mark: true, dot: true, maxDepth: depth }
+ glob(pattern, opts, function (er, files) {
+ if (er) return cb(er)
+ return cb(null, (files || []).map(function (f) {
+ return f.substr(root.length + 1).replace(/^\/|\/$/g, '')
+ }))
+ })
+ })
+}