import { createWriteStream, remove } from 'fs-extra'
-import got, { CancelableRequest, Options as GotOptions, RequestError, Response } from 'got'
+import got, { CancelableRequest, NormalizedOptions, Options as GotOptions, RequestError, Response } from 'got'
import { HttpProxyAgent, HttpsProxyAgent } from 'hpagent'
import { join } from 'path'
import { CONFIG } from '../initializers/config'
export interface PeerTubeRequestError extends Error {
statusCode?: number
responseBody?: any
+ responseHeaders?: any
}
type PeerTubeRequestOptions = {
}, httpSignatureOptions)
}
}
+ ],
+
+ beforeRetry: [
+ (_options: NormalizedOptions, error: RequestError, retryCount: number) => {
+ logger.debug('Retrying request to %s.', error.request.requestUrl, { retryCount, error: buildRequestError(error), ...lTags() })
+ }
]
}
})
const gotOptions = buildGotOptions(options)
return peertubeGot(url, gotOptions)
- .on('retry', logRetryFactory(url))
.catch(err => { throw buildRequestError(err) })
}
const gotOptions = buildGotOptions(options)
return peertubeGot<T>(url, { ...gotOptions, responseType: 'json' })
- .on('retry', logRetryFactory(url))
.catch(err => { throw buildRequestError(err) })
}
if (error.response) {
newError.responseBody = error.response.body
+ newError.responseHeaders = error.response.headers
newError.statusCode = error.response.statusCode
}
return newError
}
-
-function logRetryFactory (url: string) {
- return (retryCount: number, error: RequestError) => {
- logger.debug('Retrying request to %s.', url, { retryCount, error, ...lTags() })
- }
-}