@middy/http-cors 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 +61 -75
  2. package/package.json +4 -4
package/index.js CHANGED
@@ -1,19 +1,24 @@
1
- const { normalizeHttpResponse } = require('@middy/util')
1
+ "use strict";
2
+
3
+ const {
4
+ normalizeHttpResponse
5
+ } = require('@middy/util');
2
6
 
3
7
  const getOrigin = (incomingOrigin, options) => {
4
- if (options?.origins.length > 0) {
8
+ if ((options === null || options === void 0 ? void 0 : options.origins.length) > 0) {
5
9
  if (incomingOrigin && options.origins.includes(incomingOrigin)) {
6
- return incomingOrigin
10
+ return incomingOrigin;
7
11
  } else {
8
- return options.origins[0]
12
+ return options.origins[0];
9
13
  }
10
14
  } else {
11
15
  if (incomingOrigin && options.credentials && options.origin === '*') {
12
- return incomingOrigin
16
+ return incomingOrigin;
13
17
  }
14
- return options.origin
18
+
19
+ return options.origin;
15
20
  }
16
- }
21
+ };
17
22
 
18
23
  const defaults = {
19
24
  getOrigin,
@@ -27,98 +32,79 @@ const defaults = {
27
32
  requestHeaders: undefined,
28
33
  requestMethods: undefined,
29
34
  cacheControl: undefined
30
- }
35
+ };
31
36
 
32
37
  const httpCorsMiddleware = (opts = {}) => {
33
- const options = { ...defaults, ...opts }
34
-
35
- const httpCorsMiddlewareAfter = async (request) => {
36
- // API Gateway v1 & v2
37
- if (!request.event?.httpMethod && !request.event?.requestContext?.http?.method) return
38
+ const options = { ...defaults,
39
+ ...opts
40
+ };
38
41
 
39
- request.response = normalizeHttpResponse(request.response)
42
+ const httpCorsMiddlewareAfter = async request => {
43
+ var _request$event, _request$event2, _request$event2$reque, _request$event2$reque2;
40
44
 
41
- const existingHeaders = Object.keys(request.response.headers)
45
+ // API Gateway v1 & v2
46
+ if (!((_request$event = request.event) !== null && _request$event !== void 0 && _request$event.httpMethod) && !((_request$event2 = request.event) !== null && _request$event2 !== void 0 && (_request$event2$reque = _request$event2.requestContext) !== null && _request$event2$reque !== void 0 && (_request$event2$reque2 = _request$event2$reque.http) !== null && _request$event2$reque2 !== void 0 && _request$event2$reque2.method)) return;
47
+ request.response = normalizeHttpResponse(request.response);
48
+ const existingHeaders = Object.keys(request.response.headers); // Check if already setup the header Access-Control-Allow-Credentials
42
49
 
43
- // Check if already setup the header Access-Control-Allow-Credentials
44
50
  if (existingHeaders.includes('Access-Control-Allow-Credentials')) {
45
- options.credentials =
46
- request.response.headers['Access-Control-Allow-Credentials'] === 'true'
51
+ options.credentials = request.response.headers['Access-Control-Allow-Credentials'] === 'true';
47
52
  }
53
+
48
54
  if (options.credentials) {
49
- request.response.headers['Access-Control-Allow-Credentials'] = String(
50
- options.credentials
51
- )
52
- }
55
+ request.response.headers['Access-Control-Allow-Credentials'] = String(options.credentials);
56
+ } // Check if already setup Access-Control-Allow-Headers
53
57
 
54
- // Check if already setup Access-Control-Allow-Headers
55
- if (
56
- options.headers &&
57
- !existingHeaders.includes('Access-Control-Allow-Headers')
58
- ) {
59
- request.response.headers['Access-Control-Allow-Headers'] = options.headers
60
- }
61
58
 
62
- // Check if already setup Access-Control-Allow-Methods
63
- if (
64
- options.methods &&
65
- !existingHeaders.includes('Access-Control-Allow-Methods')
66
- ) {
67
- request.response.headers['Access-Control-Allow-Methods'] = options.methods
68
- }
59
+ if (options.headers && !existingHeaders.includes('Access-Control-Allow-Headers')) {
60
+ request.response.headers['Access-Control-Allow-Headers'] = options.headers;
61
+ } // Check if already setup Access-Control-Allow-Methods
62
+
63
+
64
+ if (options.methods && !existingHeaders.includes('Access-Control-Allow-Methods')) {
65
+ request.response.headers['Access-Control-Allow-Methods'] = options.methods;
66
+ } // Check if already setup the header Access-Control-Allow-Origin
67
+
69
68
 
70
- // Check if already setup the header Access-Control-Allow-Origin
71
69
  if (!existingHeaders.includes('Access-Control-Allow-Origin')) {
72
- const eventHeaders = request.event?.headers ?? {}
73
- const incomingOrigin = eventHeaders.origin ?? eventHeaders.Origin
74
- request.response.headers[
75
- 'Access-Control-Allow-Origin'
76
- ] = options.getOrigin(incomingOrigin, options)
77
- }
70
+ var _request$event$header, _request$event3, _eventHeaders$origin;
71
+
72
+ const eventHeaders = (_request$event$header = (_request$event3 = request.event) === null || _request$event3 === void 0 ? void 0 : _request$event3.headers) !== null && _request$event$header !== void 0 ? _request$event$header : {};
73
+ const incomingOrigin = (_eventHeaders$origin = eventHeaders.origin) !== null && _eventHeaders$origin !== void 0 ? _eventHeaders$origin : eventHeaders.Origin;
74
+ request.response.headers['Access-Control-Allow-Origin'] = options.getOrigin(incomingOrigin, options);
75
+ } // Check if already setup Access-Control-Expose-Headers
76
+
78
77
 
79
- // Check if already setup Access-Control-Expose-Headers
80
- if (
81
- options.exposeHeaders &&
82
- !existingHeaders.includes('Access-Control-Expose-Headers')
83
- ) {
84
- request.response.headers['Access-Control-Expose-Headers'] =
85
- options.exposeHeaders
78
+ if (options.exposeHeaders && !existingHeaders.includes('Access-Control-Expose-Headers')) {
79
+ request.response.headers['Access-Control-Expose-Headers'] = options.exposeHeaders;
86
80
  }
87
81
 
88
82
  if (options.maxAge && !existingHeaders.includes('Access-Control-Max-Age')) {
89
- request.response.headers['Access-Control-Max-Age'] = String(
90
- options.maxAge
91
- )
92
- }
83
+ request.response.headers['Access-Control-Max-Age'] = String(options.maxAge);
84
+ } // Check if already setup Access-Control-Request-Headers
93
85
 
94
- // Check if already setup Access-Control-Request-Headers
95
- if (
96
- options.requestHeaders &&
97
- !existingHeaders.includes('Access-Control-Request-Headers')
98
- ) {
99
- request.response.headers['Access-Control-Request-Headers'] =
100
- options.requestHeaders
101
- }
102
86
 
103
- // Check if already setup Access-Control-Request-Methods
104
- if (
105
- options?.requestMethods &&
106
- !existingHeaders.includes('Access-Control-Request-Methods')
107
- ) {
108
- request.response.headers['Access-Control-Request-Methods'] =
109
- options.requestMethods
87
+ if (options.requestHeaders && !existingHeaders.includes('Access-Control-Request-Headers')) {
88
+ request.response.headers['Access-Control-Request-Headers'] = options.requestHeaders;
89
+ } // Check if already setup Access-Control-Request-Methods
90
+
91
+
92
+ if (options !== null && options !== void 0 && options.requestMethods && !existingHeaders.includes('Access-Control-Request-Methods')) {
93
+ request.response.headers['Access-Control-Request-Methods'] = options.requestMethods;
110
94
  }
111
95
 
112
96
  if (request.event.httpMethod === 'OPTIONS') {
113
97
  if (options.cacheControl && !existingHeaders.includes('Cache-Control')) {
114
- request.response.headers['Cache-Control'] = String(options.cacheControl)
98
+ request.response.headers['Cache-Control'] = String(options.cacheControl);
115
99
  }
116
100
  }
117
- }
118
- const httpCorsMiddlewareOnError = httpCorsMiddlewareAfter
101
+ };
102
+
103
+ const httpCorsMiddlewareOnError = httpCorsMiddlewareAfter;
119
104
  return {
120
105
  after: httpCorsMiddlewareAfter,
121
106
  onError: httpCorsMiddlewareOnError
122
- }
123
- }
124
- module.exports = httpCorsMiddleware
107
+ };
108
+ };
109
+
110
+ module.exports = httpCorsMiddleware;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@middy/http-cors",
3
- "version": "2.5.6",
3
+ "version": "2.5.7",
4
4
  "description": "CORS (Cross-Origin Resource Sharing) middleware for the middy framework",
5
5
  "type": "commonjs",
6
6
  "engines": {
@@ -44,11 +44,11 @@
44
44
  "url": "https://github.com/middyjs/middy/issues"
45
45
  },
46
46
  "homepage": "https://github.com/middyjs/middy#readme",
47
- "gitHead": "0c789f55b4adf691f977b0d9904d1a805bb3bb2b",
47
+ "gitHead": "3983c4b138e1a4d7fcb3ed805d3b8832fff06fc1",
48
48
  "dependencies": {
49
- "@middy/util": "^2.5.6"
49
+ "@middy/util": "^2.5.7"
50
50
  },
51
51
  "devDependencies": {
52
- "@middy/core": "^2.5.6"
52
+ "@middy/core": "^2.5.7"
53
53
  }
54
54
  }