summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/npmconf/lib/set-credentials-by-uri.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/npmconf/lib/set-credentials-by-uri.js')
-rw-r--r--deps/npm/node_modules/npmconf/lib/set-credentials-by-uri.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/deps/npm/node_modules/npmconf/lib/set-credentials-by-uri.js b/deps/npm/node_modules/npmconf/lib/set-credentials-by-uri.js
new file mode 100644
index 000000000..2fa0d19e3
--- /dev/null
+++ b/deps/npm/node_modules/npmconf/lib/set-credentials-by-uri.js
@@ -0,0 +1,34 @@
+var assert = require("assert")
+
+var toNerfDart = require("./nerf-dart.js")
+
+module.exports = setCredentialsByURI
+
+function setCredentialsByURI (uri, c) {
+ assert(uri && typeof uri === "string", "registry URL is required")
+ assert(c && typeof c === "object", "credentials are required")
+
+ var nerfed = toNerfDart(uri)
+
+ if (c.token) {
+ this.set(nerfed + ":_authToken", c.token, "user")
+ this.del(nerfed + ":_password", "user")
+ this.del(nerfed + ":username", "user")
+ this.del(nerfed + ":email", "user")
+ }
+ else if (c.username || c.password || c.email) {
+ assert(c.username, "must include username")
+ assert(c.password, "must include password")
+ assert(c.email, "must include email address")
+
+ this.del(nerfed + ":_authToken", "user")
+
+ var encoded = new Buffer(c.password, "utf8").toString("base64")
+ this.set(nerfed + ":_password", encoded, "user")
+ this.set(nerfed + ":username", c.username, "user")
+ this.set(nerfed + ":email", c.email, "user")
+ }
+ else {
+ throw new Error("No credentials to set.")
+ }
+}