├── .gitignore ├── package.json ├── index.js └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | /.idea -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@mdenic/password-generator", 3 | "version": "0.2.1", 4 | "description": "Password Generator", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/markoDenic/password-generator.git" 12 | }, 13 | "keywords": [ 14 | "password", 15 | "passwords", 16 | "generate", 17 | "generator", 18 | "generate password", 19 | "password generator", 20 | "password generate" 21 | ], 22 | "author": "Marko Denic", 23 | "license": "MIT", 24 | "bugs": { 25 | "url": "https://github.com/markoDenic/password-generator/issues" 26 | }, 27 | "homepage": "https://freecodetools.org/password-generator/" 28 | } 29 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | module.exports = module.exports.default = function (options) { 2 | options = options || {}; 3 | var characters = 'abcdefghijklmnopqrstuvwxyz'; 4 | length = !options.hasOwnProperty('length') ? 16 : options.length; 5 | if (options.hasOwnProperty('uppercase') && options.uppercase) characters += 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; 6 | if (options.hasOwnProperty('numbers') && options.numbers) characters += '0123456789'; 7 | if (options.hasOwnProperty('symbols') && options.symbols) characters += '!@#$%^&*()+_-=}{[]|:;"/?.><,`~'; 8 | 9 | var password = ''; 10 | for (var i = 0; i < length; i++) { 11 | password += random(characters); 12 | } 13 | return password; 14 | }; 15 | 16 | var random = function (group) { 17 | return group.charAt(Math.floor(Math.random() * group.length)) 18 | }; -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # @mdenic/password-generator 2 | 3 | [![npm (scoped)](https://img.shields.io/npm/v/@mdenic/password-generator.svg)](https://www.npmjs.com/package/@mdenic/password-generator) 4 | [![npm bundle size (minified)](https://img.shields.io/bundlephobia/min/@mdenic/password-generator.svg)](https://www.npmjs.com/package/@mdenic/password-generator) 5 | ![NPM](https://img.shields.io/npm/l/@mdenic/password-generator) 6 | ![npm](https://img.shields.io/npm/dt/@mdenic/password-generator) 7 | ![GitHub top language](https://img.shields.io/github/languages/top/markoDenic/password-generator) 8 | ![GitHub last commit](https://img.shields.io/github/last-commit/markoDenic/password-generator) 9 | 10 | Password Generator 11 | 12 | ## Install 13 | 14 | ``` 15 | $ npm install @mdenic/password-generator --save 16 | ``` 17 | 18 | ## Usage 19 | 20 | ```js 21 | var generate = require("@mdenic/password-generator"); 22 | 23 | var pass = generate(); 24 | 25 | console.log(pass); // => "gllusviuarzrdopp" //string 26 | 27 | var pass = generate({ 28 | length: 20, 29 | numbers: true, 30 | uppercase: true, 31 | }); 32 | console.log(pass); // => "ZpfgmfLdw1RQ3wYgGFro" //string 33 | 34 | ``` 35 | 36 | 37 | ### Options 38 | 39 | 40 | | Name | Type | Default Value | 41 | |--------------------------|---------------------------------------------|---------------| 42 | | length | Integer | 16 | 43 | | numbers | Boolean | false | 44 | | symbols | Boolean | false | 45 | | uppercase | Boolean | false | --------------------------------------------------------------------------------