24 lines
792 B
TypeScript
24 lines
792 B
TypeScript
export class ApiError extends Error {
|
|
constructor(readonly message: string, public readonly code: number, public readonly httpStatus: number = 400, public readonly defaultParams?: string[]) {
|
|
super(message);
|
|
}
|
|
|
|
withDefaultParams(): ApiError {
|
|
if(this.defaultParams)
|
|
return new ApiError(applyParamsToString(this.message, this.defaultParams), this.code, this.httpStatus)
|
|
return this
|
|
}
|
|
|
|
withParams(...params: string[]): ApiError {
|
|
return new ApiError(applyParamsToString(this.message, params), this.code, this.httpStatus)
|
|
}
|
|
}
|
|
|
|
export function applyParamsToString(s: string, params: string[]): string {
|
|
let newString = s
|
|
params.forEach(a => {
|
|
newString = newString.replace("{}", a)
|
|
})
|
|
return newString
|
|
}
|