| @@ -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.' } | |||