@@ -220,7 +220,7 @@ export const handler = router.handler({
220
220
221
221
</details>
222
222
223
- ## Error mapping
223
+ ## Error mapping / handling
224
224
225
225
` ` ` js
226
226
import * as router from ' aws-lambda-router'
@@ -255,7 +255,43 @@ The action can throw an object like
255
255
"throw {reason: 'NotFound', message: 'object id not found'}"
256
256
257
257
and the http response then contains the configured value as response code and the message as the body.
258
-
258
+
259
+ ### Genereric error handler for proxyIntegration
260
+
261
+ Also there is implemented an generic error handler. The idea is to have a place for handling error logging and also return custom error messages.
262
+
263
+ <details>
264
+ <summary>Generic error handling example</summary>
265
+
266
+ ` ` ` js
267
+ onError : (error , event , context ) => {
268
+ // Global exceptions goes here, works for sns, s3 and sqs should end up here aswell
269
+ console .log (error )
270
+ },
271
+ proxyIntegration : {
272
+ onError : (error , request , context ) => {
273
+ // proxy integration exceptions goes here
274
+ console .log (' Error' , error , request , context )
275
+ },
276
+ routes: ...
277
+ }
278
+
279
+ // Also support returning a response:
280
+ proxyIntegration : {
281
+ onError : async (error ) => {
282
+ console .log (' Error' , error )
283
+ await someAsyncMethod ();
284
+ return {
285
+ statusCode: 401 ,
286
+ body: Not allowed
287
+ }
288
+ },
289
+ routes: ...
290
+ }
291
+ ` ` `
292
+ </details>
293
+
294
+ For more examples please look into the [tests](test/proxyIntegration.test.ts) of proxyIntegration.
259
295
260
296
## SNS to Lambda Integrations
261
297
0 commit comments