-
Notifications
You must be signed in to change notification settings - Fork 0
/
arquivo.js
45 lines (39 loc) · 930 Bytes
/
arquivo.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
const fs = require('fs');
const createHeadersForTable= () => {
return ['Id', 'Name', 'Age'];
}
const createValuesforTable = () => {
const columnValues = [
{
id: 1,
name: 'Leonardo',
age: 24
},
{
id: 2,
name: 'User 2',
age: 22
},
{
id: 3,
name: 'User 3',
age: 25
}
]
return columnValues
}
const writeToCSV = async () => {
const headersOfTable = createHeadersForTable();
const valuesOfTable = createValuesforTable();
const writeStream = fs.createWriteStream('out.csv');
writeStream.write(headersOfTable.join(';'));
for (const value of valuesOfTable) {
const overWatermark = writeStream.write(`\n${value.id};${value.name};${value.age}`);
if (!overWatermark) {
await new Promise((resolve) => writeStream.once('drain', resolve));
}
}
writeStream.end();
}
writeToCSV()
console.log("Write to CSV successfully");