10
0
mirror of https://github.com/LCPQ/QUESTDB_website.git synced 2024-12-26 14:23:42 +01:00
QUESTDB_website/static/js/getTextFromFile.js

59 lines
1.5 KiB
JavaScript

var fileCache = function () {
var site_url = "/"+window.location.pathname.split('/')[1];
var json_url = site_url+"/data/database.json";
var req = new XMLHttpRequest();
req.open("GET",json_url, false);
req.send();
return JSON.parse(req.responseText);
}
_cache = fileCache();
function getTextFromFileUrl(url,header={}) {
if (url in _cache) {
return _cache[url];
} else {
return async () => {await getTextFromFileUrlAsync(url)};
}
}
async function getTextFromFileUrlAsync(url,header={}) {
return new Promise(function (resolve, reject) {
var req = new XMLHttpRequest();
req.open("GET",url, true);
for (const [key, val] of Object.entries(header)) {
req.setRequestHeader(key,val)
}
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200 || req.status==304) {//when a good response is given do this
var text = req.responseText;
resolve(text);
} else {
reject({
status: req.status,
statusText: req.statusText
});
}
}
}
req.send();
});
}
async function getTextFromUploadedFileAsync(inputFile){
const temporaryFileReader = new FileReader();
return new Promise((resolve, reject) => {
temporaryFileReader.onerror = () => {
temporaryFileReader.abort();
reject(new DOMException("Problem parsing input file."));
};
temporaryFileReader.onload = () => {
resolve(temporaryFileReader.result);
};
temporaryFileReader.readAsText(inputFile);
});
};