0
Fork 0
mirror of https://github.com/withastro/astro.git synced 2025-03-10 23:01:26 -05:00

[ci] format

This commit is contained in:
matthewp 2023-06-05 13:05:47 +00:00 committed by fredkbot
parent 21a0fdc390
commit 5a42d377f9
2 changed files with 15 additions and 18 deletions

View file

@ -1,10 +1,9 @@
import type { AstroConfig, RouteData, RoutePart } from 'astro';
import { appendForwardSlash } from '@astrojs/internal-helpers/path';
import type { AstroConfig, RouteData, RoutePart } from 'astro';
import nodePath from 'node:path';
const pathJoin = nodePath.posix.join;
// https://vercel.com/docs/project-configuration#legacy/routes
interface VercelRoute {
src: string;
@ -60,19 +59,19 @@ function getReplacePattern(segments: RoutePart[][]) {
}
function getRedirectLocation(route: RouteData, config: AstroConfig): string {
if(route.redirectRoute) {
if (route.redirectRoute) {
const pattern = getReplacePattern(route.redirectRoute.segments);
const path = (config.trailingSlash === 'always' ? appendForwardSlash(pattern) : pattern);
const path = config.trailingSlash === 'always' ? appendForwardSlash(pattern) : pattern;
return pathJoin(config.base, path);
} else if(typeof route.redirect === 'object') {
} else if (typeof route.redirect === 'object') {
return pathJoin(config.base, route.redirect.destination);
} else {
return pathJoin(config.base, route.redirect || '');
}
}
}
function getRedirectStatus(route: RouteData): number {
if(typeof route.redirect === 'object') {
if (typeof route.redirect === 'object') {
return route.redirect.status;
}
return 301;
@ -81,14 +80,12 @@ function getRedirectStatus(route: RouteData): number {
export function getRedirects(routes: RouteData[], config: AstroConfig): VercelRoute[] {
let redirects: VercelRoute[] = [];
for(const route of routes) {
if(route.type === 'redirect') {
for (const route of routes) {
if (route.type === 'redirect') {
redirects.push({
src: config.base + getMatchPattern(route.segments),
headers: { Location: getRedirectLocation(route, config) },
status: getRedirectStatus(route)
status: getRedirectStatus(route),
});
} else if (route.type === 'page') {
if (config.trailingSlash === 'always') {

View file

@ -14,7 +14,7 @@ describe('Redirects', () => {
'/two': '/',
'/three': {
status: 302,
destination: '/'
destination: '/',
},
'/blog/[...slug]': '/team/articles/[...slug]',
},
@ -35,15 +35,15 @@ describe('Redirects', () => {
it('define static routes', async () => {
const config = await getConfig();
const oneRoute = config.routes.find(r => r.src === '/\\/one');
const oneRoute = config.routes.find((r) => r.src === '/\\/one');
expect(oneRoute.headers.Location).to.equal('/');
expect(oneRoute.status).to.equal(301);
const twoRoute = config.routes.find(r => r.src === '/\\/two');
const twoRoute = config.routes.find((r) => r.src === '/\\/two');
expect(twoRoute.headers.Location).to.equal('/');
expect(twoRoute.status).to.equal(301);
const threeRoute = config.routes.find(r => r.src === '/\\/three');
const threeRoute = config.routes.find((r) => r.src === '/\\/three');
expect(threeRoute.headers.Location).to.equal('/');
expect(threeRoute.status).to.equal(302);
});
@ -51,7 +51,7 @@ describe('Redirects', () => {
it('defines dynamic routes', async () => {
const config = await getConfig();
const blogRoute = config.routes.find(r => r.src.startsWith('/\\/blog'));
const blogRoute = config.routes.find((r) => r.src.startsWith('/\\/blog'));
expect(blogRoute).to.not.be.undefined;
expect(blogRoute.headers.Location.startsWith('/team/articles')).to.equal(true);
expect(blogRoute.status).to.equal(301);