-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
94 lines (78 loc) · 2.26 KB
/
index.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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import data from "./data.json" assert { type: "json" };
import * as fs from "fs";
const { columns, rows } = data.data.table;
const header = columns.map((val) => val.name);
const values = [];
const csvFolder = "./csv";
const jsonFolder = "./output";
try {
if (!fs.existsSync(csvFolder)) {
fs.mkdirSync(csvFolder);
}
if (!fs.existsSync(jsonFolder)) {
fs.mkdirSync(jsonFolder);
}
} catch (err) {
console.error(err);
}
rows.map((row) => {
const newObj = {};
Object.keys(row.cellValuesByColumnId).forEach((cell) => {
const columnName = columns.filter((val) => val.id == cell)[0].name;
const columnId = columns.filter((val) => val.id == cell)[0].id;
let newCell = row.cellValuesByColumnId[cell];
let arrCell = [];
if (typeof newCell == "object") {
const { choices } = columns.filter((col) => col.id == columnId)[0]
.typeOptions;
newCell.forEach((newCellVal) => {
for (var key in choices) {
if (choices[key].id == newCellVal) {
arrCell.push(choices[newCellVal].name);
}
}
});
newCell = arrCell.join(",");
}
newObj[columnName] = newCell;
});
values.push(newObj);
});
const date = new Date();
const fileName = date.toISOString().replace(/(\:|\.)/g, "_");
console.log(fileName);
const fileValue = JSON.stringify(values);
fs.writeFile(`./output/${fileName}.json`, fileValue, (error) => {
if (error) {
console.error(error);
throw error;
}
console.log("data.json written correctly");
});
let csv = "";
csv += header.join(";") + "\n";
fs.readFile(`./output/${fileName}.json`, (err, data) => {
if (err) throw err;
const readyData = JSON.parse(data);
readyData.forEach((fData) => {
let arr = [];
header.forEach((val) => {
let s = fData[val] ? fData[val] : " ";
arr.push(
s
.toString()
.replace(/\;/g, ",")
.replace(/(?:\r\n|\r|\n)/g, ",")
.replace(/\-/g, ",")
);
});
csv += arr.join(";") + "\n";
});
fs.writeFile(`./csv/${fileName}.csv`, csv, (error) => {
if (error) {
console.error(error);
throw error;
}
console.log("csv written correctly");
});
});