mirror of
https://github.com/feathersjs/feathers.git
synced 2026-01-25 15:23:13 +00:00
276 lines
6.6 KiB
TypeScript
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;
|
|
}
|