mirror of https://github.com/msgbyte/tailchat
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
import ExtendableError from 'es6-error';
|
|
|
|
class TcError extends ExtendableError {
|
|
public code: number;
|
|
public type: string;
|
|
public data: any;
|
|
public retryable: boolean;
|
|
|
|
constructor(message?: string, code?: number, type?: string, data?: unknown) {
|
|
super(message ?? '服务器出错');
|
|
this.code = code ?? this.code ?? 500;
|
|
this.type = type ?? this.type;
|
|
this.data = data ?? this.data;
|
|
this.retryable = this.retryable ?? false;
|
|
}
|
|
}
|
|
|
|
export class DataNotFoundError extends TcError {
|
|
constructor(message?: string, code?: number, type?: string, data?: unknown) {
|
|
super(message ?? '找不到数据', code ?? 404, type, data);
|
|
}
|
|
}
|
|
|
|
export class EntityError extends TcError {
|
|
constructor(
|
|
message?: string,
|
|
code?: number,
|
|
type?: string,
|
|
data?: { field: string; message: string }[]
|
|
) {
|
|
super(message ?? '表单不正确', code ?? 442, type, data);
|
|
}
|
|
}
|
|
|
|
export class NoPermissionError extends TcError {
|
|
constructor(message?: string, code?: number, type?: string, data?: unknown) {
|
|
super(message ?? '没有操作权限', code ?? 403, type, data);
|
|
}
|
|
}
|
|
|
|
export class ServiceUnavailableError extends TcError {
|
|
constructor(data?: unknown) {
|
|
super('Service unavailable', 503, 'SERVICE_NOT_AVAILABLE', data);
|
|
}
|
|
}
|