mirror of
https://github.com/LCPQ/QUESTDB_website.git
synced 2024-12-27 23:04:08 +01:00
59 lines
1.5 KiB
JavaScript
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);
|
|
});
|
|
};
|