diff options
| author | Marak <[email protected]> | 2014-09-21 10:27:32 +0200 |
|---|---|---|
| committer | Marak <[email protected]> | 2014-09-21 10:28:41 +0200 |
| commit | 4aa41346e1556080123d404eefed9bd61138d1d2 (patch) | |
| tree | 269e8d793691e75e7395ce93ce2efafa3d61b56f | |
| parent | 851b286d041c137bada54c8882cf3e024c43bb2d (diff) | |
| download | faker-4aa41346e1556080123d404eefed9bd61138d1d2.tar.xz faker-4aa41346e1556080123d404eefed9bd61138d1d2.zip | |
[api] Added internet.password method using `password-generator` library.
[dist] Added `password-generator` to vendor
Closes #33
| -rw-r--r-- | lib/internet.js | 9 | ||||
| -rw-r--r-- | vendor/password-generator.js | 65 |
2 files changed, 74 insertions, 0 deletions
diff --git a/lib/internet.js b/lib/internet.js index fdef75fb..82a1d6ac 100644 --- a/lib/internet.js +++ b/lib/internet.js @@ -1,4 +1,5 @@ var faker = require('../index'), + password_generator = require('../vendor/password-generator.js'), random_ua = require('../vendor/user-agent'); var internet = { @@ -67,6 +68,14 @@ var internet = { var blue = Math.floor((faker.random.number(256) + baseRed255) / 2); return '#' + red.toString(16) + green.toString(16) + blue.toString(16); + }, + + password: function (len, memorable, pattern, prefix) { + len = len || 15; + if (typeof memorable === "undefined") { + memorable = false; + } + return password_generator(len, memorable, pattern, prefix); } }; diff --git a/vendor/password-generator.js b/vendor/password-generator.js new file mode 100644 index 00000000..35ca4486 --- /dev/null +++ b/vendor/password-generator.js @@ -0,0 +1,65 @@ +/* + * password-generator + * Copyright(c) 2011-2013 Bermi Ferrer <[email protected]> + * MIT Licensed + */ +(function (root) { + + var localName, consonant, letter, password, vowel; + letter = /[a-zA-Z]$/; + vowel = /[aeiouAEIOU]$/; + consonant = /[bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]$/; + + + // Defines the name of the local variable the passwordGenerator library will use + // this is specially useful if window.passwordGenerator is already being used + // by your application and you want a different name. For example: + // // Declare before including the passwordGenerator library + // var localPasswordGeneratorLibraryName = 'pass'; + localName = root.localPasswordGeneratorLibraryName || "generatePassword", + + 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 = Math.floor(Math.random() * 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); + }; + + + ((typeof exports !== 'undefined') ? exports : root)[localName] = password; + if (typeof exports !== 'undefined') { + if (typeof module !== 'undefined' && module.exports) { + module.exports = password; + } + } + + // Establish the root object, `window` in the browser, or `global` on the server. +}(this));
\ No newline at end of file |
