feat: improve vercel query param handling #2375
Draft
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.
π Linked issue
#1880
β Type of change
π Description
When using ISR on Vercel, you can define which query params should be considered for the cache using the
allowQuery
key in the.prerender-config.json
files. This is documented in the Build API docs:Nitro by default sets this to
["url"]
for catch-all routes (/**
). This PR allows defining a customallowQuery
configuration for each routeRule. It ensures that "url" is always allowed for catch-all routes, except when the route explicitly setsallowQuery
toundefined
to allow all params.Additionally, we add support for Vercel's
passQuery
param.This is especially useful for cacheable server routes that need to access the request's query params.
As an example, this configuration would ensure that each query parameter is cached independently on all routes, and allows the API endpoint to access the query params.
If you consider merging this change, I will happily add some documentation for it in the vercel section. Let me know what you think.
π Checklist