error3
Version:
Error3 is proper JS error implementation. It supports error codes, message formatting (e.g. i18n) and nested errors.
25 lines (19 loc) • 495 B
text/typescript
import Error3 from 'error3'
const formatters = {
404: ({url}) => `Url "${url} not found`,
500: (_, [error]) => `Internal server error: ${error.message}`
}
class HttpError extends Error3 {
format(details: object, errors: Error[]) {
return formatters[this.code](details, errors)
}
}
type HttpDetails = {
url: string
}
export class NotFound extends HttpError<HttpDetails, void> {
code = 404
}
export class InternalError extends HttpError<HttpDetails, [error]> {
code = 500
}