123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- export const ShellHttpieCodegen = {
- id: "shell-httpie",
- name: "Shell HTTPie",
- language: "sh",
- generator: ({
- url,
- pathName,
- queryString,
- auth,
- httpUser,
- httpPassword,
- bearerToken,
- method,
- rawInput,
- rawParams,
- rawRequestBody,
- contentType,
- headers,
- }) => {
- const methodsWithBody = ["POST", "PUT", "PATCH", "DELETE"]
- const includeBody = methodsWithBody.includes(method)
- const requestString = []
- let requestBody = rawInput ? rawParams : rawRequestBody
- requestBody = requestBody.replace(/'/g, "\\'")
- if (requestBody.length !== 0 && includeBody) {
- // Send request body via redirected input
- requestString.push(`echo -n $'${requestBody}' | `)
- }
- // Executable itself
- requestString.push(`http`)
- // basic authentication
- if (auth === "Basic Auth") {
- requestString.push(` -a ${httpUser}:${httpPassword}`)
- }
- // URL
- let escapedUrl = `${url}${pathName}?${queryString}`
- escapedUrl = escapedUrl.replace(/'/g, "\\'")
- requestString.push(` ${method} $'${escapedUrl}'`)
- // All headers
- if (contentType) {
- requestString.push(` 'Content-Type:${contentType}; charset=utf-8'`)
- }
- if (headers) {
- headers.forEach(({ key, value }) => {
- requestString.push(
- ` $'${key.replace(/'/g, "\\'")}:${value.replace(/'/g, "\\'")}'`
- )
- })
- }
- if (auth === "Bearer Token" || auth === "OAuth 2.0") {
- requestString.push(` 'Authorization:Bearer ${bearerToken}'`)
- }
- return requestString.join("")
- },
- }
|