website-gemompel/app/file.js
2020-04-04 14:33:48 +02:00

41 lines
975 B
JavaScript

/**
* @param {string} path
* @return Promise<string>
* @todo use Util.fetch instead?
* @author svartoyg
*/
export async function read (path) {
return (
new Promise(
(resolve, reject) => {
let request = new XMLHttpRequest();
request.open('GET', '/' + path, true);
request.onreadystatechange = () => {
switch (request.readyState) {
case XMLHttpRequest.DONE: {
switch (request.status) {
case 0: {
reject(new Error('XMLHttpRequest failed'));
break;
}
default: {
resolve(request.responseText);
break;
}
}
break;
}
default: {
console.warn('unhandled readyState "' + request.readyState + '"');
break;
}
}
};
request.send(null);
}
)
);
}