tus-js-client-stall-detection
Version:
A pure JavaScript client for the tus resumable upload protocol (fork with stall detection)
32 lines (24 loc) • 953 B
text/typescript
import type { HttpRequest, HttpResponse } from './options.js'
export class DetailedError extends Error {
originalRequest?: HttpRequest
originalResponse?: HttpResponse
causingError?: Error
constructor(message: string, causingErr?: Error, req?: HttpRequest, res?: HttpResponse) {
super(message)
this.originalRequest = req
this.originalResponse = res
this.causingError = causingErr
if (causingErr != null) {
message += `, caused by ${causingErr.toString()}`
}
if (req != null) {
const requestId = req.getHeader('X-Request-ID') || 'n/a'
const method = req.getMethod()
const url = req.getURL()
const status = res ? res.getStatus() : 'n/a'
const body = res ? res.getBody() || '' : 'n/a'
message += `, originated from request (method: ${method}, url: ${url}, response code: ${status}, response text: ${body}, request id: ${requestId})`
}
this.message = message
}
}