Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 21 additions & 15 deletions dist/curl-generator.cjs.js
Original file line number Diff line number Diff line change
Expand Up @@ -89,24 +89,30 @@ var slash = " \\";
var newLine = "\n";
/**
* @param {string} [method]
* @param {boolean} [noValidation]
* @returns {string}
*/
var getCurlMethod = function (method) {
var getCurlMethod = function (method, noValidation) {
var result = "";
if (method) {
var types = {
GET: "-X GET",
POST: "-X POST",
PUT: "-X PUT",
PATCH: "-X PATCH",
DELETE: "-X DELETE",
HEAD: "-X HEAD",
OPTIONS: "-X OPTIONS",
CONNECT: "-X CONNECT",
TRACE: "-X TRACE",
QUERY: "-X QUERY",
};
result = " " + types[method.toUpperCase()];
if (noValidation) {
result = " -X " + method;
}
else {
var types = {
GET: "-X GET",
POST: "-X POST",
PUT: "-X PUT",
PATCH: "-X PATCH",
DELETE: "-X DELETE",
HEAD: "-X HEAD",
OPTIONS: "-X OPTIONS",
CONNECT: "-X CONNECT",
TRACE: "-X TRACE",
QUERY: "-X QUERY",
};
result = " " + types[method.toUpperCase()];
}
}
return slash + newLine + result;
};
Expand Down Expand Up @@ -167,7 +173,7 @@ var getCurlOptions = function (options) {
var CurlGenerator = function (params, options) {
var curlSnippet = "curl ";
curlSnippet += params.url;
curlSnippet += getCurlMethod(params.method);
curlSnippet += getCurlMethod(params.method, params.noValidation);
curlSnippet += getCurlHeaders(params.headers);
curlSnippet += getCurlBody(params.body);
curlSnippet += getCurlOptions(options);
Expand Down
36 changes: 21 additions & 15 deletions dist/curl-generator.esm.js
Original file line number Diff line number Diff line change
Expand Up @@ -85,24 +85,30 @@ var slash = " \\";
var newLine = "\n";
/**
* @param {string} [method]
* @param {boolean} [noValidation]
* @returns {string}
*/
var getCurlMethod = function (method) {
var getCurlMethod = function (method, noValidation) {
var result = "";
if (method) {
var types = {
GET: "-X GET",
POST: "-X POST",
PUT: "-X PUT",
PATCH: "-X PATCH",
DELETE: "-X DELETE",
HEAD: "-X HEAD",
OPTIONS: "-X OPTIONS",
CONNECT: "-X CONNECT",
TRACE: "-X TRACE",
QUERY: "-X QUERY",
};
result = " " + types[method.toUpperCase()];
if (noValidation) {
result = " -X " + method;
}
else {
var types = {
GET: "-X GET",
POST: "-X POST",
PUT: "-X PUT",
PATCH: "-X PATCH",
DELETE: "-X DELETE",
HEAD: "-X HEAD",
OPTIONS: "-X OPTIONS",
CONNECT: "-X CONNECT",
TRACE: "-X TRACE",
QUERY: "-X QUERY",
};
result = " " + types[method.toUpperCase()];
}
}
return slash + newLine + result;
};
Expand Down Expand Up @@ -163,7 +169,7 @@ var getCurlOptions = function (options) {
var CurlGenerator = function (params, options) {
var curlSnippet = "curl ";
curlSnippet += params.url;
curlSnippet += getCurlMethod(params.method);
curlSnippet += getCurlMethod(params.method, params.noValidation);
curlSnippet += getCurlHeaders(params.headers);
curlSnippet += getCurlBody(params.body);
curlSnippet += getCurlOptions(options);
Expand Down
36 changes: 21 additions & 15 deletions dist/curl-generator.umd.js
Original file line number Diff line number Diff line change
Expand Up @@ -91,24 +91,30 @@
var newLine = "\n";
/**
* @param {string} [method]
* @param {boolean} [noValidation]
* @returns {string}
*/
var getCurlMethod = function (method) {
var getCurlMethod = function (method, noValidation) {
var result = "";
if (method) {
var types = {
GET: "-X GET",
POST: "-X POST",
PUT: "-X PUT",
PATCH: "-X PATCH",
DELETE: "-X DELETE",
HEAD: "-X HEAD",
OPTIONS: "-X OPTIONS",
CONNECT: "-X CONNECT",
TRACE: "-X TRACE",
QUERY: "-X QUERY",
};
result = " " + types[method.toUpperCase()];
if (noValidation) {
result = " -X " + method;
}
else {
var types = {
GET: "-X GET",
POST: "-X POST",
PUT: "-X PUT",
PATCH: "-X PATCH",
DELETE: "-X DELETE",
HEAD: "-X HEAD",
OPTIONS: "-X OPTIONS",
CONNECT: "-X CONNECT",
TRACE: "-X TRACE",
QUERY: "-X QUERY",
};
result = " " + types[method.toUpperCase()];
}
}
return slash + newLine + result;
};
Expand Down Expand Up @@ -169,7 +175,7 @@
var CurlGenerator = function (params, options) {
var curlSnippet = "curl ";
curlSnippet += params.url;
curlSnippet += getCurlMethod(params.method);
curlSnippet += getCurlMethod(params.method, params.noValidation);
curlSnippet += getCurlHeaders(params.headers);
curlSnippet += getCurlBody(params.body);
curlSnippet += getCurlOptions(options);
Expand Down
1 change: 1 addition & 0 deletions dist/main.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ declare type CurlAdditionalOptions = {
};
declare type CurlRequest = {
method?: "GET" | "get" | "POST" | "post" | "PUT" | "put" | "PATCH" | "patch" | "DELETE" | "delete" | "HEAD" | "head" | "OPTIONS" | "options" | "CONNECT" | "connect" | "TRACE" | "trace" | "QUERY" | "query";
noValidation?: boolean;
headers?: StringMap;
body?: CurlBody;
url: string;
Expand Down
17 changes: 17 additions & 0 deletions example/parameters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -195,3 +195,20 @@ export const jsonBody = {
},
},
};

export const queryRequest = {
url: "http://query.example.com",
method: "query",
headers: {
"Accept-Query": "application/jsonpath",
}
}

export const copyRequest = {
url: "http://copy.example.com",
method: "COPY",
noValidation: true,
headers: {
"Content-Type": "application/json",
}
}
36 changes: 21 additions & 15 deletions src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ type CurlAdditionalOptions = {
type CurlRequest = {
// Query is not official HTTP method, but it's in a RFC and we want to support it. https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-safe-method-w-body
method?: "GET" | "get" | "POST" | "post" | "PUT" | "put" | "PATCH" | "patch" | "DELETE" | "delete" | "HEAD" | "head" | "OPTIONS" | "options" | "CONNECT" | "connect" | "TRACE" | "trace" | "QUERY" | "query",
noValidation?: boolean,
headers?: StringMap,
body?: CurlBody,
url: string,
Expand All @@ -62,24 +63,29 @@ const newLine = "\n";

/**
* @param {string} [method]
* @param {boolean} [noValidation]
* @returns {string}
*/
const getCurlMethod = function (method?: string): string {
const getCurlMethod = function (method?: string, noValidation?: boolean): string {
let result: string = "";
if (method) {
const types: StringMap = {
GET: "-X GET",
POST: "-X POST",
PUT: "-X PUT",
PATCH: "-X PATCH",
DELETE: "-X DELETE",
HEAD: "-X HEAD",
OPTIONS: "-X OPTIONS",
CONNECT: "-X CONNECT",
TRACE: "-X TRACE",
QUERY: "-X QUERY",
};
result = ` ${types[method.toUpperCase()]}`;
if (noValidation) {
result = ` -X ${method}`;
} else {
const types: StringMap = {
GET: "-X GET",
POST: "-X POST",
PUT: "-X PUT",
PATCH: "-X PATCH",
DELETE: "-X DELETE",
HEAD: "-X HEAD",
OPTIONS: "-X OPTIONS",
CONNECT: "-X CONNECT",
TRACE: "-X TRACE",
QUERY: "-X QUERY",
};
result = ` ${types[method.toUpperCase()]}`;
}
}
return slash + newLine + result;
};
Expand Down Expand Up @@ -155,7 +161,7 @@ const CurlGenerator = function (
): string {
let curlSnippet = "curl ";
curlSnippet += params.url;
curlSnippet += getCurlMethod(params.method);
curlSnippet += getCurlMethod(params.method, params.noValidation);
curlSnippet += getCurlHeaders(params.headers);
curlSnippet += getCurlBody(params.body);
curlSnippet += getCurlOptions(options);
Expand Down
12 changes: 12 additions & 0 deletions test/__snapshots__/main.test.ts.snap
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html

exports[`copyRequest 1`] = `
"curl http://copy.example.com \\
-X COPY \\
-H 'Content-Type: application/json'"
`;

exports[`del1 1`] = `
"curl https://jsonplaceholder.typicode.com/posts/1 \\
-X DELETE"
Expand Down Expand Up @@ -99,6 +105,12 @@ exports[`put1 1`] = `
-d '{"id":1,"title":"foo","body":"barzzz","userId":1}'"
`;

exports[`queryRequest 1`] = `
"curl http://query.example.com \\
-X QUERY \\
-H 'Accept-Query: application/jsonpath'"
`;

exports[`rawBody1 1`] = `
"curl https://jsonplaceholder.typicode.com/posts \\
-X POST \\
Expand Down