const got = require('got') const { Response } = require('./response.js') const fs = require('fs') /** * * @param {String} method GET POST DELETE * @param {String} domain * @param {Number} port * @param {String} path * @param {Object} Query options to pass into a query string * @param {Buffer} Optional body that defaults to an empty string * * @returns Response */ exports.Request = async function (method, domain, port, path, params, body=null) { try { let url = `https://${domain}:${port}${path}` const options = { method: method, searchParams: params, responseType: 'json', throwHttpErrors: false, } // NOTE: only in dev environments do we use http if(process.env['DEV_ENV']) { url = `http://${domain}:${port}${path}` } if(body) { options.body = body if(method == 'get') { options.allowGetBody = true } } const resp = await got(url , options) return new Response( resp.statusCode, resp.body, ) } catch(err) { return new Response(null, null, err) } }