This repository has been archived on 2026-02-28. You can view files and clone it, but cannot push or open issues or pull requests.

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
}