@middy/http-response-serializer 3.0.3 → 3.0.4

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.
package/index.cjs CHANGED
@@ -1,3 +1,70 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});module.exports=void 0;var _util=require("@middy/util");var _accept=_interopRequireDefault(require("@hapi/accept"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}const defaults={serializers:[],defaultContentType:undefined};const httpResponseSerializerMiddleware=(opts={})=>{const{serializers,defaultContentType}={...defaults,...opts};const httpResponseSerializerMiddlewareAfter=async request=>{(0,_util).normalizeHttpResponse(request);if(request.response.headers["Content-Type"])return;let types;if(request.event.requiredContentType){types=[request.event.requiredContentType]}else{const acceptHeader=request.event.headers.Accept??request.event.headers.accept;types=[...(acceptHeader&&_accept.default.mediaTypes(acceptHeader))??[],request.event.preferredContentType,defaultContentType]}for(const type of types){let breakTypes;for(const s of serializers){if(!s.regex.test(type)){continue}request.response.headers["Content-Type"]=type;const result=s.serializer(request.response);if(typeof result==="object"&&"body"in result){request.response=result}else{request.response.body=result}breakTypes=true;break}if(breakTypes)break}};const httpResponseSerializerMiddlewareOnError=async request=>{if(request.response===undefined)return;return httpResponseSerializerMiddlewareAfter(request)};return{after:httpResponseSerializerMiddlewareAfter,onError:httpResponseSerializerMiddlewareOnError}};var _default=httpResponseSerializerMiddleware;module.exports=_default
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ module.exports = void 0;
6
+ var _util = require("@middy/util");
7
+ var _accept = _interopRequireDefault(require("@hapi/accept"));
8
+ function _interopRequireDefault(obj) {
9
+ return obj && obj.__esModule ? obj : {
10
+ default: obj
11
+ };
12
+ }
13
+ const defaults = {
14
+ serializers: [],
15
+ defaultContentType: undefined
16
+ };
17
+ const httpResponseSerializerMiddleware = (opts = {})=>{
18
+ const { serializers , defaultContentType } = {
19
+ ...defaults,
20
+ ...opts
21
+ };
22
+ const httpResponseSerializerMiddlewareAfter = async (request)=>{
23
+ (0, _util).normalizeHttpResponse(request);
24
+ if (request.response.headers['Content-Type']) return;
25
+ let types;
26
+ if (request.event.requiredContentType) {
27
+ types = [
28
+ request.event.requiredContentType
29
+ ];
30
+ } else {
31
+ const acceptHeader = request.event.headers.Accept ?? request.event.headers.accept;
32
+ types = [
33
+ ...(acceptHeader && _accept.default.mediaTypes(acceptHeader)) ?? [],
34
+ request.event.preferredContentType,
35
+ defaultContentType
36
+ ];
37
+ }
38
+ for (const type of types){
39
+ let breakTypes;
40
+ for (const s of serializers){
41
+ if (!s.regex.test(type)) {
42
+ continue;
43
+ }
44
+ request.response.headers['Content-Type'] = type;
45
+ const result = s.serializer(request.response);
46
+ if (typeof result === 'object' && 'body' in result) {
47
+ request.response = result;
48
+ } else {
49
+ request.response.body = result;
50
+ }
51
+ breakTypes = true;
52
+ break;
53
+ }
54
+ if (breakTypes) break;
55
+ }
56
+ };
57
+ const httpResponseSerializerMiddlewareOnError = async (request)=>{
58
+ if (request.response === undefined) return;
59
+ return httpResponseSerializerMiddlewareAfter(request);
60
+ };
61
+ return {
62
+ after: httpResponseSerializerMiddlewareAfter,
63
+ onError: httpResponseSerializerMiddlewareOnError
64
+ };
65
+ };
66
+ var _default = httpResponseSerializerMiddleware;
67
+ module.exports = _default;
68
+
2
69
 
3
70
  //# sourceMappingURL=index.cjs.map
package/index.d.ts CHANGED
@@ -2,7 +2,7 @@ import middy from '@middy/core'
2
2
 
3
3
  interface SerializerHandler {
4
4
  regex: RegExp
5
- serializer: (respones: any) => string
5
+ serializer: (response: any) => string | { body: any, [key: string]: any }
6
6
  }
7
7
 
8
8
  interface Options {
package/index.js CHANGED
@@ -1,3 +1,59 @@
1
- import{normalizeHttpResponse}from"@middy/util";import Accept from"@hapi/accept";const defaults={serializers:[],defaultContentType:undefined};const httpResponseSerializerMiddleware=(opts={})=>{const{serializers,defaultContentType}={...defaults,...opts};const httpResponseSerializerMiddlewareAfter=async request=>{normalizeHttpResponse(request);if(request.response.headers["Content-Type"])return;let types;if(request.event.requiredContentType){types=[request.event.requiredContentType]}else{const acceptHeader=request.event.headers.Accept??request.event.headers.accept;types=[...(acceptHeader&&Accept.mediaTypes(acceptHeader))??[],request.event.preferredContentType,defaultContentType]}for(const type of types){let breakTypes;for(const s of serializers){if(!s.regex.test(type)){continue}request.response.headers["Content-Type"]=type;const result=s.serializer(request.response);if(typeof result==="object"&&"body"in result){request.response=result}else{request.response.body=result}breakTypes=true;break}if(breakTypes)break}};const httpResponseSerializerMiddlewareOnError=async request=>{if(request.response===undefined)return;return httpResponseSerializerMiddlewareAfter(request)};return{after:httpResponseSerializerMiddlewareAfter,onError:httpResponseSerializerMiddlewareOnError}};export default httpResponseSerializerMiddleware
1
+ import { normalizeHttpResponse } from '@middy/util';
2
+ import Accept from '@hapi/accept';
3
+ const defaults = {
4
+ serializers: [],
5
+ defaultContentType: undefined
6
+ };
7
+ const httpResponseSerializerMiddleware = (opts = {})=>{
8
+ const { serializers , defaultContentType } = {
9
+ ...defaults,
10
+ ...opts
11
+ };
12
+ const httpResponseSerializerMiddlewareAfter = async (request)=>{
13
+ normalizeHttpResponse(request);
14
+ if (request.response.headers['Content-Type']) return;
15
+ let types;
16
+ if (request.event.requiredContentType) {
17
+ types = [
18
+ request.event.requiredContentType
19
+ ];
20
+ } else {
21
+ const acceptHeader = request.event.headers.Accept ?? request.event.headers.accept;
22
+ types = [
23
+ ...(acceptHeader && Accept.mediaTypes(acceptHeader)) ?? [],
24
+ request.event.preferredContentType,
25
+ defaultContentType
26
+ ];
27
+ }
28
+ for (const type of types){
29
+ let breakTypes;
30
+ for (const s of serializers){
31
+ if (!s.regex.test(type)) {
32
+ continue;
33
+ }
34
+ request.response.headers['Content-Type'] = type;
35
+ const result = s.serializer(request.response);
36
+ if (typeof result === 'object' && 'body' in result) {
37
+ request.response = result;
38
+ } else {
39
+ request.response.body = result;
40
+ }
41
+ breakTypes = true;
42
+ break;
43
+ }
44
+ if (breakTypes) break;
45
+ }
46
+ };
47
+ const httpResponseSerializerMiddlewareOnError = async (request)=>{
48
+ if (request.response === undefined) return;
49
+ return httpResponseSerializerMiddlewareAfter(request);
50
+ };
51
+ return {
52
+ after: httpResponseSerializerMiddlewareAfter,
53
+ onError: httpResponseSerializerMiddlewareOnError
54
+ };
55
+ };
56
+ export default httpResponseSerializerMiddleware;
57
+
2
58
 
3
59
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@middy/http-response-serializer",
3
- "version": "3.0.3",
3
+ "version": "3.0.4",
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": {
@@ -59,10 +59,10 @@
59
59
  "homepage": "https://middy.js.org",
60
60
  "dependencies": {
61
61
  "@hapi/accept": "6.0.0",
62
- "@middy/util": "3.0.3"
62
+ "@middy/util": "3.0.4"
63
63
  },
64
64
  "devDependencies": {
65
- "@middy/core": "3.0.3"
65
+ "@middy/core": "3.0.4"
66
66
  },
67
- "gitHead": "ea9e5e8cce754d0c467c7dd3ac9a7601149efea2"
67
+ "gitHead": "3e9bc83e791f943c71cd7003fc27f0a3692d83a1"
68
68
  }