@middy/http-event-normalizer 5.0.0-alpha.0 → 5.0.0-alpha.2
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/README.md +3 -2
- package/index.d.ts +1 -0
- package/index.js +22 -6
- package/package.json +3 -9
- package/index.cjs +0 -32
package/README.md
CHANGED
|
@@ -19,8 +19,9 @@
|
|
|
19
19
|
<a href="https://snyk.io/test/github/middyjs/middy">
|
|
20
20
|
<img src="https://snyk.io/test/github/middyjs/middy/badge.svg" alt="Known Vulnerabilities" data-canonical-src="https://snyk.io/test/github/middyjs/middy" style="max-width:100%;">
|
|
21
21
|
</a>
|
|
22
|
-
<a href="https://
|
|
23
|
-
<img src="https://
|
|
22
|
+
<a href="https://github.com/middyjs/middy/actions/workflows/sast.yml">
|
|
23
|
+
<img src="https://github.com/middyjs/middy/actions/workflows/sast.yml/badge.svg
|
|
24
|
+
?branch=main&event=push" alt="CodeQL" style="max-width:100%;">
|
|
24
25
|
</a>
|
|
25
26
|
<a href="https://bestpractices.coreinfrastructure.org/projects/5280">
|
|
26
27
|
<img src="https://bestpractices.coreinfrastructure.org/projects/5280/badge" alt="Core Infrastructure Initiative (CII) Best Practices" style="max-width:100%;">
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -1,24 +1,40 @@
|
|
|
1
1
|
const httpEventNormalizerMiddleware = ()=>{
|
|
2
2
|
const httpEventNormalizerMiddlewareBefore = async (request)=>{
|
|
3
|
-
const { event
|
|
4
|
-
const version = event
|
|
3
|
+
const { event } = request;
|
|
4
|
+
const version = pickVersion(event);
|
|
5
5
|
const isHttpEvent = isVersionHttpEvent[version]?.(event);
|
|
6
6
|
if (!isHttpEvent) {
|
|
7
|
-
throw new Error('
|
|
7
|
+
throw new Error('Unknown http event format', {
|
|
8
|
+
cause: {
|
|
9
|
+
package: '@middy/http-event-normalizer'
|
|
10
|
+
}
|
|
11
|
+
});
|
|
8
12
|
}
|
|
9
|
-
event
|
|
10
|
-
|
|
13
|
+
// VPC Lattice is an http event, however uses a different notation
|
|
14
|
+
// - query_string_parameters
|
|
15
|
+
// - is_base64_encoded
|
|
11
16
|
if (version === '1.0') {
|
|
12
17
|
event.multiValueQueryStringParameters ??= {};
|
|
18
|
+
} else if (version === 'vpc') {
|
|
19
|
+
event.queryStringParameters = event.query_string_parameters;
|
|
20
|
+
event.isBase64Encoded = event.is_base64_encoded;
|
|
13
21
|
}
|
|
22
|
+
// event.headers ??= {} // Will always have at least one header
|
|
23
|
+
event.pathParameters ??= {};
|
|
24
|
+
event.queryStringParameters ??= {};
|
|
14
25
|
};
|
|
15
26
|
return {
|
|
16
27
|
before: httpEventNormalizerMiddlewareBefore
|
|
17
28
|
};
|
|
18
29
|
};
|
|
30
|
+
const pickVersion = (event)=>{
|
|
31
|
+
// '1.0' is a safer default
|
|
32
|
+
return event.version ?? (event.method ? 'vpc' : '1.0');
|
|
33
|
+
};
|
|
19
34
|
const isVersionHttpEvent = {
|
|
20
35
|
'1.0': (event)=>typeof event.httpMethod !== 'undefined',
|
|
21
|
-
'2.0': (event)=>typeof event.requestContext.http.method !== 'undefined'
|
|
36
|
+
'2.0': (event)=>typeof event.requestContext.http.method !== 'undefined',
|
|
37
|
+
vpc: (event)=>typeof event.method !== 'undefined'
|
|
22
38
|
};
|
|
23
39
|
export default httpEventNormalizerMiddleware;
|
|
24
40
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@middy/http-event-normalizer",
|
|
3
|
-
"version": "5.0.0-alpha.
|
|
3
|
+
"version": "5.0.0-alpha.2",
|
|
4
4
|
"description": "Http event normalizer middleware for the middy framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -10,24 +10,18 @@
|
|
|
10
10
|
"publishConfig": {
|
|
11
11
|
"access": "public"
|
|
12
12
|
},
|
|
13
|
-
"main": "./index.cjs",
|
|
14
13
|
"module": "./index.js",
|
|
15
14
|
"exports": {
|
|
16
15
|
".": {
|
|
17
16
|
"import": {
|
|
18
17
|
"types": "./index.d.ts",
|
|
19
18
|
"default": "./index.js"
|
|
20
|
-
},
|
|
21
|
-
"require": {
|
|
22
|
-
"types": "./index.d.ts",
|
|
23
|
-
"default": "./index.cjs"
|
|
24
19
|
}
|
|
25
20
|
}
|
|
26
21
|
},
|
|
27
22
|
"types": "index.d.ts",
|
|
28
23
|
"files": [
|
|
29
24
|
"index.js",
|
|
30
|
-
"index.cjs",
|
|
31
25
|
"index.d.ts"
|
|
32
26
|
],
|
|
33
27
|
"scripts": {
|
|
@@ -65,9 +59,9 @@
|
|
|
65
59
|
"type": "github",
|
|
66
60
|
"url": "https://github.com/sponsors/willfarrell"
|
|
67
61
|
},
|
|
68
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "ebce8d5df8783077fa49ba62ee9be20e8486a7f1",
|
|
69
63
|
"devDependencies": {
|
|
70
|
-
"@middy/core": "5.0.0-alpha.
|
|
64
|
+
"@middy/core": "5.0.0-alpha.2",
|
|
71
65
|
"@types/aws-lambda": "^8.10.101"
|
|
72
66
|
}
|
|
73
67
|
}
|
package/index.cjs
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(module, "exports", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: ()=>_default
|
|
8
|
-
});
|
|
9
|
-
const httpEventNormalizerMiddleware = ()=>{
|
|
10
|
-
const httpEventNormalizerMiddlewareBefore = async (request)=>{
|
|
11
|
-
const { event } = request;
|
|
12
|
-
const version = event.version ?? '1.0';
|
|
13
|
-
const isHttpEvent = isVersionHttpEvent[version]?.(event);
|
|
14
|
-
if (!isHttpEvent) {
|
|
15
|
-
throw new Error('[http-event-normalizer] Unknown http event format');
|
|
16
|
-
}
|
|
17
|
-
event.pathParameters ??= {};
|
|
18
|
-
event.queryStringParameters ??= {};
|
|
19
|
-
if (version === '1.0') {
|
|
20
|
-
event.multiValueQueryStringParameters ??= {};
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
return {
|
|
24
|
-
before: httpEventNormalizerMiddlewareBefore
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
|
-
const isVersionHttpEvent = {
|
|
28
|
-
'1.0': (event)=>typeof event.httpMethod !== 'undefined',
|
|
29
|
-
'2.0': (event)=>typeof event.requestContext.http.method !== 'undefined'
|
|
30
|
-
};
|
|
31
|
-
const _default = httpEventNormalizerMiddleware;
|
|
32
|
-
|