@password-generator/package
Version:
Package with the algorithm to generate password
39 lines (38 loc) • 1.4 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const checkErros_1 = __importDefault(require("./checkErros"));
const generateCharacter_1 = __importDefault(require("./generateCharacter"));
const generatePronounceableString_1 = __importDefault(require("./generatePronounceableString"));
const generatePassword = ({ length, initialText = '', useChars, }) => {
let password = '';
checkErros_1.default({ length, initialText, useChars });
const checks = Object.entries(useChars);
if (useChars.pronounceable) {
password = `${initialText}${generatePronounceableString_1.default(length)}`;
return password;
}
for (let c = 0, i = 0; c < length - initialText.length; c += 1) {
const target = checks[i][0];
const value = checks[i][1];
if (value === true) {
password += generateCharacter_1.default[target]();
}
else {
c -= 1;
}
if (i === checks.length - 1)
i = 0;
else
i += 1;
}
password = password
.split('')
.sort(() => 0.5 - Math.random())
.join('');
password = `${initialText}${password}`;
return password;
};
exports.default = generatePassword;