diff options
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.js | 24 |
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);; +} |