feat: adding converter

This commit is contained in:
carlos
2022-06-04 14:35:49 -04:00
parent 6f5768977a
commit ebea6bc995
3 changed files with 51 additions and 0 deletions

7
index.js Normal file
View File

@ -0,0 +1,7 @@
const { readFile } = require('./utils/converter')
const add = async (path) => {
return await readFile(`${path}`)
}
module.exports = add

11
utils/MOCK_DATA.csv Normal file
View File

@ -0,0 +1,11 @@
id,first_name,last_name,email,gender,ip_address
1,Rowney,Vanlint,rvanlint0@archive.org,Male,166.243.73.22
2,Granny,Zecchetti,gzecchetti1@toplist.cz,Bigender,76.2.20.212
3,Elena,Quilkin,equilkin2@artisteer.com,Female,206.153.61.10
4,Rob,Kilkenny,rkilkenny3@spiegel.de,Genderqueer,56.156.35.222
5,Alayne,Sleit,asleit4@si.edu,Female,105.12.142.0
6,Arleta,Radsdale,aradsdale5@psu.edu,Female,20.128.1.2
7,Maximilian,Oswick,moswick6@hc360.com,Male,241.240.199.79
8,Gil,Chinnick,gchinnick7@slashdot.org,Male,2.145.45.118
9,Galen,Goulter,ggoulter8@sakura.ne.jp,Male,37.93.133.252
10,Samara,Benka,sbenka9@nydailynews.com,Female,225.2.115.39
1 id first_name last_name email gender ip_address
2 1 Rowney Vanlint rvanlint0@archive.org Male 166.243.73.22
3 2 Granny Zecchetti gzecchetti1@toplist.cz Bigender 76.2.20.212
4 3 Elena Quilkin equilkin2@artisteer.com Female 206.153.61.10
5 4 Rob Kilkenny rkilkenny3@spiegel.de Genderqueer 56.156.35.222
6 5 Alayne Sleit asleit4@si.edu Female 105.12.142.0
7 6 Arleta Radsdale aradsdale5@psu.edu Female 20.128.1.2
8 7 Maximilian Oswick moswick6@hc360.com Male 241.240.199.79
9 8 Gil Chinnick gchinnick7@slashdot.org Male 2.145.45.118
10 9 Galen Goulter ggoulter8@sakura.ne.jp Male 37.93.133.252
11 10 Samara Benka sbenka9@nydailynews.com Female 225.2.115.39

33
utils/converter.js Normal file
View File

@ -0,0 +1,33 @@
const fs = require('fs')
const csvToJson = (csv) => {
const lines = csv.split('\n')
const result = [];
const headers = lines[0].split(',');
const contents = lines.slice(1, lines.length - 1)
const obj = {};
for (const content of contents) {
const currentline = content.split(',');
for (let j = 0; j < headers.length; j++) {
obj[headers[j]] = currentline[j];
}
result.push(obj);
}
return JSON.parse(JSON.stringify(result)); //JSON
}
exports.readFile = async (pathFile) => {
const result = new Promise((resolve, reject) => {
fs.readFile(`${pathFile}`, 'utf8', (err, data) => {
if (err) {
reject(err);
return;
}
const result = csvToJson(data)
resolve(result)
});
})
return result
}