-
Notifications
You must be signed in to change notification settings - Fork 0
/
stringGenerator.js
62 lines (46 loc) · 1.36 KB
/
stringGenerator.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
console.log('Provided arguents:');
console.log(process.argv);
const fs = require('fs');
const wordsToSearch = process.argv.slice(2);
const stringGenerator = {};
stringGenerator.init = (...args) => {
const alphabet = [];
const monkeysCanType = "a lot of";
const writeStream = fs.createWriteStream('Shakespeare.txt');
// Generates a collection of characters from the English alphabet
generateAlphabet("a", "z");
// writes the stream
writeButNotTooFast();
// comment out for short-form otherwise QUIT PROCESS MANUALLY - FILES GO UP IN SIZE INSANELY QUICK;
// writeStream.end(() => console.log('Finished writing stream.'));
function writeButNotTooFast(clickclick)
{
while(monkeysCanType)
{
// console.log("clik click")
const errCb = err => {
if(err)
throw Error('Monkeyss got tired of your shenanigans');
}
if(!writeStream.write(generateRandomChar(alphabet), errCb))
{
console.log(clickclick)
writeStream.once('drain',
() => writeButNotTooFast(generateRandomChar(alphabet), errCb))
return;
}
}
}
function generateRandomChar(alphabet)
{
return alphabet[Math.floor(Math.random() * alphabet.length)];
}
function generateAlphabet(from, to)
{
let i = from.charCodeAt();
let j = to.charCodeAt();
for(; i <= j; i++)
alphabet.push(String.fromCharCode(i));
}
};
stringGenerator.init(wordsToSearch);