2022-02-01 15:24:45 -05:00
|
|
|
enum ErrorType {
|
|
|
|
|
Unknown = 0,
|
|
|
|
|
InvalidToken = 401,
|
|
|
|
|
NotFound = 404,
|
|
|
|
|
InternalServerError = 500,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
interface ApiError {
|
|
|
|
|
code: number,
|
|
|
|
|
type: ErrorType,
|
|
|
|
|
message?: string,
|
|
|
|
|
data?: any,
|
|
|
|
|
}
|
|
|
|
|
|
2022-03-01 11:32:05 +01:00
|
|
|
export function parse(code: number, data?: any): ApiError {
|
2022-02-01 15:24:45 -05:00
|
|
|
var type = ErrorType[ErrorType[code]] ?? ErrorType.Unknown;
|
|
|
|
|
if (code >= 500) type = ErrorType.InternalServerError;
|
|
|
|
|
|
|
|
|
|
var err: ApiError = { code, type };
|
|
|
|
|
|
|
|
|
|
if (data) {
|
2022-03-01 11:32:05 +01:00
|
|
|
var d = data;
|
2022-02-01 15:24:45 -05:00
|
|
|
err.message = d.message;
|
|
|
|
|
err.data = d;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return err;
|
|
|
|
|
}
|