import request = require('request-promise'); import { IWebClient } from "./webclient"; import { IWebClientOptions } from "./webclient-options"; export default class WebClientNode implements IWebClient { public async request(options: IWebClientOptions): Promise { if (!options.headers) { options.headers = {}; } const rpOptions: any = { headers: options.headers, method: options.method, uri: options.url, }; if (options.body) { rpOptions.body = options.body; } // console.log('rpOptions', rpOptions); const result = await request(rpOptions); return result; } 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 rpOptions: any = { headers: options.headers, method: options.method, uri: options.url, }; if (options.formData) { rpOptions.formData = options.formData; } if (options.body) { rpOptions.body = options.body; } // console.log('rpOptions', rpOptions); const result = await request(rpOptions); return JSON.parse(result); } }