@middy/http-json-body-parser
Advanced tools
Comparing version 4.0.10 to 4.1.0
@@ -7,2 +7,3 @@ import middy from '@middy/core' | ||
reviver?: (key: string, value: any) => any | ||
disableContentTypeError?: boolean | ||
} | ||
@@ -9,0 +10,0 @@ |
18
index.js
import { createError } from '@middy/util'; | ||
const mimePattern = /^application\/(.+\+)?json($|;.+)/; | ||
const defaults = { | ||
reviver: undefined | ||
reviver: undefined, | ||
disableContentTypeError: true | ||
}; | ||
const httpJsonBodyParserMiddleware = (opts = {})=>{ | ||
const { reviver } = { | ||
const options = { | ||
...defaults, | ||
@@ -14,8 +15,15 @@ ...opts | ||
const contentType = headers['Content-Type'] ?? headers['content-type']; | ||
if (!mimePattern.test(contentType)) return; | ||
if (!mimePattern.test(contentType)) { | ||
if (options.disableContentTypeError) { | ||
return; | ||
} | ||
throw createError(415, '@middy/http-json-body-parser Unsupported Media Type', { | ||
cause: contentType | ||
}); | ||
} | ||
try { | ||
const data = request.event.isBase64Encoded ? Buffer.from(body, 'base64').toString() : body; | ||
request.event.body = JSON.parse(data, reviver); | ||
request.event.body = JSON.parse(data, options.reviver); | ||
} catch (cause) { | ||
throw createError(422, 'Invalid or malformed JSON was provided', { | ||
throw createError(415, 'Invalid or malformed JSON was provided', { | ||
cause | ||
@@ -22,0 +30,0 @@ }); |
{ | ||
"name": "@middy/http-json-body-parser", | ||
"version": "4.0.10", | ||
"version": "4.1.0", | ||
"description": "Http JSON body parser middleware for the middy framework", | ||
@@ -67,10 +67,10 @@ "type": "module", | ||
"dependencies": { | ||
"@middy/util": "4.0.10" | ||
"@middy/util": "4.1.0" | ||
}, | ||
"devDependencies": { | ||
"@middy/core": "4.0.10", | ||
"@middy/core": "4.1.0", | ||
"@types/aws-lambda": "^8.10.101", | ||
"type-fest": "^3.0.0" | ||
}, | ||
"gitHead": "e2a97d380fc4150781004092ea054f5d0fc7a8c0" | ||
"gitHead": "c5abbac9280c3a2f30758188233a7b27367901d1" | ||
} |
Sorry, the diff of this file is not supported yet
9008
95
+ Added@middy/util@4.1.0(transitive)
- Removed@middy/util@4.0.10(transitive)
Updated@middy/util@4.1.0