export default function request(endpoint, method, data) { var headers = new Headers(); headers.set('Content-Type', 'application/json'); return fetch(endpoint, { method: method, body: JSON.stringify(data), headers: headers, credentials: "include" }).then(async e => { if (e.status !== 200) throw new Error(await e.text() || e.statusText); return e.json() }).then(e => { if (e.error) return Promise.reject(new Error(typeof e.error === "string" ? e.error : JSON.stringify(e.error))); return e; }) }