| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import { IWebClient } from "./webclient";
- import { IWebClientOptions } from "./webclient-options";
- export default class WebClientFetch implements IWebClient {
- public async request(options: IWebClientOptions): Promise<string> {
- 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<object> {
- 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();
- }
- }
|