@middy/core 5.5.0 → 6.0.0-alpha.0

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 (3) hide show
  1. package/index.d.ts +5 -4
  2. package/index.js +6 -3
  3. package/package.json +7 -6
package/index.d.ts CHANGED
@@ -99,7 +99,7 @@ export interface MiddyfiedHandler<
99
99
  handler: <TInputHandlerEventProps = TEvent, TInputHandlerResultProps = TResult>(
100
100
  handler: MiddlewareHandler<
101
101
  LambdaHandler<TInputHandlerEventProps, TInputHandlerResultProps>,
102
- TContext
102
+ TContext, TResult
103
103
  >
104
104
  ) => MiddyfiedHandler<TInputHandlerEventProps, TInputHandlerResultProps, TErr, TContext, TInternal>
105
105
  }
@@ -150,8 +150,9 @@ infer TMiddlewareInternal
150
150
 
151
151
  declare type MiddlewareHandler<
152
152
  THandler extends LambdaHandler<any, any>,
153
- TContext extends LambdaContext = LambdaContext
154
- > = THandler extends LambdaHandler<infer TEvent, infer TResult> // always true
153
+ TContext extends LambdaContext = LambdaContext,
154
+ TResult = any
155
+ > = THandler extends LambdaHandler<infer TEvent, TResult> // always true
155
156
  ? MiddyInputHandler<TEvent, TResult, TContext>
156
157
  : never
157
158
 
@@ -169,7 +170,7 @@ declare function middy<
169
170
  > (
170
171
  handler?:
171
172
  | LambdaHandler<TEvent, TResult>
172
- | MiddlewareHandler<LambdaHandler<TEvent, TResult>, TContext>
173
+ | MiddlewareHandler<LambdaHandler<TEvent, TResult>, TContext, TResult>
173
174
  | PluginObject,
174
175
  plugin?: PluginObject
175
176
  ): MiddyfiedHandler<TEvent, TResult, TErr, TContext, TInternal>
package/index.js CHANGED
@@ -63,7 +63,6 @@ const middy = (lambdaHandler = defaultLambdaHandler, plugin = {}) => {
63
63
  )
64
64
  }
65
65
 
66
- // Source @datastream/core (MIT)
67
66
  let handlerStream
68
67
  if (handlerBody._readableState) {
69
68
  handlerStream = handlerBody
@@ -154,7 +153,7 @@ const runRequest = async (
154
153
  await runMiddlewares(request, beforeMiddlewares, plugin)
155
154
 
156
155
  // Check if before stack hasn't exit early
157
- if (typeof request.response === 'undefined') {
156
+ if (!Object.prototype.hasOwnProperty.call(request, 'earlyResponse')) {
158
157
  plugin.beforeHandler?.()
159
158
 
160
159
  // Can't manually abort and timeout with same AbortSignal
@@ -231,7 +230,11 @@ const runMiddlewares = async (request, middlewares, plugin) => {
231
230
  plugin.afterMiddleware?.(nextMiddleware.name)
232
231
  // short circuit chaining and respond early
233
232
  if (typeof res !== 'undefined') {
234
- request.response = res
233
+ request.earlyResponse = res
234
+ }
235
+ // earlyResponse pattern added in 6.0.0 to handle undefined values
236
+ if (Object.prototype.hasOwnProperty.call(request, 'earlyResponse')) {
237
+ request.response = request.earlyResponse
235
238
  return
236
239
  }
237
240
  }
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@middy/core",
3
- "version": "5.5.0",
3
+ "version": "6.0.0-alpha.0",
4
4
  "description": "🛵 The stylish Node.js middleware engine for AWS Lambda (core package)",
5
5
  "type": "module",
6
6
  "engines": {
7
- "node": ">=18"
7
+ "node": ">=20"
8
8
  },
9
9
  "engineStrict": true,
10
10
  "publishConfig": {
@@ -16,6 +16,9 @@
16
16
  "import": {
17
17
  "types": "./index.d.ts",
18
18
  "default": "./index.js"
19
+ },
20
+ "require": {
21
+ "default": "./index.js"
19
22
  }
20
23
  }
21
24
  },
@@ -57,11 +60,9 @@
57
60
  "url": "https://github.com/sponsors/willfarrell"
58
61
  },
59
62
  "devDependencies": {
63
+ "@datastream/core": "0.0.38",
60
64
  "@types/aws-lambda": "^8.10.76",
61
65
  "@types/node": "^20.0.0"
62
66
  },
63
- "gitHead": "7a6c0fbb8ab71d6a2171e678697de9f237568431",
64
- "dependencies": {
65
- "@datastream/core": "0.0.38"
66
- }
67
+ "gitHead": "7a6c0fbb8ab71d6a2171e678697de9f237568431"
67
68
  }