summaryrefslogtreecommitdiff
path: root/packages/integrations/node/src
diff options
context:
space:
mode:
authorGravatar Emanuele Stoppa <my.burning@gmail.com> 2023-08-21 17:29:38 +0100
committerGravatar GitHub <noreply@github.com> 2023-08-21 17:29:38 +0100
commit6f84e2af0e4d03497fae6d0b4eaabebfcdf37d88 (patch)
tree565009f91ef544692556ff4d9a5714fb31cf559c /packages/integrations/node/src
parent07faa9a779fbf89e55e1870d428574b6efbf533d (diff)
downloadastro-6f84e2af0e4d03497fae6d0b4eaabebfcdf37d88.tar.gz
astro-6f84e2af0e4d03497fae6d0b4eaabebfcdf37d88.tar.zst
astro-6f84e2af0e4d03497fae6d0b4eaabebfcdf37d88.zip
fix(@astrojs/node): handler should work with `express` (#8176)
Diffstat (limited to 'packages/integrations/node/src')
-rw-r--r--packages/integrations/node/src/nodeMiddleware.ts17
1 files changed, 12 insertions, 5 deletions
diff --git a/packages/integrations/node/src/nodeMiddleware.ts b/packages/integrations/node/src/nodeMiddleware.ts
index fa0cdfda8..1e0aaea0f 100644
--- a/packages/integrations/node/src/nodeMiddleware.ts
+++ b/packages/integrations/node/src/nodeMiddleware.ts
@@ -6,15 +6,22 @@ import { responseIterator } from './response-iterator';
import type { ErrorHandlerParams, Options, RequestHandlerParams } from './types';
// Disable no-unused-vars to avoid breaking signature change
-// eslint-disable-next-line @typescript-eslint/no-unused-vars
-export default function (app: NodeApp, _mode: Options['mode']) {
+export default function (app: NodeApp, mode: Options['mode']) {
return async function (...args: RequestHandlerParams | ErrorHandlerParams) {
let error = null;
- let [req, res, next, locals] = args as RequestHandlerParams;
+ let locals;
+ let [req, res, next] = args as RequestHandlerParams;
+ if (mode === 'middleware') {
+ let { [3]: _locals } = args;
+ locals = _locals;
+ }
if (args[0] instanceof Error) {
- [error, req, res, next, locals] = args as ErrorHandlerParams;
-
+ [error, req, res, next] = args as ErrorHandlerParams;
+ if (mode === 'middleware') {
+ let { [4]: _locals } = args as ErrorHandlerParams;
+ locals = _locals;
+ }
if (error) {
if (next) {
return next(error);