Cosmos-Server/client/src/api/wrap.js
2023-06-20 18:34:06 +01:00

41 lines
744 B
JavaScript

let snackit;
export default function wrap(apicall, noError = false) {
return apicall.then(async (response) => {
let rep;
try {
rep = await response.json();
} catch (err) {
if (!noError) {
snackit('Server error');
throw new Error('Server error');
} else {
const e = new Error(rep.message);
e.status = rep.status;
e.code = rep.code;
throw e;
}
}
if (response.status == 200) {
return rep;
}
if (!noError) {
snackit(rep.message);
}
const e = new Error(rep.message);
e.status = rep.status;
e.code = rep.code;
throw e;
});
}
export function setSnackit(snack) {
snackit = snack;
}
export {
snackit
};