process.nextTick(() => { libcurl.finished = true; curl.close(); cb(badRequestError); });
curl.on('end', (statusCode, body, _headers) => { libcurl._debug('[END EVENT]', opts.retries, url.href, finished, statusCode); stopRequestTimeout(); if (finished) { return; } finished = true; if (libcurl.pipeTo) { libcurl.pipeTo.end(); } curl.close(); const headers = {}; if (_headers && _headers[0]) { delete _headers[0].result; for (let headerName in _headers[0]) { if (_headers[0][headerName]) { headers[headerName.toLowerCase()] = _headers[0][headerName]; } } } cb(void 0, {statusCode, status: statusCode, body, headers}); });
curl.on('error', (error, errorCode) => { libcurl._debug('REQUEST ERROR:', opts.retries, url.href, {error, errorCode}); stopRequestTimeout(); if (finished) { return; } finished = true; curl.close(); let statusCode = 408; if (errorCode === 52) { statusCode = 503; } else if (errorCode === 47) { statusCode = 429; } else if (errorCode === 60 || errorCode === 91) { statusCode = 526; } error.code = errorCode; error.status = statusCode; error.message = typeof error.toString === 'function' ? error.toString() : 'Error occurred during request'; error.errorCode = errorCode; error.statusCode = statusCode; cb(error); });