mirror of
https://github.com/LukeHagar/vercel.git
synced 2025-12-11 04:22:13 +00:00
Ensure beforeFiles rewrites come after redirects when continuing (#6289)
This commit is contained in:
@@ -39,7 +39,7 @@ function getCheckAndContinue(
|
||||
);
|
||||
} else if (route.check) {
|
||||
checks.push(route);
|
||||
} else if (route.continue) {
|
||||
} else if (route.continue && !route.override) {
|
||||
continues.push(route);
|
||||
} else {
|
||||
others.push(route);
|
||||
|
||||
@@ -104,6 +104,9 @@ export const routesSchema = {
|
||||
continue: {
|
||||
type: 'boolean',
|
||||
},
|
||||
override: {
|
||||
type: 'boolean',
|
||||
},
|
||||
check: {
|
||||
type: 'boolean',
|
||||
},
|
||||
|
||||
@@ -27,6 +27,7 @@ export type Source = {
|
||||
headers?: { [name: string]: string };
|
||||
methods?: string[];
|
||||
continue?: boolean;
|
||||
override?: boolean;
|
||||
check?: boolean;
|
||||
important?: boolean;
|
||||
status?: number;
|
||||
|
||||
47
packages/routing-utils/test/merge.spec.js
vendored
47
packages/routing-utils/test/merge.spec.js
vendored
@@ -419,3 +419,50 @@ test('mergeRoutes ensure `handle: error` comes last', () => {
|
||||
];
|
||||
deepStrictEqual(actual, expected);
|
||||
});
|
||||
|
||||
test('mergeRoutes ensure beforeFiles comes after redirects', () => {
|
||||
const userRoutes = [];
|
||||
const builds = [
|
||||
{
|
||||
use: '@vercel/next',
|
||||
entrypoint: 'package.json',
|
||||
routes: [
|
||||
{
|
||||
src: '^/home$',
|
||||
status: 301,
|
||||
headers: {
|
||||
Location: '/',
|
||||
},
|
||||
},
|
||||
{
|
||||
src: '^/hello$',
|
||||
dest: '/somewhere',
|
||||
continue: true,
|
||||
override: true,
|
||||
},
|
||||
{
|
||||
handle: 'filesystem',
|
||||
},
|
||||
{
|
||||
src: '^/404$',
|
||||
dest: '/404',
|
||||
status: 404,
|
||||
check: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
const actual = mergeRoutes({ userRoutes, builds });
|
||||
const expected = [
|
||||
{ src: '^/home$', status: 301, headers: { Location: '/' } },
|
||||
{
|
||||
src: '^/hello$',
|
||||
dest: '/somewhere',
|
||||
continue: true,
|
||||
override: true,
|
||||
},
|
||||
{ handle: 'filesystem' },
|
||||
{ src: '^/404$', dest: '/404', status: 404, check: true },
|
||||
];
|
||||
deepStrictEqual(actual, expected);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user