2021-04-20 17:14:17 -07:00

276 lines
6.6 KiB
TypeScript

// DO NOT MODIFY - generated from packages/errors/src/index.ts
export interface FeathersErrorJSON {
name: string;
message: string;
code: number;
className: string;
data?: any;
errors?: any;
}
export type DynamicError = Error & { [key: string]: any };
export type ErrorMessage = string | DynamicError | { [key: string]: any } | any[];
interface ErrorProperties extends Omit<FeathersErrorJSON, 'message'> {
type: string;
}
export class FeathersError extends Error {
readonly type: string;
readonly code: number;
readonly className: string;
readonly data: any;
readonly errors: any;
constructor (err: ErrorMessage, name: string, code: number, className: string, _data: any) {
let msg = typeof err === 'string' ? err : 'Error';
const properties: ErrorProperties = {
name,
code,
className,
type: 'FeathersError'
};
if (Array.isArray(_data)) {
properties.data = _data;
} else if (typeof err === 'object' || _data !== undefined) {
const { message, errors, ...rest } = typeof err === 'object' ? err : _data;
msg = message || msg;
properties.errors = errors;
properties.data = rest;
}
super(msg);
Object.assign(this, properties);
}
toJSON () {
const result: FeathersErrorJSON = {
name: this.name,
message: this.message,
code: this.code,
className: this.className
};
if (this.data !== undefined) {
result.data = this.data;
}
if (this.errors !== undefined) {
result.errors = this.errors;
}
return result;
}
}
export class BadRequest extends FeathersError {
constructor (message?: ErrorMessage, data?: any) {
super(message, 'BadRequest', 400, 'bad-request', data);
}
}
// 401 - Not Authenticated
export class NotAuthenticated extends FeathersError{
constructor (message?: ErrorMessage, data?: any) {
super(message, 'NotAuthenticated', 401, 'not-authenticated', data);
}
}
// 402 - Payment Error
export class PaymentError extends FeathersError {
constructor (message?: ErrorMessage, data?: any) {
super(message, 'PaymentError', 402, 'payment-error', data);
}
}
// 403 - Forbidden
export class Forbidden extends FeathersError {
constructor (message?: ErrorMessage, data?: any) {
super(message, 'Forbidden', 403, 'forbidden', data);
}
}
// 404 - Not Found
export class NotFound extends FeathersError {
constructor (message?: ErrorMessage, data?: any) {
super(message, 'NotFound', 404, 'not-found', data);
}
}
// 405 - Method Not Allowed
export class MethodNotAllowed extends FeathersError {
constructor (message?: ErrorMessage, data?: any) {
super(message, 'MethodNotAllowed', 405, 'method-not-allowed', data);
}
}
// 406 - Not Acceptable
export class NotAcceptable extends FeathersError {
constructor (message?: ErrorMessage, data?: any) {
super(message, 'NotAcceptable', 406, 'not-acceptable', data);
}
}
// 408 - Timeout
export class Timeout extends FeathersError {
constructor (message?: ErrorMessage, data?: any) {
super(message, 'Timeout', 408, 'timeout', data);
}
}
// 409 - Conflict
export class Conflict extends FeathersError {
constructor (message?: ErrorMessage, data?: any) {
super(message, 'Conflict', 409, 'conflict', data);
}
}
// 410 - Gone
export class Gone extends FeathersError {
constructor (message?: ErrorMessage, data?: any) {
super(message, 'Gone', 410, 'gone', data);
}
}
// 411 - Length Required
export class LengthRequired extends FeathersError {
constructor (message?: ErrorMessage, data?: any) {
super(message, 'LengthRequired', 411, 'length-required', data);
}
}
// 422 Unprocessable
export class Unprocessable extends FeathersError {
constructor (message?: ErrorMessage, data?: any) {
super(message, 'Unprocessable', 422, 'unprocessable', data);
}
}
// 429 Too Many Requests
export class TooManyRequests extends FeathersError {
constructor (message?: ErrorMessage, data?: any) {
super(message, 'TooManyRequests', 429, 'too-many-requests', data);
}
}
// 500 - General Error
export class GeneralError extends FeathersError {
constructor (message?: ErrorMessage, data?: any) {
super(message, 'GeneralError', 500, 'general-error', data);
}
}
// 501 - Not Implemented
export class NotImplemented extends FeathersError {
constructor (message?: ErrorMessage, data?: any) {
super(message, 'NotImplemented', 501, 'not-implemented', data);
}
}
// 502 - Bad Gateway
export class BadGateway extends FeathersError {
constructor (message?: ErrorMessage, data?: any) {
super(message, 'BadGateway', 502, 'bad-gateway', data);
}
}
// 503 - Unavailable
export class Unavailable extends FeathersError {
constructor (message?: ErrorMessage, data?: any) {
super(message, 'Unavailable', 503, 'unavailable', data);
}
}
export interface Errors {
FeathersError: FeathersError;
BadRequest: BadRequest;
NotAuthenticated: NotAuthenticated;
PaymentError: PaymentError;
Forbidden: Forbidden;
NotFound: NotFound;
MethodNotAllowed: MethodNotAllowed;
NotAcceptable: NotAcceptable;
Timeout: Timeout;
Conflict: Conflict;
LengthRequired: LengthRequired;
Unprocessable: Unprocessable;
TooManyRequests: TooManyRequests;
GeneralError: GeneralError;
NotImplemented: NotImplemented;
BadGateway: BadGateway;
Unavailable: Unavailable;
400: BadRequest;
401: NotAuthenticated;
402: PaymentError;
403: Forbidden;
404: NotFound;
405: MethodNotAllowed;
406: NotAcceptable;
408: Timeout;
409: Conflict;
411: LengthRequired;
422: Unprocessable;
429: TooManyRequests;
500: GeneralError;
501: NotImplemented;
502: BadGateway;
503: Unavailable;
}
export const errors = {
FeathersError,
BadRequest,
NotAuthenticated,
PaymentError,
Forbidden,
NotFound,
MethodNotAllowed,
NotAcceptable,
Timeout,
Conflict,
LengthRequired,
Unprocessable,
TooManyRequests,
GeneralError,
NotImplemented,
BadGateway,
Unavailable,
400: BadRequest,
401: NotAuthenticated,
402: PaymentError,
403: Forbidden,
404: NotFound,
405: MethodNotAllowed,
406: NotAcceptable,
408: Timeout,
409: Conflict,
410: Gone,
411: LengthRequired,
422: Unprocessable,
429: TooManyRequests,
500: GeneralError,
501: NotImplemented,
502: BadGateway,
503: Unavailable
}
export function convert (error: any) {
if (!error) {
return error;
}
const FeathersError = (errors as any)[error.name];
const result = FeathersError
? new FeathersError(error.message, error.data)
: new Error(error.message || error);
if (typeof error === 'object') {
Object.assign(result, error);
}
return result;
}