@middy/core 3.1.0 → 3.2.1
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 +28 -26
- package/index.d.ts +11 -7
- package/index.js +22 -22
- package/package.json +4 -3
package/index.cjs
CHANGED
|
@@ -2,8 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: ()=>_default
|
|
8
|
+
});
|
|
9
|
+
const _events = require("events");
|
|
7
10
|
const defaultLambdaHandler = ()=>{};
|
|
8
11
|
const defaultPlugin = {
|
|
9
12
|
timeoutEarlyInMillis: 5,
|
|
@@ -25,7 +28,7 @@ const middy = (lambdaHandler = defaultLambdaHandler, plugin = {})=>{
|
|
|
25
28
|
const beforeMiddlewares = [];
|
|
26
29
|
const afterMiddlewares = [];
|
|
27
30
|
const onErrorMiddlewares = [];
|
|
28
|
-
const
|
|
31
|
+
const middy = (event = {}, context = {})=>{
|
|
29
32
|
plugin.requestStart?.();
|
|
30
33
|
const request = {
|
|
31
34
|
event,
|
|
@@ -42,7 +45,7 @@ const middy = (lambdaHandler = defaultLambdaHandler, plugin = {})=>{
|
|
|
42
45
|
...onErrorMiddlewares
|
|
43
46
|
], plugin);
|
|
44
47
|
};
|
|
45
|
-
|
|
48
|
+
middy.use = (middlewares)=>{
|
|
46
49
|
if (!Array.isArray(middlewares)) {
|
|
47
50
|
middlewares = [
|
|
48
51
|
middlewares
|
|
@@ -53,35 +56,35 @@ const middy = (lambdaHandler = defaultLambdaHandler, plugin = {})=>{
|
|
|
53
56
|
if (!before && !after && !onError) {
|
|
54
57
|
throw new Error('Middleware must be an object containing at least one key among "before", "after", "onError"');
|
|
55
58
|
}
|
|
56
|
-
if (before)
|
|
57
|
-
if (after)
|
|
58
|
-
if (onError)
|
|
59
|
+
if (before) middy.before(before);
|
|
60
|
+
if (after) middy.after(after);
|
|
61
|
+
if (onError) middy.onError(onError);
|
|
59
62
|
}
|
|
60
|
-
return
|
|
63
|
+
return middy;
|
|
61
64
|
};
|
|
62
|
-
|
|
65
|
+
middy.before = (beforeMiddleware)=>{
|
|
63
66
|
beforeMiddlewares.push(beforeMiddleware);
|
|
64
|
-
return
|
|
67
|
+
return middy;
|
|
65
68
|
};
|
|
66
|
-
|
|
69
|
+
middy.after = (afterMiddleware)=>{
|
|
67
70
|
afterMiddlewares.unshift(afterMiddleware);
|
|
68
|
-
return
|
|
71
|
+
return middy;
|
|
69
72
|
};
|
|
70
|
-
|
|
73
|
+
middy.onError = (onErrorMiddleware)=>{
|
|
71
74
|
onErrorMiddlewares.unshift(onErrorMiddleware);
|
|
72
|
-
return
|
|
75
|
+
return middy;
|
|
73
76
|
};
|
|
74
|
-
|
|
77
|
+
middy.handler = (replaceLambdaHandler)=>{
|
|
75
78
|
lambdaHandler = replaceLambdaHandler;
|
|
76
|
-
return
|
|
79
|
+
return middy;
|
|
77
80
|
};
|
|
78
|
-
return
|
|
81
|
+
return middy;
|
|
79
82
|
};
|
|
80
83
|
const runRequest = async (request, beforeMiddlewares, lambdaHandler, afterMiddlewares, onErrorMiddlewares, plugin)=>{
|
|
81
84
|
const timeoutEarly = plugin.timeoutEarly && request.context.getRemainingTimeInMillis;
|
|
82
85
|
try {
|
|
83
86
|
await runMiddlewares(request, beforeMiddlewares, plugin);
|
|
84
|
-
if (request.response === undefined) {
|
|
87
|
+
if (typeof request.response === 'undefined') {
|
|
85
88
|
plugin.beforeHandler?.();
|
|
86
89
|
const handlerAbort = new AbortController();
|
|
87
90
|
let timeoutAbort;
|
|
@@ -106,12 +109,12 @@ const runRequest = async (request, beforeMiddlewares, lambdaHandler, afterMiddle
|
|
|
106
109
|
request.error = e;
|
|
107
110
|
try {
|
|
108
111
|
await runMiddlewares(request, onErrorMiddlewares, plugin);
|
|
109
|
-
} catch (
|
|
110
|
-
|
|
111
|
-
request.error =
|
|
112
|
+
} catch (e1) {
|
|
113
|
+
e1.originalError = request.error;
|
|
114
|
+
request.error = e1;
|
|
112
115
|
throw request.error;
|
|
113
116
|
}
|
|
114
|
-
if (request.response === undefined) throw request.error;
|
|
117
|
+
if (typeof request.response === 'undefined') throw request.error;
|
|
115
118
|
} finally{
|
|
116
119
|
await plugin.requestEnd?.(request);
|
|
117
120
|
}
|
|
@@ -122,7 +125,7 @@ const runMiddlewares = async (request, middlewares, plugin)=>{
|
|
|
122
125
|
plugin.beforeMiddleware?.(nextMiddleware.name);
|
|
123
126
|
const res = await nextMiddleware(request);
|
|
124
127
|
plugin.afterMiddleware?.(nextMiddleware.name);
|
|
125
|
-
if (res !== undefined) {
|
|
128
|
+
if (typeof res !== 'undefined') {
|
|
126
129
|
request.response = res;
|
|
127
130
|
return;
|
|
128
131
|
}
|
|
@@ -158,7 +161,7 @@ const polyfillAbortController = ()=>{
|
|
|
158
161
|
this.aborted = false;
|
|
159
162
|
}
|
|
160
163
|
}
|
|
161
|
-
return class
|
|
164
|
+
return class AbortController1 {
|
|
162
165
|
abort() {
|
|
163
166
|
if (this.signal.aborted) return;
|
|
164
167
|
this.signal.aborted = true;
|
|
@@ -198,8 +201,7 @@ const polyfillSetTimeoutPromise = ()=>{
|
|
|
198
201
|
};
|
|
199
202
|
};
|
|
200
203
|
const setTimeoutPromise = polyfillSetTimeoutPromise();
|
|
201
|
-
|
|
202
|
-
module.exports = _default;
|
|
204
|
+
const _default = middy;
|
|
203
205
|
|
|
204
206
|
|
|
205
207
|
//# sourceMappingURL=index.cjs.map
|
package/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
|
+
Callback as LambdaCallback,
|
|
2
3
|
Context as LambdaContext,
|
|
3
|
-
Handler as LambdaHandler
|
|
4
|
-
Callback as LambdaCallback
|
|
4
|
+
Handler as LambdaHandler
|
|
5
5
|
} from 'aws-lambda'
|
|
6
6
|
|
|
7
7
|
declare type PluginHook = () => void
|
|
@@ -33,7 +33,7 @@ interface Request<TEvent = any, TResult = any, TErr = Error, TContext extends La
|
|
|
33
33
|
|
|
34
34
|
declare type MiddlewareFn<TEvent = any, TResult = any, TErr = Error, TContext extends LambdaContext = LambdaContext> = (request: Request<TEvent, TResult, TErr, TContext>) => any
|
|
35
35
|
|
|
36
|
-
export interface MiddlewareObj<TEvent =
|
|
36
|
+
export interface MiddlewareObj<TEvent = unknown, TResult = any, TErr = Error, TContext extends LambdaContext = LambdaContext> {
|
|
37
37
|
before?: MiddlewareFn<TEvent, TResult, TErr, TContext>
|
|
38
38
|
after?: MiddlewareFn<TEvent, TResult, TErr, TContext>
|
|
39
39
|
onError?: MiddlewareFn<TEvent, TResult, TErr, TContext>
|
|
@@ -53,12 +53,16 @@ export interface MiddyfiedHandler<TEvent = any, TResult = any, TErr = Error, TCo
|
|
|
53
53
|
handler: (handler: MiddlewareHandler<LambdaHandler<TEvent, TResult>, TContext>) => MiddyfiedHandler<TEvent, TResult, TErr, TContext>
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
declare type AttachMiddlewareFn<TEvent = any, TResult = any, TErr = Error, TContext extends LambdaContext = LambdaContext> =
|
|
56
|
+
declare type AttachMiddlewareFn<TEvent = any, TResult = any, TErr = Error, TContext extends LambdaContext = LambdaContext> =
|
|
57
|
+
(middleware: MiddlewareFn<TEvent, TResult, TErr, TContext>) => MiddyfiedHandler<TEvent, TResult, TErr, TContext>
|
|
57
58
|
|
|
58
|
-
declare type AttachMiddlewareObj<TEvent = any, TResult = any, TErr = Error, TContext extends LambdaContext = LambdaContext> =
|
|
59
|
+
declare type AttachMiddlewareObj<TEvent = any, TResult = any, TErr = Error, TContext extends LambdaContext = LambdaContext> =
|
|
60
|
+
(middleware: MiddlewareObj<TEvent, TResult, TErr, TContext>) => MiddyfiedHandler<TEvent, TResult, TErr, TContext>
|
|
59
61
|
|
|
60
62
|
declare type UseFn<TEvent = any, TResult = any, TErr = Error, TContext extends LambdaContext = LambdaContext> =
|
|
61
|
-
|
|
63
|
+
<TMiddleware extends MiddlewareObj<any, any, Error, any>>(middlewares: TMiddleware | TMiddleware[]) => TMiddleware extends MiddlewareObj<infer TMiddlewareEvent, any, Error, infer TMiddlewareContext>
|
|
64
|
+
? MiddyfiedHandler<TMiddlewareEvent & TEvent, TResult, TErr, TMiddlewareContext & TContext> // always true
|
|
65
|
+
: never
|
|
62
66
|
|
|
63
67
|
declare type MiddlewareHandler<THandler extends LambdaHandler<any, any>, TContext extends LambdaContext = LambdaContext> =
|
|
64
68
|
THandler extends LambdaHandler<infer TEvent, infer TResult> // always true
|
|
@@ -70,7 +74,7 @@ declare type MiddlewareHandler<THandler extends LambdaHandler<any, any>, TContex
|
|
|
70
74
|
* @param handler your original AWS Lambda function
|
|
71
75
|
* @param plugin wraps around each middleware and handler to add custom lifecycle behaviours (e.g. to profile performance)
|
|
72
76
|
*/
|
|
73
|
-
declare function middy<TEvent =
|
|
77
|
+
declare function middy<TEvent = unknown, TResult = any, TErr = Error, TContext extends LambdaContext = LambdaContext> (handler?: MiddlewareHandler<LambdaHandler<TEvent, TResult>, TContext>, plugin?: PluginObject): MiddyfiedHandler<TEvent, TResult, TErr, TContext>
|
|
74
78
|
|
|
75
79
|
declare namespace middy {
|
|
76
80
|
export {
|
package/index.js
CHANGED
|
@@ -20,7 +20,7 @@ const middy = (lambdaHandler = defaultLambdaHandler, plugin = {})=>{
|
|
|
20
20
|
const beforeMiddlewares = [];
|
|
21
21
|
const afterMiddlewares = [];
|
|
22
22
|
const onErrorMiddlewares = [];
|
|
23
|
-
const
|
|
23
|
+
const middy = (event = {}, context = {})=>{
|
|
24
24
|
plugin.requestStart?.();
|
|
25
25
|
const request = {
|
|
26
26
|
event,
|
|
@@ -37,7 +37,7 @@ const middy = (lambdaHandler = defaultLambdaHandler, plugin = {})=>{
|
|
|
37
37
|
...onErrorMiddlewares
|
|
38
38
|
], plugin);
|
|
39
39
|
};
|
|
40
|
-
|
|
40
|
+
middy.use = (middlewares)=>{
|
|
41
41
|
if (!Array.isArray(middlewares)) {
|
|
42
42
|
middlewares = [
|
|
43
43
|
middlewares
|
|
@@ -48,35 +48,35 @@ const middy = (lambdaHandler = defaultLambdaHandler, plugin = {})=>{
|
|
|
48
48
|
if (!before && !after && !onError) {
|
|
49
49
|
throw new Error('Middleware must be an object containing at least one key among "before", "after", "onError"');
|
|
50
50
|
}
|
|
51
|
-
if (before)
|
|
52
|
-
if (after)
|
|
53
|
-
if (onError)
|
|
51
|
+
if (before) middy.before(before);
|
|
52
|
+
if (after) middy.after(after);
|
|
53
|
+
if (onError) middy.onError(onError);
|
|
54
54
|
}
|
|
55
|
-
return
|
|
55
|
+
return middy;
|
|
56
56
|
};
|
|
57
|
-
|
|
57
|
+
middy.before = (beforeMiddleware)=>{
|
|
58
58
|
beforeMiddlewares.push(beforeMiddleware);
|
|
59
|
-
return
|
|
59
|
+
return middy;
|
|
60
60
|
};
|
|
61
|
-
|
|
61
|
+
middy.after = (afterMiddleware)=>{
|
|
62
62
|
afterMiddlewares.unshift(afterMiddleware);
|
|
63
|
-
return
|
|
63
|
+
return middy;
|
|
64
64
|
};
|
|
65
|
-
|
|
65
|
+
middy.onError = (onErrorMiddleware)=>{
|
|
66
66
|
onErrorMiddlewares.unshift(onErrorMiddleware);
|
|
67
|
-
return
|
|
67
|
+
return middy;
|
|
68
68
|
};
|
|
69
|
-
|
|
69
|
+
middy.handler = (replaceLambdaHandler)=>{
|
|
70
70
|
lambdaHandler = replaceLambdaHandler;
|
|
71
|
-
return
|
|
71
|
+
return middy;
|
|
72
72
|
};
|
|
73
|
-
return
|
|
73
|
+
return middy;
|
|
74
74
|
};
|
|
75
75
|
const runRequest = async (request, beforeMiddlewares, lambdaHandler, afterMiddlewares, onErrorMiddlewares, plugin)=>{
|
|
76
76
|
const timeoutEarly = plugin.timeoutEarly && request.context.getRemainingTimeInMillis;
|
|
77
77
|
try {
|
|
78
78
|
await runMiddlewares(request, beforeMiddlewares, plugin);
|
|
79
|
-
if (request.response === undefined) {
|
|
79
|
+
if (typeof request.response === 'undefined') {
|
|
80
80
|
plugin.beforeHandler?.();
|
|
81
81
|
const handlerAbort = new AbortController();
|
|
82
82
|
let timeoutAbort;
|
|
@@ -101,12 +101,12 @@ const runRequest = async (request, beforeMiddlewares, lambdaHandler, afterMiddle
|
|
|
101
101
|
request.error = e;
|
|
102
102
|
try {
|
|
103
103
|
await runMiddlewares(request, onErrorMiddlewares, plugin);
|
|
104
|
-
} catch (
|
|
105
|
-
|
|
106
|
-
request.error =
|
|
104
|
+
} catch (e1) {
|
|
105
|
+
e1.originalError = request.error;
|
|
106
|
+
request.error = e1;
|
|
107
107
|
throw request.error;
|
|
108
108
|
}
|
|
109
|
-
if (request.response === undefined) throw request.error;
|
|
109
|
+
if (typeof request.response === 'undefined') throw request.error;
|
|
110
110
|
} finally{
|
|
111
111
|
await plugin.requestEnd?.(request);
|
|
112
112
|
}
|
|
@@ -117,7 +117,7 @@ const runMiddlewares = async (request, middlewares, plugin)=>{
|
|
|
117
117
|
plugin.beforeMiddleware?.(nextMiddleware.name);
|
|
118
118
|
const res = await nextMiddleware(request);
|
|
119
119
|
plugin.afterMiddleware?.(nextMiddleware.name);
|
|
120
|
-
if (res !== undefined) {
|
|
120
|
+
if (typeof res !== 'undefined') {
|
|
121
121
|
request.response = res;
|
|
122
122
|
return;
|
|
123
123
|
}
|
|
@@ -153,7 +153,7 @@ const polyfillAbortController = ()=>{
|
|
|
153
153
|
this.aborted = false;
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
|
-
return class
|
|
156
|
+
return class AbortController1 {
|
|
157
157
|
abort() {
|
|
158
158
|
if (this.signal.aborted) return;
|
|
159
159
|
this.signal.aborted = true;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@middy/core",
|
|
3
|
-
"version": "3.1
|
|
3
|
+
"version": "3.2.1",
|
|
4
4
|
"description": "🛵 The stylish Node.js middleware engine for AWS Lambda (core package)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"access": "public"
|
|
12
12
|
},
|
|
13
13
|
"main": "./index.cjs",
|
|
14
|
+
"module": "./index.js",
|
|
14
15
|
"exports": {
|
|
15
16
|
".": {
|
|
16
17
|
"import": {
|
|
@@ -58,7 +59,7 @@
|
|
|
58
59
|
"homepage": "https://middy.js.org",
|
|
59
60
|
"devDependencies": {
|
|
60
61
|
"@types/aws-lambda": "^8.10.76",
|
|
61
|
-
"@types/node": "^
|
|
62
|
+
"@types/node": "^18.0.0"
|
|
62
63
|
},
|
|
63
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "b4169ec20b798650e934a7c25ee80ae98d11e03a"
|
|
64
65
|
}
|