Spaces:
Running
Running
import Papa from 'papaparse'; | |
export default () => new Promise((resolve, reject) => { | |
const fileInput = document.createElement('input'); | |
fileInput.setAttribute('type', 'file'); | |
fileInput.setAttribute('accept', '.csv, .tsv, .txt'); // parser auto-detects delimiter | |
fileInput.onchange = e => { | |
const file = e.target.files[0]; | |
const fr = new FileReader(); | |
fr.onload = () => { | |
document.body.removeChild(fileInput); | |
const text = fr.result; | |
Papa.parse(text, { | |
header: false, | |
complete: results => { | |
resolve({ | |
rows: results.data, | |
text | |
}); | |
}, | |
error: err => { | |
reject(err); | |
} | |
}); | |
}; | |
fr.onerror = () => { | |
document.body.removeChild(fileInput); | |
reject(new Error('Cannot read file')); | |
}; | |
fr.readAsText(file); | |
}; | |
document.body.appendChild(fileInput); | |
fileInput.click(); | |
}); | |