-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgenerateData.js
More file actions
51 lines (48 loc) · 1.45 KB
/
generateData.js
File metadata and controls
51 lines (48 loc) · 1.45 KB
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
const faker = require('faker');
const fs = require('fs');
const writeItems = fs.createWriteStream('entries.csv');
writeItems.write('item\n', 'utf8');
function writeTenMillionItems(writer, encoding, callback) {
let i = 10000000;
let entry;
function write() {
let ok = true;
do {
i -= 1;
if (i >= 8750000) {
entry = faker.random.word() + ' ' + faker.lorem.word();
} else if (i >= 7500000) {
entry = faker.lorem.word() + ' ' + faker.random.word();
} else if (i >= 6250000) {
entry = faker.random.word() + ' ' + faker.random.word();
} else if (i >= 5000000) {
entry = faker.lorem.word() + ' ' + faker.lorem.word();
} else if (i >= 3750000) {
entry = faker.random.words()
} else if (i >= 2500000) {
entry = faker.lorem.words()
} else if (i >= 1250000) {
entry = faker.lorem.word()
} else if (i >= 0) {
entry = faker.random.word();
}
let data = `${entry}\n`;
if (i === 0) {
writer.write(data, encoding, callback);
} else {
// see if we should continue, or wait
// don't pass the callback, because we're not done yet.
ok = writer.write(data, encoding);
}
} while (i > 0 && ok);
if (i > 0) {
// had to stop early!
// write some more once it drains
writer.once('drain', write);
}
}
write();
}
writeTenMillionItems(writeItems, 'utf-8', () => {
writeItems.end();
});