import { IWebClient } from "./webclient"; import { IWebClientOptions } from "./webclient-options"; export default class WebClientFetch implements IWebClient { public async request(options: IWebClientOptions): Promise { const fetchOptions: any = { headers: options.headers, method: options.method }; if (options.body) { fetchOptions.body = options.body; } const res = await fetch(options.url, fetchOptions); console.log('res', res); return res.text(); } public async requestJSON(options: IWebClientOptions): Promise { if (!options.headers) { options.headers = {}; } if (options.body) { options.headers['content-type'] = 'application/json'; if (typeof options.body === 'object') { options.body = JSON.stringify(options.body); } } options.headers.accept = 'application/json'; const fetchOptions: any = { headers: options.headers, method: options.method }; if (options.formData) { fetchOptions.formData = options.formData; } if (options.body) { fetchOptions.body = options.body; } const res = await fetch(options.url, fetchOptions); console.log('res', res); return res.json(); } }