For cases like redirects or when the Link component isn’t suitable, use the $path
function to get typesafe URLs.
---
import { isLoggedIn } from '../utils';
import { $path } from "astro-typesafe-routes/path";
const cookie = Astro.request.headers.get('cookie');
if (!isLoggedIn(cookie)) {
return Astro.redirect($path({ to: "/login" }));
}
---
The $path
function supports the optional fields searchParams
, hash
, and trailingSlash
.
Note that trailingSlash
will be automatically read from astro.config.js
and only needs to be passed explicitly as an override.
---
import { $path } from "astro-typesafe-routes/path";
$path({
to: "/blog",
hash: "header",
trailingSlash: true,
searchParams: { filter: "recent" }
})
---