UNPKG

@hoppscotch/httpsnippet

Version:

HTTP Request snippet generator for *most* languages

98 lines 3.76 kB
"use strict"; exports.__esModule = true; exports.faraday = void 0; var code_builder_1 = require("../../../helpers/code-builder"); var escape_1 = require("../../../helpers/escape"); exports.faraday = { info: { key: 'faraday', title: 'faraday', link: 'https://github.com/lostisland/faraday', description: 'Faraday HTTP client' }, convert: function (_a) { var uriObj = _a.uriObj, queryObj = _a.queryObj, rawMethod = _a.method, postData = _a.postData, allHeaders = _a.allHeaders; var _b = new code_builder_1.CodeBuilder(), push = _b.push, blank = _b.blank, join = _b.join; // To support custom methods we check for the supported methods // and if doesn't exist then we build a custom class for it var method = rawMethod.toUpperCase(); var methods = [ 'GET', 'POST', 'HEAD', 'DELETE', 'PATCH', 'PUT', 'OPTIONS', 'COPY', 'LOCK', 'UNLOCK', 'MOVE', 'TRACE', ]; if (!methods.includes(method)) { push("# Faraday cannot currently run ".concat(method, " requests. Please use another client.")); return join(); } push("require 'faraday'"); blank(); // Write body to beginning of script if (postData.mimeType === 'application/x-www-form-urlencoded') { if (postData.params) { push("data = {"); postData.params.forEach(function (param) { push(" :".concat(param.name, " => ").concat(JSON.stringify(param.value), ",")); }); push("}"); blank(); } } push("conn = Faraday.new("); push(" url: '".concat(uriObj.protocol, "//").concat(uriObj.host, "',")); if (allHeaders['content-type'] || allHeaders['Content-Type']) { push(" headers: {'Content-Type' => '".concat(allHeaders['content-type'] || allHeaders['Content-Type'], "'}")); } push(")"); blank(); push("response = conn.".concat(method.toLowerCase(), "('").concat(uriObj.pathname, "') do |req|")); var headers = Object.keys(allHeaders); if (headers.length) { headers.forEach(function (key) { if (key.toLowerCase() !== 'content-type') { push(" req.headers['".concat(key, "'] = '").concat((0, escape_1.escapeForSingleQuotes)(allHeaders[key]), "'")); } }); } Object.keys(queryObj).forEach(function (name) { var value = queryObj[name]; if (Array.isArray(value)) { push(" req.params['".concat(name, "'] = ").concat(JSON.stringify(value))); } else { push(" req.params['".concat(name, "'] = '").concat(value, "'")); } }); switch (postData.mimeType) { case 'application/x-www-form-urlencoded': if (postData.params) { push(" req.body = URI.encode_www_form(data)"); } break; case 'application/json': if (postData.jsonObj) { push(" req.body = ".concat(JSON.stringify(postData.text))); } break; default: if (postData.text) { push(" req.body = ".concat(JSON.stringify(postData.text))); } } push('end'); blank(); push('puts response.status'); push('puts response.body'); return join(); } }; //# sourceMappingURL=client.js.map