UNPKG

4.76 kBPlain TextView Raw
1export class ValidationError extends Error {
2 public fileName?: string;
3 public lineNumber?: number;
4 public status: 400 = 400;
5 public statusCode: 400 = 400;
6 public validation: any;
7 public expose: boolean;
8
9 public constructor(
10 message?: string,
11 expose: boolean = true,
12 validation?: string,
13 fileName?: string,
14 lineNumber?: number
15 ) {
16 super(message);
17 if (typeof fileName !== undefined) this.fileName = fileName;
18 if (typeof lineNumber !== undefined) this.lineNumber = lineNumber;
19 this.message = message || "The data is not valid.";
20 this.expose = expose;
21 this.validation = validation || {};
22 this.status = this.statusCode = 400;
23 }
24}
25
26export class UnsupportedMediaTypeError extends Error {
27 public fileName?: string;
28 public lineNumber?: number;
29 public status: 415 = 415;
30 public statusCode: 415 = 415;
31 public expose: boolean;
32
33 public constructor(
34 message?: string,
35 expose: boolean = true,
36 fileName?: string,
37 lineNumber?: number
38 ) {
39 super(message);
40 if (typeof fileName !== undefined) this.fileName = fileName;
41 if (typeof lineNumber !== undefined) this.lineNumber = lineNumber;
42 this.message = message || "The media type is unsupported.";
43 this.expose = expose;
44 }
45}
46
47export class NotFoundError extends Error {
48 public fileName?: string;
49 public lineNumber?: number;
50 public status: 404 = 404;
51 public statusCode: 404 = 404;
52 public expose: boolean;
53
54 public constructor(
55 message?: string,
56 expose: boolean = true,
57 fileName?: string,
58 lineNumber?: number
59 ) {
60 super(message);
61 if (typeof fileName !== undefined) this.fileName = fileName;
62 if (typeof lineNumber !== undefined) this.lineNumber = lineNumber;
63 this.message = message || "The resource does not exist.";
64 this.expose = expose;
65 }
66}
67
68export class ConflictError extends Error {
69 public fileName?: string;
70 public lineNumber?: number;
71 public status: 409 = 409;
72 public statusCode: 409 = 409;
73 public expose: boolean;
74
75 public constructor(
76 message?: string,
77 expose: boolean = true,
78 fileName?: string,
79 lineNumber?: number
80 ) {
81 super(message);
82 if (typeof fileName !== undefined) this.fileName = fileName;
83 if (typeof lineNumber !== undefined) this.lineNumber = lineNumber;
84 this.message = message || "A duplicate resource already exists.";
85 this.expose = expose;
86 }
87}
88
89export class AuthenticationError extends Error {
90 public fileName?: string;
91 public lineNumber?: number;
92 public status: 401 = 401;
93 public statusCode: 401 = 401;
94 public expose: boolean;
95
96 public constructor(
97 message?: string,
98 expose: boolean = true,
99 fileName?: string,
100 lineNumber?: number
101 ) {
102 super(message);
103 if (typeof fileName !== undefined) this.fileName = fileName;
104 if (typeof lineNumber !== undefined) this.lineNumber = lineNumber;
105 this.message = message || "Authentication failed.";
106 this.expose = expose;
107 }
108}
109
110export class ForbiddenError extends Error {
111 public fileName?: string;
112 public lineNumber?: number;
113 public status: 403 = 403;
114 public statusCode: 403 = 403;
115 public expose: boolean;
116
117 public constructor(
118 message?: string,
119 expose: boolean = true,
120 fileName?: string,
121 lineNumber?: number
122 ) {
123 super(message);
124 if (typeof fileName !== undefined) this.fileName = fileName;
125 if (typeof lineNumber !== undefined) this.lineNumber = lineNumber;
126 this.message = message || "The action is forbidden.";
127 this.expose = expose;
128 }
129}
130
131export class ServerError extends Error {
132 public fileName?: string;
133 public lineNumber?: number;
134 public status: 500 = 500;
135 public statusCode: 500 = 500;
136 public expose: boolean;
137
138 public constructor(
139 message?: string,
140 expose: boolean = true,
141 fileName?: string,
142 lineNumber?: number
143 ) {
144 super(message);
145 if (typeof fileName !== undefined) this.fileName = fileName;
146 if (typeof lineNumber !== undefined) this.lineNumber = lineNumber;
147 this.message = message || "An unknown error has occurred.";
148 this.expose = expose;
149 this.status = this.statusCode = 500;
150 }
151}
152
153export class NotImplementedError extends Error {
154 public fileName?: string;
155 public lineNumber?: number;
156 public status: 501 = 501;
157 public statusCode: 501 = 501;
158 public expose: boolean;
159
160 public constructor(
161 message?: string,
162 expose: boolean = true,
163 fileName?: string,
164 lineNumber?: number
165 ) {
166 super(message);
167 if (typeof fileName !== undefined) this.fileName = fileName;
168 if (typeof lineNumber !== undefined) this.lineNumber = lineNumber;
169 this.message = message || "The requested functionality is not implemented.";
170 this.expose = expose;
171 this.status = this.statusCode = 501;
172 }
173}