data = {
return Files.text(inputFile)
.then(text => {
console.log('got inputFile', inputFile.name);
let rawData;
if (/\.csv$/.test(inputFile.name)) {
rawData = d3.csvParse(text, d => {
Object.keys(d).forEach(key => {
if (d[key] === "true") {
d[key] = true;
} else if (d[key] === "false") {
d[key] = false;
} else if (d[key] === "null" || d[key] === "undefined" || d[key] === "") {
d[key] = undefined;
} else if (!isNaN(+d[key])) {
d[key] = +d[key]
}
});
return d;
});
} else {
rawData = JSON.parse(text);
}
let transformedData = transformJson(rawData);
if (dataType.type === 'tree') {
try {
transformedData = treeLayout(transformedData, dataType.idKey, dataType.parentKey, dataType.sortKey);
} catch (e) { console.error(e) }
}
rawData.forEach((d, i) => {
if (d.id == null) {
d.id = makeId()
}
});
if (transformedData.every(d => d.x == null && d.y == null)) {
randomLayout(transformedData);
}
return transformedData;
})
}