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 { const rpOptions = { body: options.body, method: options.method, uri: options.url, headers: options.headers }; 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 = { body: options.body, formData: options.formData || {}, headers: options.headers, method: options.method, uri: options.url, }; const result = await request(rpOptions); return JSON.parse(result); } }