Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/config/nerf-dart.js6
-rw-r--r--test/tap/nerf-dart.js32
2 files changed, 36 insertions, 2 deletions
diff --git a/lib/config/nerf-dart.js b/lib/config/nerf-dart.js
index 3b26a56c6..07c817500 100644
--- a/lib/config/nerf-dart.js
+++ b/lib/config/nerf-dart.js
@@ -13,9 +13,11 @@ module.exports = toNerfDart
*/
function toNerfDart(uri) {
var parsed = url.parse(uri)
- parsed.pathname = "/"
delete parsed.protocol
delete parsed.auth
+ delete parsed.query
+ delete parsed.search
+ delete parsed.hash
- return url.format(parsed)
+ return url.resolve(url.format(parsed), ".")
}
diff --git a/test/tap/nerf-dart.js b/test/tap/nerf-dart.js
new file mode 100644
index 000000000..157f6c7df
--- /dev/null
+++ b/test/tap/nerf-dart.js
@@ -0,0 +1,32 @@
+// taken from https://raw.githubusercontent.com/indexzero/npm/bd3cad01fbd3ab481d2f5da441b9eead16029123/test/tap/config-nerf-dart.js
+// originally written by Charlie Robbins, https://github.com/indexzero
+var test = require("tap").test
+var toNerfDart = require("../../lib/config/nerf-dart.js")
+
+function validNerfDart (uri, valid) {
+ if (!valid) valid = "//registry.npmjs.org/"
+ test(uri, function (t) {
+ t.equal(toNerfDart(uri), valid)
+ t.end()
+ })
+}
+
+validNerfDart("http://registry.npmjs.org")
+validNerfDart("http://registry.npmjs.org/some-package")
+validNerfDart("http://registry.npmjs.org/some-package?write=true")
+validNerfDart("http://user:pass@registry.npmjs.org/some-package?write=true")
+validNerfDart("http://registry.npmjs.org/#random-hash")
+validNerfDart("http://registry.npmjs.org/some-package#random-hash")
+
+validNerfDart(
+ "http://relative.couchapp.npm/design/-/rewrite/",
+ "//relative.couchapp.npm/design/-/rewrite/"
+)
+validNerfDart(
+ "http://relative.couchapp.npm:8080/design/-/rewrite/",
+ "//relative.couchapp.npm:8080/design/-/rewrite/"
+)
+validNerfDart(
+ "http://relative.couchapp.npm:8080/design/-/rewrite/some-package",
+ "//relative.couchapp.npm:8080/design/-/rewrite/"
+)