UNPKG

@karibash/password-generator

Version:

A simple password generation helper function.

46 lines (41 loc) 1.46 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tslib = require('tslib'); var alphabetLowercase = 'abcdefghijklmnopqrstuvwxyz'; var alphabetUppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; var digits = '0123456789'; 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 tslib.__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); }; exports.alphabetLowercase = alphabetLowercase; exports.alphabetUppercase = alphabetUppercase; exports['default'] = password; exports.digits = digits; exports.sign = sign; //# sourceMappingURL=index.cjs.js.map