@@ -169,15 +169,17 @@ function getEncodeSnippetByMode (mode) {
169169 * @param {boolean } hasHeaders - wheter or not include the headers
170170 * @param {string } methodUC - The method upper cased
171171 * @param {string } mode - the request body mode
172+ * @param {number } requestTimeout - The request timeout in the options
172173 * @returns {String } - returns generated snippet
173174 */
174- function getSnippetPostPutOrPatchForm ( url , hasParams , hasHeaders , methodUC , mode ) {
175+ function getSnippetPostPutOrPatchForm ( url , hasParams , hasHeaders , methodUC , mode , requestTimeout = 0 ) {
175176 let paramsSnippet = hasParams ? ', body = body' : '' ,
176177 headersSnippet = hasHeaders ? ', add_headers(headers)' : '' ,
177- encodeSnippet = getEncodeSnippetByMode ( mode ) ;
178+ encodeSnippet = getEncodeSnippetByMode ( mode ) ,
179+ timeoutSnippet = requestTimeout ? `, timeout(${ requestTimeout } )` : '' ;
178180
179181 return `res <- ${ methodUC } ("${ url } "` +
180- `${ paramsSnippet } ${ headersSnippet } ${ encodeSnippet } )\n` ;
182+ `${ paramsSnippet } ${ headersSnippet } ${ encodeSnippet } ${ timeoutSnippet } )\n` ;
181183}
182184
183185/**
@@ -188,33 +190,36 @@ function getSnippetPostPutOrPatchForm (url, hasParams, hasHeaders, methodUC, mod
188190 * @param {string } url - string url of the service
189191 * @param {string } hasHeaders - wheter or not include the headers
190192 * @param {string } methodUC - the request method upper cased
193+ * @param {number } requestTimeout - the request timeout from options
191194 * @returns {String } - returns generated snippet
192195 */
193- function getSnippetGetOrDeleteURL ( url , hasHeaders , methodUC ) {
194- let headersSnippet = hasHeaders ? ', add_headers(headers)' : '' ;
195- return `res <- ${ methodUC } ("${ url } "${ headersSnippet } )\n` ;
196+ function getSnippetGetOrDeleteURL ( url , hasHeaders , methodUC , requestTimeout = 0 ) {
197+ let headersSnippet = hasHeaders ? ', add_headers(headers)' : '' ,
198+ requestTimeoutSnippet = requestTimeout === 0 ? '' : `, timeout(${ requestTimeout } )` ;
199+ return `res <- ${ methodUC } ("${ url } "${ headersSnippet } ${ requestTimeoutSnippet } )\n` ;
196200}
197201
198202/**
199203 * Creates the snippet request for either get ulr or post form
200204 *
201205 * @module convert
202206 *
203- * @param {string } url - string url of the service
204- * @param {string } method - request http method
205- * @param {boolean } hasParams - wheter or not include the params
206- * @param {boolean } hasHeaders - wheter or not include the headers
207- * @param {string } mode - the request body mode
207+ * @param {object } requestData - an object that includes:
208+ * {string} method - request http method
209+ * {boolean} hasParams - wheter or not include the params
210+ * {boolean} hasHeaders - wheter or not include the headers
211+ * {string} mode - the request body mode
212+ * {number} requestTimeout - The request timeout from the options
208213 * @returns {String } - returns generated snippet
209214 */
210- function getSnippetRequest ( url , method , hasParams , hasHeaders , mode ) {
215+ function getSnippetRequest ( { url, method, hasParams, hasHeaders, mode, requestTimeout } ) {
211216 const methodUC = method . toUpperCase ( ) ;
212217 let snippetRequest = '' ;
213218 if ( methodUC === 'GET' || methodUC === 'DELETE' ) {
214- snippetRequest = getSnippetGetOrDeleteURL ( url , hasHeaders , methodUC ) ;
219+ snippetRequest = getSnippetGetOrDeleteURL ( url , hasHeaders , methodUC , requestTimeout ) ;
215220 }
216221 if ( methodUC === 'POST' || methodUC === 'PUT' || methodUC === 'PATCH' ) {
217- snippetRequest = getSnippetPostPutOrPatchForm ( url , hasParams , hasHeaders , methodUC , mode ) ;
222+ snippetRequest = getSnippetPostPutOrPatchForm ( url , hasParams , hasHeaders , methodUC , mode , requestTimeout ) ;
218223 }
219224 return snippetRequest ;
220225}
@@ -258,7 +263,14 @@ function convert (request, options, callback) {
258263 snippetHeader = getSnippetHeader ( ) ,
259264 snippetFooter = getSnippetFooter ( ) ,
260265 snippetbody = parseBody ( request . body , indentation , getBodyTrim ( options ) , request . headers . get ( 'Content-Type' ) ) ,
261- snippetRequest = getSnippetRequest ( url , method , snippetbody !== '' , snippetHeaders !== '' , mode ) ;
266+ snippetRequest = getSnippetRequest ( {
267+ url : url ,
268+ method : method ,
269+ hasParams : snippetbody !== '' ,
270+ hasHeaders : snippetHeaders !== '' ,
271+ mode : mode ,
272+ requestTimeout : options . requestTimeout
273+ } ) ;
262274
263275 snippet += snippetHeader ;
264276 snippet += snippetHeaders ;
@@ -283,5 +295,6 @@ module.exports = {
283295 getSnippetHeaders,
284296 getSnippetPostPutOrPatchForm,
285297 getSnippetGetOrDeleteURL,
286- getSnippetRequest
298+ getSnippetRequest,
299+ getIndentation
287300} ;
0 commit comments