node-password-generator
Version:
A simple lightweight npm library for password generator. It allows you to create random unqiue password on the fly.
51 lines (50 loc) • 1.4 kB
JavaScript
import * as fs from 'fs';
let password = [];
const MIN_WORD_COUNT = 3;
/**
* @param {} {filename
* @param {} wordCount
* @param {} seprator
* @param {{filename:string} }
* @param {number} wordCount
* @param {string} seprator
* @param {} }
* @returns Promise
*/
function generatePassword({ filename, wordCount, seprator, }) {
return new Promise((resolve, reject) => {
fs.readFile(filename, 'utf-8', function (err, data) {
if (err) {
reject(err);
throw err;
}
var lines = data.split('\n');
for (let i = 0; i < wordCount; i++) {
let line = lines[Math.floor(Math.random() * lines.length)];
password.push(line);
}
resolve(password.join(seprator));
});
});
}
/**
* @param {} {filepath
* @param {} wordcount
* @param {} separator
* @param {WordOptions} }
* @returns Promise
*/
const generate = async function generate({ filepath, wordcount, separator, }) {
/**
* Building Password
*/
if (wordcount == 0)
throw new Error('Minimum `wordcount` should atleast be 1 ');
let password = await generatePassword({
filename: filepath,
wordCount: wordcount ? wordcount : MIN_WORD_COUNT,
seprator: separator ? separator : '',
});
return password;
};
export default generate;