UNPKG

1.06 kBJavaScriptView Raw
1var assert = require("assert")
2
3var toNerfDart = require("./nerf-dart.js")
4
5module.exports = setCredentialsByURI
6
7function setCredentialsByURI (uri, c) {
8 assert(uri && typeof uri === "string", "registry URL is required")
9 assert(c && typeof c === "object", "credentials are required")
10
11 var nerfed = toNerfDart(uri)
12
13 if (c.token) {
14 this.set(nerfed + ":_authToken", c.token, "user")
15 this.del(nerfed + ":_password", "user")
16 this.del(nerfed + ":username", "user")
17 this.del(nerfed + ":email", "user")
18 }
19 else if (c.username || c.password || c.email) {
20 assert(c.username, "must include username")
21 assert(c.password, "must include password")
22 assert(c.email, "must include email address")
23
24 this.del(nerfed + ":_authToken", "user")
25
26 var encoded = new Buffer(c.password, "utf8").toString("base64")
27 this.set(nerfed + ":_password", encoded, "user")
28 this.set(nerfed + ":username", c.username, "user")
29 this.set(nerfed + ":email", c.email, "user")
30 }
31 else {
32 throw new Error("No credentials to set.")
33 }
34}