diff options
| author | Marak <[email protected]> | 2017-02-09 17:22:44 -0500 |
|---|---|---|
| committer | Marak <[email protected]> | 2017-02-09 17:22:44 -0500 |
| commit | 02be0dc61e0ff84bdbe975d66b09c6231b25542c (patch) | |
| tree | 9c025a03ae9eda32ecb8b7b4ccb5892a5fa239d6 /lib | |
| parent | 7e96b93869b422af5a63c115e04ff0206bf7b228 (diff) | |
| download | faker-02be0dc61e0ff84bdbe975d66b09c6231b25542c.tar.xz faker-02be0dc61e0ff84bdbe975d66b09c6231b25542c.zip | |
[refactor] [fix] Move password generator to core
* Migrates password generator from vendor
* Removes erroneous browserifying code
* Switches `Math.random` to faker random
* Closes #460
* Should close #430
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/internet.js | 60 |
1 files changed, 51 insertions, 9 deletions
diff --git a/lib/internet.js b/lib/internet.js index 4b0bfd8a..0de5ef65 100644 --- a/lib/internet.js +++ b/lib/internet.js @@ -1,5 +1,4 @@ -var password_generator = require('../vendor/password-generator.js'), - random_ua = require('../vendor/user-agent'); +var random_ua = require('../vendor/user-agent'); /** * @@ -332,13 +331,56 @@ var Internet = function (faker) { * @param {string} pattern * @param {string} prefix */ - self.password = function (len, memorable, pattern, prefix) { - len = len || 15; - if (typeof memorable === "undefined") { - memorable = false; - } - return password_generator(len, memorable, pattern, prefix); - } + self.password = function (len, memorable, pattern, prefix) { + len = len || 15; + if (typeof memorable === "undefined") { + memorable = false; + } + /* + * password-generator ( function ) + * Copyright(c) 2011-2013 Bermi Ferrer <[email protected]> + * MIT Licensed + */ + var consonant, letter, password, vowel; + letter = /[a-zA-Z]$/; + vowel = /[aeiouAEIOU]$/; + consonant = /[bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]$/; + var _password = function (length, memorable, pattern, prefix) { + var char, n; + if (length == null) { + length = 10; + } + if (memorable == null) { + memorable = true; + } + if (pattern == null) { + pattern = /\w/; + } + if (prefix == null) { + prefix = ''; + } + if (prefix.length >= length) { + return prefix; + } + if (memorable) { + if (prefix.match(consonant)) { + pattern = vowel; + } else { + pattern = consonant; + } + } + n = faker.random.number(94) + 33; + char = String.fromCharCode(n); + if (memorable) { + char = char.toLowerCase(); + } + if (!char.match(pattern)) { + return _password(length, memorable, pattern, prefix); + } + return _password(length, memorable, pattern, "" + prefix + char); + }; + return _password(len, memorable, pattern, prefix); + } self.password.schema = { "description": "Generates a random password.", |
