Remove necessity for next to always be defined when using .run#215
Open
sf185127 wants to merge 1 commit into
Open
Remove necessity for next to always be defined when using .run#215sf185127 wants to merge 1 commit into
sf185127 wants to merge 1 commit into
Conversation
It is possible to hit a scenario where there is no "next" function but if I want to have universal middleware it gets an invalid function back from next-connect when i try to call it.
IE:
```
const withGlobal = () =>
createRouter().use(async (req, res, next) => {
const nextResults = next ? await next() : undefined;
return {
...nextResults,
props: { ...nextResults?.props, global: { yo: "yo" } },
};
});
```
and in the page i have
```
export const getServerSideProps = async (ctx: GetServerSidePropsContext) =>
await createRouter()
.use(withGlobal())
.run(ctx.req, ctx.res);
```
Running this throws `TypeError: Function.prototype.apply was called on undefined, which is a undefined and not a function`
which i traced back to this file in Router.exec line 80
it expects there to be a function inside fns at ++i but since i'm using run (and not a get or post handler) i shouldnt need to add anymore fns on the end of this.
FYI
```
export const getServerSideProps = async (ctx: GetServerSidePropsContext) =>
await createRouter()
.use(withGlobal())
.use(() => ({}))
.run(ctx.req, ctx.res);
```
*does* work because creates the fn that next() is looking for, but its ugly and idontwanna
|
Codecov Report
@@ Coverage Diff @@
## main #215 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 5 5
Lines 436 436
Branches 60 60
=========================================
Hits 436 436
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
leonardorm1998
approved these changes
Oct 30, 2023
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
It is possible to hit a scenario where there is no "next" function but if I want to have universal middleware it gets an invalid function back from next-connect when i try to call it.
IE:
and in the page i have
Running this throws
TypeError: Function.prototype.apply was called on undefined, which is a undefined and not a functionwhich i traced back to this file in Router.exec line 80 it expects there to be a function inside fns at ++i but since i'm using run (and not a get or post handler) i shouldnt need to add anymore fns on the end of this.
FYI
does work because creates the fn that next() is looking for, but its ugly and idontwanna