@sanity/routes
    Preparing search index...

    Interface FrameworkRedirect

    A redirect entry formatted for framework integration.

    The shape matches Next.js redirects() config directly. For other frameworks (Remix, SvelteKit), a light transform may be needed — e.g., Remix uses { path, redirect, status } and SvelteKit uses { from, to, status }.

    // next.config.js — use directly
    import { createClient } from '@sanity/client'
    import { getRedirects } from '@sanity/routes'

    const client = createClient({ projectId: 'your-id', dataset: 'production', apiVersion: '2024-01-01', useCdn: true })
    export default {
    async redirects() {
    return getRedirects(client)
    }
    }

    // Remix — transform
    const redirects = await getRedirects(client)
    const remixRedirects = redirects.map(r => ({
    path: r.source,
    redirect: r.destination,
    status: r.statusCode,
    }))
    interface FrameworkRedirect {
        destination: string;
        permanent: boolean;
        source: string;
        statusCode: number;
    }
    Index

    Properties

    destination: string

    The destination path to redirect to (e.g., /blog/new-slug).

    permanent: boolean

    Whether this is a permanent redirect (301 or 308).

    source: string

    The source path to redirect from (e.g., /blog/old-slug).

    statusCode: number

    The HTTP status code (301, 302, 307, or 308).