Skip to content

Commit

Permalink
fix: add middleware value check
Browse files Browse the repository at this point in the history
  • Loading branch information
Howard86 committed Dec 4, 2022
1 parent 3a2fd50 commit 5838001
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
16 changes: 10 additions & 6 deletions src/lib/router-builder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -149,10 +149,12 @@ export class RouterBuilder extends ExpressLikeRouter {
this.logger.debug(`Resolved ${list.length} ${method} middleware list`);

return list.map(async (middleware) => {
const middlewareValue = await Promise.resolve(middleware(req, res));
const middlewareValue = await middleware(req, res);

for (const middlewareKey of Object.keys(middlewareValue)) {
req.middleware[middlewareKey] = middlewareValue[middlewareKey];
if (middlewareValue) {
for (const middlewareKey of Object.keys(middlewareValue)) {
req.middleware[middlewareKey] = middlewareValue[middlewareKey];
}
}
});
}
Expand All @@ -168,10 +170,12 @@ export class RouterBuilder extends ExpressLikeRouter {
this.logger.debug(`Resolved ${queue.length} ${method} middleware queue`);

for (const middleware of queue) {
const middlewareValue = await Promise.resolve(middleware(req, res));
const middlewareValue = await middleware(req, res);

for (const middlewareKey of Object.keys(middlewareValue)) {
req.middleware[middlewareKey] = middlewareValue[middlewareKey];
if (middlewareValue) {
for (const middlewareKey of Object.keys(middlewareValue)) {
req.middleware[middlewareKey] = middlewareValue[middlewareKey];
}
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/lib/type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export type NextApiHandlerWithMiddleware<
> = (
req: NextApiRequestWithMiddleware<M>,
res: NextApiResponse
) => T | Promise<T>;
) => T | Promise<T> | void;

/**
* a standard next.js api request but with req.middleware available
Expand Down

0 comments on commit 5838001

Please sign in to comment.