@middy/http-json-body-parser 5.1.0 → 5.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.js +42 -41
  2. package/package.json +4 -4
package/index.js CHANGED
@@ -1,43 +1,44 @@
1
- import { createError } from '@middy/util';
2
- const mimePattern = /^application\/(.+\+)?json($|;.+)/;
1
+ import { createError } from '@middy/util'
2
+
3
+ const mimePattern = /^application\/(.+\+)?json($|;.+)/
4
+
3
5
  const defaults = {
4
- reviver: undefined,
5
- disableContentTypeError: false
6
- };
7
- const httpJsonBodyParserMiddleware = (opts = {})=>{
8
- const options = {
9
- ...defaults,
10
- ...opts
11
- };
12
- const httpJsonBodyParserMiddlewareBefore = async (request)=>{
13
- const { headers, body } = request.event;
14
- const contentType = headers?.['Content-Type'] ?? headers?.['content-type'];
15
- if (!mimePattern.test(contentType)) {
16
- if (options.disableContentTypeError) {
17
- return;
18
- }
19
- throw createError(415, 'Unsupported Media Type', {
20
- cause: {
21
- package: '@middy/http-json-body-parser',
22
- data: contentType
23
- }
24
- });
25
- }
26
- try {
27
- const data = request.event.isBase64Encoded ? Buffer.from(body, 'base64').toString() : body;
28
- request.event.body = JSON.parse(data, options.reviver);
29
- } catch (err) {
30
- throw createError(415, 'Invalid or malformed JSON was provided', {
31
- cause: {
32
- package: '@middy/http-json-body-parser',
33
- data: err
34
- }
35
- });
36
- }
37
- };
38
- return {
39
- before: httpJsonBodyParserMiddlewareBefore
40
- };
41
- };
42
- export default httpJsonBodyParserMiddleware;
6
+ reviver: undefined,
7
+ disableContentTypeError: false
8
+ }
9
+
10
+ const httpJsonBodyParserMiddleware = (opts = {}) => {
11
+ const options = { ...defaults, ...opts }
12
+ const httpJsonBodyParserMiddlewareBefore = async (request) => {
13
+ const { headers, body } = request.event
14
+
15
+ const contentType = headers?.['Content-Type'] ?? headers?.['content-type']
16
+
17
+ if (!mimePattern.test(contentType)) {
18
+ if (options.disableContentTypeError) {
19
+ return
20
+ }
21
+ throw createError(415, 'Unsupported Media Type', {
22
+ cause: { package: '@middy/http-json-body-parser', data: contentType }
23
+ })
24
+ }
25
+
26
+ try {
27
+ const data = request.event.isBase64Encoded
28
+ ? Buffer.from(body, 'base64').toString()
29
+ : body
30
+
31
+ request.event.body = JSON.parse(data, options.reviver)
32
+ } catch (err) {
33
+ // UnprocessableEntity
34
+ throw createError(415, 'Invalid or malformed JSON was provided', {
35
+ cause: { package: '@middy/http-json-body-parser', data: err }
36
+ })
37
+ }
38
+ }
43
39
 
40
+ return {
41
+ before: httpJsonBodyParserMiddlewareBefore
42
+ }
43
+ }
44
+ export default httpJsonBodyParserMiddleware
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@middy/http-json-body-parser",
3
- "version": "5.1.0",
3
+ "version": "5.2.1",
4
4
  "description": "Http JSON body parser middleware for the middy framework",
5
5
  "type": "module",
6
6
  "engines": {
@@ -62,12 +62,12 @@
62
62
  "url": "https://github.com/sponsors/willfarrell"
63
63
  },
64
64
  "dependencies": {
65
- "@middy/util": "5.1.0"
65
+ "@middy/util": "5.2.1"
66
66
  },
67
67
  "devDependencies": {
68
- "@middy/core": "5.1.0",
68
+ "@middy/core": "5.2.1",
69
69
  "@types/aws-lambda": "^8.10.101",
70
70
  "type-fest": "^4.0.0"
71
71
  },
72
- "gitHead": "bbdaf5843914921804ba085dd58117273febe6b5"
72
+ "gitHead": "4d55da221b9165b4b3e59a12632fd40a149a1e92"
73
73
  }