fix(vite-plugin-nitro): use proxy to relay requests without api prefix #404
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.
There was an issue that when built for production our nitro server would turn POST requests into GET requests and drop the body. This issue stems from our middleware using $fetch to relay the request with the removed /api prefix. By default, $fetch requests are GET requests and therefore all other requests are converted. So instead of using $fetch directly, we use h3's proxyRequest function to take care of the conversion. We still pass the $fetch.native as our custom fetch implementation as it takes care of figuring out the base URL for us. To make sure that we also test this issue I changed the trpc-app's e2e test to run against the production output. I did the same for the analog-app-e2e-playwright project.
PR Checklist
Please check if your PR fulfills the following requirements:
PR Type
What kind of change does this PR introduce?
Which package are you modifying?
What is the current behavior?
There was an issue that when built for production our nitro server would turn POST requests into GET requests and drop the body.
Issue Number: N/A
What is the new behavior?
Instead of using $fetch directly, we use h3's proxyRequest function to take care of the conversion.
Does this PR introduce a breaking change?
Other information