import { serverEndpoint } from './constants'; type ISend = { method: string, path: string, data?: any, token: string customHeaders?: Record, } type IOption = { method: string, headers: Record, body: any } async function send({ method, path, data, token, customHeaders }: ISend) { const opts: IOption = { method, headers: {} } as IOption; if (data) { opts.headers['Content-Type'] = 'application/json'; opts.body = JSON.stringify(data); } if (customHeaders) { console.log(customHeaders); // opts.headers[customHeader.$1] } if (token) { opts.headers['Authorization'] = `Bearer ${token}`; } return fetch(`${serverEndpoint}/${path}`, opts) .then((r) => r.text()) .then((json) => { try { return JSON.parse(json); } catch (err) { return json; } }); } export function getRequest(path: string, token: string, customHeaders?: Record) { return send({ method: 'GET', path, token, customHeaders }); } export function delRequest(path: string, token: string, customHeaders?: Record) { return send({ method: 'DELETE', path, token, customHeaders }); } export function postRequest(path: string, data: any, token: string, customHeaders?: Record) { return send({ method: 'POST', path, data, token, customHeaders }); } export function putRequest(path: string, data: any, token: string, customHeaders?: Record) { return send({ method: 'PUT', path, data, token, customHeaders }); }