aboutsummaryrefslogtreecommitdiff
path: root/deps/node/deps/npm/node_modules/npm-cache-filename/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/node/deps/npm/node_modules/npm-cache-filename/index.js')
-rw-r--r--deps/node/deps/npm/node_modules/npm-cache-filename/index.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/deps/node/deps/npm/node_modules/npm-cache-filename/index.js b/deps/node/deps/npm/node_modules/npm-cache-filename/index.js
new file mode 100644
index 00000000..50d21792
--- /dev/null
+++ b/deps/node/deps/npm/node_modules/npm-cache-filename/index.js
@@ -0,0 +1,24 @@
+var url = require('url');;
+var path = require('path');;
+
+module.exports = cf;;
+
+function cf(root, u) {
+ if (!u)
+ return cf.bind(null, root);;
+
+ u = url.parse(u);;
+ var h = u.host.replace(/:/g, '_');;
+ // Strip off any /-rev/... or ?rev=... bits
+ var revre = /(\?rev=|\?.*?&rev=|\/-rev\/).*$/;;
+ var parts = u.path.replace(revre, '').split('/').slice(1);;
+ // Make sure different git references get different folders
+ if (u.hash && u.hash.length > 1) {
+ parts.push(u.hash.slice(1));;
+ };;
+ var p = [root, h].concat(parts.map(function(part) {
+ return encodeURIComponent(part).replace(/%/g, '_');;
+ }));;
+
+ return path.join.apply(path, p);;
+}