feat(vercel): Support trailingSlash (#3176)

This commit is contained in:
Juan Martín Seery 2022-04-22 11:03:53 -03:00 committed by GitHub
parent 19667c45f3
commit 725c44a762
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 48 additions and 5 deletions

View file

@ -0,0 +1,5 @@
---
'@astrojs/vercel': patch
---
Support trailingSlash

View file

@ -87,11 +87,49 @@ export default function vercel(): AstroIntegration {
version: 3, version: 3,
basePath: '/', basePath: '/',
pages404: false, pages404: false,
rewrites: staticRoutes.map((route) => ({ redirects:
source: route.pathname, // Extracted from Next.js v12.1.5
regex: route.pattern.toString(), _config.trailingSlash === 'always'
destination: `/${ENTRYFILE}`, ? [
})), {
source: '/:file((?!\\.well-known(?:/.*)?)(?:[^/]+/)*[^/]+\\.\\w+)/',
destination: '/:file',
internal: true,
statusCode: 308,
regex: '^(?:/((?!\\.well-known(?:/.*)?)(?:[^/]+/)*[^/]+\\.\\w+))/$',
},
{
source: '/:notfile((?!\\.well-known(?:/.*)?)(?:[^/]+/)*[^/\\.]+)',
destination: '/:notfile/',
internal: true,
statusCode: 308,
regex: '^(?:/((?!\\.well-known(?:/.*)?)(?:[^/]+/)*[^/\\.]+))$',
},
]
: _config.trailingSlash === 'never'
? [
{
source: '/:path+/',
destination: '/:path+',
internal: true,
statusCode: 308,
regex: '^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$',
},
]
: undefined,
rewrites: staticRoutes.map((route) => {
let source = route.pathname as string;
if (_config.trailingSlash === 'always' && !source.endsWith('/')) {
source += '/';
}
return {
source,
regex: route.pattern.toString(),
destination: `/${ENTRYFILE}`,
};
}),
dynamicRoutes: dynamicRoutes.map((route) => ({ dynamicRoutes: dynamicRoutes.map((route) => ({
page: `/${ENTRYFILE}`, page: `/${ENTRYFILE}`,
regex: route.pattern.toString(), regex: route.pattern.toString(),