@middy/http-response-serializer 2.5.5 → 2.5.6

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 +39 -47
  2. package/package.json +4 -5
package/index.js CHANGED
@@ -1,74 +1,66 @@
1
- "use strict";
2
-
3
- const {
4
- normalizeHttpResponse
5
- } = require('@middy/util');
6
-
7
- const Accept = require('@hapi/accept');
1
+ const { normalizeHttpResponse } = require('@middy/util')
2
+ const Accept = require('@hapi/accept')
8
3
 
9
4
  const defaults = {
10
5
  serializers: [],
11
6
  default: undefined
12
- };
7
+ }
13
8
 
14
9
  const httpResponseSerializerMiddleware = (opts = {}) => {
15
- const options = { ...defaults,
16
- ...opts
17
- };
18
-
19
- const httpResponseSerializerMiddlewareAfter = async request => {
20
- var _request$event;
21
-
22
- if (request.response === undefined) return;
23
- request.response = normalizeHttpResponse(request.response); // skip serialization when content-type is already set
24
-
25
- if (request.response.headers['Content-Type'] || request.response.headers['content-type']) {
26
- return;
27
- } // find accept value(s)
28
-
10
+ const options = { ...defaults, ...opts }
11
+ const httpResponseSerializerMiddlewareAfter = async (request) => {
12
+ if (request.response === undefined) return
13
+ request.response = normalizeHttpResponse(request.response)
14
+ // skip serialization when content-type is already set
15
+ if (
16
+ request.response.headers['Content-Type'] ||
17
+ request.response.headers['content-type']
18
+ ) {
19
+ return
20
+ }
29
21
 
30
- let types;
22
+ // find accept value(s)
23
+ let types
31
24
 
32
- if ((_request$event = request.event) !== null && _request$event !== void 0 && _request$event.requiredContentType) {
33
- types = [request.event.requiredContentType];
25
+ if (request.event?.requiredContentType) {
26
+ types = [request.event.requiredContentType]
34
27
  } else {
35
- var _request$event$header, _request$event2, _request$event2$heade, _request$event3, _request$event3$heade, _ref;
36
-
37
- const acceptHeader = (_request$event$header = (_request$event2 = request.event) === null || _request$event2 === void 0 ? void 0 : (_request$event2$heade = _request$event2.headers) === null || _request$event2$heade === void 0 ? void 0 : _request$event2$heade.accept) !== null && _request$event$header !== void 0 ? _request$event$header : (_request$event3 = request.event) === null || _request$event3 === void 0 ? void 0 : (_request$event3$heade = _request$event3.headers) === null || _request$event3$heade === void 0 ? void 0 : _request$event3$heade.Accept;
38
- types = [...((_ref = acceptHeader && Accept.mediaTypes(acceptHeader)) !== null && _ref !== void 0 ? _ref : []), request.event.preferredContentType, options.default];
28
+ const acceptHeader =
29
+ request.event?.headers?.accept ?? request.event?.headers?.Accept
30
+ types = [
31
+ ...((acceptHeader && Accept.mediaTypes(acceptHeader)) ?? []),
32
+ request.event.preferredContentType,
33
+ options.default
34
+ ]
39
35
  }
40
36
 
41
37
  for (const type of types) {
42
- let breakTypes;
43
-
38
+ let breakTypes
44
39
  for (const s of options.serializers) {
45
40
  if (!s.regex.test(type)) {
46
- continue;
41
+ continue
47
42
  }
48
43
 
49
- request.response.headers['Content-Type'] = type;
50
- const result = s.serializer(request.response);
51
-
44
+ request.response.headers['Content-Type'] = type
45
+ const result = s.serializer(request.response)
52
46
  if (typeof result === 'object' && 'body' in result) {
53
- request.response = result;
47
+ request.response = result
54
48
  } else {
55
49
  // otherwise only replace the body attribute
56
- request.response.body = result;
50
+ request.response.body = result
57
51
  }
58
52
 
59
- breakTypes = true;
60
- break;
53
+ breakTypes = true
54
+ break
61
55
  }
62
-
63
- if (breakTypes) break;
56
+ if (breakTypes) break
64
57
  }
65
- };
66
-
67
- const httpResponseSerializerMiddlewareOnError = httpResponseSerializerMiddlewareAfter;
58
+ }
59
+ const httpResponseSerializerMiddlewareOnError = httpResponseSerializerMiddlewareAfter
68
60
  return {
69
61
  after: httpResponseSerializerMiddlewareAfter,
70
62
  onError: httpResponseSerializerMiddlewareOnError
71
- };
72
- };
63
+ }
64
+ }
73
65
 
74
- module.exports = httpResponseSerializerMiddleware;
66
+ module.exports = httpResponseSerializerMiddleware
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@middy/http-response-serializer",
3
- "version": "2.5.5",
3
+ "version": "2.5.6",
4
4
  "description": "The Http Serializer middleware lets you define serialization mechanisms based on the current content negotiation.",
5
5
  "type": "commonjs",
6
6
  "engines": {
@@ -50,11 +50,10 @@
50
50
  "homepage": "https://github.com/middyjs/middy#readme",
51
51
  "dependencies": {
52
52
  "@hapi/accept": "5.0.2",
53
- "@middy/util": "^2.5.5"
53
+ "@middy/util": "^2.5.6"
54
54
  },
55
55
  "devDependencies": {
56
- "@middy/core": "^2.5.5",
57
- "http-errors": "^1.8.0"
56
+ "@middy/core": "^2.5.6"
58
57
  },
59
- "gitHead": "b84840ec8afd289f6decfd0d645be4899051792d"
58
+ "gitHead": "0c789f55b4adf691f977b0d9904d1a805bb3bb2b"
60
59
  }