-
BREAKING CHANGE: removed
options
arg fromcreateHrefBuilder
-
BREAKING CHANGE: removed support for enum patterns
-
Add
pattern.href(...args)
method for generating URLs from patternsimport { RoutePattern } from '@remix-run/route-pattern' let pattern = new RoutePattern('users/:id') pattern.href({ id: '123' }) // "/users/123"
-
Add
createRoutes
function for working with more than one pattern at a time. This generates aRouteMap
object that allows human-friendly naming of patterns.import { createRoutes } from '@remix-run/route-pattern' let routes = createRoutes({ home: '/', blog: { index: '/blog', post: '/blog/:slug', }, }) routes.home.match('https://remix.run/') // { params: {} } routes.blog.post.match('https://remix.run/blog/my-post') // { params: { slug: 'my-post' } } routes.blog.post.href({ slug: 'my-post' }) // "/blog/my-post"
A
RouteMap
also works as a generic tocreateHrefBuilder()
to restrict the set of patterns that may be used as the first argument.import { createHrefBuilder } from '@remix-run/route-pattern' let href = createHrefBuilder<typeof routes>() href('/blog/:slug', { slug: 'my-post' }) // "/blog/my-post"
-
Add
pattern.join(input, options)
, which allows a pattern to be built relative
to another patternimport { RoutePattern } from '@remix-run/route-pattern' let base = new RoutePattern('https://remix.run/api') let pattern = base.join('users/:id') pattern.source // "https://remix.run/api/users/:id"
-
Export
RouteMatch
type as public API -
Allow
null
andundefined
as values for optional params