haste-server/lib/key_generators/dictionary.js

36 lines
1,011 B
JavaScript
Raw Normal View History

var rand = require('random-js');
var fs = require('fs')
var dictionary;
2017-06-26 17:37:04 +02:00
var randomEngine = rand.engines.nativeMath;
var random;
var DictionaryGenerator = function(options) {
//Options
if (!options)
return done(Error('No options passed to generator'));
if(!options.path)
return done(Error('No dictionary path specified in options'));
//Load dictionary
2017-06-26 17:37:04 +02:00
fs.readFile(options.path, 'utf8', (err,data) => {
if(err) throw err;
2017-06-26 17:37:04 +02:00
this.dictionary = data.split(',');
//Remove any non alpha-numeric characters
2017-06-26 17:37:04 +02:00
for(var i = 0; i < this.dictionary.length; i++)
this.dictionary[i] = this.dictionary[i].replace(/\W/g,'');
this.random = rand.integer(0, this.dictionary.length);
});
};
//Generates a dictionary-based key, of keyLength words
DictionaryGenerator.prototype.createKey = function(keyLength) {
var text = '';
for(var i = 0; i < keyLength; i++)
2017-06-26 17:37:04 +02:00
text += this.dictionary[random(randomEngine)];
return text;
};
module.exports = DictionaryGenerator;