Comparing version 0.0.3 to 0.0.4
@@ -1,22 +0,22 @@ | ||
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=[];function h(){return c}function g(i){return c.filter(n=>n.language===i)}function p(i,n){const e=c.find(r=>r.language===i&&r.target===n);if(!e)return new Error(`Target '${n}' not found`);c.forEach(r=>{r.language===i&&(r.default=r===e)})}function a(i){if(!i)return new Error("Target is required");if(Array.isArray(i)){i.forEach(r=>a(r));return}i.default===void 0&&(i.default=!1);const n=c.find(r=>r.language===i.language&&r.target===i.target);n&&c.splice(c.indexOf(n),1),c.filter(r=>r.language===i.language).length===0&&(i.default=!0),i.default&&c.forEach(r=>{r.language===i.language&&(r.default=!1)}),c.push(i)}function b(){c.splice(0,c.length)}function j(i){var o;let n=k(i);if(n)return n.message;i.config=C(i.config);const e=g(i.language.toLowerCase());if(e.length===0)return"Language not found";const r=i.target?i.target.toLowerCase():((o=e.find(s=>s.language.toLowerCase()===i.language.toLowerCase()&&s.default))==null?void 0:o.target.toLowerCase())||"";if(!r)return"Target not found";const t=e.find(s=>s.language.toLowerCase()===i.language.toLowerCase()&&s.target.toLowerCase()===r);return t?t.generate(i.config,i.http):"Code not found for language and target"}function k(i){if(!i)return new Error("Request is required");if(!i.language)return new Error("language is required");if(g(i.language).length===0)return new Error(`Language '${i.language}' not found`);if(!i.http)return new Error("http is required");if(!i.http.method)return new Error("http.method is required");if(!i.http.url)return new Error("http.url is required")}function C(i){return i=i||{},i.indent||(i.indent=" "),i.join||(i.join=` | ||
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=[];function g(){return f}function $(i,n){if(i===""||i===void 0)return new Error("Language is required");const e=f.filter(r=>r.language.toLowerCase()===i.toLowerCase());if(!n){const r=e.find(t=>t.default);return r||e[0]}const o=e.find(r=>r.client.toLowerCase()===n.toLowerCase());return o||new Error(`Client '${n}' not found for language '${i}'`)}function b(i,n){const e=$(i,n);if(e instanceof Error)return e;e.default=!0}function a(i){if(!i)return new Error("Target is required");if(Array.isArray(i)){i.forEach(o=>a(o));return}i.default===void 0&&(i.default=!1);const n=$(i.language,i.client);if(n instanceof Error){f.push(i),f.filter(o=>o.language===i.language).length===1&&(i.default=!0);return}const e=f.indexOf(n);f[e]=i,f.filter(o=>o.language===i.language).length===1&&(i.default=!0)}function p(){f.splice(0,f.length)}function j(i){let n=k(i);if(n)return n.message;i.config=O(i.config);const e=$(i.language,i.client);return e instanceof Error?e.message:e.generate(i.config,i.http)}function k(i){if(!i)return new Error("Request is required");if(!i.language)return new Error("language is required");if(!i.http)return new Error("http is required");if(!i.http.method)return new Error("http.method is required");if(!i.http.url)return new Error("http.url is required")}function O(i){return i=i||{},i.indent||(i.indent=" "),i.join||(i.join=` | ||
`),i.handleErrors===void 0&&(i.handleErrors=!1),i}class d{constructor(n={}){this.code=[],this.currentDepth=0,this.indentChar=n.indent||" ",this.lineJoin=n.join||` | ||
`}line(n=""){this.code.push({depth:n===""?0:this.currentDepth,line:n})}indent(){this.currentDepth+=1}outdent(){this.currentDepth>0&&(this.currentDepth-=1)}output(){return this.code.map(({depth:n,line:e})=>`${this.indentChar.repeat(n)}${e}`).join(this.lineJoin)}}function $(i,n){return i.toUpperCase()==="POST"&&n!==void 0&&Object.keys(n).some(e=>e.toLowerCase()==="content-type"&&n[e].toLowerCase()==="application/json")}const O={default:!0,language:"c",target:"libcurl",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("#include <stdio.h>"),e.line("#include <curl/curl.h>"),e.line(),e.line("int main(void) {"),e.indent(),e.line("CURL *curl;"),e.line("CURLcode res;"),e.line(),e.line("curl_global_init(CURL_GLOBAL_DEFAULT);"),e.line("curl = curl_easy_init();"),e.line("if(curl) {"),e.indent(),e.line(`curl_easy_setopt(curl, CURLOPT_URL, "${n.url}");`),n.method.toUpperCase()==="POST"?e.line("curl_easy_setopt(curl, CURLOPT_POST, 1L);"):n.method.toUpperCase()!=="GET"&&e.line(`curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "${n.method.toUpperCase()}");`),n.headers&&Object.keys(n.headers).length>0){e.line("struct curl_slist *headers = NULL;");for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?t.forEach(o=>e.line(`headers = curl_slist_append(headers, "${r}: ${o}");`)):e.line(`headers = curl_slist_append(headers, "${r}: ${t}");`);e.line("curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);")}if(n.cookies&&Object.keys(n.cookies).length>0){const r=Object.entries(n.cookies).map(([t,o])=>`${t}=${o}`).join("; ");e.line(`curl_easy_setopt(curl, CURLOPT_COOKIE, "${r}");`)}return n.body&&e.line(`curl_easy_setopt(curl, CURLOPT_POSTFIELDS, R"(${JSON.stringify(n.body)})");`),e.line("res = curl_easy_perform(curl);"),e.line("if(res != CURLE_OK)"),e.indent(),e.line(`fprintf(stderr, "curl_easy_perform() failed: %s | ||
", curl_easy_strerror(res));`),e.outdent(),n.headers&&Object.keys(n.headers).length>0&&e.line("curl_slist_free_all(headers);"),e.line("curl_easy_cleanup(curl);"),e.outdent(),e.line("}"),e.line("curl_global_cleanup();"),e.line("return 0;"),e.outdent(),e.line("}"),e.output()}},m={default:!0,language:"csharp",target:"http",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("using System;"),e.line("using System.Net.Http;"),e.line("using System.Threading.Tasks;"),e.line(),e.line("namespace HttpClientExample"),e.line("{"),e.indent(),e.line("class Program"),e.line("{"),e.indent(),e.line("static async Task Main(string[] args)"),e.line("{"),e.indent(),e.line("using (HttpClient client = new HttpClient())"),e.line("{"),e.indent(),e.line(`HttpRequestMessage request = new HttpRequestMessage(HttpMethod.${n.method.toUpperCase()}, "${n.url}");`),n.headers&&Object.keys(n.headers).length>0)for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?t.forEach(o=>e.line(`request.Headers.Add("${r}", "${o}");`)):e.line(`request.Headers.Add("${r}", "${t}");`);if(n.cookies&&Object.keys(n.cookies).length>0){const r=Object.entries(n.cookies).map(([t,o])=>`${t}=${o}`).join("; ");e.line(`request.Headers.Add("Cookie", "${r}");`)}return n.body&&e.line(`request.Content = new StringContent("${JSON.stringify(n.body).replace(/"/g,'"')}", System.Text.Encoding.UTF8, "application/json");`),e.line("HttpResponseMessage response = await client.SendAsync(request);"),e.line("response.EnsureSuccessStatusCode();"),e.line("string responseBody = await response.Content.ReadAsStringAsync();"),e.line("Console.WriteLine(responseBody);"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.output()}},w={language:"csharp",target:"restsharp",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("using RestSharp;"),e.line(),e.line("namespace RestSharpExample"),e.line("{"),e.indent(),e.line("class Program"),e.line("{"),e.indent(),e.line("static void Main(string[] args)"),e.line("{"),e.indent(),e.line(`var client = new RestClient("${n.url}");`),e.line(`var request = new RestRequest(Method.${n.method.toUpperCase()});`),n.headers&&Object.keys(n.headers).length>0)for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?t.forEach(o=>e.line(`request.AddHeader("${r}", "${o}");`)):e.line(`request.AddHeader("${r}", "${t}");`);if(n.cookies&&Object.keys(n.cookies).length>0){const r=Object.entries(n.cookies).map(([t,o])=>`${t}=${o}`).join("; ");e.line(`request.AddHeader("Cookie", "${r}");`)}return n.body&&e.line(`request.AddJsonBody(${JSON.stringify(n.body)});`),e.line("IRestResponse response = client.Execute(request);"),e.line("Console.WriteLine(response.Content);"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.output()}},R={default:!0,language:"go",target:"http",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`}),r=$(n.method,n.headers)&&n.body;e.line("package main"),e.line(),e.line("import ("),e.indent(),e.line('"fmt"'),e.line('"net/http"'),e.line('"io"'),r&&(e.line('"bytes"'),e.line('"encoding/json"')),i.handleErrors&&e.line('"log"'),e.outdent(),e.line(")"),e.line(),e.line("func main() {"),e.indent(),e.line(`url := "${n.url}"`),e.line();let t="nil";if(r){e.line("jsonBodyMap := map[string]any{"),e.indent();for(const[o,s]of Object.entries(n.body))e.line(`"${o}": ${JSON.stringify(s)},`);e.outdent(),e.line("}"),i.handleErrors?(e.line("jsonBodyBytes, err := json.Marshal(jsonBodyMap)"),e.line("if err != nil {"),e.indent(),e.line("log.Fatal(err)"),e.outdent(),e.line("}")):e.line("jsonBodyBytes, _ := json.Marshal(jsonBodyMap)"),t="bytes.NewBuffer(jsonBodyBytes)",e.line()}if(i.handleErrors?(e.line(`req, err := http.NewRequest("${n.method.toUpperCase()}", url, ${t})`),e.line("if err != nil {"),e.indent(),e.line("log.Fatal(err)"),e.outdent(),e.line("}"),e.line()):(e.line(`req, _ := http.NewRequest("${n.method.toUpperCase()}", url, ${t})`),e.line()),n.headers){for(const[o,s]of Object.entries(n.headers))if(Array.isArray(s))for(const l of s)e.line(`req.Header.Add("${o}", "${l}")`);else e.line(`req.Header.Set("${o}", "${s}")`);e.line()}if(n.cookies){for(const[o,s]of Object.entries(n.cookies))if(Array.isArray(s))for(const l of s)e.line(`req.AddCookie(&http.Cookie{Name: "${o}", Value: "${l}"})`);else e.line(`req.AddCookie(&http.Cookie{Name: "${o}", Value: "${s}"})`);e.line()}return i.handleErrors?(e.line("resp, err := http.DefaultClient.Do(req)"),e.line("if err != nil {"),e.indent(),e.line("log.Fatal(err)"),e.outdent(),e.line("}")):e.line("resp, _ := http.DefaultClient.Do(req)"),e.line("defer resp.Body.Close()"),e.line(),i.handleErrors?(e.line("body, err := io.ReadAll(resp.Body)"),e.line("if err != nil {"),e.indent(),e.line("log.Fatal(err)"),e.outdent(),e.line("}")):e.line("body, _ := io.ReadAll(resp.Body)"),e.line(),e.line("fmt.Println(string(body))"),e.outdent(),e.line("}"),e.output()}},T={default:!0,language:"javascript",target:"fetch",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line('fetch("'+n.url+'", {'),e.indent(),e.line(`method: "${n.method.toUpperCase()}",`),n.headers){e.line("headers: {"),e.indent();for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?e.line(`"${r}": "${t.join(", ")}",`):e.line(`"${r}": "${t}",`);e.outdent(),e.line("},")}return n.body&&e.line(`body: JSON.stringify(${JSON.stringify(n.body)}),`),e.outdent(),e.line("})"),i.handleErrors?(e.line(".then(response => {"),e.indent(),e.line("if (!response.ok) {"),e.indent(),e.line('throw new Error("Network response was not ok");'),e.outdent(),e.line("}"),e.line("return response.text();"),e.outdent(),e.line("})"),e.line(".then(data => console.log(data))"),e.line('.catch(error => console.error("There was a problem with the fetch operation:", error));')):(e.line(".then(response => response.text())"),e.line(".then(data => console.log(data));")),e.output()}},q={language:"javascript",target:"axios",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("axios({"),e.indent(),e.line(`method: "${n.method.toLowerCase()}",`),e.line(`url: "${n.url}",`),n.headers){e.line("headers: {"),e.indent();for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?e.line(`"${r}": "${t.join(", ")}",`):e.line(`"${r}": "${t}",`);e.outdent(),e.line("},")}if(n.cookies){e.line("cookies: {"),e.indent();for(const[r,t]of Object.entries(n.cookies))e.line(`"${r}": "${t}",`);e.outdent(),e.line("},")}return n.body&&e.line(`data: ${JSON.stringify(n.body)},`),e.outdent(),e.line("})"),i.handleErrors?(e.line(".then(response => {"),e.indent(),e.line("console.log(response.data);"),e.outdent(),e.line("})"),e.line(".catch(error => {"),e.indent(),e.line('console.error("There was an error:", error);'),e.outdent(),e.line("});")):e.line(".then(response => console.log(response.data));"),e.output()}},S={language:"javascript",target:"jquery",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("$.ajax({"),e.indent(),e.line(`url: "${n.url}",`),e.line(`type: "${n.method.toUpperCase()}",`),n.headers){e.line("headers: {"),e.indent();for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?e.line(`"${r}": "${t.join(", ")}",`):e.line(`"${r}": "${t}",`);e.outdent(),e.line("},")}return n.body&&(e.line(`data: JSON.stringify(${JSON.stringify(n.body)}),`),e.line('contentType: "application/json",')),e.line("success: function(data) {"),e.indent(),e.line("console.log(data);"),e.outdent(),e.line("},"),i.handleErrors&&(e.line("error: function(jqXHR, textStatus, errorThrown) {"),e.indent(),e.line('console.error("Request failed:", textStatus, errorThrown);'),e.outdent(),e.line("},")),e.outdent(),e.line("});"),e.output()}},E={language:"node",target:"http",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line('const http = require("http");'),e.line(),e.line("const options = {"),e.indent(),e.line(`method: "${n.method.toUpperCase()}",`),e.line(`hostname: "${new URL(n.url).hostname}",`),e.line(`path: "${new URL(n.url).pathname}${new URL(n.url).search}",`),n.headers){e.line("headers: {"),e.indent();for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?e.line(`"${r}": "${t.join(", ")}",`):e.line(`"${r}": "${t}",`);e.outdent(),e.line("},")}return e.outdent(),e.line("};"),e.line(),e.line("const req = http.request(options, (res) => {"),e.indent(),e.line('let data = "";'),e.line(),e.line('res.on("data", (chunk) => {'),e.indent(),e.line("data += chunk;"),e.outdent(),e.line("});"),e.line(),e.line('res.on("end", () => {'),e.indent(),e.line("console.log(data);"),e.outdent(),e.line("});"),e.outdent(),e.line("});"),i.handleErrors&&(e.line(),e.line('req.on("error", (error) => {'),e.indent(),e.line("console.error(error);"),e.outdent(),e.line("});")),e.line(),n.body&&e.line(`req.write(JSON.stringify(${JSON.stringify(n.body)}));`),e.line("req.end();"),e.output()}},_={language:"node",target:"node-fetch",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line('const fetch = require("node-fetch");'),e.line(),e.line('fetch("'+n.url+'", {'),e.indent(),e.line('method: "'+n.method.toUpperCase()+'",'),n.headers){e.line("headers: {"),e.indent();for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?e.line(`"${r}": "${t.join(", ")}",`):e.line(`"${r}": "${t}",`);e.outdent(),e.line("},")}return n.body&&e.line("body: JSON.stringify("+JSON.stringify(n.body)+"),"),e.outdent(),e.line("})"),i.handleErrors?(e.line(".then(response => {"),e.indent(),e.line("if (!response.ok) {"),e.indent(),e.line('throw new Error("response not ok");'),e.outdent(),e.line("}"),e.line("return response.text();"),e.outdent(),e.line("})"),e.line(".then(data => console.log(data))"),e.line('.catch(error => console.error("error:", error));')):(e.line(".then(response => response.text())"),e.line(".then(data => console.log(data))")),e.output()}},A={default:!0,language:"php",target:"curl",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("<?php"),e.line(),e.line("$ch = curl_init();"),e.line(),e.line(`curl_setopt($ch, CURLOPT_URL, "${n.url}");`),e.line("curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);"),e.line(`curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "${n.method.toUpperCase()}");`),n.headers){e.line(),e.line("$headers = [];");for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?t.forEach(o=>e.line(`$headers[] = "${r}: ${o}";`)):e.line(`$headers[] = "${r}: ${t}";`);e.line("curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);")}if(n.cookies){e.line(),e.line("$cookies = [];");for(const[r,t]of Object.entries(n.cookies))e.line(`$cookies[] = "${r}=${t}";`);e.line('curl_setopt($ch, CURLOPT_COOKIE, implode("; ", $cookies));')}return n.body&&(e.line(),e.line(`curl_setopt($ch, CURLOPT_POSTFIELDS, '${JSON.stringify(n.body)}');`)),e.line(),e.line("$response = curl_exec($ch);"),i.handleErrors&&(e.line("if (curl_errno($ch)) {"),e.indent(),e.line('echo "Error: " . curl_error($ch);'),e.outdent(),e.line("}")),e.line("curl_close($ch);"),e.line(),e.line("echo $response;"),e.output()}},U={language:"php",target:"guzzle",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("<?php"),e.line(),e.line("require 'vendor/autoload.php';"),e.line(),e.line("use GuzzleHttp\\Client;"),e.line(),e.line("$client = new Client();"),e.line("$response = $client->request("),e.indent(),e.line('"'+n.method.toUpperCase()+'",'),e.line('"'+n.url+'",'),n.headers||n.cookies||n.body){if(e.line("["),n.headers){e.indent(),e.line('"headers" => ['),e.indent();for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?t.forEach(o=>e.line(`"${r}" => "${o}",`)):e.line(`"${r}" => "${t}",`);e.outdent(),e.line("],"),e.outdent()}if(n.cookies){e.indent(),e.line('"cookies" => ['),e.indent();for(const[r,t]of Object.entries(n.cookies))e.line(`"${r}" => "${t}",`);e.outdent(),e.line("],"),e.outdent()}n.body&&(e.indent(),e.line('"json" => '+JSON.stringify(n.body)+","),e.outdent()),e.line("],")}return e.outdent(),e.line(");"),e.line(),e.line("echo $response->getBody();"),e.output()}},L={default:!0,language:"python",target:"http",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`}),r=n.method.toUpperCase(),t=r!=="GET"&&n.body,o=n.headers&&Object.keys(n.headers).length>0,s=n.cookies&&Object.keys(n.cookies).length>0;let l=[];e.line("import http.client"),e.line("import json"),e.line();const u=new URL(n.url);if(e.line(`conn = http.client.HTTPSConnection("${u.hostname}", ${u.port||(u.protocol==="https:"?443:80)})`),e.line(),t&&(l.push("payload"),e.line(`payload = json.dumps(${JSON.stringify(n.body)})`),e.line()),o){l.push("headers"),e.line("headers = {"),e.indent();for(const[f,y]of Object.entries(n.headers))Array.isArray(y)?e.line(`"${f}": "${y.join(", ")}",`):e.line(`"${f}": "${y}",`);e.outdent(),e.line("}"),e.line()}if(s){l.push("cookies"),e.line("cookies = {"),e.indent();for(const[f,y]of Object.entries(n.cookies))e.line(`"${f}": "${y}",`);e.outdent(),e.line("}"),e.line()}return e.line(`conn.request("${r}", "${u.pathname+u.search}"`+(l.length>0?`, ${l.join(", ")}`:"")+")"),e.line("res = conn.getresponse()"),e.line("data = res.read()"),e.line(),e.line('print(data.decode("utf-8"))'),e.output()}},P={language:"python",target:"requests",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`}),t=n.method.toUpperCase()!=="GET"&&n.body,o=n.headers&&Object.keys(n.headers).length>0,s=n.cookies&&Object.keys(n.cookies).length>0;let l=[];if(e.line("import requests"),e.line(),e.line('url = "'+n.url+'"'),o){l.push("headers=headers"),e.line("headers = {"),e.indent();for(const[u,f]of Object.entries(n.headers))Array.isArray(f)?e.line(`"${u}": "${f.join(", ")}",`):e.line(`"${u}": "${f}",`);e.outdent(),e.line("}")}if(s){l.push("cookies=cookies"),e.line("cookies = {"),e.indent();for(const[u,f]of Object.entries(n.cookies))e.line(`"${u}": "${f}",`);e.outdent(),e.line("}")}return t&&(l.push("data=data"),e.line("data = "+JSON.stringify(n.body))),e.line(),e.line("response = requests."+n.method.toLowerCase()+"(url"+(l.length>0?`, ${l.join(", ")}`:"")+")"),e.line("print(response.text)"),e.output()}},v={default:!0,language:"ruby",target:"nethttp",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line('require "net/http"'),e.line('require "uri"'),e.line(),e.line('uri = URI.parse("'+n.url+'")'),n.method.toUpperCase()==="GET"?e.line("request = Net::HTTP::Get.new(uri)"):n.method.toUpperCase()==="POST"?e.line("request = Net::HTTP::Post.new(uri)"):n.method.toUpperCase()==="PUT"?e.line("request = Net::HTTP::Put.new(uri)"):n.method.toUpperCase()==="DELETE"?e.line("request = Net::HTTP::Delete.new(uri)"):e.line('request = Net::HTTP::GenericRequest.new("'+n.method.toUpperCase()+'", uri.path, nil, nil)'),n.headers&&Object.keys(n.headers).length>0)for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?t.forEach(o=>e.line(`request["${r}"] = "${o}"`)):e.line(`request["${r}"] = "${t}"`);if(n.cookies&&Object.keys(n.cookies).length>0)for(const[r,t]of Object.entries(n.cookies))e.line(`request["Cookie"] = "${r}=${t}"`);return n.body&&e.line("request.body = "+JSON.stringify(n.body)),e.line(),e.line('response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|'),e.indent(),e.line("http.request(request)"),e.outdent(),e.line("end"),e.line(),e.line("puts response.body"),e.output()}},H={language:"ruby",target:"faraday",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line('require "faraday"'),e.line(),e.line('conn = Faraday.new(url: "'+n.url+'") do |f|'),e.indent(),e.line("f.adapter Faraday.default_adapter"),e.outdent(),e.line("end"),e.line(),e.line("response = conn."+n.method.toLowerCase()+" do |req|"),e.indent(),e.line('req.url "'+n.url+'"'),n.headers)for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?t.forEach(o=>e.line(`req.headers["${r}"] = "${o}"`)):e.line(`req.headers["${r}"] = "${t}"`);if(n.cookies)for(const[r,t]of Object.entries(n.cookies))e.line(`req.headers["Cookie"] = "${r}=${t}"`);return n.body&&e.line("req.body = "+JSON.stringify(n.body)),e.outdent(),e.line("end"),e.line(),e.line("puts response.body"),e.output()}},N={language:"rust",target:"reqwest",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("use reqwest::blocking::Client;"),e.line("use std::error::Error;"),e.line(),e.line("fn main() -> Result<(), Box<dyn Error>> {"),e.indent(),e.line("let client = Client::new();"),e.line(),e.line("let res = client.request(reqwest::Method::"+n.method.toUpperCase()+', "'+n.url+'")'),e.indent(),n.headers)for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?t.forEach(o=>e.line(`.header("${r}", "${o}")`)):e.line(`.header("${r}", "${t}")`);if(n.cookies)for(const[r,t]of Object.entries(n.cookies))Array.isArray(t)?t.forEach(o=>e.line(`.cookie("${r}", "${o}")`)):e.line(`.cookie("${r}", "${t}")`);return n.body&&e.line('.body("'+JSON.stringify(n.body).replace(/"/g,'"')+'")'),e.line(".send()?;"),e.outdent(),e.line(),i.handleErrors?(e.line("if res.status().is_success() {"),e.indent(),e.line('println!("{}", res.text()?);'),e.outdent(),e.line("} else {"),e.indent(),e.line('eprintln!("Request failed with status: {}", res.status());'),e.outdent(),e.line("}")):e.line('println!("{}", res.text()?);'),e.line("Ok(())"),e.outdent(),e.line("}"),e.output()}},J={default:!0,language:"shell",target:"curl",generate(i,n){var r,t;const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line(`curl -X ${n.method} "${n.url}"`),e.indent(),n.headers)for(const[o,s]of Object.entries(n.headers))if(Array.isArray(s))for(const l of s)e.line(`-H "${o}: ${l}"`);else e.line(`-H "${o}: ${s}"`);if(n.cookies){const o=Object.entries(n.cookies).map(([s,l])=>Array.isArray(l)?l.map(u=>`${s}=${u}`).join("; "):`${s}=${l}`).join("; ");e.line(`-b "${o}"`)}if(n.body){const o=((r=n.headers)==null?void 0:r["content-type"])||((t=n.headers)==null?void 0:t["Content-Type"])||"application/json";if(o==="application/json"){const s=JSON.stringify(n.body);e.line(`-d '${s}'`)}else if(o==="application/x-www-form-urlencoded"){const s=new URLSearchParams(n.body).toString();e.line(`-d '${s}'`)}else typeof n.body=="string"&&e.line(`-d '${n.body}'`)}return e.output()}},B={default:!0,language:"swift",target:"nsurlsession",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("import Foundation"),e.line(),e.line('let url = URL(string: "'+n.url+'")!'),e.line("var request = URLRequest(url: url)"),e.line('request.httpMethod = "'+n.method.toUpperCase()+'"'),e.line(),n.headers&&Object.keys(n.headers).length>0){for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?t.forEach(o=>e.line(`request.addValue("${o}", forHTTPHeaderField: "${r}")`)):e.line(`request.addValue("${t}", forHTTPHeaderField: "${r}")`);e.line()}if(n.cookies&&Object.keys(n.cookies).length>0){for(const[r,t]of Object.entries(n.cookies))e.line(`request.addValue("${r}=${t}", forHTTPHeaderField: "Cookie")`);e.line()}return n.body&&(e.line("let body = try! JSONSerialization.data(withJSONObject: "+JSON.stringify(n.body)+", options: [])"),e.line("request.httpBody = body"),e.line()),e.line("let task = URLSession.shared.dataTask(with: request) { data, response, error in"),e.indent(),e.line("if let error = error {"),e.indent(),e.line('print("Error: (error)")'),e.line("return"),e.outdent(),e.line("}"),e.line(),e.line("if let httpResponse = response as? HTTPURLResponse {"),e.indent(),e.line("if httpResponse.statusCode == 200, let data = data {"),e.indent(),e.line("let responseString = String(data: data, encoding: .utf8)"),e.line('print(responseString ?? "No response data")'),e.outdent(),e.line("} else {"),e.indent(),e.line('print("Request failed with status code: (httpResponse.statusCode)")'),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.line(),e.line("task.resume()"),e.output()}};a(O);a(m);a(w);a(R);a(T);a(q);a(S);a(E);a(_);a(A);a(U);a(L);a(P);a(v);a(H);a(N);a(J);a(B);exports.Builder=d;exports.ClearRegistry=b;exports.Codes=h;exports.CodesByLanguage=g;exports.Generate=j;exports.IsJsonRequest=$;exports.Register=a;exports.SetDefault=p; | ||
`}line(n=""){this.code.push({depth:n===""?0:this.currentDepth,line:n})}indent(){this.currentDepth+=1}outdent(){this.currentDepth>0&&(this.currentDepth-=1)}output(){return this.code.map(({depth:n,line:e})=>`${this.indentChar.repeat(n)}${e}`).join(this.lineJoin)}}function h(i,n){return i.toUpperCase()==="POST"&&n!==void 0&&Object.keys(n).some(e=>e.toLowerCase()==="content-type"&&n[e].toLowerCase()==="application/json")}const C={default:!0,language:"c",client:"libcurl",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("#include <stdio.h>"),e.line("#include <curl/curl.h>"),e.line(),e.line("int main(void) {"),e.indent(),e.line("CURL *curl;"),e.line("CURLcode res;"),e.line(),e.line("curl_global_init(CURL_GLOBAL_DEFAULT);"),e.line("curl = curl_easy_init();"),e.line("if(curl) {"),e.indent(),e.line(`curl_easy_setopt(curl, CURLOPT_URL, "${n.url}");`),n.method.toUpperCase()==="POST"?e.line("curl_easy_setopt(curl, CURLOPT_POST, 1L);"):n.method.toUpperCase()!=="GET"&&e.line(`curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "${n.method.toUpperCase()}");`),n.headers&&Object.keys(n.headers).length>0){e.line("struct curl_slist *headers = NULL;");for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?r.forEach(t=>e.line(`headers = curl_slist_append(headers, "${o}: ${t}");`)):e.line(`headers = curl_slist_append(headers, "${o}: ${r}");`);e.line("curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);")}if(n.cookies&&Object.keys(n.cookies).length>0){const o=Object.entries(n.cookies).map(([r,t])=>`${r}=${t}`).join("; ");e.line(`curl_easy_setopt(curl, CURLOPT_COOKIE, "${o}");`)}return n.body&&e.line(`curl_easy_setopt(curl, CURLOPT_POSTFIELDS, R"(${JSON.stringify(n.body)})");`),e.line("res = curl_easy_perform(curl);"),e.line("if(res != CURLE_OK)"),e.indent(),e.line(`fprintf(stderr, "curl_easy_perform() failed: %s | ||
", curl_easy_strerror(res));`),e.outdent(),n.headers&&Object.keys(n.headers).length>0&&e.line("curl_slist_free_all(headers);"),e.line("curl_easy_cleanup(curl);"),e.outdent(),e.line("}"),e.line("curl_global_cleanup();"),e.line("return 0;"),e.outdent(),e.line("}"),e.output()}},m={default:!0,language:"csharp",client:"http",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("using System;"),e.line("using System.Net.Http;"),e.line("using System.Threading.Tasks;"),e.line(),e.line("namespace HttpClientExample"),e.line("{"),e.indent(),e.line("class Program"),e.line("{"),e.indent(),e.line("static async Task Main(string[] args)"),e.line("{"),e.indent(),e.line("using (HttpClient client = new HttpClient())"),e.line("{"),e.indent(),e.line(`HttpRequestMessage request = new HttpRequestMessage(HttpMethod.${n.method.toUpperCase()}, "${n.url}");`),n.headers&&Object.keys(n.headers).length>0)for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?r.forEach(t=>e.line(`request.Headers.Add("${o}", "${t}");`)):e.line(`request.Headers.Add("${o}", "${r}");`);if(n.cookies&&Object.keys(n.cookies).length>0){const o=Object.entries(n.cookies).map(([r,t])=>`${r}=${t}`).join("; ");e.line(`request.Headers.Add("Cookie", "${o}");`)}return n.body&&e.line(`request.Content = new StringContent("${JSON.stringify(n.body).replace(/"/g,'"')}", System.Text.Encoding.UTF8, "application/json");`),e.line("HttpResponseMessage response = await client.SendAsync(request);"),e.line("response.EnsureSuccessStatusCode();"),e.line("string responseBody = await response.Content.ReadAsStringAsync();"),e.line("Console.WriteLine(responseBody);"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.output()}},w={language:"csharp",client:"restsharp",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("using RestSharp;"),e.line(),e.line("namespace RestSharpExample"),e.line("{"),e.indent(),e.line("class Program"),e.line("{"),e.indent(),e.line("static void Main(string[] args)"),e.line("{"),e.indent(),e.line(`var client = new RestClient("${n.url}");`),e.line(`var request = new RestRequest(Method.${n.method.toUpperCase()});`),n.headers&&Object.keys(n.headers).length>0)for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?r.forEach(t=>e.line(`request.AddHeader("${o}", "${t}");`)):e.line(`request.AddHeader("${o}", "${r}");`);if(n.cookies&&Object.keys(n.cookies).length>0){const o=Object.entries(n.cookies).map(([r,t])=>`${r}=${t}`).join("; ");e.line(`request.AddHeader("Cookie", "${o}");`)}return n.body&&e.line(`request.AddJsonBody(${JSON.stringify(n.body)});`),e.line("IRestResponse response = client.Execute(request);"),e.line("Console.WriteLine(response.Content);"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.output()}},q={default:!0,language:"go",client:"http",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`}),o=h(n.method,n.headers)&&n.body;e.line("package main"),e.line(),e.line("import ("),e.indent(),e.line('"fmt"'),e.line('"net/http"'),e.line('"io"'),o&&(e.line('"bytes"'),e.line('"encoding/json"')),i.handleErrors&&e.line('"log"'),e.outdent(),e.line(")"),e.line(),e.line("func main() {"),e.indent(),e.line(`url := "${n.url}"`),e.line();let r="nil";if(o){e.line("jsonBodyMap := map[string]any{"),e.indent();for(const[t,s]of Object.entries(n.body))e.line(`"${t}": ${JSON.stringify(s)},`);e.outdent(),e.line("}"),i.handleErrors?(e.line("jsonBodyBytes, err := json.Marshal(jsonBodyMap)"),e.line("if err != nil {"),e.indent(),e.line("log.Fatal(err)"),e.outdent(),e.line("}")):e.line("jsonBodyBytes, _ := json.Marshal(jsonBodyMap)"),r="bytes.NewBuffer(jsonBodyBytes)",e.line()}if(i.handleErrors?(e.line(`req, err := http.NewRequest("${n.method.toUpperCase()}", url, ${r})`),e.line("if err != nil {"),e.indent(),e.line("log.Fatal(err)"),e.outdent(),e.line("}"),e.line()):(e.line(`req, _ := http.NewRequest("${n.method.toUpperCase()}", url, ${r})`),e.line()),n.headers){for(const[t,s]of Object.entries(n.headers))if(Array.isArray(s))for(const l of s)e.line(`req.Header.Add("${t}", "${l}")`);else e.line(`req.Header.Set("${t}", "${s}")`);e.line()}if(n.cookies){for(const[t,s]of Object.entries(n.cookies))if(Array.isArray(s))for(const l of s)e.line(`req.AddCookie(&http.Cookie{Name: "${t}", Value: "${l}"})`);else e.line(`req.AddCookie(&http.Cookie{Name: "${t}", Value: "${s}"})`);e.line()}return i.handleErrors?(e.line("resp, err := http.DefaultClient.Do(req)"),e.line("if err != nil {"),e.indent(),e.line("log.Fatal(err)"),e.outdent(),e.line("}")):e.line("resp, _ := http.DefaultClient.Do(req)"),e.line("defer resp.Body.Close()"),e.line(),i.handleErrors?(e.line("body, err := io.ReadAll(resp.Body)"),e.line("if err != nil {"),e.indent(),e.line("log.Fatal(err)"),e.outdent(),e.line("}")):e.line("body, _ := io.ReadAll(resp.Body)"),e.line(),e.line("fmt.Println(string(body))"),e.outdent(),e.line("}"),e.output()}},R={default:!0,language:"javascript",client:"fetch",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line('fetch("'+n.url+'", {'),e.indent(),e.line(`method: "${n.method.toUpperCase()}",`),n.headers){e.line("headers: {"),e.indent();for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?e.line(`"${o}": "${r.join(", ")}",`):e.line(`"${o}": "${r}",`);e.outdent(),e.line("},")}return n.body&&e.line(`body: JSON.stringify(${JSON.stringify(n.body)}),`),e.outdent(),e.line("})"),i.handleErrors?(e.line(".then(response => {"),e.indent(),e.line("if (!response.ok) {"),e.indent(),e.line('throw new Error("Network response was not ok");'),e.outdent(),e.line("}"),e.line("return response.text();"),e.outdent(),e.line("})"),e.line(".then(data => console.log(data))"),e.line('.catch(error => console.error("There was a problem with the fetch operation:", error));')):(e.line(".then(response => response.text())"),e.line(".then(data => console.log(data));")),e.output()}},T={language:"javascript",client:"axios",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("axios({"),e.indent(),e.line(`method: "${n.method.toLowerCase()}",`),e.line(`url: "${n.url}",`),n.headers){e.line("headers: {"),e.indent();for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?e.line(`"${o}": "${r.join(", ")}",`):e.line(`"${o}": "${r}",`);e.outdent(),e.line("},")}if(n.cookies){e.line("cookies: {"),e.indent();for(const[o,r]of Object.entries(n.cookies))e.line(`"${o}": "${r}",`);e.outdent(),e.line("},")}return n.body&&e.line(`data: ${JSON.stringify(n.body)},`),e.outdent(),e.line("})"),i.handleErrors?(e.line(".then(response => {"),e.indent(),e.line("console.log(response.data);"),e.outdent(),e.line("})"),e.line(".catch(error => {"),e.indent(),e.line('console.error("There was an error:", error);'),e.outdent(),e.line("});")):e.line(".then(response => console.log(response.data));"),e.output()}},S={language:"javascript",client:"jquery",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("$.ajax({"),e.indent(),e.line(`url: "${n.url}",`),e.line(`type: "${n.method.toUpperCase()}",`),n.headers){e.line("headers: {"),e.indent();for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?e.line(`"${o}": "${r.join(", ")}",`):e.line(`"${o}": "${r}",`);e.outdent(),e.line("},")}return n.body&&(e.line(`data: JSON.stringify(${JSON.stringify(n.body)}),`),e.line('contentType: "application/json",')),e.line("success: function(data) {"),e.indent(),e.line("console.log(data);"),e.outdent(),e.line("},"),i.handleErrors&&(e.line("error: function(jqXHR, textStatus, errorThrown) {"),e.indent(),e.line('console.error("Request failed:", textStatus, errorThrown);'),e.outdent(),e.line("},")),e.outdent(),e.line("});"),e.output()}},E={language:"node",client:"http",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line('const http = require("http");'),e.line(),e.line("const options = {"),e.indent(),e.line(`method: "${n.method.toUpperCase()}",`),e.line(`hostname: "${new URL(n.url).hostname}",`),e.line(`path: "${new URL(n.url).pathname}${new URL(n.url).search}",`),n.headers){e.line("headers: {"),e.indent();for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?e.line(`"${o}": "${r.join(", ")}",`):e.line(`"${o}": "${r}",`);e.outdent(),e.line("},")}return e.outdent(),e.line("};"),e.line(),e.line("const req = http.request(options, (res) => {"),e.indent(),e.line('let data = "";'),e.line(),e.line('res.on("data", (chunk) => {'),e.indent(),e.line("data += chunk;"),e.outdent(),e.line("});"),e.line(),e.line('res.on("end", () => {'),e.indent(),e.line("console.log(data);"),e.outdent(),e.line("});"),e.outdent(),e.line("});"),i.handleErrors&&(e.line(),e.line('req.on("error", (error) => {'),e.indent(),e.line("console.error(error);"),e.outdent(),e.line("});")),e.line(),n.body&&e.line(`req.write(JSON.stringify(${JSON.stringify(n.body)}));`),e.line("req.end();"),e.output()}},_={language:"node",client:"node-fetch",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line('const fetch = require("node-fetch");'),e.line(),e.line('fetch("'+n.url+'", {'),e.indent(),e.line('method: "'+n.method.toUpperCase()+'",'),n.headers){e.line("headers: {"),e.indent();for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?e.line(`"${o}": "${r.join(", ")}",`):e.line(`"${o}": "${r}",`);e.outdent(),e.line("},")}return n.body&&e.line("body: JSON.stringify("+JSON.stringify(n.body)+"),"),e.outdent(),e.line("})"),i.handleErrors?(e.line(".then(response => {"),e.indent(),e.line("if (!response.ok) {"),e.indent(),e.line('throw new Error("response not ok");'),e.outdent(),e.line("}"),e.line("return response.text();"),e.outdent(),e.line("})"),e.line(".then(data => console.log(data))"),e.line('.catch(error => console.error("error:", error));')):(e.line(".then(response => response.text())"),e.line(".then(data => console.log(data))")),e.output()}},A={default:!0,language:"php",client:"curl",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("<?php"),e.line(),e.line("$ch = curl_init();"),e.line(),e.line(`curl_setopt($ch, CURLOPT_URL, "${n.url}");`),e.line("curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);"),e.line(`curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "${n.method.toUpperCase()}");`),n.headers){e.line(),e.line("$headers = [];");for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?r.forEach(t=>e.line(`$headers[] = "${o}: ${t}";`)):e.line(`$headers[] = "${o}: ${r}";`);e.line("curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);")}if(n.cookies){e.line(),e.line("$cookies = [];");for(const[o,r]of Object.entries(n.cookies))e.line(`$cookies[] = "${o}=${r}";`);e.line('curl_setopt($ch, CURLOPT_COOKIE, implode("; ", $cookies));')}return n.body&&(e.line(),e.line(`curl_setopt($ch, CURLOPT_POSTFIELDS, '${JSON.stringify(n.body)}');`)),e.line(),e.line("$response = curl_exec($ch);"),i.handleErrors&&(e.line("if (curl_errno($ch)) {"),e.indent(),e.line('echo "Error: " . curl_error($ch);'),e.outdent(),e.line("}")),e.line("curl_close($ch);"),e.line(),e.line("echo $response;"),e.output()}},U={language:"php",client:"guzzle",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("<?php"),e.line(),e.line("require 'vendor/autoload.php';"),e.line(),e.line("use GuzzleHttp\\Client;"),e.line(),e.line("$client = new Client();"),e.line("$response = $client->request("),e.indent(),e.line('"'+n.method.toUpperCase()+'",'),e.line('"'+n.url+'",'),n.headers||n.cookies||n.body){if(e.line("["),n.headers){e.indent(),e.line('"headers" => ['),e.indent();for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?r.forEach(t=>e.line(`"${o}" => "${t}",`)):e.line(`"${o}" => "${r}",`);e.outdent(),e.line("],"),e.outdent()}if(n.cookies){e.indent(),e.line('"cookies" => ['),e.indent();for(const[o,r]of Object.entries(n.cookies))e.line(`"${o}" => "${r}",`);e.outdent(),e.line("],"),e.outdent()}n.body&&(e.indent(),e.line('"json" => '+JSON.stringify(n.body)+","),e.outdent()),e.line("],")}return e.outdent(),e.line(");"),e.line(),e.line("echo $response->getBody();"),e.output()}},L={default:!0,language:"python",client:"http",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`}),o=n.method.toUpperCase(),r=o!=="GET"&&n.body,t=n.headers&&Object.keys(n.headers).length>0,s=n.cookies&&Object.keys(n.cookies).length>0;let l=[];e.line("import http.client"),e.line("import json"),e.line();const u=new URL(n.url);if(e.line(`conn = http.client.HTTPSConnection("${u.hostname}", ${u.port||(u.protocol==="https:"?443:80)})`),e.line(),r&&(l.push("payload"),e.line(`payload = json.dumps(${JSON.stringify(n.body)})`),e.line()),t){l.push("headers"),e.line("headers = {"),e.indent();for(const[c,y]of Object.entries(n.headers))Array.isArray(y)?e.line(`"${c}": "${y.join(", ")}",`):e.line(`"${c}": "${y}",`);e.outdent(),e.line("}"),e.line()}if(s){l.push("cookies"),e.line("cookies = {"),e.indent();for(const[c,y]of Object.entries(n.cookies))e.line(`"${c}": "${y}",`);e.outdent(),e.line("}"),e.line()}return e.line(`conn.request("${o}", "${u.pathname+u.search}"`+(l.length>0?`, ${l.join(", ")}`:"")+")"),e.line("res = conn.getresponse()"),e.line("data = res.read()"),e.line(),e.line('print(data.decode("utf-8"))'),e.output()}},P={language:"python",client:"requests",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`}),r=n.method.toUpperCase()!=="GET"&&n.body,t=n.headers&&Object.keys(n.headers).length>0,s=n.cookies&&Object.keys(n.cookies).length>0;let l=[];if(e.line("import requests"),e.line(),e.line('url = "'+n.url+'"'),t){l.push("headers=headers"),e.line("headers = {"),e.indent();for(const[u,c]of Object.entries(n.headers))Array.isArray(c)?e.line(`"${u}": "${c.join(", ")}",`):e.line(`"${u}": "${c}",`);e.outdent(),e.line("}")}if(s){l.push("cookies=cookies"),e.line("cookies = {"),e.indent();for(const[u,c]of Object.entries(n.cookies))e.line(`"${u}": "${c}",`);e.outdent(),e.line("}")}return r&&(l.push("data=data"),e.line("data = "+JSON.stringify(n.body))),e.line(),e.line("response = requests."+n.method.toLowerCase()+"(url"+(l.length>0?`, ${l.join(", ")}`:"")+")"),e.line("print(response.text)"),e.output()}},v={default:!0,language:"ruby",client:"nethttp",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line('require "net/http"'),e.line('require "uri"'),e.line(),e.line('uri = URI.parse("'+n.url+'")'),n.method.toUpperCase()==="GET"?e.line("request = Net::HTTP::Get.new(uri)"):n.method.toUpperCase()==="POST"?e.line("request = Net::HTTP::Post.new(uri)"):n.method.toUpperCase()==="PUT"?e.line("request = Net::HTTP::Put.new(uri)"):n.method.toUpperCase()==="DELETE"?e.line("request = Net::HTTP::Delete.new(uri)"):e.line('request = Net::HTTP::GenericRequest.new("'+n.method.toUpperCase()+'", uri.path, nil, nil)'),n.headers&&Object.keys(n.headers).length>0)for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?r.forEach(t=>e.line(`request["${o}"] = "${t}"`)):e.line(`request["${o}"] = "${r}"`);if(n.cookies&&Object.keys(n.cookies).length>0)for(const[o,r]of Object.entries(n.cookies))e.line(`request["Cookie"] = "${o}=${r}"`);return n.body&&e.line("request.body = "+JSON.stringify(n.body)),e.line(),e.line('response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|'),e.indent(),e.line("http.request(request)"),e.outdent(),e.line("end"),e.line(),e.line("puts response.body"),e.output()}},H={language:"ruby",client:"faraday",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line('require "faraday"'),e.line(),e.line('conn = Faraday.new(url: "'+n.url+'") do |f|'),e.indent(),e.line("f.adapter Faraday.default_adapter"),e.outdent(),e.line("end"),e.line(),e.line("response = conn."+n.method.toLowerCase()+" do |req|"),e.indent(),e.line('req.url "'+n.url+'"'),n.headers)for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?r.forEach(t=>e.line(`req.headers["${o}"] = "${t}"`)):e.line(`req.headers["${o}"] = "${r}"`);if(n.cookies)for(const[o,r]of Object.entries(n.cookies))e.line(`req.headers["Cookie"] = "${o}=${r}"`);return n.body&&e.line("req.body = "+JSON.stringify(n.body)),e.outdent(),e.line("end"),e.line(),e.line("puts response.body"),e.output()}},N={language:"rust",client:"reqwest",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("use reqwest::blocking::Client;"),e.line("use std::error::Error;"),e.line(),e.line("fn main() -> Result<(), Box<dyn Error>> {"),e.indent(),e.line("let client = Client::new();"),e.line(),e.line("let res = client.request(reqwest::Method::"+n.method.toUpperCase()+', "'+n.url+'")'),e.indent(),n.headers)for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?r.forEach(t=>e.line(`.header("${o}", "${t}")`)):e.line(`.header("${o}", "${r}")`);if(n.cookies)for(const[o,r]of Object.entries(n.cookies))Array.isArray(r)?r.forEach(t=>e.line(`.cookie("${o}", "${t}")`)):e.line(`.cookie("${o}", "${r}")`);return n.body&&e.line('.body("'+JSON.stringify(n.body).replace(/"/g,'"')+'")'),e.line(".send()?;"),e.outdent(),e.line(),i.handleErrors?(e.line("if res.status().is_success() {"),e.indent(),e.line('println!("{}", res.text()?);'),e.outdent(),e.line("} else {"),e.indent(),e.line('eprintln!("Request failed with status: {}", res.status());'),e.outdent(),e.line("}")):e.line('println!("{}", res.text()?);'),e.line("Ok(())"),e.outdent(),e.line("}"),e.output()}},J={default:!0,language:"shell",client:"curl",generate(i,n){var o,r;const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line(`curl -X ${n.method} "${n.url}"`),e.indent(),n.headers)for(const[t,s]of Object.entries(n.headers))if(Array.isArray(s))for(const l of s)e.line(`-H "${t}: ${l}"`);else e.line(`-H "${t}: ${s}"`);if(n.cookies){const t=Object.entries(n.cookies).map(([s,l])=>Array.isArray(l)?l.map(u=>`${s}=${u}`).join("; "):`${s}=${l}`).join("; ");e.line(`-b "${t}"`)}if(n.body){const t=((o=n.headers)==null?void 0:o["content-type"])||((r=n.headers)==null?void 0:r["Content-Type"])||"application/json";if(t==="application/json"){const s=JSON.stringify(n.body);e.line(`-d '${s}'`)}else if(t==="application/x-www-form-urlencoded"){const s=new URLSearchParams(n.body).toString();e.line(`-d '${s}'`)}else typeof n.body=="string"&&e.line(`-d '${n.body}'`)}return e.output()}},B={default:!0,language:"swift",client:"nsurlsession",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("import Foundation"),e.line(),e.line('let url = URL(string: "'+n.url+'")!'),e.line("var request = URLRequest(url: url)"),e.line('request.httpMethod = "'+n.method.toUpperCase()+'"'),e.line(),n.headers&&Object.keys(n.headers).length>0){for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?r.forEach(t=>e.line(`request.addValue("${t}", forHTTPHeaderField: "${o}")`)):e.line(`request.addValue("${r}", forHTTPHeaderField: "${o}")`);e.line()}if(n.cookies&&Object.keys(n.cookies).length>0){for(const[o,r]of Object.entries(n.cookies))e.line(`request.addValue("${o}=${r}", forHTTPHeaderField: "Cookie")`);e.line()}return n.body&&(e.line("let body = try! JSONSerialization.data(withJSONObject: "+JSON.stringify(n.body)+", options: [])"),e.line("request.httpBody = body"),e.line()),e.line("let task = URLSession.shared.dataTask(with: request) { data, response, error in"),e.indent(),e.line("if let error = error {"),e.indent(),e.line('print("Error: (error)")'),e.line("return"),e.outdent(),e.line("}"),e.line(),e.line("if let httpResponse = response as? HTTPURLResponse {"),e.indent(),e.line("if httpResponse.statusCode == 200, let data = data {"),e.indent(),e.line("let responseString = String(data: data, encoding: .utf8)"),e.line('print(responseString ?? "No response data")'),e.outdent(),e.line("} else {"),e.indent(),e.line('print("Request failed with status code: (httpResponse.statusCode)")'),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.line(),e.line("task.resume()"),e.output()}};a(C);a(m);a(w);a(q);a(R);a(T);a(S);a(E);a(_);a(A);a(U);a(L);a(P);a(v);a(H);a(N);a(J);a(B);exports.Builder=d;exports.ClearRegistry=p;exports.Codes=g;exports.Generate=j;exports.IsJsonRequest=h;exports.Register=a;exports.SearchTarget=$;exports.SetDefault=b; |
@@ -22,4 +22,2 @@ export declare class Builder { | ||
export declare function CodesByLanguage(language: string): Target[]; | ||
export declare interface Config { | ||
@@ -51,9 +49,11 @@ indent?: string; | ||
export declare function Register(gen: Target | Target[]): void | Error; | ||
export declare function Register(target: Target | Target[]): void | Error; | ||
export declare function SetDefault(language: string, target: string): void | Error; | ||
export declare function SearchTarget(language: string, client?: string): Target | Error; | ||
export declare function SetDefault(language: string, client: string): void | Error; | ||
export declare interface Settings { | ||
language: string; | ||
target: string; | ||
client: string; | ||
config?: Config; | ||
@@ -66,3 +66,3 @@ http: Http; | ||
language: string; | ||
target: string; | ||
client: string; | ||
generate: (config: any, http: any) => string; | ||
@@ -69,0 +69,0 @@ } |
@@ -1,15 +0,21 @@ | ||
const c = []; | ||
const f = []; | ||
function H() { | ||
return c; | ||
return f; | ||
} | ||
function g(i) { | ||
return c.filter((n) => n.language === i); | ||
function $(i, n) { | ||
if (i === "" || i === void 0) | ||
return new Error("Language is required"); | ||
const e = f.filter((r) => r.language.toLowerCase() === i.toLowerCase()); | ||
if (!n) { | ||
const r = e.find((t) => t.default); | ||
return r || e[0]; | ||
} | ||
const o = e.find((r) => r.client.toLowerCase() === n.toLowerCase()); | ||
return o || new Error(`Client '${n}' not found for language '${i}'`); | ||
} | ||
function N(i, n) { | ||
const e = c.find((r) => r.language === i && r.target === n); | ||
if (!e) | ||
return new Error(`Target '${n}' not found`); | ||
c.forEach((r) => { | ||
r.language === i && (r.default = r === e); | ||
}); | ||
const e = $(i, n); | ||
if (e instanceof Error) | ||
return e; | ||
e.default = !0; | ||
} | ||
@@ -20,30 +26,26 @@ function a(i) { | ||
if (Array.isArray(i)) { | ||
i.forEach((r) => a(r)); | ||
i.forEach((o) => a(o)); | ||
return; | ||
} | ||
i.default === void 0 && (i.default = !1); | ||
const n = c.find((r) => r.language === i.language && r.target === i.target); | ||
n && c.splice(c.indexOf(n), 1), c.filter((r) => r.language === i.language).length === 0 && (i.default = !0), i.default && c.forEach((r) => { | ||
r.language === i.language && (r.default = !1); | ||
}), c.push(i); | ||
const n = $(i.language, i.client); | ||
if (n instanceof Error) { | ||
f.push(i), f.filter((o) => o.language === i.language).length === 1 && (i.default = !0); | ||
return; | ||
} | ||
const e = f.indexOf(n); | ||
f[e] = i, f.filter((o) => o.language === i.language).length === 1 && (i.default = !0); | ||
} | ||
function J() { | ||
c.splice(0, c.length); | ||
f.splice(0, f.length); | ||
} | ||
function x(i) { | ||
var o; | ||
let n = $(i); | ||
let n = h(i); | ||
if (n) | ||
return n.message; | ||
i.config = h(i.config); | ||
const e = g(i.language.toLowerCase()); | ||
if (e.length === 0) | ||
return "Language not found"; | ||
const r = i.target ? i.target.toLowerCase() : ((o = e.find((s) => s.language.toLowerCase() === i.language.toLowerCase() && s.default)) == null ? void 0 : o.target.toLowerCase()) || ""; | ||
if (!r) | ||
return "Target not found"; | ||
const t = e.find((s) => s.language.toLowerCase() === i.language.toLowerCase() && s.target.toLowerCase() === r); | ||
return t ? t.generate(i.config, i.http) : "Code not found for language and target"; | ||
i.config = p(i.config); | ||
const e = $(i.language, i.client); | ||
return e instanceof Error ? e.message : e.generate(i.config, i.http); | ||
} | ||
function $(i) { | ||
function h(i) { | ||
if (!i) | ||
@@ -53,4 +55,2 @@ return new Error("Request is required"); | ||
return new Error("language is required"); | ||
if (g(i.language).length === 0) | ||
return new Error(`Language '${i.language}' not found`); | ||
if (!i.http) | ||
@@ -63,3 +63,3 @@ return new Error("http is required"); | ||
} | ||
function h(i) { | ||
function p(i) { | ||
return i = i || {}, i.indent || (i.indent = " "), i.join || (i.join = ` | ||
@@ -86,3 +86,3 @@ `), i.handleErrors === void 0 && (i.handleErrors = !1), i; | ||
} | ||
function p(i, n) { | ||
function b(i, n) { | ||
return i.toUpperCase() === "POST" && n !== void 0 && Object.keys(n).some( | ||
@@ -92,6 +92,6 @@ (e) => e.toLowerCase() === "content-type" && n[e].toLowerCase() === "application/json" | ||
} | ||
const b = { | ||
const g = { | ||
default: !0, | ||
language: "c", | ||
target: "libcurl", | ||
client: "libcurl", | ||
generate(i, n) { | ||
@@ -105,9 +105,9 @@ const e = new d({ | ||
e.line("struct curl_slist *headers = NULL;"); | ||
for (const [r, t] of Object.entries(n.headers)) | ||
Array.isArray(t) ? t.forEach((o) => e.line(`headers = curl_slist_append(headers, "${r}: ${o}");`)) : e.line(`headers = curl_slist_append(headers, "${r}: ${t}");`); | ||
for (const [o, r] of Object.entries(n.headers)) | ||
Array.isArray(r) ? r.forEach((t) => e.line(`headers = curl_slist_append(headers, "${o}: ${t}");`)) : e.line(`headers = curl_slist_append(headers, "${o}: ${r}");`); | ||
e.line("curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);"); | ||
} | ||
if (n.cookies && Object.keys(n.cookies).length > 0) { | ||
const r = Object.entries(n.cookies).map(([t, o]) => `${t}=${o}`).join("; "); | ||
e.line(`curl_easy_setopt(curl, CURLOPT_COOKIE, "${r}");`); | ||
const o = Object.entries(n.cookies).map(([r, t]) => `${r}=${t}`).join("; "); | ||
e.line(`curl_easy_setopt(curl, CURLOPT_COOKIE, "${o}");`); | ||
} | ||
@@ -120,3 +120,3 @@ return n.body && e.line(`curl_easy_setopt(curl, CURLOPT_POSTFIELDS, R"(${JSON.stringify(n.body)})");`), e.line("res = curl_easy_perform(curl);"), e.line("if(res != CURLE_OK)"), e.indent(), e.line(`fprintf(stderr, "curl_easy_perform() failed: %s | ||
language: "csharp", | ||
target: "http", | ||
client: "http", | ||
generate(i, n) { | ||
@@ -131,7 +131,7 @@ const e = new d({ | ||
), n.headers && Object.keys(n.headers).length > 0) | ||
for (const [r, t] of Object.entries(n.headers)) | ||
Array.isArray(t) ? t.forEach((o) => e.line(`request.Headers.Add("${r}", "${o}");`)) : e.line(`request.Headers.Add("${r}", "${t}");`); | ||
for (const [o, r] of Object.entries(n.headers)) | ||
Array.isArray(r) ? r.forEach((t) => e.line(`request.Headers.Add("${o}", "${t}");`)) : e.line(`request.Headers.Add("${o}", "${r}");`); | ||
if (n.cookies && Object.keys(n.cookies).length > 0) { | ||
const r = Object.entries(n.cookies).map(([t, o]) => `${t}=${o}`).join("; "); | ||
e.line(`request.Headers.Add("Cookie", "${r}");`); | ||
const o = Object.entries(n.cookies).map(([r, t]) => `${r}=${t}`).join("; "); | ||
e.line(`request.Headers.Add("Cookie", "${o}");`); | ||
} | ||
@@ -147,3 +147,3 @@ return n.body && e.line( | ||
language: "csharp", | ||
target: "restsharp", | ||
client: "restsharp", | ||
generate(i, n) { | ||
@@ -156,14 +156,14 @@ const e = new d({ | ||
if (e.line("using RestSharp;"), e.line(), e.line("namespace RestSharpExample"), e.line("{"), e.indent(), e.line("class Program"), e.line("{"), e.indent(), e.line("static void Main(string[] args)"), e.line("{"), e.indent(), e.line(`var client = new RestClient("${n.url}");`), e.line(`var request = new RestRequest(Method.${n.method.toUpperCase()});`), n.headers && Object.keys(n.headers).length > 0) | ||
for (const [r, t] of Object.entries(n.headers)) | ||
Array.isArray(t) ? t.forEach((o) => e.line(`request.AddHeader("${r}", "${o}");`)) : e.line(`request.AddHeader("${r}", "${t}");`); | ||
for (const [o, r] of Object.entries(n.headers)) | ||
Array.isArray(r) ? r.forEach((t) => e.line(`request.AddHeader("${o}", "${t}");`)) : e.line(`request.AddHeader("${o}", "${r}");`); | ||
if (n.cookies && Object.keys(n.cookies).length > 0) { | ||
const r = Object.entries(n.cookies).map(([t, o]) => `${t}=${o}`).join("; "); | ||
e.line(`request.AddHeader("Cookie", "${r}");`); | ||
const o = Object.entries(n.cookies).map(([r, t]) => `${r}=${t}`).join("; "); | ||
e.line(`request.AddHeader("Cookie", "${o}");`); | ||
} | ||
return n.body && e.line(`request.AddJsonBody(${JSON.stringify(n.body)});`), e.line("IRestResponse response = client.Execute(request);"), e.line("Console.WriteLine(response.Content);"), e.outdent(), e.line("}"), e.outdent(), e.line("}"), e.outdent(), e.line("}"), e.output(); | ||
} | ||
}, C = { | ||
}, O = { | ||
default: !0, | ||
language: "go", | ||
target: "http", | ||
client: "http", | ||
generate(i, n) { | ||
@@ -174,27 +174,27 @@ const e = new d({ | ||
` | ||
}), r = p(n.method, n.headers) && n.body; | ||
e.line("package main"), e.line(), e.line("import ("), e.indent(), e.line('"fmt"'), e.line('"net/http"'), e.line('"io"'), r && (e.line('"bytes"'), e.line('"encoding/json"')), i.handleErrors && e.line('"log"'), e.outdent(), e.line(")"), e.line(), e.line("func main() {"), e.indent(), e.line(`url := "${n.url}"`), e.line(); | ||
let t = "nil"; | ||
if (r) { | ||
}), o = b(n.method, n.headers) && n.body; | ||
e.line("package main"), e.line(), e.line("import ("), e.indent(), e.line('"fmt"'), e.line('"net/http"'), e.line('"io"'), o && (e.line('"bytes"'), e.line('"encoding/json"')), i.handleErrors && e.line('"log"'), e.outdent(), e.line(")"), e.line(), e.line("func main() {"), e.indent(), e.line(`url := "${n.url}"`), e.line(); | ||
let r = "nil"; | ||
if (o) { | ||
e.line("jsonBodyMap := map[string]any{"), e.indent(); | ||
for (const [o, s] of Object.entries(n.body)) | ||
e.line(`"${o}": ${JSON.stringify(s)},`); | ||
e.outdent(), e.line("}"), i.handleErrors ? (e.line("jsonBodyBytes, err := json.Marshal(jsonBodyMap)"), e.line("if err != nil {"), e.indent(), e.line("log.Fatal(err)"), e.outdent(), e.line("}")) : e.line("jsonBodyBytes, _ := json.Marshal(jsonBodyMap)"), t = "bytes.NewBuffer(jsonBodyBytes)", e.line(); | ||
for (const [t, s] of Object.entries(n.body)) | ||
e.line(`"${t}": ${JSON.stringify(s)},`); | ||
e.outdent(), e.line("}"), i.handleErrors ? (e.line("jsonBodyBytes, err := json.Marshal(jsonBodyMap)"), e.line("if err != nil {"), e.indent(), e.line("log.Fatal(err)"), e.outdent(), e.line("}")) : e.line("jsonBodyBytes, _ := json.Marshal(jsonBodyMap)"), r = "bytes.NewBuffer(jsonBodyBytes)", e.line(); | ||
} | ||
if (i.handleErrors ? (e.line(`req, err := http.NewRequest("${n.method.toUpperCase()}", url, ${t})`), e.line("if err != nil {"), e.indent(), e.line("log.Fatal(err)"), e.outdent(), e.line("}"), e.line()) : (e.line(`req, _ := http.NewRequest("${n.method.toUpperCase()}", url, ${t})`), e.line()), n.headers) { | ||
for (const [o, s] of Object.entries(n.headers)) | ||
if (i.handleErrors ? (e.line(`req, err := http.NewRequest("${n.method.toUpperCase()}", url, ${r})`), e.line("if err != nil {"), e.indent(), e.line("log.Fatal(err)"), e.outdent(), e.line("}"), e.line()) : (e.line(`req, _ := http.NewRequest("${n.method.toUpperCase()}", url, ${r})`), e.line()), n.headers) { | ||
for (const [t, s] of Object.entries(n.headers)) | ||
if (Array.isArray(s)) | ||
for (const l of s) | ||
e.line(`req.Header.Add("${o}", "${l}")`); | ||
e.line(`req.Header.Add("${t}", "${l}")`); | ||
else | ||
e.line(`req.Header.Set("${o}", "${s}")`); | ||
e.line(`req.Header.Set("${t}", "${s}")`); | ||
e.line(); | ||
} | ||
if (n.cookies) { | ||
for (const [o, s] of Object.entries(n.cookies)) | ||
for (const [t, s] of Object.entries(n.cookies)) | ||
if (Array.isArray(s)) | ||
for (const l of s) | ||
e.line(`req.AddCookie(&http.Cookie{Name: "${o}", Value: "${l}"})`); | ||
e.line(`req.AddCookie(&http.Cookie{Name: "${t}", Value: "${l}"})`); | ||
else | ||
e.line(`req.AddCookie(&http.Cookie{Name: "${o}", Value: "${s}"})`); | ||
e.line(`req.AddCookie(&http.Cookie{Name: "${t}", Value: "${s}"})`); | ||
e.line(); | ||
@@ -204,6 +204,6 @@ } | ||
} | ||
}, O = { | ||
}, C = { | ||
default: !0, | ||
language: "javascript", | ||
target: "fetch", | ||
client: "fetch", | ||
generate(i, n) { | ||
@@ -217,4 +217,4 @@ const e = new d({ | ||
e.line("headers: {"), e.indent(); | ||
for (const [r, t] of Object.entries(n.headers)) | ||
Array.isArray(t) ? e.line(`"${r}": "${t.join(", ")}",`) : e.line(`"${r}": "${t}",`); | ||
for (const [o, r] of Object.entries(n.headers)) | ||
Array.isArray(r) ? e.line(`"${o}": "${r.join(", ")}",`) : e.line(`"${o}": "${r}",`); | ||
e.outdent(), e.line("},"); | ||
@@ -224,5 +224,5 @@ } | ||
} | ||
}, w = { | ||
}, m = { | ||
language: "javascript", | ||
target: "axios", | ||
client: "axios", | ||
generate(i, n) { | ||
@@ -236,4 +236,4 @@ const e = new d({ | ||
e.line("headers: {"), e.indent(); | ||
for (const [r, t] of Object.entries(n.headers)) | ||
Array.isArray(t) ? e.line(`"${r}": "${t.join(", ")}",`) : e.line(`"${r}": "${t}",`); | ||
for (const [o, r] of Object.entries(n.headers)) | ||
Array.isArray(r) ? e.line(`"${o}": "${r.join(", ")}",`) : e.line(`"${o}": "${r}",`); | ||
e.outdent(), e.line("},"); | ||
@@ -243,4 +243,4 @@ } | ||
e.line("cookies: {"), e.indent(); | ||
for (const [r, t] of Object.entries(n.cookies)) | ||
e.line(`"${r}": "${t}",`); | ||
for (const [o, r] of Object.entries(n.cookies)) | ||
e.line(`"${o}": "${r}",`); | ||
e.outdent(), e.line("},"); | ||
@@ -250,5 +250,5 @@ } | ||
} | ||
}, m = { | ||
}, w = { | ||
language: "javascript", | ||
target: "jquery", | ||
client: "jquery", | ||
generate(i, n) { | ||
@@ -262,4 +262,4 @@ const e = new d({ | ||
e.line("headers: {"), e.indent(); | ||
for (const [r, t] of Object.entries(n.headers)) | ||
Array.isArray(t) ? e.line(`"${r}": "${t.join(", ")}",`) : e.line(`"${r}": "${t}",`); | ||
for (const [o, r] of Object.entries(n.headers)) | ||
Array.isArray(r) ? e.line(`"${o}": "${r.join(", ")}",`) : e.line(`"${o}": "${r}",`); | ||
e.outdent(), e.line("},"); | ||
@@ -269,5 +269,5 @@ } | ||
} | ||
}, R = { | ||
}, q = { | ||
language: "node", | ||
target: "http", | ||
client: "http", | ||
generate(i, n) { | ||
@@ -281,4 +281,4 @@ const e = new d({ | ||
e.line("headers: {"), e.indent(); | ||
for (const [r, t] of Object.entries(n.headers)) | ||
Array.isArray(t) ? e.line(`"${r}": "${t.join(", ")}",`) : e.line(`"${r}": "${t}",`); | ||
for (const [o, r] of Object.entries(n.headers)) | ||
Array.isArray(r) ? e.line(`"${o}": "${r.join(", ")}",`) : e.line(`"${o}": "${r}",`); | ||
e.outdent(), e.line("},"); | ||
@@ -288,5 +288,5 @@ } | ||
} | ||
}, T = { | ||
}, R = { | ||
language: "node", | ||
target: "node-fetch", | ||
client: "node-fetch", | ||
generate(i, n) { | ||
@@ -300,4 +300,4 @@ const e = new d({ | ||
e.line("headers: {"), e.indent(); | ||
for (const [r, t] of Object.entries(n.headers)) | ||
Array.isArray(t) ? e.line(`"${r}": "${t.join(", ")}",`) : e.line(`"${r}": "${t}",`); | ||
for (const [o, r] of Object.entries(n.headers)) | ||
Array.isArray(r) ? e.line(`"${o}": "${r.join(", ")}",`) : e.line(`"${o}": "${r}",`); | ||
e.outdent(), e.line("},"); | ||
@@ -307,6 +307,6 @@ } | ||
} | ||
}, q = { | ||
}, T = { | ||
default: !0, | ||
language: "php", | ||
target: "curl", | ||
client: "curl", | ||
generate(i, n) { | ||
@@ -320,4 +320,4 @@ const e = new d({ | ||
e.line(), e.line("$headers = [];"); | ||
for (const [r, t] of Object.entries(n.headers)) | ||
Array.isArray(t) ? t.forEach((o) => e.line(`$headers[] = "${r}: ${o}";`)) : e.line(`$headers[] = "${r}: ${t}";`); | ||
for (const [o, r] of Object.entries(n.headers)) | ||
Array.isArray(r) ? r.forEach((t) => e.line(`$headers[] = "${o}: ${t}";`)) : e.line(`$headers[] = "${o}: ${r}";`); | ||
e.line("curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);"); | ||
@@ -327,4 +327,4 @@ } | ||
e.line(), e.line("$cookies = [];"); | ||
for (const [r, t] of Object.entries(n.cookies)) | ||
e.line(`$cookies[] = "${r}=${t}";`); | ||
for (const [o, r] of Object.entries(n.cookies)) | ||
e.line(`$cookies[] = "${o}=${r}";`); | ||
e.line('curl_setopt($ch, CURLOPT_COOKIE, implode("; ", $cookies));'); | ||
@@ -336,3 +336,3 @@ } | ||
language: "php", | ||
target: "guzzle", | ||
client: "guzzle", | ||
generate(i, n) { | ||
@@ -347,4 +347,4 @@ const e = new d({ | ||
e.indent(), e.line('"headers" => ['), e.indent(); | ||
for (const [r, t] of Object.entries(n.headers)) | ||
Array.isArray(t) ? t.forEach((o) => e.line(`"${r}" => "${o}",`)) : e.line(`"${r}" => "${t}",`); | ||
for (const [o, r] of Object.entries(n.headers)) | ||
Array.isArray(r) ? r.forEach((t) => e.line(`"${o}" => "${t}",`)) : e.line(`"${o}" => "${r}",`); | ||
e.outdent(), e.line("],"), e.outdent(); | ||
@@ -354,4 +354,4 @@ } | ||
e.indent(), e.line('"cookies" => ['), e.indent(); | ||
for (const [r, t] of Object.entries(n.cookies)) | ||
e.line(`"${r}" => "${t}",`); | ||
for (const [o, r] of Object.entries(n.cookies)) | ||
e.line(`"${o}" => "${r}",`); | ||
e.outdent(), e.line("],"), e.outdent(); | ||
@@ -366,3 +366,3 @@ } | ||
language: "python", | ||
target: "http", | ||
client: "http", | ||
generate(i, n) { | ||
@@ -373,3 +373,3 @@ const e = new d({ | ||
` | ||
}), r = n.method.toUpperCase(), t = r !== "GET" && n.body, o = n.headers && Object.keys(n.headers).length > 0, s = n.cookies && Object.keys(n.cookies).length > 0; | ||
}), o = n.method.toUpperCase(), r = o !== "GET" && n.body, t = n.headers && Object.keys(n.headers).length > 0, s = n.cookies && Object.keys(n.cookies).length > 0; | ||
let l = []; | ||
@@ -380,6 +380,6 @@ e.line("import http.client"), e.line("import json"), e.line(); | ||
`conn = http.client.HTTPSConnection("${u.hostname}", ${u.port || (u.protocol === "https:" ? 443 : 80)})` | ||
), e.line(), t && (l.push("payload"), e.line(`payload = json.dumps(${JSON.stringify(n.body)})`), e.line()), o) { | ||
), e.line(), r && (l.push("payload"), e.line(`payload = json.dumps(${JSON.stringify(n.body)})`), e.line()), t) { | ||
l.push("headers"), e.line("headers = {"), e.indent(); | ||
for (const [f, y] of Object.entries(n.headers)) | ||
Array.isArray(y) ? e.line(`"${f}": "${y.join(", ")}",`) : e.line(`"${f}": "${y}",`); | ||
for (const [c, y] of Object.entries(n.headers)) | ||
Array.isArray(y) ? e.line(`"${c}": "${y.join(", ")}",`) : e.line(`"${c}": "${y}",`); | ||
e.outdent(), e.line("}"), e.line(); | ||
@@ -389,8 +389,8 @@ } | ||
l.push("cookies"), e.line("cookies = {"), e.indent(); | ||
for (const [f, y] of Object.entries(n.cookies)) | ||
e.line(`"${f}": "${y}",`); | ||
for (const [c, y] of Object.entries(n.cookies)) | ||
e.line(`"${c}": "${y}",`); | ||
e.outdent(), e.line("}"), e.line(); | ||
} | ||
return e.line( | ||
`conn.request("${r}", "${u.pathname + u.search}"` + (l.length > 0 ? `, ${l.join(", ")}` : "") + ")" | ||
`conn.request("${o}", "${u.pathname + u.search}"` + (l.length > 0 ? `, ${l.join(", ")}` : "") + ")" | ||
), e.line("res = conn.getresponse()"), e.line("data = res.read()"), e.line(), e.line('print(data.decode("utf-8"))'), e.output(); | ||
@@ -400,3 +400,3 @@ } | ||
language: "python", | ||
target: "requests", | ||
client: "requests", | ||
generate(i, n) { | ||
@@ -407,8 +407,8 @@ const e = new d({ | ||
` | ||
}), t = n.method.toUpperCase() !== "GET" && n.body, o = n.headers && Object.keys(n.headers).length > 0, s = n.cookies && Object.keys(n.cookies).length > 0; | ||
}), r = n.method.toUpperCase() !== "GET" && n.body, t = n.headers && Object.keys(n.headers).length > 0, s = n.cookies && Object.keys(n.cookies).length > 0; | ||
let l = []; | ||
if (e.line("import requests"), e.line(), e.line('url = "' + n.url + '"'), o) { | ||
if (e.line("import requests"), e.line(), e.line('url = "' + n.url + '"'), t) { | ||
l.push("headers=headers"), e.line("headers = {"), e.indent(); | ||
for (const [u, f] of Object.entries(n.headers)) | ||
Array.isArray(f) ? e.line(`"${u}": "${f.join(", ")}",`) : e.line(`"${u}": "${f}",`); | ||
for (const [u, c] of Object.entries(n.headers)) | ||
Array.isArray(c) ? e.line(`"${u}": "${c.join(", ")}",`) : e.line(`"${u}": "${c}",`); | ||
e.outdent(), e.line("}"); | ||
@@ -418,7 +418,7 @@ } | ||
l.push("cookies=cookies"), e.line("cookies = {"), e.indent(); | ||
for (const [u, f] of Object.entries(n.cookies)) | ||
e.line(`"${u}": "${f}",`); | ||
for (const [u, c] of Object.entries(n.cookies)) | ||
e.line(`"${u}": "${c}",`); | ||
e.outdent(), e.line("}"); | ||
} | ||
return t && (l.push("data=data"), e.line("data = " + JSON.stringify(n.body))), e.line(), e.line( | ||
return r && (l.push("data=data"), e.line("data = " + JSON.stringify(n.body))), e.line(), e.line( | ||
"response = requests." + n.method.toLowerCase() + "(url" + (l.length > 0 ? `, ${l.join(", ")}` : "") + ")" | ||
@@ -430,3 +430,3 @@ ), e.line("print(response.text)"), e.output(); | ||
language: "ruby", | ||
target: "nethttp", | ||
client: "nethttp", | ||
generate(i, n) { | ||
@@ -439,7 +439,7 @@ const e = new d({ | ||
if (e.line('require "net/http"'), e.line('require "uri"'), e.line(), e.line('uri = URI.parse("' + n.url + '")'), n.method.toUpperCase() === "GET" ? e.line("request = Net::HTTP::Get.new(uri)") : n.method.toUpperCase() === "POST" ? e.line("request = Net::HTTP::Post.new(uri)") : n.method.toUpperCase() === "PUT" ? e.line("request = Net::HTTP::Put.new(uri)") : n.method.toUpperCase() === "DELETE" ? e.line("request = Net::HTTP::Delete.new(uri)") : e.line('request = Net::HTTP::GenericRequest.new("' + n.method.toUpperCase() + '", uri.path, nil, nil)'), n.headers && Object.keys(n.headers).length > 0) | ||
for (const [r, t] of Object.entries(n.headers)) | ||
Array.isArray(t) ? t.forEach((o) => e.line(`request["${r}"] = "${o}"`)) : e.line(`request["${r}"] = "${t}"`); | ||
for (const [o, r] of Object.entries(n.headers)) | ||
Array.isArray(r) ? r.forEach((t) => e.line(`request["${o}"] = "${t}"`)) : e.line(`request["${o}"] = "${r}"`); | ||
if (n.cookies && Object.keys(n.cookies).length > 0) | ||
for (const [r, t] of Object.entries(n.cookies)) | ||
e.line(`request["Cookie"] = "${r}=${t}"`); | ||
for (const [o, r] of Object.entries(n.cookies)) | ||
e.line(`request["Cookie"] = "${o}=${r}"`); | ||
return n.body && e.line("request.body = " + JSON.stringify(n.body)), e.line(), e.line('response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|'), e.indent(), e.line("http.request(request)"), e.outdent(), e.line("end"), e.line(), e.line("puts response.body"), e.output(); | ||
@@ -449,3 +449,3 @@ } | ||
language: "ruby", | ||
target: "faraday", | ||
client: "faraday", | ||
generate(i, n) { | ||
@@ -458,7 +458,7 @@ const e = new d({ | ||
if (e.line('require "faraday"'), e.line(), e.line('conn = Faraday.new(url: "' + n.url + '") do |f|'), e.indent(), e.line("f.adapter Faraday.default_adapter"), e.outdent(), e.line("end"), e.line(), e.line("response = conn." + n.method.toLowerCase() + " do |req|"), e.indent(), e.line('req.url "' + n.url + '"'), n.headers) | ||
for (const [r, t] of Object.entries(n.headers)) | ||
Array.isArray(t) ? t.forEach((o) => e.line(`req.headers["${r}"] = "${o}"`)) : e.line(`req.headers["${r}"] = "${t}"`); | ||
for (const [o, r] of Object.entries(n.headers)) | ||
Array.isArray(r) ? r.forEach((t) => e.line(`req.headers["${o}"] = "${t}"`)) : e.line(`req.headers["${o}"] = "${r}"`); | ||
if (n.cookies) | ||
for (const [r, t] of Object.entries(n.cookies)) | ||
e.line(`req.headers["Cookie"] = "${r}=${t}"`); | ||
for (const [o, r] of Object.entries(n.cookies)) | ||
e.line(`req.headers["Cookie"] = "${o}=${r}"`); | ||
return n.body && e.line("req.body = " + JSON.stringify(n.body)), e.outdent(), e.line("end"), e.line(), e.line("puts response.body"), e.output(); | ||
@@ -468,3 +468,3 @@ } | ||
language: "rust", | ||
target: "reqwest", | ||
client: "reqwest", | ||
generate(i, n) { | ||
@@ -477,7 +477,7 @@ const e = new d({ | ||
if (e.line("use reqwest::blocking::Client;"), e.line("use std::error::Error;"), e.line(), e.line("fn main() -> Result<(), Box<dyn Error>> {"), e.indent(), e.line("let client = Client::new();"), e.line(), e.line("let res = client.request(reqwest::Method::" + n.method.toUpperCase() + ', "' + n.url + '")'), e.indent(), n.headers) | ||
for (const [r, t] of Object.entries(n.headers)) | ||
Array.isArray(t) ? t.forEach((o) => e.line(`.header("${r}", "${o}")`)) : e.line(`.header("${r}", "${t}")`); | ||
for (const [o, r] of Object.entries(n.headers)) | ||
Array.isArray(r) ? r.forEach((t) => e.line(`.header("${o}", "${t}")`)) : e.line(`.header("${o}", "${r}")`); | ||
if (n.cookies) | ||
for (const [r, t] of Object.entries(n.cookies)) | ||
Array.isArray(t) ? t.forEach((o) => e.line(`.cookie("${r}", "${o}")`)) : e.line(`.cookie("${r}", "${t}")`); | ||
for (const [o, r] of Object.entries(n.cookies)) | ||
Array.isArray(r) ? r.forEach((t) => e.line(`.cookie("${o}", "${t}")`)) : e.line(`.cookie("${o}", "${r}")`); | ||
return n.body && e.line('.body("' + JSON.stringify(n.body).replace(/"/g, '"') + '")'), e.line(".send()?;"), e.outdent(), e.line(), i.handleErrors ? (e.line("if res.status().is_success() {"), e.indent(), e.line('println!("{}", res.text()?);'), e.outdent(), e.line("} else {"), e.indent(), e.line('eprintln!("Request failed with status: {}", res.status());'), e.outdent(), e.line("}")) : e.line('println!("{}", res.text()?);'), e.line("Ok(())"), e.outdent(), e.line("}"), e.output(); | ||
@@ -488,5 +488,5 @@ } | ||
language: "shell", | ||
target: "curl", | ||
client: "curl", | ||
generate(i, n) { | ||
var r, t; | ||
var o, r; | ||
const e = new d({ | ||
@@ -498,20 +498,20 @@ indent: i.indent || " ", | ||
if (e.line(`curl -X ${n.method} "${n.url}"`), e.indent(), n.headers) | ||
for (const [o, s] of Object.entries(n.headers)) | ||
for (const [t, s] of Object.entries(n.headers)) | ||
if (Array.isArray(s)) | ||
for (const l of s) | ||
e.line(`-H "${o}: ${l}"`); | ||
e.line(`-H "${t}: ${l}"`); | ||
else | ||
e.line(`-H "${o}: ${s}"`); | ||
e.line(`-H "${t}: ${s}"`); | ||
if (n.cookies) { | ||
const o = Object.entries(n.cookies).map( | ||
const t = Object.entries(n.cookies).map( | ||
([s, l]) => Array.isArray(l) ? l.map((u) => `${s}=${u}`).join("; ") : `${s}=${l}` | ||
).join("; "); | ||
e.line(`-b "${o}"`); | ||
e.line(`-b "${t}"`); | ||
} | ||
if (n.body) { | ||
const o = ((r = n.headers) == null ? void 0 : r["content-type"]) || ((t = n.headers) == null ? void 0 : t["Content-Type"]) || "application/json"; | ||
if (o === "application/json") { | ||
const t = ((o = n.headers) == null ? void 0 : o["content-type"]) || ((r = n.headers) == null ? void 0 : r["Content-Type"]) || "application/json"; | ||
if (t === "application/json") { | ||
const s = JSON.stringify(n.body); | ||
e.line(`-d '${s}'`); | ||
} else if (o === "application/x-www-form-urlencoded") { | ||
} else if (t === "application/x-www-form-urlencoded") { | ||
const s = new URLSearchParams(n.body).toString(); | ||
@@ -526,3 +526,3 @@ e.line(`-d '${s}'`); | ||
language: "swift", | ||
target: "nsurlsession", | ||
client: "nsurlsession", | ||
generate(i, n) { | ||
@@ -535,9 +535,9 @@ const e = new d({ | ||
if (e.line("import Foundation"), e.line(), e.line('let url = URL(string: "' + n.url + '")!'), e.line("var request = URLRequest(url: url)"), e.line('request.httpMethod = "' + n.method.toUpperCase() + '"'), e.line(), n.headers && Object.keys(n.headers).length > 0) { | ||
for (const [r, t] of Object.entries(n.headers)) | ||
Array.isArray(t) ? t.forEach((o) => e.line(`request.addValue("${o}", forHTTPHeaderField: "${r}")`)) : e.line(`request.addValue("${t}", forHTTPHeaderField: "${r}")`); | ||
for (const [o, r] of Object.entries(n.headers)) | ||
Array.isArray(r) ? r.forEach((t) => e.line(`request.addValue("${t}", forHTTPHeaderField: "${o}")`)) : e.line(`request.addValue("${r}", forHTTPHeaderField: "${o}")`); | ||
e.line(); | ||
} | ||
if (n.cookies && Object.keys(n.cookies).length > 0) { | ||
for (const [r, t] of Object.entries(n.cookies)) | ||
e.line(`request.addValue("${r}=${t}", forHTTPHeaderField: "Cookie")`); | ||
for (const [o, r] of Object.entries(n.cookies)) | ||
e.line(`request.addValue("${o}=${r}", forHTTPHeaderField: "Cookie")`); | ||
e.line(); | ||
@@ -550,12 +550,12 @@ } | ||
}; | ||
a(b); | ||
a(g); | ||
a(j); | ||
a(k); | ||
a(O); | ||
a(C); | ||
a(O); | ||
a(m); | ||
a(w); | ||
a(m); | ||
a(q); | ||
a(R); | ||
a(T); | ||
a(q); | ||
a(E); | ||
@@ -573,7 +573,7 @@ a(S); | ||
H as Codes, | ||
g as CodesByLanguage, | ||
x as Generate, | ||
p as IsJsonRequest, | ||
b as IsJsonRequest, | ||
a as Register, | ||
$ as SearchTarget, | ||
N as SetDefault | ||
}; |
@@ -1,22 +0,22 @@ | ||
(function(c,u){typeof exports=="object"&&typeof module<"u"?u(exports):typeof define=="function"&&define.amd?define(["exports"],u):(c=typeof globalThis<"u"?globalThis:c||self,u(c.gimmeHTTP={}))})(this,function(c){"use strict";const u=[];function b(){return u}function $(i){return u.filter(n=>n.language===i)}function p(i,n){const e=u.find(r=>r.language===i&&r.target===n);if(!e)return new Error(`Target '${n}' not found`);u.forEach(r=>{r.language===i&&(r.default=r===e)})}function a(i){if(!i)return new Error("Target is required");if(Array.isArray(i)){i.forEach(r=>a(r));return}i.default===void 0&&(i.default=!1);const n=u.find(r=>r.language===i.language&&r.target===i.target);n&&u.splice(u.indexOf(n),1),u.filter(r=>r.language===i.language).length===0&&(i.default=!0),i.default&&u.forEach(r=>{r.language===i.language&&(r.default=!1)}),u.push(i)}function j(){u.splice(0,u.length)}function k(i){var o;let n=C(i);if(n)return n.message;i.config=O(i.config);const e=$(i.language.toLowerCase());if(e.length===0)return"Language not found";const r=i.target?i.target.toLowerCase():((o=e.find(s=>s.language.toLowerCase()===i.language.toLowerCase()&&s.default))==null?void 0:o.target.toLowerCase())||"";if(!r)return"Target not found";const t=e.find(s=>s.language.toLowerCase()===i.language.toLowerCase()&&s.target.toLowerCase()===r);return t?t.generate(i.config,i.http):"Code not found for language and target"}function C(i){if(!i)return new Error("Request is required");if(!i.language)return new Error("language is required");if($(i.language).length===0)return new Error(`Language '${i.language}' not found`);if(!i.http)return new Error("http is required");if(!i.http.method)return new Error("http.method is required");if(!i.http.url)return new Error("http.url is required")}function O(i){return i=i||{},i.indent||(i.indent=" "),i.join||(i.join=` | ||
(function(u,c){typeof exports=="object"&&typeof module<"u"?c(exports):typeof define=="function"&&define.amd?define(["exports"],c):(u=typeof globalThis<"u"?globalThis:u||self,c(u.gimmeHTTP={}))})(this,function(u){"use strict";const c=[];function b(){return c}function h(i,n){if(i===""||i===void 0)return new Error("Language is required");const e=c.filter(r=>r.language.toLowerCase()===i.toLowerCase());if(!n){const r=e.find(t=>t.default);return r||e[0]}const o=e.find(r=>r.client.toLowerCase()===n.toLowerCase());return o||new Error(`Client '${n}' not found for language '${i}'`)}function p(i,n){const e=h(i,n);if(e instanceof Error)return e;e.default=!0}function a(i){if(!i)return new Error("Target is required");if(Array.isArray(i)){i.forEach(o=>a(o));return}i.default===void 0&&(i.default=!1);const n=h(i.language,i.client);if(n instanceof Error){c.push(i),c.filter(o=>o.language===i.language).length===1&&(i.default=!0);return}const e=c.indexOf(n);c[e]=i,c.filter(o=>o.language===i.language).length===1&&(i.default=!0)}function j(){c.splice(0,c.length)}function k(i){let n=O(i);if(n)return n.message;i.config=C(i.config);const e=h(i.language,i.client);return e instanceof Error?e.message:e.generate(i.config,i.http)}function O(i){if(!i)return new Error("Request is required");if(!i.language)return new Error("language is required");if(!i.http)return new Error("http is required");if(!i.http.method)return new Error("http.method is required");if(!i.http.url)return new Error("http.url is required")}function C(i){return i=i||{},i.indent||(i.indent=" "),i.join||(i.join=` | ||
`),i.handleErrors===void 0&&(i.handleErrors=!1),i}class d{constructor(n={}){this.code=[],this.currentDepth=0,this.indentChar=n.indent||" ",this.lineJoin=n.join||` | ||
`}line(n=""){this.code.push({depth:n===""?0:this.currentDepth,line:n})}indent(){this.currentDepth+=1}outdent(){this.currentDepth>0&&(this.currentDepth-=1)}output(){return this.code.map(({depth:n,line:e})=>`${this.indentChar.repeat(n)}${e}`).join(this.lineJoin)}}function h(i,n){return i.toUpperCase()==="POST"&&n!==void 0&&Object.keys(n).some(e=>e.toLowerCase()==="content-type"&&n[e].toLowerCase()==="application/json")}const m={default:!0,language:"c",target:"libcurl",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("#include <stdio.h>"),e.line("#include <curl/curl.h>"),e.line(),e.line("int main(void) {"),e.indent(),e.line("CURL *curl;"),e.line("CURLcode res;"),e.line(),e.line("curl_global_init(CURL_GLOBAL_DEFAULT);"),e.line("curl = curl_easy_init();"),e.line("if(curl) {"),e.indent(),e.line(`curl_easy_setopt(curl, CURLOPT_URL, "${n.url}");`),n.method.toUpperCase()==="POST"?e.line("curl_easy_setopt(curl, CURLOPT_POST, 1L);"):n.method.toUpperCase()!=="GET"&&e.line(`curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "${n.method.toUpperCase()}");`),n.headers&&Object.keys(n.headers).length>0){e.line("struct curl_slist *headers = NULL;");for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?t.forEach(o=>e.line(`headers = curl_slist_append(headers, "${r}: ${o}");`)):e.line(`headers = curl_slist_append(headers, "${r}: ${t}");`);e.line("curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);")}if(n.cookies&&Object.keys(n.cookies).length>0){const r=Object.entries(n.cookies).map(([t,o])=>`${t}=${o}`).join("; ");e.line(`curl_easy_setopt(curl, CURLOPT_COOKIE, "${r}");`)}return n.body&&e.line(`curl_easy_setopt(curl, CURLOPT_POSTFIELDS, R"(${JSON.stringify(n.body)})");`),e.line("res = curl_easy_perform(curl);"),e.line("if(res != CURLE_OK)"),e.indent(),e.line(`fprintf(stderr, "curl_easy_perform() failed: %s | ||
", curl_easy_strerror(res));`),e.outdent(),n.headers&&Object.keys(n.headers).length>0&&e.line("curl_slist_free_all(headers);"),e.line("curl_easy_cleanup(curl);"),e.outdent(),e.line("}"),e.line("curl_global_cleanup();"),e.line("return 0;"),e.outdent(),e.line("}"),e.output()}},w={default:!0,language:"csharp",target:"http",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("using System;"),e.line("using System.Net.Http;"),e.line("using System.Threading.Tasks;"),e.line(),e.line("namespace HttpClientExample"),e.line("{"),e.indent(),e.line("class Program"),e.line("{"),e.indent(),e.line("static async Task Main(string[] args)"),e.line("{"),e.indent(),e.line("using (HttpClient client = new HttpClient())"),e.line("{"),e.indent(),e.line(`HttpRequestMessage request = new HttpRequestMessage(HttpMethod.${n.method.toUpperCase()}, "${n.url}");`),n.headers&&Object.keys(n.headers).length>0)for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?t.forEach(o=>e.line(`request.Headers.Add("${r}", "${o}");`)):e.line(`request.Headers.Add("${r}", "${t}");`);if(n.cookies&&Object.keys(n.cookies).length>0){const r=Object.entries(n.cookies).map(([t,o])=>`${t}=${o}`).join("; ");e.line(`request.Headers.Add("Cookie", "${r}");`)}return n.body&&e.line(`request.Content = new StringContent("${JSON.stringify(n.body).replace(/"/g,'"')}", System.Text.Encoding.UTF8, "application/json");`),e.line("HttpResponseMessage response = await client.SendAsync(request);"),e.line("response.EnsureSuccessStatusCode();"),e.line("string responseBody = await response.Content.ReadAsStringAsync();"),e.line("Console.WriteLine(responseBody);"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.output()}},T={language:"csharp",target:"restsharp",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("using RestSharp;"),e.line(),e.line("namespace RestSharpExample"),e.line("{"),e.indent(),e.line("class Program"),e.line("{"),e.indent(),e.line("static void Main(string[] args)"),e.line("{"),e.indent(),e.line(`var client = new RestClient("${n.url}");`),e.line(`var request = new RestRequest(Method.${n.method.toUpperCase()});`),n.headers&&Object.keys(n.headers).length>0)for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?t.forEach(o=>e.line(`request.AddHeader("${r}", "${o}");`)):e.line(`request.AddHeader("${r}", "${t}");`);if(n.cookies&&Object.keys(n.cookies).length>0){const r=Object.entries(n.cookies).map(([t,o])=>`${t}=${o}`).join("; ");e.line(`request.AddHeader("Cookie", "${r}");`)}return n.body&&e.line(`request.AddJsonBody(${JSON.stringify(n.body)});`),e.line("IRestResponse response = client.Execute(request);"),e.line("Console.WriteLine(response.Content);"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.output()}},R={default:!0,language:"go",target:"http",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`}),r=h(n.method,n.headers)&&n.body;e.line("package main"),e.line(),e.line("import ("),e.indent(),e.line('"fmt"'),e.line('"net/http"'),e.line('"io"'),r&&(e.line('"bytes"'),e.line('"encoding/json"')),i.handleErrors&&e.line('"log"'),e.outdent(),e.line(")"),e.line(),e.line("func main() {"),e.indent(),e.line(`url := "${n.url}"`),e.line();let t="nil";if(r){e.line("jsonBodyMap := map[string]any{"),e.indent();for(const[o,s]of Object.entries(n.body))e.line(`"${o}": ${JSON.stringify(s)},`);e.outdent(),e.line("}"),i.handleErrors?(e.line("jsonBodyBytes, err := json.Marshal(jsonBodyMap)"),e.line("if err != nil {"),e.indent(),e.line("log.Fatal(err)"),e.outdent(),e.line("}")):e.line("jsonBodyBytes, _ := json.Marshal(jsonBodyMap)"),t="bytes.NewBuffer(jsonBodyBytes)",e.line()}if(i.handleErrors?(e.line(`req, err := http.NewRequest("${n.method.toUpperCase()}", url, ${t})`),e.line("if err != nil {"),e.indent(),e.line("log.Fatal(err)"),e.outdent(),e.line("}"),e.line()):(e.line(`req, _ := http.NewRequest("${n.method.toUpperCase()}", url, ${t})`),e.line()),n.headers){for(const[o,s]of Object.entries(n.headers))if(Array.isArray(s))for(const l of s)e.line(`req.Header.Add("${o}", "${l}")`);else e.line(`req.Header.Set("${o}", "${s}")`);e.line()}if(n.cookies){for(const[o,s]of Object.entries(n.cookies))if(Array.isArray(s))for(const l of s)e.line(`req.AddCookie(&http.Cookie{Name: "${o}", Value: "${l}"})`);else e.line(`req.AddCookie(&http.Cookie{Name: "${o}", Value: "${s}"})`);e.line()}return i.handleErrors?(e.line("resp, err := http.DefaultClient.Do(req)"),e.line("if err != nil {"),e.indent(),e.line("log.Fatal(err)"),e.outdent(),e.line("}")):e.line("resp, _ := http.DefaultClient.Do(req)"),e.line("defer resp.Body.Close()"),e.line(),i.handleErrors?(e.line("body, err := io.ReadAll(resp.Body)"),e.line("if err != nil {"),e.indent(),e.line("log.Fatal(err)"),e.outdent(),e.line("}")):e.line("body, _ := io.ReadAll(resp.Body)"),e.line(),e.line("fmt.Println(string(body))"),e.outdent(),e.line("}"),e.output()}},q={default:!0,language:"javascript",target:"fetch",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line('fetch("'+n.url+'", {'),e.indent(),e.line(`method: "${n.method.toUpperCase()}",`),n.headers){e.line("headers: {"),e.indent();for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?e.line(`"${r}": "${t.join(", ")}",`):e.line(`"${r}": "${t}",`);e.outdent(),e.line("},")}return n.body&&e.line(`body: JSON.stringify(${JSON.stringify(n.body)}),`),e.outdent(),e.line("})"),i.handleErrors?(e.line(".then(response => {"),e.indent(),e.line("if (!response.ok) {"),e.indent(),e.line('throw new Error("Network response was not ok");'),e.outdent(),e.line("}"),e.line("return response.text();"),e.outdent(),e.line("})"),e.line(".then(data => console.log(data))"),e.line('.catch(error => console.error("There was a problem with the fetch operation:", error));')):(e.line(".then(response => response.text())"),e.line(".then(data => console.log(data));")),e.output()}},S={language:"javascript",target:"axios",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("axios({"),e.indent(),e.line(`method: "${n.method.toLowerCase()}",`),e.line(`url: "${n.url}",`),n.headers){e.line("headers: {"),e.indent();for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?e.line(`"${r}": "${t.join(", ")}",`):e.line(`"${r}": "${t}",`);e.outdent(),e.line("},")}if(n.cookies){e.line("cookies: {"),e.indent();for(const[r,t]of Object.entries(n.cookies))e.line(`"${r}": "${t}",`);e.outdent(),e.line("},")}return n.body&&e.line(`data: ${JSON.stringify(n.body)},`),e.outdent(),e.line("})"),i.handleErrors?(e.line(".then(response => {"),e.indent(),e.line("console.log(response.data);"),e.outdent(),e.line("})"),e.line(".catch(error => {"),e.indent(),e.line('console.error("There was an error:", error);'),e.outdent(),e.line("});")):e.line(".then(response => console.log(response.data));"),e.output()}},E={language:"javascript",target:"jquery",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("$.ajax({"),e.indent(),e.line(`url: "${n.url}",`),e.line(`type: "${n.method.toUpperCase()}",`),n.headers){e.line("headers: {"),e.indent();for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?e.line(`"${r}": "${t.join(", ")}",`):e.line(`"${r}": "${t}",`);e.outdent(),e.line("},")}return n.body&&(e.line(`data: JSON.stringify(${JSON.stringify(n.body)}),`),e.line('contentType: "application/json",')),e.line("success: function(data) {"),e.indent(),e.line("console.log(data);"),e.outdent(),e.line("},"),i.handleErrors&&(e.line("error: function(jqXHR, textStatus, errorThrown) {"),e.indent(),e.line('console.error("Request failed:", textStatus, errorThrown);'),e.outdent(),e.line("},")),e.outdent(),e.line("});"),e.output()}},_={language:"node",target:"http",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line('const http = require("http");'),e.line(),e.line("const options = {"),e.indent(),e.line(`method: "${n.method.toUpperCase()}",`),e.line(`hostname: "${new URL(n.url).hostname}",`),e.line(`path: "${new URL(n.url).pathname}${new URL(n.url).search}",`),n.headers){e.line("headers: {"),e.indent();for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?e.line(`"${r}": "${t.join(", ")}",`):e.line(`"${r}": "${t}",`);e.outdent(),e.line("},")}return e.outdent(),e.line("};"),e.line(),e.line("const req = http.request(options, (res) => {"),e.indent(),e.line('let data = "";'),e.line(),e.line('res.on("data", (chunk) => {'),e.indent(),e.line("data += chunk;"),e.outdent(),e.line("});"),e.line(),e.line('res.on("end", () => {'),e.indent(),e.line("console.log(data);"),e.outdent(),e.line("});"),e.outdent(),e.line("});"),i.handleErrors&&(e.line(),e.line('req.on("error", (error) => {'),e.indent(),e.line("console.error(error);"),e.outdent(),e.line("});")),e.line(),n.body&&e.line(`req.write(JSON.stringify(${JSON.stringify(n.body)}));`),e.line("req.end();"),e.output()}},A={language:"node",target:"node-fetch",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line('const fetch = require("node-fetch");'),e.line(),e.line('fetch("'+n.url+'", {'),e.indent(),e.line('method: "'+n.method.toUpperCase()+'",'),n.headers){e.line("headers: {"),e.indent();for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?e.line(`"${r}": "${t.join(", ")}",`):e.line(`"${r}": "${t}",`);e.outdent(),e.line("},")}return n.body&&e.line("body: JSON.stringify("+JSON.stringify(n.body)+"),"),e.outdent(),e.line("})"),i.handleErrors?(e.line(".then(response => {"),e.indent(),e.line("if (!response.ok) {"),e.indent(),e.line('throw new Error("response not ok");'),e.outdent(),e.line("}"),e.line("return response.text();"),e.outdent(),e.line("})"),e.line(".then(data => console.log(data))"),e.line('.catch(error => console.error("error:", error));')):(e.line(".then(response => response.text())"),e.line(".then(data => console.log(data))")),e.output()}},U={default:!0,language:"php",target:"curl",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("<?php"),e.line(),e.line("$ch = curl_init();"),e.line(),e.line(`curl_setopt($ch, CURLOPT_URL, "${n.url}");`),e.line("curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);"),e.line(`curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "${n.method.toUpperCase()}");`),n.headers){e.line(),e.line("$headers = [];");for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?t.forEach(o=>e.line(`$headers[] = "${r}: ${o}";`)):e.line(`$headers[] = "${r}: ${t}";`);e.line("curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);")}if(n.cookies){e.line(),e.line("$cookies = [];");for(const[r,t]of Object.entries(n.cookies))e.line(`$cookies[] = "${r}=${t}";`);e.line('curl_setopt($ch, CURLOPT_COOKIE, implode("; ", $cookies));')}return n.body&&(e.line(),e.line(`curl_setopt($ch, CURLOPT_POSTFIELDS, '${JSON.stringify(n.body)}');`)),e.line(),e.line("$response = curl_exec($ch);"),i.handleErrors&&(e.line("if (curl_errno($ch)) {"),e.indent(),e.line('echo "Error: " . curl_error($ch);'),e.outdent(),e.line("}")),e.line("curl_close($ch);"),e.line(),e.line("echo $response;"),e.output()}},L={language:"php",target:"guzzle",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("<?php"),e.line(),e.line("require 'vendor/autoload.php';"),e.line(),e.line("use GuzzleHttp\\Client;"),e.line(),e.line("$client = new Client();"),e.line("$response = $client->request("),e.indent(),e.line('"'+n.method.toUpperCase()+'",'),e.line('"'+n.url+'",'),n.headers||n.cookies||n.body){if(e.line("["),n.headers){e.indent(),e.line('"headers" => ['),e.indent();for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?t.forEach(o=>e.line(`"${r}" => "${o}",`)):e.line(`"${r}" => "${t}",`);e.outdent(),e.line("],"),e.outdent()}if(n.cookies){e.indent(),e.line('"cookies" => ['),e.indent();for(const[r,t]of Object.entries(n.cookies))e.line(`"${r}" => "${t}",`);e.outdent(),e.line("],"),e.outdent()}n.body&&(e.indent(),e.line('"json" => '+JSON.stringify(n.body)+","),e.outdent()),e.line("],")}return e.outdent(),e.line(");"),e.line(),e.line("echo $response->getBody();"),e.output()}},P={default:!0,language:"python",target:"http",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`}),r=n.method.toUpperCase(),t=r!=="GET"&&n.body,o=n.headers&&Object.keys(n.headers).length>0,s=n.cookies&&Object.keys(n.cookies).length>0;let l=[];e.line("import http.client"),e.line("import json"),e.line();const f=new URL(n.url);if(e.line(`conn = http.client.HTTPSConnection("${f.hostname}", ${f.port||(f.protocol==="https:"?443:80)})`),e.line(),t&&(l.push("payload"),e.line(`payload = json.dumps(${JSON.stringify(n.body)})`),e.line()),o){l.push("headers"),e.line("headers = {"),e.indent();for(const[y,g]of Object.entries(n.headers))Array.isArray(g)?e.line(`"${y}": "${g.join(", ")}",`):e.line(`"${y}": "${g}",`);e.outdent(),e.line("}"),e.line()}if(s){l.push("cookies"),e.line("cookies = {"),e.indent();for(const[y,g]of Object.entries(n.cookies))e.line(`"${y}": "${g}",`);e.outdent(),e.line("}"),e.line()}return e.line(`conn.request("${r}", "${f.pathname+f.search}"`+(l.length>0?`, ${l.join(", ")}`:"")+")"),e.line("res = conn.getresponse()"),e.line("data = res.read()"),e.line(),e.line('print(data.decode("utf-8"))'),e.output()}},v={language:"python",target:"requests",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`}),t=n.method.toUpperCase()!=="GET"&&n.body,o=n.headers&&Object.keys(n.headers).length>0,s=n.cookies&&Object.keys(n.cookies).length>0;let l=[];if(e.line("import requests"),e.line(),e.line('url = "'+n.url+'"'),o){l.push("headers=headers"),e.line("headers = {"),e.indent();for(const[f,y]of Object.entries(n.headers))Array.isArray(y)?e.line(`"${f}": "${y.join(", ")}",`):e.line(`"${f}": "${y}",`);e.outdent(),e.line("}")}if(s){l.push("cookies=cookies"),e.line("cookies = {"),e.indent();for(const[f,y]of Object.entries(n.cookies))e.line(`"${f}": "${y}",`);e.outdent(),e.line("}")}return t&&(l.push("data=data"),e.line("data = "+JSON.stringify(n.body))),e.line(),e.line("response = requests."+n.method.toLowerCase()+"(url"+(l.length>0?`, ${l.join(", ")}`:"")+")"),e.line("print(response.text)"),e.output()}},H={default:!0,language:"ruby",target:"nethttp",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line('require "net/http"'),e.line('require "uri"'),e.line(),e.line('uri = URI.parse("'+n.url+'")'),n.method.toUpperCase()==="GET"?e.line("request = Net::HTTP::Get.new(uri)"):n.method.toUpperCase()==="POST"?e.line("request = Net::HTTP::Post.new(uri)"):n.method.toUpperCase()==="PUT"?e.line("request = Net::HTTP::Put.new(uri)"):n.method.toUpperCase()==="DELETE"?e.line("request = Net::HTTP::Delete.new(uri)"):e.line('request = Net::HTTP::GenericRequest.new("'+n.method.toUpperCase()+'", uri.path, nil, nil)'),n.headers&&Object.keys(n.headers).length>0)for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?t.forEach(o=>e.line(`request["${r}"] = "${o}"`)):e.line(`request["${r}"] = "${t}"`);if(n.cookies&&Object.keys(n.cookies).length>0)for(const[r,t]of Object.entries(n.cookies))e.line(`request["Cookie"] = "${r}=${t}"`);return n.body&&e.line("request.body = "+JSON.stringify(n.body)),e.line(),e.line('response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|'),e.indent(),e.line("http.request(request)"),e.outdent(),e.line("end"),e.line(),e.line("puts response.body"),e.output()}},N={language:"ruby",target:"faraday",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line('require "faraday"'),e.line(),e.line('conn = Faraday.new(url: "'+n.url+'") do |f|'),e.indent(),e.line("f.adapter Faraday.default_adapter"),e.outdent(),e.line("end"),e.line(),e.line("response = conn."+n.method.toLowerCase()+" do |req|"),e.indent(),e.line('req.url "'+n.url+'"'),n.headers)for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?t.forEach(o=>e.line(`req.headers["${r}"] = "${o}"`)):e.line(`req.headers["${r}"] = "${t}"`);if(n.cookies)for(const[r,t]of Object.entries(n.cookies))e.line(`req.headers["Cookie"] = "${r}=${t}"`);return n.body&&e.line("req.body = "+JSON.stringify(n.body)),e.outdent(),e.line("end"),e.line(),e.line("puts response.body"),e.output()}},J={language:"rust",target:"reqwest",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("use reqwest::blocking::Client;"),e.line("use std::error::Error;"),e.line(),e.line("fn main() -> Result<(), Box<dyn Error>> {"),e.indent(),e.line("let client = Client::new();"),e.line(),e.line("let res = client.request(reqwest::Method::"+n.method.toUpperCase()+', "'+n.url+'")'),e.indent(),n.headers)for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?t.forEach(o=>e.line(`.header("${r}", "${o}")`)):e.line(`.header("${r}", "${t}")`);if(n.cookies)for(const[r,t]of Object.entries(n.cookies))Array.isArray(t)?t.forEach(o=>e.line(`.cookie("${r}", "${o}")`)):e.line(`.cookie("${r}", "${t}")`);return n.body&&e.line('.body("'+JSON.stringify(n.body).replace(/"/g,'"')+'")'),e.line(".send()?;"),e.outdent(),e.line(),i.handleErrors?(e.line("if res.status().is_success() {"),e.indent(),e.line('println!("{}", res.text()?);'),e.outdent(),e.line("} else {"),e.indent(),e.line('eprintln!("Request failed with status: {}", res.status());'),e.outdent(),e.line("}")):e.line('println!("{}", res.text()?);'),e.line("Ok(())"),e.outdent(),e.line("}"),e.output()}},B={default:!0,language:"shell",target:"curl",generate(i,n){var r,t;const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line(`curl -X ${n.method} "${n.url}"`),e.indent(),n.headers)for(const[o,s]of Object.entries(n.headers))if(Array.isArray(s))for(const l of s)e.line(`-H "${o}: ${l}"`);else e.line(`-H "${o}: ${s}"`);if(n.cookies){const o=Object.entries(n.cookies).map(([s,l])=>Array.isArray(l)?l.map(f=>`${s}=${f}`).join("; "):`${s}=${l}`).join("; ");e.line(`-b "${o}"`)}if(n.body){const o=((r=n.headers)==null?void 0:r["content-type"])||((t=n.headers)==null?void 0:t["Content-Type"])||"application/json";if(o==="application/json"){const s=JSON.stringify(n.body);e.line(`-d '${s}'`)}else if(o==="application/x-www-form-urlencoded"){const s=new URLSearchParams(n.body).toString();e.line(`-d '${s}'`)}else typeof n.body=="string"&&e.line(`-d '${n.body}'`)}return e.output()}},D={default:!0,language:"swift",target:"nsurlsession",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("import Foundation"),e.line(),e.line('let url = URL(string: "'+n.url+'")!'),e.line("var request = URLRequest(url: url)"),e.line('request.httpMethod = "'+n.method.toUpperCase()+'"'),e.line(),n.headers&&Object.keys(n.headers).length>0){for(const[r,t]of Object.entries(n.headers))Array.isArray(t)?t.forEach(o=>e.line(`request.addValue("${o}", forHTTPHeaderField: "${r}")`)):e.line(`request.addValue("${t}", forHTTPHeaderField: "${r}")`);e.line()}if(n.cookies&&Object.keys(n.cookies).length>0){for(const[r,t]of Object.entries(n.cookies))e.line(`request.addValue("${r}=${t}", forHTTPHeaderField: "Cookie")`);e.line()}return n.body&&(e.line("let body = try! JSONSerialization.data(withJSONObject: "+JSON.stringify(n.body)+", options: [])"),e.line("request.httpBody = body"),e.line()),e.line("let task = URLSession.shared.dataTask(with: request) { data, response, error in"),e.indent(),e.line("if let error = error {"),e.indent(),e.line('print("Error: (error)")'),e.line("return"),e.outdent(),e.line("}"),e.line(),e.line("if let httpResponse = response as? HTTPURLResponse {"),e.indent(),e.line("if httpResponse.statusCode == 200, let data = data {"),e.indent(),e.line("let responseString = String(data: data, encoding: .utf8)"),e.line('print(responseString ?? "No response data")'),e.outdent(),e.line("} else {"),e.indent(),e.line('print("Request failed with status code: (httpResponse.statusCode)")'),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.line(),e.line("task.resume()"),e.output()}};a(m),a(w),a(T),a(R),a(q),a(S),a(E),a(_),a(A),a(U),a(L),a(P),a(v),a(H),a(N),a(J),a(B),a(D),c.Builder=d,c.ClearRegistry=j,c.Codes=b,c.CodesByLanguage=$,c.Generate=k,c.IsJsonRequest=h,c.Register=a,c.SetDefault=p,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})}); | ||
`}line(n=""){this.code.push({depth:n===""?0:this.currentDepth,line:n})}indent(){this.currentDepth+=1}outdent(){this.currentDepth>0&&(this.currentDepth-=1)}output(){return this.code.map(({depth:n,line:e})=>`${this.indentChar.repeat(n)}${e}`).join(this.lineJoin)}}function g(i,n){return i.toUpperCase()==="POST"&&n!==void 0&&Object.keys(n).some(e=>e.toLowerCase()==="content-type"&&n[e].toLowerCase()==="application/json")}const m={default:!0,language:"c",client:"libcurl",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("#include <stdio.h>"),e.line("#include <curl/curl.h>"),e.line(),e.line("int main(void) {"),e.indent(),e.line("CURL *curl;"),e.line("CURLcode res;"),e.line(),e.line("curl_global_init(CURL_GLOBAL_DEFAULT);"),e.line("curl = curl_easy_init();"),e.line("if(curl) {"),e.indent(),e.line(`curl_easy_setopt(curl, CURLOPT_URL, "${n.url}");`),n.method.toUpperCase()==="POST"?e.line("curl_easy_setopt(curl, CURLOPT_POST, 1L);"):n.method.toUpperCase()!=="GET"&&e.line(`curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "${n.method.toUpperCase()}");`),n.headers&&Object.keys(n.headers).length>0){e.line("struct curl_slist *headers = NULL;");for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?r.forEach(t=>e.line(`headers = curl_slist_append(headers, "${o}: ${t}");`)):e.line(`headers = curl_slist_append(headers, "${o}: ${r}");`);e.line("curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);")}if(n.cookies&&Object.keys(n.cookies).length>0){const o=Object.entries(n.cookies).map(([r,t])=>`${r}=${t}`).join("; ");e.line(`curl_easy_setopt(curl, CURLOPT_COOKIE, "${o}");`)}return n.body&&e.line(`curl_easy_setopt(curl, CURLOPT_POSTFIELDS, R"(${JSON.stringify(n.body)})");`),e.line("res = curl_easy_perform(curl);"),e.line("if(res != CURLE_OK)"),e.indent(),e.line(`fprintf(stderr, "curl_easy_perform() failed: %s | ||
", curl_easy_strerror(res));`),e.outdent(),n.headers&&Object.keys(n.headers).length>0&&e.line("curl_slist_free_all(headers);"),e.line("curl_easy_cleanup(curl);"),e.outdent(),e.line("}"),e.line("curl_global_cleanup();"),e.line("return 0;"),e.outdent(),e.line("}"),e.output()}},w={default:!0,language:"csharp",client:"http",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("using System;"),e.line("using System.Net.Http;"),e.line("using System.Threading.Tasks;"),e.line(),e.line("namespace HttpClientExample"),e.line("{"),e.indent(),e.line("class Program"),e.line("{"),e.indent(),e.line("static async Task Main(string[] args)"),e.line("{"),e.indent(),e.line("using (HttpClient client = new HttpClient())"),e.line("{"),e.indent(),e.line(`HttpRequestMessage request = new HttpRequestMessage(HttpMethod.${n.method.toUpperCase()}, "${n.url}");`),n.headers&&Object.keys(n.headers).length>0)for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?r.forEach(t=>e.line(`request.Headers.Add("${o}", "${t}");`)):e.line(`request.Headers.Add("${o}", "${r}");`);if(n.cookies&&Object.keys(n.cookies).length>0){const o=Object.entries(n.cookies).map(([r,t])=>`${r}=${t}`).join("; ");e.line(`request.Headers.Add("Cookie", "${o}");`)}return n.body&&e.line(`request.Content = new StringContent("${JSON.stringify(n.body).replace(/"/g,'"')}", System.Text.Encoding.UTF8, "application/json");`),e.line("HttpResponseMessage response = await client.SendAsync(request);"),e.line("response.EnsureSuccessStatusCode();"),e.line("string responseBody = await response.Content.ReadAsStringAsync();"),e.line("Console.WriteLine(responseBody);"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.output()}},q={language:"csharp",client:"restsharp",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("using RestSharp;"),e.line(),e.line("namespace RestSharpExample"),e.line("{"),e.indent(),e.line("class Program"),e.line("{"),e.indent(),e.line("static void Main(string[] args)"),e.line("{"),e.indent(),e.line(`var client = new RestClient("${n.url}");`),e.line(`var request = new RestRequest(Method.${n.method.toUpperCase()});`),n.headers&&Object.keys(n.headers).length>0)for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?r.forEach(t=>e.line(`request.AddHeader("${o}", "${t}");`)):e.line(`request.AddHeader("${o}", "${r}");`);if(n.cookies&&Object.keys(n.cookies).length>0){const o=Object.entries(n.cookies).map(([r,t])=>`${r}=${t}`).join("; ");e.line(`request.AddHeader("Cookie", "${o}");`)}return n.body&&e.line(`request.AddJsonBody(${JSON.stringify(n.body)});`),e.line("IRestResponse response = client.Execute(request);"),e.line("Console.WriteLine(response.Content);"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.output()}},R={default:!0,language:"go",client:"http",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`}),o=g(n.method,n.headers)&&n.body;e.line("package main"),e.line(),e.line("import ("),e.indent(),e.line('"fmt"'),e.line('"net/http"'),e.line('"io"'),o&&(e.line('"bytes"'),e.line('"encoding/json"')),i.handleErrors&&e.line('"log"'),e.outdent(),e.line(")"),e.line(),e.line("func main() {"),e.indent(),e.line(`url := "${n.url}"`),e.line();let r="nil";if(o){e.line("jsonBodyMap := map[string]any{"),e.indent();for(const[t,s]of Object.entries(n.body))e.line(`"${t}": ${JSON.stringify(s)},`);e.outdent(),e.line("}"),i.handleErrors?(e.line("jsonBodyBytes, err := json.Marshal(jsonBodyMap)"),e.line("if err != nil {"),e.indent(),e.line("log.Fatal(err)"),e.outdent(),e.line("}")):e.line("jsonBodyBytes, _ := json.Marshal(jsonBodyMap)"),r="bytes.NewBuffer(jsonBodyBytes)",e.line()}if(i.handleErrors?(e.line(`req, err := http.NewRequest("${n.method.toUpperCase()}", url, ${r})`),e.line("if err != nil {"),e.indent(),e.line("log.Fatal(err)"),e.outdent(),e.line("}"),e.line()):(e.line(`req, _ := http.NewRequest("${n.method.toUpperCase()}", url, ${r})`),e.line()),n.headers){for(const[t,s]of Object.entries(n.headers))if(Array.isArray(s))for(const l of s)e.line(`req.Header.Add("${t}", "${l}")`);else e.line(`req.Header.Set("${t}", "${s}")`);e.line()}if(n.cookies){for(const[t,s]of Object.entries(n.cookies))if(Array.isArray(s))for(const l of s)e.line(`req.AddCookie(&http.Cookie{Name: "${t}", Value: "${l}"})`);else e.line(`req.AddCookie(&http.Cookie{Name: "${t}", Value: "${s}"})`);e.line()}return i.handleErrors?(e.line("resp, err := http.DefaultClient.Do(req)"),e.line("if err != nil {"),e.indent(),e.line("log.Fatal(err)"),e.outdent(),e.line("}")):e.line("resp, _ := http.DefaultClient.Do(req)"),e.line("defer resp.Body.Close()"),e.line(),i.handleErrors?(e.line("body, err := io.ReadAll(resp.Body)"),e.line("if err != nil {"),e.indent(),e.line("log.Fatal(err)"),e.outdent(),e.line("}")):e.line("body, _ := io.ReadAll(resp.Body)"),e.line(),e.line("fmt.Println(string(body))"),e.outdent(),e.line("}"),e.output()}},T={default:!0,language:"javascript",client:"fetch",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line('fetch("'+n.url+'", {'),e.indent(),e.line(`method: "${n.method.toUpperCase()}",`),n.headers){e.line("headers: {"),e.indent();for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?e.line(`"${o}": "${r.join(", ")}",`):e.line(`"${o}": "${r}",`);e.outdent(),e.line("},")}return n.body&&e.line(`body: JSON.stringify(${JSON.stringify(n.body)}),`),e.outdent(),e.line("})"),i.handleErrors?(e.line(".then(response => {"),e.indent(),e.line("if (!response.ok) {"),e.indent(),e.line('throw new Error("Network response was not ok");'),e.outdent(),e.line("}"),e.line("return response.text();"),e.outdent(),e.line("})"),e.line(".then(data => console.log(data))"),e.line('.catch(error => console.error("There was a problem with the fetch operation:", error));')):(e.line(".then(response => response.text())"),e.line(".then(data => console.log(data));")),e.output()}},S={language:"javascript",client:"axios",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("axios({"),e.indent(),e.line(`method: "${n.method.toLowerCase()}",`),e.line(`url: "${n.url}",`),n.headers){e.line("headers: {"),e.indent();for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?e.line(`"${o}": "${r.join(", ")}",`):e.line(`"${o}": "${r}",`);e.outdent(),e.line("},")}if(n.cookies){e.line("cookies: {"),e.indent();for(const[o,r]of Object.entries(n.cookies))e.line(`"${o}": "${r}",`);e.outdent(),e.line("},")}return n.body&&e.line(`data: ${JSON.stringify(n.body)},`),e.outdent(),e.line("})"),i.handleErrors?(e.line(".then(response => {"),e.indent(),e.line("console.log(response.data);"),e.outdent(),e.line("})"),e.line(".catch(error => {"),e.indent(),e.line('console.error("There was an error:", error);'),e.outdent(),e.line("});")):e.line(".then(response => console.log(response.data));"),e.output()}},E={language:"javascript",client:"jquery",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("$.ajax({"),e.indent(),e.line(`url: "${n.url}",`),e.line(`type: "${n.method.toUpperCase()}",`),n.headers){e.line("headers: {"),e.indent();for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?e.line(`"${o}": "${r.join(", ")}",`):e.line(`"${o}": "${r}",`);e.outdent(),e.line("},")}return n.body&&(e.line(`data: JSON.stringify(${JSON.stringify(n.body)}),`),e.line('contentType: "application/json",')),e.line("success: function(data) {"),e.indent(),e.line("console.log(data);"),e.outdent(),e.line("},"),i.handleErrors&&(e.line("error: function(jqXHR, textStatus, errorThrown) {"),e.indent(),e.line('console.error("Request failed:", textStatus, errorThrown);'),e.outdent(),e.line("},")),e.outdent(),e.line("});"),e.output()}},_={language:"node",client:"http",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line('const http = require("http");'),e.line(),e.line("const options = {"),e.indent(),e.line(`method: "${n.method.toUpperCase()}",`),e.line(`hostname: "${new URL(n.url).hostname}",`),e.line(`path: "${new URL(n.url).pathname}${new URL(n.url).search}",`),n.headers){e.line("headers: {"),e.indent();for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?e.line(`"${o}": "${r.join(", ")}",`):e.line(`"${o}": "${r}",`);e.outdent(),e.line("},")}return e.outdent(),e.line("};"),e.line(),e.line("const req = http.request(options, (res) => {"),e.indent(),e.line('let data = "";'),e.line(),e.line('res.on("data", (chunk) => {'),e.indent(),e.line("data += chunk;"),e.outdent(),e.line("});"),e.line(),e.line('res.on("end", () => {'),e.indent(),e.line("console.log(data);"),e.outdent(),e.line("});"),e.outdent(),e.line("});"),i.handleErrors&&(e.line(),e.line('req.on("error", (error) => {'),e.indent(),e.line("console.error(error);"),e.outdent(),e.line("});")),e.line(),n.body&&e.line(`req.write(JSON.stringify(${JSON.stringify(n.body)}));`),e.line("req.end();"),e.output()}},A={language:"node",client:"node-fetch",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line('const fetch = require("node-fetch");'),e.line(),e.line('fetch("'+n.url+'", {'),e.indent(),e.line('method: "'+n.method.toUpperCase()+'",'),n.headers){e.line("headers: {"),e.indent();for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?e.line(`"${o}": "${r.join(", ")}",`):e.line(`"${o}": "${r}",`);e.outdent(),e.line("},")}return n.body&&e.line("body: JSON.stringify("+JSON.stringify(n.body)+"),"),e.outdent(),e.line("})"),i.handleErrors?(e.line(".then(response => {"),e.indent(),e.line("if (!response.ok) {"),e.indent(),e.line('throw new Error("response not ok");'),e.outdent(),e.line("}"),e.line("return response.text();"),e.outdent(),e.line("})"),e.line(".then(data => console.log(data))"),e.line('.catch(error => console.error("error:", error));')):(e.line(".then(response => response.text())"),e.line(".then(data => console.log(data))")),e.output()}},U={default:!0,language:"php",client:"curl",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("<?php"),e.line(),e.line("$ch = curl_init();"),e.line(),e.line(`curl_setopt($ch, CURLOPT_URL, "${n.url}");`),e.line("curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);"),e.line(`curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "${n.method.toUpperCase()}");`),n.headers){e.line(),e.line("$headers = [];");for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?r.forEach(t=>e.line(`$headers[] = "${o}: ${t}";`)):e.line(`$headers[] = "${o}: ${r}";`);e.line("curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);")}if(n.cookies){e.line(),e.line("$cookies = [];");for(const[o,r]of Object.entries(n.cookies))e.line(`$cookies[] = "${o}=${r}";`);e.line('curl_setopt($ch, CURLOPT_COOKIE, implode("; ", $cookies));')}return n.body&&(e.line(),e.line(`curl_setopt($ch, CURLOPT_POSTFIELDS, '${JSON.stringify(n.body)}');`)),e.line(),e.line("$response = curl_exec($ch);"),i.handleErrors&&(e.line("if (curl_errno($ch)) {"),e.indent(),e.line('echo "Error: " . curl_error($ch);'),e.outdent(),e.line("}")),e.line("curl_close($ch);"),e.line(),e.line("echo $response;"),e.output()}},L={language:"php",client:"guzzle",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("<?php"),e.line(),e.line("require 'vendor/autoload.php';"),e.line(),e.line("use GuzzleHttp\\Client;"),e.line(),e.line("$client = new Client();"),e.line("$response = $client->request("),e.indent(),e.line('"'+n.method.toUpperCase()+'",'),e.line('"'+n.url+'",'),n.headers||n.cookies||n.body){if(e.line("["),n.headers){e.indent(),e.line('"headers" => ['),e.indent();for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?r.forEach(t=>e.line(`"${o}" => "${t}",`)):e.line(`"${o}" => "${r}",`);e.outdent(),e.line("],"),e.outdent()}if(n.cookies){e.indent(),e.line('"cookies" => ['),e.indent();for(const[o,r]of Object.entries(n.cookies))e.line(`"${o}" => "${r}",`);e.outdent(),e.line("],"),e.outdent()}n.body&&(e.indent(),e.line('"json" => '+JSON.stringify(n.body)+","),e.outdent()),e.line("],")}return e.outdent(),e.line(");"),e.line(),e.line("echo $response->getBody();"),e.output()}},P={default:!0,language:"python",client:"http",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`}),o=n.method.toUpperCase(),r=o!=="GET"&&n.body,t=n.headers&&Object.keys(n.headers).length>0,s=n.cookies&&Object.keys(n.cookies).length>0;let l=[];e.line("import http.client"),e.line("import json"),e.line();const f=new URL(n.url);if(e.line(`conn = http.client.HTTPSConnection("${f.hostname}", ${f.port||(f.protocol==="https:"?443:80)})`),e.line(),r&&(l.push("payload"),e.line(`payload = json.dumps(${JSON.stringify(n.body)})`),e.line()),t){l.push("headers"),e.line("headers = {"),e.indent();for(const[y,$]of Object.entries(n.headers))Array.isArray($)?e.line(`"${y}": "${$.join(", ")}",`):e.line(`"${y}": "${$}",`);e.outdent(),e.line("}"),e.line()}if(s){l.push("cookies"),e.line("cookies = {"),e.indent();for(const[y,$]of Object.entries(n.cookies))e.line(`"${y}": "${$}",`);e.outdent(),e.line("}"),e.line()}return e.line(`conn.request("${o}", "${f.pathname+f.search}"`+(l.length>0?`, ${l.join(", ")}`:"")+")"),e.line("res = conn.getresponse()"),e.line("data = res.read()"),e.line(),e.line('print(data.decode("utf-8"))'),e.output()}},v={language:"python",client:"requests",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`}),r=n.method.toUpperCase()!=="GET"&&n.body,t=n.headers&&Object.keys(n.headers).length>0,s=n.cookies&&Object.keys(n.cookies).length>0;let l=[];if(e.line("import requests"),e.line(),e.line('url = "'+n.url+'"'),t){l.push("headers=headers"),e.line("headers = {"),e.indent();for(const[f,y]of Object.entries(n.headers))Array.isArray(y)?e.line(`"${f}": "${y.join(", ")}",`):e.line(`"${f}": "${y}",`);e.outdent(),e.line("}")}if(s){l.push("cookies=cookies"),e.line("cookies = {"),e.indent();for(const[f,y]of Object.entries(n.cookies))e.line(`"${f}": "${y}",`);e.outdent(),e.line("}")}return r&&(l.push("data=data"),e.line("data = "+JSON.stringify(n.body))),e.line(),e.line("response = requests."+n.method.toLowerCase()+"(url"+(l.length>0?`, ${l.join(", ")}`:"")+")"),e.line("print(response.text)"),e.output()}},H={default:!0,language:"ruby",client:"nethttp",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line('require "net/http"'),e.line('require "uri"'),e.line(),e.line('uri = URI.parse("'+n.url+'")'),n.method.toUpperCase()==="GET"?e.line("request = Net::HTTP::Get.new(uri)"):n.method.toUpperCase()==="POST"?e.line("request = Net::HTTP::Post.new(uri)"):n.method.toUpperCase()==="PUT"?e.line("request = Net::HTTP::Put.new(uri)"):n.method.toUpperCase()==="DELETE"?e.line("request = Net::HTTP::Delete.new(uri)"):e.line('request = Net::HTTP::GenericRequest.new("'+n.method.toUpperCase()+'", uri.path, nil, nil)'),n.headers&&Object.keys(n.headers).length>0)for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?r.forEach(t=>e.line(`request["${o}"] = "${t}"`)):e.line(`request["${o}"] = "${r}"`);if(n.cookies&&Object.keys(n.cookies).length>0)for(const[o,r]of Object.entries(n.cookies))e.line(`request["Cookie"] = "${o}=${r}"`);return n.body&&e.line("request.body = "+JSON.stringify(n.body)),e.line(),e.line('response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|'),e.indent(),e.line("http.request(request)"),e.outdent(),e.line("end"),e.line(),e.line("puts response.body"),e.output()}},N={language:"ruby",client:"faraday",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line('require "faraday"'),e.line(),e.line('conn = Faraday.new(url: "'+n.url+'") do |f|'),e.indent(),e.line("f.adapter Faraday.default_adapter"),e.outdent(),e.line("end"),e.line(),e.line("response = conn."+n.method.toLowerCase()+" do |req|"),e.indent(),e.line('req.url "'+n.url+'"'),n.headers)for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?r.forEach(t=>e.line(`req.headers["${o}"] = "${t}"`)):e.line(`req.headers["${o}"] = "${r}"`);if(n.cookies)for(const[o,r]of Object.entries(n.cookies))e.line(`req.headers["Cookie"] = "${o}=${r}"`);return n.body&&e.line("req.body = "+JSON.stringify(n.body)),e.outdent(),e.line("end"),e.line(),e.line("puts response.body"),e.output()}},J={language:"rust",client:"reqwest",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("use reqwest::blocking::Client;"),e.line("use std::error::Error;"),e.line(),e.line("fn main() -> Result<(), Box<dyn Error>> {"),e.indent(),e.line("let client = Client::new();"),e.line(),e.line("let res = client.request(reqwest::Method::"+n.method.toUpperCase()+', "'+n.url+'")'),e.indent(),n.headers)for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?r.forEach(t=>e.line(`.header("${o}", "${t}")`)):e.line(`.header("${o}", "${r}")`);if(n.cookies)for(const[o,r]of Object.entries(n.cookies))Array.isArray(r)?r.forEach(t=>e.line(`.cookie("${o}", "${t}")`)):e.line(`.cookie("${o}", "${r}")`);return n.body&&e.line('.body("'+JSON.stringify(n.body).replace(/"/g,'"')+'")'),e.line(".send()?;"),e.outdent(),e.line(),i.handleErrors?(e.line("if res.status().is_success() {"),e.indent(),e.line('println!("{}", res.text()?);'),e.outdent(),e.line("} else {"),e.indent(),e.line('eprintln!("Request failed with status: {}", res.status());'),e.outdent(),e.line("}")):e.line('println!("{}", res.text()?);'),e.line("Ok(())"),e.outdent(),e.line("}"),e.output()}},B={default:!0,language:"shell",client:"curl",generate(i,n){var o,r;const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line(`curl -X ${n.method} "${n.url}"`),e.indent(),n.headers)for(const[t,s]of Object.entries(n.headers))if(Array.isArray(s))for(const l of s)e.line(`-H "${t}: ${l}"`);else e.line(`-H "${t}: ${s}"`);if(n.cookies){const t=Object.entries(n.cookies).map(([s,l])=>Array.isArray(l)?l.map(f=>`${s}=${f}`).join("; "):`${s}=${l}`).join("; ");e.line(`-b "${t}"`)}if(n.body){const t=((o=n.headers)==null?void 0:o["content-type"])||((r=n.headers)==null?void 0:r["Content-Type"])||"application/json";if(t==="application/json"){const s=JSON.stringify(n.body);e.line(`-d '${s}'`)}else if(t==="application/x-www-form-urlencoded"){const s=new URLSearchParams(n.body).toString();e.line(`-d '${s}'`)}else typeof n.body=="string"&&e.line(`-d '${n.body}'`)}return e.output()}},D={default:!0,language:"swift",client:"nsurlsession",generate(i,n){const e=new d({indent:i.indent||" ",join:i.join||` | ||
`});if(e.line("import Foundation"),e.line(),e.line('let url = URL(string: "'+n.url+'")!'),e.line("var request = URLRequest(url: url)"),e.line('request.httpMethod = "'+n.method.toUpperCase()+'"'),e.line(),n.headers&&Object.keys(n.headers).length>0){for(const[o,r]of Object.entries(n.headers))Array.isArray(r)?r.forEach(t=>e.line(`request.addValue("${t}", forHTTPHeaderField: "${o}")`)):e.line(`request.addValue("${r}", forHTTPHeaderField: "${o}")`);e.line()}if(n.cookies&&Object.keys(n.cookies).length>0){for(const[o,r]of Object.entries(n.cookies))e.line(`request.addValue("${o}=${r}", forHTTPHeaderField: "Cookie")`);e.line()}return n.body&&(e.line("let body = try! JSONSerialization.data(withJSONObject: "+JSON.stringify(n.body)+", options: [])"),e.line("request.httpBody = body"),e.line()),e.line("let task = URLSession.shared.dataTask(with: request) { data, response, error in"),e.indent(),e.line("if let error = error {"),e.indent(),e.line('print("Error: (error)")'),e.line("return"),e.outdent(),e.line("}"),e.line(),e.line("if let httpResponse = response as? HTTPURLResponse {"),e.indent(),e.line("if httpResponse.statusCode == 200, let data = data {"),e.indent(),e.line("let responseString = String(data: data, encoding: .utf8)"),e.line('print(responseString ?? "No response data")'),e.outdent(),e.line("} else {"),e.indent(),e.line('print("Request failed with status code: (httpResponse.statusCode)")'),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.outdent(),e.line("}"),e.line(),e.line("task.resume()"),e.output()}};a(m),a(w),a(q),a(R),a(T),a(S),a(E),a(_),a(A),a(U),a(L),a(P),a(v),a(H),a(N),a(J),a(B),a(D),u.Builder=d,u.ClearRegistry=j,u.Codes=b,u.Generate=k,u.IsJsonRequest=g,u.Register=a,u.SearchTarget=h,u.SetDefault=p,Object.defineProperty(u,Symbol.toStringTag,{value:"Module"})}); |
{ | ||
"name": "gimmehttp", | ||
"author": "Brian Voelker <brian@webiswhatido.com> (https://webiswhatido.com)", | ||
"version": "0.0.3", | ||
"version": "0.0.4", | ||
"description": "HTTP request code generator", | ||
@@ -6,0 +6,0 @@ "license": "MIT", |
84181
814