Skip to content

Commit 1149255

Browse files
committed
Add createRoute
1 parent efd9f12 commit 1149255

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

packages/fetch-router/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export {
99
RequestContext,
1010
isRouteMap,
1111
Route,
12+
createRoute,
1213
createRoutes,
1314
isRouteHandlerMap,
1415
RouteHandler,

packages/fetch-router/src/lib/router.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,22 @@ export class Route<M extends RequestMethod = RequestMethod, P extends string = s
7878
}
7979
}
8080

81+
/**
82+
* Create a route from a pattern and a route definition.
83+
*/
84+
export function createRoute<P extends string>(
85+
pattern: P | RoutePattern<P>,
86+
routeDef: RouteDef<P>,
87+
): Route<RequestMethod, P> {
88+
if (typeof routeDef === 'string') {
89+
return new Route('GET', new RoutePattern(pattern))
90+
} else if (isObjectRouteDef(routeDef)) {
91+
return new Route(routeDef.method ?? 'GET', new RoutePattern(routeDef.pattern))
92+
} else {
93+
throw new Error(`Invalid route definition`)
94+
}
95+
}
96+
8197
/**
8298
* Create a route map from a set of route definitions.
8399
*/

0 commit comments

Comments
 (0)