WIP: initial prototype

- Added randomizeHost option
- Added ignore status code option
- Updated error classes
- Added ndjson support
- Retry on 502/3/4
This commit is contained in:
delvedor
2018-10-25 17:10:00 +02:00
parent 145e2ab5e5
commit 8ce9f970f0
5 changed files with 69 additions and 15 deletions

View File

@ -10,20 +10,22 @@ class BadConfigurationError extends Error {
}
class TimeoutError extends Error {
constructor (message) {
constructor (message, request) {
super()
Error.captureStackTrace(this, TimeoutError)
this.name = 'TimeoutError'
this.message = message || 'Timeout Error'
this.request = request
}
}
class ConnectionError extends Error {
constructor (message) {
constructor (message, request) {
super()
Error.captureStackTrace(this, ConnectionError)
this.name = 'ConnectionError'
this.message = message || 'Connection Error'
this.request = request
}
}
@ -55,13 +57,14 @@ class DeserializationError extends Error {
}
class ResponseError extends Error {
constructor (err) {
constructor (payload, statusCode, headers) {
super()
Error.captureStackTrace(this, ResponseError)
this.name = 'ResponseError'
this.message = (err && err.error && err.error.type) || 'Response Error'
this.response = err
this.statusCode = err && err.status
this.message = (payload && payload.error && payload.error.type) || 'Response Error'
this.response = payload
this.statusCode = (payload && payload.status) || statusCode
this.headers = headers
}
}