@middy/http-response-serializer 3.0.0-alpha.2 → 3.0.0-alpha.3

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 +37 -37
  2. package/package.json +6 -5
package/index.js CHANGED
@@ -1,64 +1,64 @@
1
- import { normalizeHttpResponse } from '@middy/util';
2
- import Accept from '@hapi/accept';
1
+ import { normalizeHttpResponse } from '@middy/util'
2
+ import Accept from '@hapi/accept'
3
+
3
4
  const defaults = {
4
5
  serializers: [],
5
6
  defaultContentType: undefined
6
- };
7
+ }
7
8
 
8
9
  const httpResponseSerializerMiddleware = (opts = {}) => {
9
- const {
10
- serializers,
11
- defaultContentType
12
- } = { ...defaults,
13
- ...opts
14
- };
10
+ const { serializers, defaultContentType } = { ...defaults, ...opts }
11
+ const httpResponseSerializerMiddlewareAfter = async (request) => {
12
+ normalizeHttpResponse(request)
13
+
14
+ // skip serialization when Content-Type is already set
15
+ if (request.response.headers['Content-Type']) return
15
16
 
16
- const httpResponseSerializerMiddlewareAfter = async request => {
17
- normalizeHttpResponse(request);
18
- if (request.response.headers['Content-Type']) return;
19
- let types;
17
+ // find accept value(s)
18
+ let types
20
19
 
21
20
  if (request.event.requiredContentType) {
22
- types = [request.event.requiredContentType];
21
+ types = [request.event.requiredContentType]
23
22
  } else {
24
- const acceptHeader = request.event.headers.Accept ?? request.event.headers.accept;
25
- types = [...((acceptHeader && Accept.mediaTypes(acceptHeader)) ?? []), request.event.preferredContentType, defaultContentType];
23
+ const acceptHeader = request.event.headers.Accept ?? request.event.headers.accept
24
+ types = [
25
+ ...((acceptHeader && Accept.mediaTypes(acceptHeader)) ?? []),
26
+ request.event.preferredContentType,
27
+ defaultContentType
28
+ ]
26
29
  }
27
30
 
28
31
  for (const type of types) {
29
- let breakTypes;
30
-
32
+ let breakTypes
31
33
  for (const s of serializers) {
32
34
  if (!s.regex.test(type)) {
33
- continue;
35
+ continue
34
36
  }
35
37
 
36
- request.response.headers['Content-Type'] = type;
37
- const result = s.serializer(request.response);
38
-
38
+ request.response.headers['Content-Type'] = type
39
+ const result = s.serializer(request.response)
39
40
  if (typeof result === 'object' && 'body' in result) {
40
- request.response = result;
41
+ request.response = result
41
42
  } else {
42
- request.response.body = result;
43
+ // otherwise only replace the body attribute
44
+ request.response.body = result
43
45
  }
44
46
 
45
- breakTypes = true;
46
- break;
47
+ breakTypes = true
48
+ break
47
49
  }
48
-
49
- if (breakTypes) break;
50
+ if (breakTypes) break
50
51
  }
51
- };
52
-
53
- const httpResponseSerializerMiddlewareOnError = async request => {
54
- if (request.response === undefined) return;
55
- return httpResponseSerializerMiddlewareAfter(request);
56
- };
52
+ }
57
53
 
54
+ const httpResponseSerializerMiddlewareOnError = async (request) => {
55
+ if (request.response === undefined) return
56
+ return httpResponseSerializerMiddlewareAfter(request)
57
+ }
58
58
  return {
59
59
  after: httpResponseSerializerMiddlewareAfter,
60
60
  onError: httpResponseSerializerMiddlewareOnError
61
- };
62
- };
61
+ }
62
+ }
63
63
 
64
- export default httpResponseSerializerMiddleware;
64
+ export default httpResponseSerializerMiddleware
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@middy/http-response-serializer",
3
- "version": "3.0.0-alpha.2",
3
+ "version": "3.0.0-alpha.3",
4
4
  "description": "The Http Serializer middleware lets you define serialization mechanisms based on the current content negotiation.",
5
5
  "type": "module",
6
6
  "engines": {
@@ -18,7 +18,8 @@
18
18
  ],
19
19
  "scripts": {
20
20
  "test": "npm run test:unit",
21
- "test:unit": "ava"
21
+ "test:unit": "ava",
22
+ "test:benchmark": "node __benchmarks__/index.js"
22
23
  },
23
24
  "license": "MIT",
24
25
  "keywords": [
@@ -51,10 +52,10 @@
51
52
  "homepage": "https://github.com/middyjs/middy#readme",
52
53
  "dependencies": {
53
54
  "@hapi/accept": "5.0.2",
54
- "@middy/util": "^3.0.0-alpha.2"
55
+ "@middy/util": "^3.0.0-alpha.3"
55
56
  },
56
57
  "devDependencies": {
57
- "@middy/core": "^3.0.0-alpha.2"
58
+ "@middy/core": "^3.0.0-alpha.3"
58
59
  },
59
- "gitHead": "de30419273ecbff08f367f47c7e320ec981cf145"
60
+ "gitHead": "1441158711580313765e6d156046ef0fade0d156"
60
61
  }