You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lib/src/util/error/ErrorWithContext.ts

27 lines
707 B

/**
* An Error base-class that also provides some additional context.
*
* All first-party error handlers in Extollo can render the context as part of
* the display of the error (e.g. in the console, in the HTML response, &c.)
*
* @example
* ```typescript
* function myFunc(arg1, arg2) {
* // ...do something...
* throw new ErrorWithContext('Something went wrong!', { arg1, arg2 })
* }
* ```
*/
export class ErrorWithContext extends Error {
public context: {[key: string]: any} = {}
public originalError?: Error
constructor(
message: string,
context?: {[key: string]: any}
) {
super(message)
if ( context ) this.context = context
}
}