]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/lib/utils/completion/file-completion.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / lib / utils / completion / file-completion.js
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/lib/utils/completion/file-completion.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/lib/utils/completion/file-completion.js
new file mode 100644 (file)
index 0000000..6ce2f83
--- /dev/null
@@ -0,0 +1,23 @@
+module.exports = fileCompletion
+
+var mkdir = require("mkdirp")
+  , path = require("path")
+  , 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 + "/**/*}"
+      , 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) {
+        var tail = f.substr(root.length + 1).replace(/^\//, "")
+        return path.join(req, tail)
+      }))
+    })
+  })
+}