With createRoute
you get access to typesafe params,
search params, redirect
, rewrite
and even getStaticPaths
.
To create a route, export a constant called Route
so Astro Typesafe Routes can detect it.
import { createRoute } from "astro-typesafe-routes/create-route";
export const Route = createRoute({
routeId: "/blog/[postId]",
});
You can read typed params by calling getParams
on your created route.
import { createRoute } from "astro-typesafe-routes/create-route";
export const Route = createRoute({
routeId: "/blog/[postId]",
});
const { postId } = Route.getParams(Astro);
Add typed and JSON serialized search params to your route by adding a searchSchema. More details can be found here.
import { createRoute } from "astro-typesafe-routes/create-route";
export const Route = createRoute({
routeId: "/blog/[postId]",
});
return Route.redirect(Astro, { to: "/" });
import { createRoute } from "astro-typesafe-routes/create-route";
export const Route = createRoute({
routeId: "/blog/[postId]",
});
return Route.rewrite(Astro, { to: "/" });
getStaticPaths
import { createRoute } from "astro-typesafe-routes/create-route";
export const Route = createRoute({
routeId: "/blog/[postId]",
});
export const getStaticPaths = Route.createGetStaticPaths(() => [
{
params: {
postId: "1",
},
},
]);