-
Matiss Janis Aboltins authoredMatiss Janis Aboltins authored
errors.ts 1.15 KiB
// TODO: normalize error types
export class PostError extends Error {
meta;
reason;
type;
constructor(reason, meta?) {
super('PostError: ' + reason);
this.type = 'PostError';
this.reason = reason;
this.meta = meta;
}
}
export class HTTPError extends Error {
statusCode;
responseBody;
constructor(code, body) {
super(`HTTPError: unsuccessful status code (${code}): ${body}`);
this.statusCode = code;
this.responseBody = body;
}
}
export class SyncError extends Error {
meta;
reason;
constructor(reason, meta?) {
super('SyncError: ' + reason);
this.reason = reason;
this.meta = meta;
}
}
export class TransactionError extends Error {}
export class RuleError extends Error {
type: string;
constructor(name: string, message: string) {
super('RuleError: ' + message);
this.type = name;
}
}
export function APIError(msg, meta?) {
return { type: 'APIError', message: msg, meta };
}
export function FileDownloadError(reason, meta?) {
return { type: 'FileDownloadError', reason, meta };
}
export function FileUploadError(reason, meta?) {
return { type: 'FileUploadError', reason, meta };
}