Create Route

With createRoute you get access to typesafe params, search params, redirect, rewrite and even getStaticPaths.


Creating a Route

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]",
});

Reading Params

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);

Search Params

Add typed and JSON serialized search params to your route by adding a searchSchema. More details can be found here.


Redirect

import { createRoute } from "astro-typesafe-routes/create-route";

export const Route = createRoute({
  routeId: "/blog/[postId]",
});

return Route.redirect(Astro, { to: "/" });

Rewrite

import { createRoute } from "astro-typesafe-routes/create-route";

export const Route = createRoute({
  routeId: "/blog/[postId]",
});

return Route.rewrite(Astro, { to: "/" });

Typesafe getStaticPaths

import { createRoute } from "astro-typesafe-routes/create-route";

export const Route = createRoute({
  routeId: "/blog/[postId]",
});

export const getStaticPaths = Route.createGetStaticPaths(() => [
  {
    params: {
      postId: "1",
    },
  },
]);