|
@@ -22,13 +22,14 @@ const parseCurl = (curlCommand: string): { node: HttpNodeType | null; error: str
|
|
|
const node: Partial<HttpNodeType> = {
|
|
|
title: 'HTTP Request',
|
|
|
desc: 'Imported from cURL',
|
|
|
- method: Method.get,
|
|
|
+ method: undefined,
|
|
|
url: '',
|
|
|
headers: '',
|
|
|
params: '',
|
|
|
body: { type: BodyType.none, data: '' },
|
|
|
}
|
|
|
const args = curlCommand.match(/(?:[^\s"']+|"[^"]*"|'[^']*')+/g) || []
|
|
|
+ let hasData = false
|
|
|
|
|
|
for (let i = 1; i < args.length; i++) {
|
|
|
const arg = args[i].replace(/^['"]|['"]$/g, '')
|
|
@@ -38,6 +39,7 @@ const parseCurl = (curlCommand: string): { node: HttpNodeType | null; error: str
|
|
|
if (i + 1 >= args.length)
|
|
|
return { node: null, error: 'Missing HTTP method after -X or --request.' }
|
|
|
node.method = (args[++i].replace(/^['"]|['"]$/g, '') as Method) || Method.get
|
|
|
+ hasData = true
|
|
|
break
|
|
|
case '-H':
|
|
|
case '--header':
|
|
@@ -89,6 +91,9 @@ const parseCurl = (curlCommand: string): { node: HttpNodeType | null; error: str
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // Determine final method
|
|
|
+ node.method = node.method || (hasData ? Method.post : Method.get)
|
|
|
+
|
|
|
if (!node.url)
|
|
|
return { node: null, error: 'Missing URL or url not start with http.' }
|
|
|
|