@middy/http-response-serializer 2.5.6 → 2.5.7

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 +47 -39
  2. package/package.json +4 -4
package/index.js CHANGED
@@ -1,66 +1,74 @@
1
- const { normalizeHttpResponse } = require('@middy/util')
2
- const Accept = require('@hapi/accept')
1
+ "use strict";
2
+
3
+ const {
4
+ normalizeHttpResponse
5
+ } = require('@middy/util');
6
+
7
+ const Accept = require('@hapi/accept');
3
8
 
4
9
  const defaults = {
5
10
  serializers: [],
6
11
  default: undefined
7
- }
12
+ };
8
13
 
9
14
  const httpResponseSerializerMiddleware = (opts = {}) => {
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
- }
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)
21
28
 
22
- // find accept value(s)
23
- let types
24
29
 
25
- if (request.event?.requiredContentType) {
26
- types = [request.event.requiredContentType]
30
+ let types;
31
+
32
+ if ((_request$event = request.event) !== null && _request$event !== void 0 && _request$event.requiredContentType) {
33
+ types = [request.event.requiredContentType];
27
34
  } else {
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
- ]
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];
35
39
  }
36
40
 
37
41
  for (const type of types) {
38
- let breakTypes
42
+ let breakTypes;
43
+
39
44
  for (const s of options.serializers) {
40
45
  if (!s.regex.test(type)) {
41
- continue
46
+ continue;
42
47
  }
43
48
 
44
- request.response.headers['Content-Type'] = type
45
- const result = s.serializer(request.response)
49
+ request.response.headers['Content-Type'] = type;
50
+ const result = s.serializer(request.response);
51
+
46
52
  if (typeof result === 'object' && 'body' in result) {
47
- request.response = result
53
+ request.response = result;
48
54
  } else {
49
55
  // otherwise only replace the body attribute
50
- request.response.body = result
56
+ request.response.body = result;
51
57
  }
52
58
 
53
- breakTypes = true
54
- break
59
+ breakTypes = true;
60
+ break;
55
61
  }
56
- if (breakTypes) break
62
+
63
+ if (breakTypes) break;
57
64
  }
58
- }
59
- const httpResponseSerializerMiddlewareOnError = httpResponseSerializerMiddlewareAfter
65
+ };
66
+
67
+ const httpResponseSerializerMiddlewareOnError = httpResponseSerializerMiddlewareAfter;
60
68
  return {
61
69
  after: httpResponseSerializerMiddlewareAfter,
62
70
  onError: httpResponseSerializerMiddlewareOnError
63
- }
64
- }
71
+ };
72
+ };
65
73
 
66
- module.exports = httpResponseSerializerMiddleware
74
+ module.exports = httpResponseSerializerMiddleware;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@middy/http-response-serializer",
3
- "version": "2.5.6",
3
+ "version": "2.5.7",
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,10 +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.6"
53
+ "@middy/util": "^2.5.7"
54
54
  },
55
55
  "devDependencies": {
56
- "@middy/core": "^2.5.6"
56
+ "@middy/core": "^2.5.7"
57
57
  },
58
- "gitHead": "0c789f55b4adf691f977b0d9904d1a805bb3bb2b"
58
+ "gitHead": "3983c4b138e1a4d7fcb3ed805d3b8832fff06fc1"
59
59
  }