UNPKG

@karibash/password-generator

Version:

A simple password generation helper function.

35 lines 1.26 kB
import { __spreadArray } from "tslib"; export var alphabetLowercase = 'abcdefghijklmnopqrstuvwxyz'; export var alphabetUppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; export var digits = '0123456789'; export var sign = '-._~+/'; var choice = function (chars) { return chars[Math.floor(Math.random() * chars.length)]; }; var shuffle = function (chars) { return chars.split('').sort(function () { return 0.5 - Math.random(); }).join(''); }; var hash = function (size, charSet) { if (size <= 0) return ''; var chars = charSet .map(function (chars) { var count = Math.ceil(Math.random() * (size / charSet.length)); return __spreadArray([], Array(count), true).map(function () { return choice(chars); }).join(''); }) .join(''); return chars + hash(size - chars.length, charSet); }; var password = function (size, charSet) { if (charSet === void 0) { charSet = [ alphabetLowercase, alphabetUppercase, digits, sign, ]; } if (size < charSet.length) console.warn('A value smaller than charSet.length is specified for the size argument.'); return shuffle(hash(size, charSet)).substr(0, size); }; export default password; //# sourceMappingURL=index.js.map