aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMarak <[email protected]>2017-02-09 17:22:44 -0500
committerMarak <[email protected]>2017-02-09 17:22:44 -0500
commit02be0dc61e0ff84bdbe975d66b09c6231b25542c (patch)
tree9c025a03ae9eda32ecb8b7b4ccb5892a5fa239d6 /lib
parent7e96b93869b422af5a63c115e04ff0206bf7b228 (diff)
downloadfaker-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.js60
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.",