11import type { JSONValue } from '@aws-lambda-powertools/commons/types' ;
22import type { HandlerResponse , HttpStatusCode } from '../types/rest.js' ;
3- import { HttpErrorCodes } from './constants.js' ;
3+ import { HttpStatusCodes } from './constants.js' ;
44
5- export class RouteMatchingError extends Error {
5+ class RouteMatchingError extends Error {
66 constructor (
77 message : string ,
88 public readonly path : string ,
@@ -13,14 +13,14 @@ export class RouteMatchingError extends Error {
1313 }
1414}
1515
16- export class ParameterValidationError extends RouteMatchingError {
16+ class ParameterValidationError extends RouteMatchingError {
1717 constructor ( public readonly issues : string [ ] ) {
1818 super ( `Parameter validation failed: ${ issues . join ( ', ' ) } ` , '' , '' ) ;
1919 this . name = 'ParameterValidationError' ;
2020 }
2121}
2222
23- export abstract class ServiceError extends Error {
23+ abstract class ServiceError extends Error {
2424 abstract readonly statusCode : HttpStatusCode ;
2525 abstract readonly errorType : string ;
2626 public readonly details ?: Record < string , unknown > ;
@@ -47,8 +47,8 @@ export abstract class ServiceError extends Error {
4747 }
4848}
4949
50- export class BadRequestError extends ServiceError {
51- readonly statusCode = HttpErrorCodes . BAD_REQUEST ;
50+ class BadRequestError extends ServiceError {
51+ readonly statusCode = HttpStatusCodes . BAD_REQUEST ;
5252 readonly errorType = 'BadRequestError' ;
5353
5454 constructor (
@@ -57,11 +57,12 @@ export class BadRequestError extends ServiceError {
5757 details ?: Record < string , unknown >
5858 ) {
5959 super ( message , options , details ) ;
60+ this . name = 'BadRequestError' ;
6061 }
6162}
6263
63- export class UnauthorizedError extends ServiceError {
64- readonly statusCode = HttpErrorCodes . UNAUTHORIZED ;
64+ class UnauthorizedError extends ServiceError {
65+ readonly statusCode = HttpStatusCodes . UNAUTHORIZED ;
6566 readonly errorType = 'UnauthorizedError' ;
6667
6768 constructor (
@@ -70,11 +71,12 @@ export class UnauthorizedError extends ServiceError {
7071 details ?: Record < string , unknown >
7172 ) {
7273 super ( message , options , details ) ;
74+ this . name = 'UnauthorizedError' ;
7375 }
7476}
7577
76- export class ForbiddenError extends ServiceError {
77- readonly statusCode = HttpErrorCodes . FORBIDDEN ;
78+ class ForbiddenError extends ServiceError {
79+ readonly statusCode = HttpStatusCodes . FORBIDDEN ;
7880 readonly errorType = 'ForbiddenError' ;
7981
8082 constructor (
@@ -83,11 +85,12 @@ export class ForbiddenError extends ServiceError {
8385 details ?: Record < string , unknown >
8486 ) {
8587 super ( message , options , details ) ;
88+ this . name = 'ForbiddenError' ;
8689 }
8790}
8891
89- export class NotFoundError extends ServiceError {
90- readonly statusCode = HttpErrorCodes . NOT_FOUND ;
92+ class NotFoundError extends ServiceError {
93+ readonly statusCode = HttpStatusCodes . NOT_FOUND ;
9194 readonly errorType = 'NotFoundError' ;
9295
9396 constructor (
@@ -96,11 +99,12 @@ export class NotFoundError extends ServiceError {
9699 details ?: Record < string , unknown >
97100 ) {
98101 super ( message , options , details ) ;
102+ this . name = 'NotFoundError' ;
99103 }
100104}
101105
102- export class MethodNotAllowedError extends ServiceError {
103- readonly statusCode = HttpErrorCodes . METHOD_NOT_ALLOWED ;
106+ class MethodNotAllowedError extends ServiceError {
107+ readonly statusCode = HttpStatusCodes . METHOD_NOT_ALLOWED ;
104108 readonly errorType = 'MethodNotAllowedError' ;
105109
106110 constructor (
@@ -109,11 +113,12 @@ export class MethodNotAllowedError extends ServiceError {
109113 details ?: Record < string , unknown >
110114 ) {
111115 super ( message , options , details ) ;
116+ this . name = 'MethodNotAllowedError' ;
112117 }
113118}
114119
115- export class RequestTimeoutError extends ServiceError {
116- readonly statusCode = HttpErrorCodes . REQUEST_TIMEOUT ;
120+ class RequestTimeoutError extends ServiceError {
121+ readonly statusCode = HttpStatusCodes . REQUEST_TIMEOUT ;
117122 readonly errorType = 'RequestTimeoutError' ;
118123
119124 constructor (
@@ -122,11 +127,12 @@ export class RequestTimeoutError extends ServiceError {
122127 details ?: Record < string , unknown >
123128 ) {
124129 super ( message , options , details ) ;
130+ this . name = 'RequestTimeoutError' ;
125131 }
126132}
127133
128- export class RequestEntityTooLargeError extends ServiceError {
129- readonly statusCode = HttpErrorCodes . REQUEST_ENTITY_TOO_LARGE ;
134+ class RequestEntityTooLargeError extends ServiceError {
135+ readonly statusCode = HttpStatusCodes . REQUEST_ENTITY_TOO_LARGE ;
130136 readonly errorType = 'RequestEntityTooLargeError' ;
131137
132138 constructor (
@@ -135,11 +141,12 @@ export class RequestEntityTooLargeError extends ServiceError {
135141 details ?: Record < string , unknown >
136142 ) {
137143 super ( message , options , details ) ;
144+ this . name = 'RequestEntityTooLargeError' ;
138145 }
139146}
140147
141- export class InternalServerError extends ServiceError {
142- readonly statusCode = HttpErrorCodes . INTERNAL_SERVER_ERROR ;
148+ class InternalServerError extends ServiceError {
149+ readonly statusCode = HttpStatusCodes . INTERNAL_SERVER_ERROR ;
143150 readonly errorType = 'InternalServerError' ;
144151
145152 constructor (
@@ -148,11 +155,12 @@ export class InternalServerError extends ServiceError {
148155 details ?: Record < string , unknown >
149156 ) {
150157 super ( message , options , details ) ;
158+ this . name = 'InternalServerError' ;
151159 }
152160}
153161
154- export class ServiceUnavailableError extends ServiceError {
155- readonly statusCode = HttpErrorCodes . SERVICE_UNAVAILABLE ;
162+ class ServiceUnavailableError extends ServiceError {
163+ readonly statusCode = HttpStatusCodes . SERVICE_UNAVAILABLE ;
156164 readonly errorType = 'ServiceUnavailableError' ;
157165
158166 constructor (
@@ -161,5 +169,21 @@ export class ServiceUnavailableError extends ServiceError {
161169 details ?: Record < string , unknown >
162170 ) {
163171 super ( message , options , details ) ;
172+ this . name = 'ServiceUnavailableError' ;
164173 }
165174}
175+
176+ export {
177+ BadRequestError ,
178+ ForbiddenError ,
179+ InternalServerError ,
180+ MethodNotAllowedError ,
181+ NotFoundError ,
182+ ParameterValidationError ,
183+ RequestEntityTooLargeError ,
184+ RequestTimeoutError ,
185+ RouteMatchingError ,
186+ ServiceError ,
187+ ServiceUnavailableError ,
188+ UnauthorizedError ,
189+ } ;
0 commit comments