@typed/router 1.0.0-beta.0 → 1.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +73 -55
- package/dist/Matcher.d.ts +23 -5
- package/dist/Matcher.d.ts.map +1 -1
- package/dist/Matcher.js +39 -3
- package/dist/Parser.d.ts +3 -7
- package/dist/Parser.d.ts.map +1 -1
- package/dist/Path.d.ts +4 -4
- package/dist/Router.d.ts.map +1 -1
- package/package.json +21 -17
- package/src/Matcher.test.ts +28 -8
- package/src/Matcher.ts +126 -17
- package/src/Parser.ts +3 -9
- package/src/Router.ts +3 -1
- package/tsconfig.json +0 -6
package/README.md
CHANGED
|
@@ -2,7 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
> **Beta:** This package is in beta; APIs may change.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
`@typed/router` provides **typed routing** for Effect apps: path and query parameters derived from route strings and decoded via Effect Schema, **Route** definitions, **Matcher** (pattern matching on routes), **CurrentRoute**, and **Router** layers. Use it when you need type-safe routing with parsable path/query and composable matchers that produce Fx streams and react to path changes.
|
|
8
|
+
|
|
9
|
+
## Use cases
|
|
10
|
+
|
|
11
|
+
- **Typed SPAs** — `BrowserRouter()` + `run(matcher)` for client-side routing; matcher cases yield Fx that switch as the path changes.
|
|
12
|
+
- **SSR** — `ServerRouter({ initialMemory })` for server rendering with in-memory navigation.
|
|
13
|
+
- **Tests** — `TestRouter()` with deterministic IDs for predictable route tests.
|
|
14
|
+
- **File-based routing** — `@typed/app` virtual modules generate Matcher source from route files; use `import { Matcher } from "router:./routes"` with typedVitePlugin or vmc.
|
|
15
|
+
|
|
16
|
+
## Architecture
|
|
17
|
+
|
|
18
|
+
1. **Route** — Define paths (`Route.Parse("/todos/:id")`), optionally with query (`?filter=`). Path and query types come from the route string.
|
|
19
|
+
2. **Matcher** — Add cases via `match(route, handler)`; each case returns an Fx, Effect, Stream, or value. Nest routes with `prefix(route)`.
|
|
20
|
+
3. **run(matcher)** — Compile the matcher and return an Fx that reacts to `CurrentPath` from `Navigation`. When the path changes, the matcher selects the matching case, scopes the previous handler, and yields the new handler's Fx.
|
|
21
|
+
4. **Router layers** — Provide `BrowserRouter`, `ServerRouter`, or `TestRouter` to supply `Navigation` and `CurrentRoute`.
|
|
6
22
|
|
|
7
23
|
## Dependencies
|
|
8
24
|
|
|
@@ -37,78 +53,80 @@ const filterState = Router.match(Router.Slash, "all")
|
|
|
37
53
|
// Provide Router.BrowserRouter() and use filterState (or other matchers) in your layers
|
|
38
54
|
```
|
|
39
55
|
|
|
56
|
+
For file-based routing, see `@typed/app` and its virtual `router:./routes` imports.
|
|
57
|
+
|
|
40
58
|
## API reference
|
|
41
59
|
|
|
42
60
|
### Router
|
|
43
61
|
|
|
44
|
-
| Symbol
|
|
45
|
-
|
|
46
|
-
| `Router`
|
|
47
|
-
| `BrowserRouter(window?)` | `Layer<Router>`. Provides router using the browser `window` (or global).
|
|
48
|
-
| `ServerRouter(options)`
|
|
49
|
-
| `TestRouter(options)`
|
|
62
|
+
| Symbol | Description |
|
|
63
|
+
| ------------------------ | ----------------------------------------------------------------------------------------------- |
|
|
64
|
+
| `Router` | Type: `CurrentRoute` or `Navigation`. The routing service union. |
|
|
65
|
+
| `BrowserRouter(window?)` | `Layer<Router>`. Provides router using the browser `window` (or global). |
|
|
66
|
+
| `ServerRouter(options)` | `Layer<Router>`. Provides router with `memory()` or `initialMemory()` from `@typed/navigation`. |
|
|
67
|
+
| `TestRouter(options)` | `Layer<Router>`. Like `ServerRouter` but with `Ids.Test()` for deterministic IDs. |
|
|
50
68
|
|
|
51
69
|
### Route
|
|
52
70
|
|
|
53
|
-
| Symbol
|
|
54
|
-
|
|
55
|
-
| `Route<P, S>`
|
|
56
|
-
| `Route.make(ast)`
|
|
57
|
-
| `Route.Parse(path)`
|
|
58
|
-
| `Route.Slash`
|
|
59
|
-
| `Route.Wildcard`
|
|
60
|
-
| `Route.Param(name)`
|
|
61
|
-
| `Route.ParamWithSchema(name, schema)`
|
|
62
|
-
| `Route.Number(name)`
|
|
63
|
-
| `Route.Int(name)`
|
|
64
|
-
| `Route.Join(...routes)`
|
|
65
|
-
| `Route.Path<T>`, `Route.Type<T>`, `Route.Params<T>` | Type helpers for a route’s path string, decoded type, and params.
|
|
71
|
+
| Symbol | Description |
|
|
72
|
+
| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
|
|
73
|
+
| `Route<P, S>` | Interface: `ast`, `path`, `paramsSchema`, `pathSchema`, `querySchema`. Path/query types come from the path string. |
|
|
74
|
+
| `Route.make(ast)` | Build a `Route` from an `AST.RouteAst`. |
|
|
75
|
+
| `Route.Parse(path)` | Parse a path string (e.g. `"/todos/:id?filter=all"`) into a typed `Route`. |
|
|
76
|
+
| `Route.Slash` | Route for `"/"`. |
|
|
77
|
+
| `Route.Wildcard` | Route for `"*"`. |
|
|
78
|
+
| `Route.Param(name)` | Route for `/:name` (string param). |
|
|
79
|
+
| `Route.ParamWithSchema(name, schema)` | Route for `/:name` with an Effect Schema codec. |
|
|
80
|
+
| `Route.Number(name)` | Route for `/:name` decoded as number. |
|
|
81
|
+
| `Route.Int(name)` | Route for `/:name` decoded as integer. |
|
|
82
|
+
| `Route.Join(...routes)` | Join route segments into one route (path and params combined). |
|
|
83
|
+
| `Route.Path<T>`, `Route.Type<T>`, `Route.Params<T>` | Type helpers for a route’s path string, decoded type, and params. |
|
|
66
84
|
|
|
67
85
|
### Matcher
|
|
68
86
|
|
|
69
|
-
| Symbol
|
|
70
|
-
|
|
71
|
-
| `Matcher<A, E, R>`
|
|
72
|
-
| `match`
|
|
73
|
-
| `empty`
|
|
74
|
-
| `matcher.match(route, handler)`
|
|
75
|
-
| `matcher.match(route, options)`
|
|
76
|
-
| `matcher.match(route, guard, handler)` | Add a case with a guard (e.g. from `@typed/guard`) before the handler.
|
|
77
|
-
| `matcher.prefix(route)`
|
|
78
|
-
| `matcher.provide(...layers)`
|
|
79
|
-
| `matcher.provideService(tag, service)` | Provide a single service.
|
|
80
|
-
| `matcher.provideServices(services)`
|
|
81
|
-
| `matcher.catchCause(f)`
|
|
82
|
-
| `matcher.catch(f)`
|
|
83
|
-
| `matcher.catchTag(tag, f)`
|
|
84
|
-
| `matcher.layout(layout)`
|
|
85
|
-
| `run(matcher)`
|
|
86
|
-
| `catchCause(input, f)`
|
|
87
|
-
| `catch(input, f)`
|
|
88
|
-
| `catchTag(input, tag, f)`
|
|
89
|
-
| `redirectTo(path)`
|
|
87
|
+
| Symbol | Description |
|
|
88
|
+
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
|
|
89
|
+
| `Matcher<A, E, R>` | Interface: pattern match on routes; each case yields an Fx. |
|
|
90
|
+
| `match` | Start a matcher (same as `empty.match`). |
|
|
91
|
+
| `empty` | Empty matcher (no cases). |
|
|
92
|
+
| `matcher.match(route, handler)` | Add a case: `route` + handler (function, Fx, Effect, Stream, or value). |
|
|
93
|
+
| `matcher.match(route, options)` | Add a case with `handler`, optional `dependencies`, `layout`, `catch`. |
|
|
94
|
+
| `matcher.match(route, guard, handler)` | Add a case with a guard (e.g. from `@typed/guard`) before the handler. |
|
|
95
|
+
| `matcher.prefix(route)` | Nest this matcher under a parent route. |
|
|
96
|
+
| `matcher.provide(...layers)` | Provide Effect layers to the matcher. |
|
|
97
|
+
| `matcher.provideService(tag, service)` | Provide a single service. |
|
|
98
|
+
| `matcher.provideServices(services)` | Provide a service map. |
|
|
99
|
+
| `matcher.catchCause(f)` | Handle failures by cause. |
|
|
100
|
+
| `matcher.catch(f)` | Handle failures by error value. |
|
|
101
|
+
| `matcher.catchTag(tag, f)` | Handle a specific error tag. |
|
|
102
|
+
| `matcher.layout(layout)` | Wrap matcher output in a layout Fx. |
|
|
103
|
+
| `run(matcher)` | Compile the matcher and return an `Fx` that reacts to the current path (requires `Router` + `CurrentRoute`). |
|
|
104
|
+
| `catchCause(input, f)` | Attach cause-based error handling to an Fx or matcher run. |
|
|
105
|
+
| `catch(input, f)` | Attach error-based handling. |
|
|
106
|
+
| `catchTag(input, tag, f)` | Attach tag-based error handling. |
|
|
107
|
+
| `redirectTo(path)` | Returns a function that, given an Fx or matcher, redirects to `path` on failure. |
|
|
90
108
|
|
|
91
109
|
**Matcher types**
|
|
92
110
|
|
|
93
|
-
| Type
|
|
94
|
-
|
|
95
|
-
| `Layout<Params, A, E, R, B, E2, R2>` | `(params) => Fx<B, E2, R2>`; wraps content with params and inner Fx.
|
|
96
|
-
| `CatchHandler<E, A, E2, R2>`
|
|
97
|
-
| `MatchHandler<Params, A, E, R>`
|
|
111
|
+
| Type | Description |
|
|
112
|
+
| ------------------------------------ | --------------------------------------------------------------------- |
|
|
113
|
+
| `Layout<Params, A, E, R, B, E2, R2>` | `(params) => Fx<B, E2, R2>`; wraps content with params and inner Fx. |
|
|
114
|
+
| `CatchHandler<E, A, E2, R2>` | `(cause: RefSubject<Cause<E>>) => Fx<A, E2, R2>`. |
|
|
115
|
+
| `MatchHandler<Params, A, E, R>` | Handler for a route: Fx, Effect, Stream, value, or `(params) => ...`. |
|
|
98
116
|
|
|
99
117
|
**Errors**
|
|
100
118
|
|
|
101
|
-
| Class
|
|
102
|
-
|
|
103
|
-
| `RouteNotFound`
|
|
119
|
+
| Class | Description |
|
|
120
|
+
| ------------------ | ----------------------------------------------------- |
|
|
121
|
+
| `RouteNotFound` | No route matched the path. |
|
|
104
122
|
| `RouteDecodeError` | Path/query failed to decode (e.g. schema validation). |
|
|
105
|
-
| `RouteGuardError`
|
|
123
|
+
| `RouteGuardError` | Guard rejected (e.g. auth). |
|
|
106
124
|
|
|
107
125
|
### CurrentRoute
|
|
108
126
|
|
|
109
|
-
| Symbol
|
|
110
|
-
|
|
111
|
-
| `CurrentRoute`
|
|
112
|
-
| `CurrentRouteTree`
|
|
113
|
-
| `CurrentRoute.Default`
|
|
127
|
+
| Symbol | Description |
|
|
128
|
+
| ---------------------------- | ------------------------------------------------------------------------------ |
|
|
129
|
+
| `CurrentRoute` | Effect Service exposing the current matched route tree. |
|
|
130
|
+
| `CurrentRouteTree` | `{ route: Route<string, any>; parent?: CurrentRouteTree }`. |
|
|
131
|
+
| `CurrentRoute.Default` | Layer that provides `CurrentRoute` from `Navigation.base`. |
|
|
114
132
|
| `CurrentRoute.extend(route)` | Layer that provides `CurrentRoute` with a fixed `route` and optional `parent`. |
|
package/dist/Matcher.d.ts
CHANGED
|
@@ -92,30 +92,43 @@ export interface Matcher<A, E = never, R = never> extends Pipeable {
|
|
|
92
92
|
readonly catch: <B, E2, R2>(f: (e: E) => Fx.Fx<B, E2, R2>) => Matcher<A | B, E2, R | R2>;
|
|
93
93
|
readonly catchTag: <const K extends Tags<E> | Arr.NonEmptyReadonlyArray<Tags<E>>, B, E2, R2>(tag: K, f: (e: ExtractTag<NoInfer<E>, K extends Arr.NonEmptyReadonlyArray<string> ? K[number] : K>) => Fx.Fx<B, E2, R2>) => Matcher<A | B, E2 | ExcludeTag<E, K extends Arr.NonEmptyReadonlyArray<string> ? K[number] : K>, R | R2>;
|
|
94
94
|
readonly layout: <B, E2, R2>(layout: Layout<any, A, E, R, B, E2, R2>) => Matcher<B, E | E2, R | R2>;
|
|
95
|
+
/** Merge this matcher with one or more others. Combined matcher matches all routes; each matcher's layouts/provide apply only to its own routes. */
|
|
96
|
+
readonly merge: <const Others extends ReadonlyArray<Matcher.Any>>(...others: Others) => Matcher<A | Matcher.MergeSuccess<Others>, E | Matcher.MergeError<Others>, R | Matcher.MergeServices<Others>>;
|
|
95
97
|
}
|
|
96
98
|
export declare namespace Matcher {
|
|
97
99
|
type Any = Matcher<any, any, any> | Matcher<any, never, any> | Matcher<any, any, never> | Matcher<any, never, never>;
|
|
98
100
|
type Success<T> = [T] extends [Matcher<infer A, infer _E, infer _R>] ? A : never;
|
|
99
101
|
type Error<T> = [T] extends [Matcher<infer _A, infer E, infer _R>] ? E : never;
|
|
100
102
|
type Services<T> = [T] extends [Matcher<infer _A, infer _E, infer R>] ? R : never;
|
|
103
|
+
/** Union of Success types from each matcher in a tuple. */
|
|
104
|
+
type MergeSuccess<Matchers extends ReadonlyArray<Matcher.Any>> = Success<Matchers[number]>;
|
|
105
|
+
/** Union of Error types from each matcher in a tuple. */
|
|
106
|
+
type MergeError<Matchers extends ReadonlyArray<Matcher.Any>> = Error<Matchers[number]>;
|
|
107
|
+
/** Union of Services types from each matcher in a tuple. */
|
|
108
|
+
type MergeServices<Matchers extends ReadonlyArray<Matcher.Any>> = Services<Matchers[number]>;
|
|
101
109
|
}
|
|
102
110
|
export type MatchHandler<Params, A, E, R> = Fx.Fx<A, E, R> | Stream.Stream<A, E, R> | Effect.Effect<A, E, R> | A | ((params: RefSubject.RefSubject<Params>) => Fx.Fx<A, E, R> | Stream.Stream<A, E, R> | Effect.Effect<A, E, R> | A);
|
|
103
111
|
export declare const empty: Matcher<never>;
|
|
104
112
|
export declare const match: {
|
|
105
|
-
<Rt extends Route.Any, B, E2 = never, R2 = never>(route: Rt, handler: (params: RefSubject.RefSubject<Route.Type<Rt>, never, never>) => MatchHandlerReturnValue<B, E2, R2>): Matcher<B, E2,
|
|
106
|
-
<Rt extends Route.Any, B, E2 = never, R2 = never>(route: Rt, handler: Fx.Fx<B, E2, R2> | Effect.Effect<B, E2, R2> | Stream.Stream<B, E2, R2>): Matcher<B, E2,
|
|
113
|
+
<Rt extends Route.Any, B, E2 = never, R2 = never>(route: Rt, handler: (params: RefSubject.RefSubject<Route.Type<Rt>, never, never>) => MatchHandlerReturnValue<B, E2, R2>): Matcher<B, E2, Scope.Scope | R2>;
|
|
114
|
+
<Rt extends Route.Any, B, E2 = never, R2 = never>(route: Rt, handler: Fx.Fx<B, E2, R2> | Effect.Effect<B, E2, R2> | Stream.Stream<B, E2, R2>): Matcher<B, E2, Scope.Scope | R2>;
|
|
107
115
|
<Rt extends Route.Any, B, E2 = never, R2 = never, D extends ReadonlyArray<AnyDependency> | undefined = undefined, LB = B, LE2 = never, LR2 = never, C extends CatchHandler<any, any, any, any> | undefined = undefined>(route: Rt, options: MatchHandlerOptions<Route.Type<Rt>, B, E2, R2, D, LB, LE2, LR2, C>): Matcher<ApplyCatch<LB, ApplyDependencies<E2 | LE2, R2 | LR2, D>["e"], ApplyDependencies<E2 | LE2, R2 | LR2, D>["r"], C>["a"], ApplyCatch<LB, ApplyDependencies<E2 | LE2, R2 | LR2, D>["e"], ApplyDependencies<E2 | LE2, R2 | LR2, D>["r"], C>["e"], Scope.Scope | ApplyCatch<LB, ApplyDependencies<E2 | LE2, R2 | LR2, D>["e"], ApplyDependencies<E2 | LE2, R2 | LR2, D>["r"], C>["r"]>;
|
|
108
116
|
<Rt extends Route.Any, const B>(route: Rt, handler: B): Matcher<B, never, Scope.Scope>;
|
|
109
|
-
<Rt extends Route.Any, G extends GuardInput<Route.Type<Rt>, any, any, any>, B, E2 = never, R2 = never>(route: Rt, guard: G, handler: (params: RefSubject.RefSubject<GuardOutput<G>, never, never>) => MatchHandlerReturnValue<B, E2, R2>): Matcher<B, E2 | GuardError<G>,
|
|
110
|
-
<Rt extends Route.Any, G extends GuardInput<Route.Type<Rt>, any, any, any>, B, E2 = never, R2 = never>(route: Rt, guard: G, handler: Fx.Fx<B, E2, R2> | Effect.Effect<B, E2, R2> | Stream.Stream<B, E2, R2>): Matcher<B, E2 | GuardError<G>,
|
|
117
|
+
<Rt extends Route.Any, G extends GuardInput<Route.Type<Rt>, any, any, any>, B, E2 = never, R2 = never>(route: Rt, guard: G, handler: (params: RefSubject.RefSubject<GuardOutput<G>, never, never>) => MatchHandlerReturnValue<B, E2, R2>): Matcher<B, E2 | GuardError<G>, Scope.Scope | R2 | GuardServices<G>>;
|
|
118
|
+
<Rt extends Route.Any, G extends GuardInput<Route.Type<Rt>, any, any, any>, B, E2 = never, R2 = never>(route: Rt, guard: G, handler: Fx.Fx<B, E2, R2> | Effect.Effect<B, E2, R2> | Stream.Stream<B, E2, R2>): Matcher<B, E2 | GuardError<G>, Scope.Scope | R2 | GuardServices<G>>;
|
|
111
119
|
<Rt extends Route.Any, G extends GuardInput<Route.Type<Rt>, any, any, any>, B, E2 = never, R2 = never, D extends ReadonlyArray<AnyDependency> | undefined = undefined, LB = B, LE2 = never, LR2 = never, C extends CatchHandler<any, any, any, any> | undefined = undefined>(route: Rt, guard: G, options: MatchHandlerOptions<GuardOutput<G>, B, E2, R2, D, LB, LE2, LR2, C>): Matcher<ApplyCatch<LB, ApplyDependencies<E2 | LE2 | GuardError<G>, R2 | LR2 | GuardServices<G>, D>["e"], ApplyDependencies<E2 | LE2 | GuardError<G>, R2 | LR2 | GuardServices<G>, D>["r"], C>["a"], ApplyCatch<LB, ApplyDependencies<E2 | LE2 | GuardError<G>, R2 | LR2 | GuardServices<G>, D>["e"], ApplyDependencies<E2 | LE2 | GuardError<G>, R2 | LR2 | GuardServices<G>, D>["r"], C>["e"], Scope.Scope | ApplyCatch<LB, ApplyDependencies<E2 | LE2 | GuardError<G>, R2 | LR2 | GuardServices<G>, D>["e"], ApplyDependencies<E2 | LE2 | GuardError<G>, R2 | LR2 | GuardServices<G>, D>["r"], C>["r"]>;
|
|
112
120
|
<Rt extends Route.Any, G extends GuardInput<Route.Type<Rt>, any, any, any>, B>(route: Rt, guard: G, handler: B): Matcher<B, GuardError<G>, Scope.Scope | GuardServices<G>>;
|
|
113
121
|
<Rt extends Route.Any, B, E2 = never, R2 = never, D extends ReadonlyArray<AnyDependency> | undefined = undefined, LB = B, LE2 = never, LR2 = never, C extends CatchHandler<any, any, any, any> | undefined = undefined>(options: MatchOptions<Rt, B, E2, R2, D, LB, LE2, LR2, C>): Matcher<ApplyCatch<LB, ApplyDependencies<E2 | LE2, R2 | LR2, D>["e"], ApplyDependencies<E2 | LE2, R2 | LR2, D>["r"], C>["a"], ApplyCatch<LB, ApplyDependencies<E2 | LE2, R2 | LR2, D>["e"], ApplyDependencies<E2 | LE2, R2 | LR2, D>["r"], C>["e"], Scope.Scope | ApplyCatch<LB, ApplyDependencies<E2 | LE2, R2 | LR2, D>["e"], ApplyDependencies<E2 | LE2, R2 | LR2, D>["r"], C>["r"]>;
|
|
114
122
|
};
|
|
123
|
+
/**
|
|
124
|
+
* Merge multiple matchers into one. Each matcher's layouts and provide apply only to its own routes.
|
|
125
|
+
* Use this so directory layouts (e.g. api/_layout) and directory dependencies apply only to routes under that directory.
|
|
126
|
+
*/
|
|
127
|
+
export declare function merge<const Matchers extends ReadonlyArray<Matcher.Any>>(...matchers: Matchers): Matcher<Matcher.MergeSuccess<Matchers>, Matcher.MergeError<Matchers>, Matcher.MergeServices<Matchers>>;
|
|
115
128
|
declare const RouteGuardError_base: Schema.ErrorClass<RouteGuardError, Schema.Struct<{
|
|
116
129
|
readonly _tag: Schema.tag<"RouteGuardError">;
|
|
117
130
|
readonly path: Schema.String;
|
|
118
|
-
readonly causes: Schema
|
|
131
|
+
readonly causes: Schema.$Array<Schema.Unknown>;
|
|
119
132
|
}>, Cause.YieldableError>;
|
|
120
133
|
export declare class RouteGuardError extends RouteGuardError_base {
|
|
121
134
|
}
|
|
@@ -161,6 +174,11 @@ export declare const catchTag: {
|
|
|
161
174
|
<I extends Fx.Fx.Any | Matcher.Any, const K extends Tags<InputError<I>> | Arr.NonEmptyReadonlyArray<Tags<InputError<I>>>, B, E2, R2>(input: I, k: K, f: (e: ExtractTag<InputError<I>, K extends Arr.NonEmptyReadonlyArray<string> ? K[number] : K>) => Fx.Fx<B, E2, R2>): Fx.Fx<InputSucces<I> | B, E2 | ExcludeTag<InputError<I>, K extends Arr.NonEmptyReadonlyArray<string> ? K[number] : K>, InputServices<I> | R2 | Router | Scope.Scope>;
|
|
162
175
|
};
|
|
163
176
|
export declare const redirectTo: (path: string) => <I extends Fx.Fx.Any | Matcher.Any>(input: I) => Fx.Fx<InputSucces<I>, never, Router | Scope.Scope | InputServices<I>>;
|
|
177
|
+
/**
|
|
178
|
+
* Normalize dependency input (ServiceMap | Layer | Array of either) into a single Layer.
|
|
179
|
+
* Use with `.provide(normalizeDependencyInput(deps))`.
|
|
180
|
+
*/
|
|
181
|
+
export declare function normalizeDependencyInput(input: AnyDependency | ReadonlyArray<AnyDependency>): AnyLayer;
|
|
164
182
|
/**
|
|
165
183
|
* @internal
|
|
166
184
|
*/
|
package/dist/Matcher.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Matcher.d.ts","sourceRoot":"","sources":["../src/Matcher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Matcher.d.ts","sourceRoot":"","sources":["../src/Matcher.ts"],"names":[],"mappings":"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"}
|
package/dist/Matcher.js
CHANGED
|
@@ -170,6 +170,10 @@ class MatcherImpl {
|
|
|
170
170
|
AST.layout(this.cases, layout),
|
|
171
171
|
]);
|
|
172
172
|
}
|
|
173
|
+
merge(...others) {
|
|
174
|
+
const allCases = [...this.cases, ...others.flatMap((m) => m.cases)];
|
|
175
|
+
return new MatcherImpl(allCases);
|
|
176
|
+
}
|
|
173
177
|
pipe() {
|
|
174
178
|
return pipeArguments(this, arguments);
|
|
175
179
|
}
|
|
@@ -190,6 +194,21 @@ function toFx(value) {
|
|
|
190
194
|
}
|
|
191
195
|
export const empty = new MatcherImpl([]);
|
|
192
196
|
export const match = empty.match.bind(empty);
|
|
197
|
+
/**
|
|
198
|
+
* Merge multiple matchers into one. Each matcher's layouts and provide apply only to its own routes.
|
|
199
|
+
* Use this so directory layouts (e.g. api/_layout) and directory dependencies apply only to routes under that directory.
|
|
200
|
+
*/
|
|
201
|
+
export function merge(...matchers) {
|
|
202
|
+
if (matchers.length === 0) {
|
|
203
|
+
return empty;
|
|
204
|
+
}
|
|
205
|
+
if (matchers.length === 1) {
|
|
206
|
+
return matchers[0];
|
|
207
|
+
}
|
|
208
|
+
const first = matchers[0];
|
|
209
|
+
const rest = matchers.slice(1);
|
|
210
|
+
return first.merge(...rest);
|
|
211
|
+
}
|
|
193
212
|
export class RouteGuardError extends Schema.ErrorClass("@typed/router/RouteGuardError")({
|
|
194
213
|
_tag: Schema.tag("RouteGuardError"),
|
|
195
214
|
path: Schema.String,
|
|
@@ -345,10 +364,25 @@ const matchesTag = (tag, error) => {
|
|
|
345
364
|
return error._tag === tag;
|
|
346
365
|
return tag.some((t) => t === error._tag);
|
|
347
366
|
};
|
|
367
|
+
function isServiceMap(dep) {
|
|
368
|
+
return !Layer.isLayer(dep);
|
|
369
|
+
}
|
|
370
|
+
function toSingleLayer(dep) {
|
|
371
|
+
if (isServiceMap(dep))
|
|
372
|
+
return Layer.succeedServices(dep);
|
|
373
|
+
return dep;
|
|
374
|
+
}
|
|
348
375
|
function normalizeDependencies(dependencies) {
|
|
349
|
-
return dependencies.map(
|
|
350
|
-
|
|
351
|
-
|
|
376
|
+
return dependencies.map(toSingleLayer);
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Normalize dependency input (ServiceMap | Layer | Array of either) into a single Layer.
|
|
380
|
+
* Use with `.provide(normalizeDependencyInput(deps))`.
|
|
381
|
+
*/
|
|
382
|
+
export function normalizeDependencyInput(input) {
|
|
383
|
+
const arr = Array.isArray(input) ? input : [input];
|
|
384
|
+
const layers = normalizeDependencies(arr);
|
|
385
|
+
return mergeLayers(layers);
|
|
352
386
|
}
|
|
353
387
|
function getGuard(guard) {
|
|
354
388
|
return "asGuard" in guard ? guard.asGuard() : guard;
|
|
@@ -357,6 +391,8 @@ function defaultGuard() {
|
|
|
357
391
|
return Effect.succeedSome;
|
|
358
392
|
}
|
|
359
393
|
function mergeLayers(layers) {
|
|
394
|
+
if (layers.length === 0)
|
|
395
|
+
return Layer.empty;
|
|
360
396
|
if (layers.length === 1)
|
|
361
397
|
return layers[0];
|
|
362
398
|
let current = layers[0];
|
package/dist/Parser.d.ts
CHANGED
|
@@ -17,14 +17,10 @@ export declare namespace Parser {
|
|
|
17
17
|
interface Fail extends TypeLambda<[input: string], never> {
|
|
18
18
|
readonly return: never;
|
|
19
19
|
}
|
|
20
|
-
interface Char<C extends string> extends TypeLambda<[
|
|
21
|
-
input: string
|
|
22
|
-
], Result<C, string> | never> {
|
|
20
|
+
interface Char<C extends string> extends TypeLambda<[input: string], Result<C, string>> {
|
|
23
21
|
readonly return: Arg0<this> extends `${C}${infer Rest}` ? readonly [C, Rest] : never;
|
|
24
22
|
}
|
|
25
|
-
interface String<S extends string> extends TypeLambda<[
|
|
26
|
-
input: string
|
|
27
|
-
], Result<S, string> | never> {
|
|
23
|
+
interface String<S extends string> extends TypeLambda<[input: string], Result<S, string>> {
|
|
28
24
|
readonly return: Arg0<this> extends `${S}${infer Rest}` ? readonly [S, Rest] : never;
|
|
29
25
|
}
|
|
30
26
|
type LowercaseAlphabet = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z";
|
|
@@ -44,7 +40,7 @@ export declare namespace Parser {
|
|
|
44
40
|
}
|
|
45
41
|
interface TakeWhile1<Allowed extends string> extends TypeLambda<[
|
|
46
42
|
input: string
|
|
47
|
-
], Result<string, string
|
|
43
|
+
], Result<string, string>> {
|
|
48
44
|
readonly return: Arg0<this> extends infer Input extends string ? TakeWhile1Internal<Input, Allowed> : never;
|
|
49
45
|
}
|
|
50
46
|
interface Map<P extends Any, F extends TypeLambda1> extends Parser<unknown> {
|
package/dist/Parser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Parser.d.ts","sourceRoot":"","sources":["../src/Parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEpE,MAAM,MAAM,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,MAAM,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAErF,MAAM,WAAW,MAAM,CAAC,MAAM,GAAG,OAAO,CAAE,SAAQ,UAAU,CAC1D;IAAC,KAAK,EAAE,MAAM;CAAC,EACf,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CACvB;CAAG;AAEJ,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAEpF,KAAK,eAAe,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,SAAS,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AAEzE,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC,IACpB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAErF,KAAK,YAAY,CAAC,KAAK,SAAS,MAAM,EAAE,IAAI,SAAS,MAAM,IACzD,eAAe,CAAC,KAAK,CAAC,SAAS,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;AAE1E,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAY,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAElC,KAAY,GAAG,CAAC,CAAC,SAAS,GAAG,EAAE,KAAK,SAAS,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAEtE,UAAiB,OAAO,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAChF,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,MAAM,KAAK,SAAS,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;KAC9F;IAED,UAAiB,IAAK,SAAQ,UAAU,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC;QAC9D,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;KACxB;IAED,UAAiB,IAAI,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,UAAU,
|
|
1
|
+
{"version":3,"file":"Parser.d.ts","sourceRoot":"","sources":["../src/Parser.ts"],"names":[],"mappings":"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"}
|
package/dist/Path.d.ts
CHANGED
|
@@ -200,17 +200,17 @@ export declare function getSchemaFields<const Parts extends ReadonlyArray<PathAs
|
|
|
200
200
|
export declare function getSchemas<const Parts extends ReadonlyArray<PathAst>>(parts: Parts): {
|
|
201
201
|
readonly pathSchema: Schema.StructWithRest<Schema.Struct<{
|
|
202
202
|
[k: string]: Schema.Top;
|
|
203
|
-
}>, Schema
|
|
203
|
+
}>, Schema.$Record<Schema.Record.Key, Schema.Top>[]>;
|
|
204
204
|
readonly querySchema: Schema.Struct<{
|
|
205
205
|
[k: string]: Schema.StructWithRest<Schema.Struct<{
|
|
206
206
|
[k: string]: Schema.Top;
|
|
207
|
-
}>, Schema
|
|
207
|
+
}>, Schema.$Record<Schema.Record.Key, Schema.Top>[]>;
|
|
208
208
|
}>;
|
|
209
209
|
readonly paramsSchema: Schema.StructWithRest<Schema.Struct<{
|
|
210
210
|
readonly [x: string]: Schema.Top | Schema.StructWithRest<Schema.Struct<{
|
|
211
211
|
[k: string]: Schema.Top;
|
|
212
|
-
}>, Schema
|
|
213
|
-
}>, Schema
|
|
212
|
+
}>, Schema.$Record<Schema.Record.Key, Schema.Top>[]>;
|
|
213
|
+
}>, Schema.$Record<Schema.Record.Key, Schema.Top>[]>;
|
|
214
214
|
};
|
|
215
215
|
export {};
|
|
216
216
|
//# sourceMappingURL=Path.d.ts.map
|
package/dist/Router.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../src/Router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAEL,KAAK,oBAAoB,EAEzB,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,MAAM,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC;AAE/C,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,KAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAI/D,CAAC;AAEJ,eAAO,MAAM,YAAY,GAAI,SAAS,aAAa,GAAG,oBAAoB,KAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAI5F,CAAC;AAEJ,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../src/Router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAEL,KAAK,oBAAoB,EAEzB,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,MAAM,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC;AAE/C,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,KAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAI/D,CAAC;AAEJ,eAAO,MAAM,YAAY,GAAI,SAAS,aAAa,GAAG,oBAAoB,KAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAI5F,CAAC;AAEJ,eAAO,MAAM,UAAU,GACrB,SAAS,CAAC,aAAa,GAAG,oBAAoB,CAAC,GAAG,EAAE,KACnD,KAAK,CAAC,KAAK,CAAC,MAAM,CAIlB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typed/router",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
4
|
-
"publishConfig": {
|
|
5
|
-
"access": "public"
|
|
6
|
-
},
|
|
3
|
+
"version": "1.0.0-beta.1",
|
|
7
4
|
"type": "module",
|
|
8
5
|
"exports": {
|
|
9
6
|
".": {
|
|
@@ -15,21 +12,28 @@
|
|
|
15
12
|
"import": "./dist/*.js"
|
|
16
13
|
}
|
|
17
14
|
},
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"access": "public"
|
|
17
|
+
},
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "[ -d dist ] || rm -f tsconfig.tsbuildinfo; tsc",
|
|
20
|
+
"test": "vitest run --passWithNoTests"
|
|
21
|
+
},
|
|
18
22
|
"dependencies": {
|
|
19
|
-
"
|
|
23
|
+
"@typed/fx": "workspace:*",
|
|
24
|
+
"@typed/guard": "workspace:*",
|
|
25
|
+
"@typed/id": "workspace:*",
|
|
26
|
+
"@typed/navigation": "workspace:*",
|
|
27
|
+
"effect": "catalog:",
|
|
20
28
|
"find-my-way-ts": "0.1.6",
|
|
21
|
-
"hkt-core": "1.3.4"
|
|
22
|
-
"@typed/guard": "1.0.0-beta.0",
|
|
23
|
-
"@typed/fx": "2.0.0-beta.0",
|
|
24
|
-
"@typed/id": "1.0.0-beta.0",
|
|
25
|
-
"@typed/navigation": "1.0.0-beta.0"
|
|
29
|
+
"hkt-core": "1.3.4"
|
|
26
30
|
},
|
|
27
31
|
"devDependencies": {
|
|
28
|
-
"typescript": "
|
|
29
|
-
"vitest": "
|
|
32
|
+
"typescript": "catalog:",
|
|
33
|
+
"vitest": "catalog:"
|
|
30
34
|
},
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
}
|
|
35
|
+
"files": [
|
|
36
|
+
"dist",
|
|
37
|
+
"src"
|
|
38
|
+
]
|
|
39
|
+
}
|
package/src/Matcher.test.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { assert, describe, it } from "vitest";
|
|
|
2
2
|
import * as Cause from "effect/Cause";
|
|
3
3
|
import * as Data from "effect/Data";
|
|
4
4
|
import * as Effect from "effect/Effect";
|
|
5
|
+
import * as Latch from "effect/Latch";
|
|
5
6
|
import * as Fiber from "effect/Fiber";
|
|
6
7
|
import * as Layer from "effect/Layer";
|
|
7
8
|
import * as Option from "effect/Option";
|
|
@@ -28,6 +29,25 @@ describe("typed/router/Matcher", () => {
|
|
|
28
29
|
void matcher;
|
|
29
30
|
});
|
|
30
31
|
|
|
32
|
+
it("match with { handler, layout } returns layout output type and composes correctly", () =>
|
|
33
|
+
Effect.gen(function* () {
|
|
34
|
+
const route = Route.Parse("dashboard");
|
|
35
|
+
|
|
36
|
+
const matcher = Matcher.empty.match(route, {
|
|
37
|
+
handler: Fx.succeed(42),
|
|
38
|
+
layout: ({ content }) => Fx.map(content, (n) => `wrapped:${n}`),
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
const fx = Matcher.run(matcher);
|
|
42
|
+
const values = yield* Fx.collectAll(Fx.take(fx, 1));
|
|
43
|
+
|
|
44
|
+
assert.deepStrictEqual(values, ["wrapped:42"]);
|
|
45
|
+
}).pipe(
|
|
46
|
+
Effect.provide(ServerRouter({ url: "http://localhost/dashboard" })),
|
|
47
|
+
Effect.scoped,
|
|
48
|
+
Effect.runPromise,
|
|
49
|
+
));
|
|
50
|
+
|
|
31
51
|
it("matches routes and emits values as the path changes", () =>
|
|
32
52
|
Effect.gen(function* () {
|
|
33
53
|
const users = Route.Join(Route.Parse("users"), Route.Param("id"));
|
|
@@ -40,8 +60,8 @@ describe("typed/router/Matcher", () => {
|
|
|
40
60
|
);
|
|
41
61
|
|
|
42
62
|
const values: Array<string> = [];
|
|
43
|
-
const first =
|
|
44
|
-
const done =
|
|
63
|
+
const first = Latch.makeUnsafe();
|
|
64
|
+
const done = Latch.makeUnsafe();
|
|
45
65
|
const fiber = yield* Effect.forkChild(
|
|
46
66
|
Fx.observe(fx, (value) =>
|
|
47
67
|
Effect.sync(() => {
|
|
@@ -99,8 +119,8 @@ describe("typed/router/Matcher", () => {
|
|
|
99
119
|
const fx = Matcher.run(matcher);
|
|
100
120
|
|
|
101
121
|
const values: Array<string> = [];
|
|
102
|
-
const first =
|
|
103
|
-
const done =
|
|
122
|
+
const first = Latch.makeUnsafe();
|
|
123
|
+
const done = Latch.makeUnsafe();
|
|
104
124
|
const fiber = yield* Effect.forkChild(
|
|
105
125
|
Fx.observe(fx, (value) =>
|
|
106
126
|
Effect.sync(() => {
|
|
@@ -205,8 +225,8 @@ describe("typed/router/Matcher", () => {
|
|
|
205
225
|
);
|
|
206
226
|
|
|
207
227
|
const values: Array<string> = [];
|
|
208
|
-
const first =
|
|
209
|
-
const done =
|
|
228
|
+
const first = Latch.makeUnsafe();
|
|
229
|
+
const done = Latch.makeUnsafe();
|
|
210
230
|
const fiber = yield* Effect.forkChild(
|
|
211
231
|
Fx.observe(fx, (value) =>
|
|
212
232
|
Effect.sync(() => {
|
|
@@ -388,8 +408,8 @@ describe("typed/router/Matcher", () => {
|
|
|
388
408
|
const fx = Matcher.run(matcher);
|
|
389
409
|
|
|
390
410
|
const values: Array<string> = [];
|
|
391
|
-
const first =
|
|
392
|
-
const done =
|
|
411
|
+
const first = Latch.makeUnsafe();
|
|
412
|
+
const done = Latch.makeUnsafe();
|
|
393
413
|
const fiber = yield* Effect.forkChild(
|
|
394
414
|
Fx.observe(fx, (value) =>
|
|
395
415
|
Effect.sync(() => {
|
package/src/Matcher.ts
CHANGED
|
@@ -300,6 +300,15 @@ export interface Matcher<A, E = never, R = never> extends Pipeable {
|
|
|
300
300
|
readonly layout: <B, E2, R2>(
|
|
301
301
|
layout: Layout<any, A, E, R, B, E2, R2>,
|
|
302
302
|
) => Matcher<B, E | E2, R | R2>;
|
|
303
|
+
|
|
304
|
+
/** Merge this matcher with one or more others. Combined matcher matches all routes; each matcher's layouts/provide apply only to its own routes. */
|
|
305
|
+
readonly merge: <const Others extends ReadonlyArray<Matcher.Any>>(
|
|
306
|
+
...others: Others
|
|
307
|
+
) => Matcher<
|
|
308
|
+
A | Matcher.MergeSuccess<Others>,
|
|
309
|
+
E | Matcher.MergeError<Others>,
|
|
310
|
+
R | Matcher.MergeServices<Others>
|
|
311
|
+
>;
|
|
303
312
|
}
|
|
304
313
|
|
|
305
314
|
export declare namespace Matcher {
|
|
@@ -311,6 +320,15 @@ export declare namespace Matcher {
|
|
|
311
320
|
export type Success<T> = [T] extends [Matcher<infer A, infer _E, infer _R>] ? A : never;
|
|
312
321
|
export type Error<T> = [T] extends [Matcher<infer _A, infer E, infer _R>] ? E : never;
|
|
313
322
|
export type Services<T> = [T] extends [Matcher<infer _A, infer _E, infer R>] ? R : never;
|
|
323
|
+
|
|
324
|
+
/** Union of Success types from each matcher in a tuple. */
|
|
325
|
+
export type MergeSuccess<Matchers extends ReadonlyArray<Matcher.Any>> = Success<Matchers[number]>;
|
|
326
|
+
/** Union of Error types from each matcher in a tuple. */
|
|
327
|
+
export type MergeError<Matchers extends ReadonlyArray<Matcher.Any>> = Error<Matchers[number]>;
|
|
328
|
+
/** Union of Services types from each matcher in a tuple. */
|
|
329
|
+
export type MergeServices<Matchers extends ReadonlyArray<Matcher.Any>> = Services<
|
|
330
|
+
Matchers[number]
|
|
331
|
+
>;
|
|
314
332
|
}
|
|
315
333
|
|
|
316
334
|
export type MatchHandler<Params, A, E, R> =
|
|
@@ -439,13 +457,17 @@ class MatcherImpl<A, E, R> implements Matcher<A, E, R> {
|
|
|
439
457
|
E2 = never,
|
|
440
458
|
R2 = never,
|
|
441
459
|
D extends ReadonlyArray<AnyDependency> | undefined = undefined,
|
|
460
|
+
LB = B,
|
|
461
|
+
LE2 = never,
|
|
462
|
+
LR2 = never,
|
|
463
|
+
C extends CatchHandler<any, any, any, any> | undefined = undefined,
|
|
442
464
|
>(
|
|
443
465
|
route: Rt,
|
|
444
|
-
options: MatchHandlerOptions<Route.Type<Rt>, B, E2, R2, D,
|
|
466
|
+
options: MatchHandlerOptions<Route.Type<Rt>, B, E2, R2, D, LB, LE2, LR2, C>,
|
|
445
467
|
): Matcher<
|
|
446
|
-
A |
|
|
447
|
-
E | E2
|
|
448
|
-
R | R2 | Scope.Scope
|
|
468
|
+
A | ComputeMatchResult<E2, R2, D, LB, LE2, LR2, C, never, never>["a"],
|
|
469
|
+
E | ComputeMatchResult<E2, R2, D, LB, LE2, LR2, C, never, never>["e"],
|
|
470
|
+
R | ComputeMatchResult<E2, R2, D, LB, LE2, LR2, C, never, never>["r"] | Scope.Scope
|
|
449
471
|
>;
|
|
450
472
|
match<Rt extends Route.Any, B>(route: Rt, handler: B): Matcher<A | B, E, R | Scope.Scope>;
|
|
451
473
|
match<Rt extends Route.Any, G extends GuardInput<Route.Type<Rt>, any, any, any>, B, E2, R2>(
|
|
@@ -465,14 +487,20 @@ class MatcherImpl<A, E, R> implements Matcher<A, E, R> {
|
|
|
465
487
|
E2 = never,
|
|
466
488
|
R2 = never,
|
|
467
489
|
D extends ReadonlyArray<AnyDependency> | undefined = undefined,
|
|
490
|
+
LB = B,
|
|
491
|
+
LE2 = never,
|
|
492
|
+
LR2 = never,
|
|
493
|
+
C extends CatchHandler<any, any, any, any> | undefined = undefined,
|
|
468
494
|
>(
|
|
469
495
|
route: Rt,
|
|
470
496
|
guard: G,
|
|
471
|
-
options: MatchHandlerOptions<GuardOutput<G>, B, E2, R2, D,
|
|
497
|
+
options: MatchHandlerOptions<GuardOutput<G>, B, E2, R2, D, LB, LE2, LR2, C>,
|
|
472
498
|
): Matcher<
|
|
473
|
-
A |
|
|
474
|
-
E | E2
|
|
475
|
-
|
|
499
|
+
A | ComputeMatchResult<E2, R2, D, LB, LE2, LR2, C, GuardError<G>, GuardServices<G>>["a"],
|
|
500
|
+
E | ComputeMatchResult<E2, R2, D, LB, LE2, LR2, C, GuardError<G>, GuardServices<G>>["e"],
|
|
501
|
+
| R
|
|
502
|
+
| ComputeMatchResult<E2, R2, D, LB, LE2, LR2, C, GuardError<G>, GuardServices<G>>["r"]
|
|
503
|
+
| Scope.Scope
|
|
476
504
|
>;
|
|
477
505
|
match<Rt extends Route.Any, G extends GuardInput<Route.Type<Rt>, any, any, any>, B>(
|
|
478
506
|
route: Rt,
|
|
@@ -485,12 +513,16 @@ class MatcherImpl<A, E, R> implements Matcher<A, E, R> {
|
|
|
485
513
|
E2 = never,
|
|
486
514
|
R2 = never,
|
|
487
515
|
D extends ReadonlyArray<AnyDependency> | undefined = undefined,
|
|
516
|
+
LB = B,
|
|
517
|
+
LE2 = never,
|
|
518
|
+
LR2 = never,
|
|
519
|
+
C extends CatchHandler<any, any, any, any> | undefined = undefined,
|
|
488
520
|
>(
|
|
489
|
-
options: MatchOptions<Rt, B, E2, R2, D,
|
|
521
|
+
options: MatchOptions<Rt, B, E2, R2, D, LB, LE2, LR2, C>,
|
|
490
522
|
): Matcher<
|
|
491
|
-
A |
|
|
492
|
-
E | E2
|
|
493
|
-
R | R2 | Scope.Scope
|
|
523
|
+
A | ComputeMatchResult<E2, R2, D, LB, LE2, LR2, C, never, never>["a"],
|
|
524
|
+
E | ComputeMatchResult<E2, R2, D, LB, LE2, LR2, C, never, never>["e"],
|
|
525
|
+
R | ComputeMatchResult<E2, R2, D, LB, LE2, LR2, C, never, never>["r"] | Scope.Scope
|
|
494
526
|
>;
|
|
495
527
|
match(...args: [unknown, ...Array<unknown>]): Matcher<any, any, any> {
|
|
496
528
|
const parsed = parseMatchArgs(args);
|
|
@@ -610,6 +642,21 @@ class MatcherImpl<A, E, R> implements Matcher<A, E, R> {
|
|
|
610
642
|
]) as Matcher<B, E | E2, R | R2>;
|
|
611
643
|
}
|
|
612
644
|
|
|
645
|
+
merge<const Others extends ReadonlyArray<Matcher.Any>>(
|
|
646
|
+
...others: Others
|
|
647
|
+
): Matcher<
|
|
648
|
+
A | Matcher.MergeSuccess<Others>,
|
|
649
|
+
E | Matcher.MergeError<Others>,
|
|
650
|
+
R | Matcher.MergeServices<Others>
|
|
651
|
+
> {
|
|
652
|
+
const allCases = [...this.cases, ...others.flatMap((m) => m.cases)];
|
|
653
|
+
return new MatcherImpl(allCases) as Matcher<
|
|
654
|
+
A | Matcher.MergeSuccess<Others>,
|
|
655
|
+
E | Matcher.MergeError<Others>,
|
|
656
|
+
R | Matcher.MergeServices<Others>
|
|
657
|
+
>;
|
|
658
|
+
}
|
|
659
|
+
|
|
613
660
|
pipe() {
|
|
614
661
|
return pipeArguments(this, arguments);
|
|
615
662
|
}
|
|
@@ -634,6 +681,50 @@ function toFx<A, E, R>(
|
|
|
634
681
|
export const empty: Matcher<never> = new MatcherImpl([]);
|
|
635
682
|
export const match = empty.match.bind(empty);
|
|
636
683
|
|
|
684
|
+
/**
|
|
685
|
+
* Merge multiple matchers into one. Each matcher's layouts and provide apply only to its own routes.
|
|
686
|
+
* Use this so directory layouts (e.g. api/_layout) and directory dependencies apply only to routes under that directory.
|
|
687
|
+
*/
|
|
688
|
+
export function merge<const Matchers extends ReadonlyArray<Matcher.Any>>(
|
|
689
|
+
...matchers: Matchers
|
|
690
|
+
): Matcher<
|
|
691
|
+
Matcher.MergeSuccess<Matchers>,
|
|
692
|
+
Matcher.MergeError<Matchers>,
|
|
693
|
+
Matcher.MergeServices<Matchers>
|
|
694
|
+
> {
|
|
695
|
+
if (matchers.length === 0) {
|
|
696
|
+
return empty as unknown as Matcher<
|
|
697
|
+
Matcher.MergeSuccess<Matchers>,
|
|
698
|
+
Matcher.MergeError<Matchers>,
|
|
699
|
+
Matcher.MergeServices<Matchers>
|
|
700
|
+
>;
|
|
701
|
+
}
|
|
702
|
+
if (matchers.length === 1) {
|
|
703
|
+
return matchers[0] as unknown as Matcher<
|
|
704
|
+
Matcher.MergeSuccess<Matchers>,
|
|
705
|
+
Matcher.MergeError<Matchers>,
|
|
706
|
+
Matcher.MergeServices<Matchers>
|
|
707
|
+
>;
|
|
708
|
+
}
|
|
709
|
+
const first = matchers[0] as MatcherImpl<
|
|
710
|
+
Matcher.MergeSuccess<Matchers>,
|
|
711
|
+
Matcher.MergeError<Matchers>,
|
|
712
|
+
Matcher.MergeServices<Matchers>
|
|
713
|
+
>;
|
|
714
|
+
const rest = matchers.slice(1) as ReadonlyArray<
|
|
715
|
+
Matcher<
|
|
716
|
+
Matcher.MergeSuccess<Matchers>,
|
|
717
|
+
Matcher.MergeError<Matchers>,
|
|
718
|
+
Matcher.MergeServices<Matchers>
|
|
719
|
+
>
|
|
720
|
+
>;
|
|
721
|
+
return first.merge(...rest) as unknown as Matcher<
|
|
722
|
+
Matcher.MergeSuccess<Matchers>,
|
|
723
|
+
Matcher.MergeError<Matchers>,
|
|
724
|
+
Matcher.MergeServices<Matchers>
|
|
725
|
+
>;
|
|
726
|
+
}
|
|
727
|
+
|
|
637
728
|
export class RouteGuardError extends Schema.ErrorClass<RouteGuardError>(
|
|
638
729
|
"@typed/router/RouteGuardError",
|
|
639
730
|
)({
|
|
@@ -986,14 +1077,31 @@ const matchesTag = <E, K extends string>(
|
|
|
986
1077
|
return tag.some((t) => t === error._tag);
|
|
987
1078
|
};
|
|
988
1079
|
|
|
1080
|
+
function isServiceMap(dep: AnyDependency): dep is AnyServiceMap {
|
|
1081
|
+
return !Layer.isLayer(dep);
|
|
1082
|
+
}
|
|
1083
|
+
|
|
1084
|
+
function toSingleLayer(dep: AnyDependency): AnyLayer {
|
|
1085
|
+
if (isServiceMap(dep)) return Layer.succeedServices(dep);
|
|
1086
|
+
return dep;
|
|
1087
|
+
}
|
|
1088
|
+
|
|
989
1089
|
function normalizeDependencies(
|
|
990
1090
|
dependencies: ReadonlyArray<AnyDependency>,
|
|
991
1091
|
): ReadonlyArray<AnyLayer> {
|
|
992
|
-
return dependencies.map(
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
1092
|
+
return dependencies.map(toSingleLayer);
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1095
|
+
/**
|
|
1096
|
+
* Normalize dependency input (ServiceMap | Layer | Array of either) into a single Layer.
|
|
1097
|
+
* Use with `.provide(normalizeDependencyInput(deps))`.
|
|
1098
|
+
*/
|
|
1099
|
+
export function normalizeDependencyInput(
|
|
1100
|
+
input: AnyDependency | ReadonlyArray<AnyDependency>,
|
|
1101
|
+
): AnyLayer {
|
|
1102
|
+
const arr = Array.isArray(input) ? input : [input];
|
|
1103
|
+
const layers = normalizeDependencies(arr);
|
|
1104
|
+
return mergeLayers(layers);
|
|
997
1105
|
}
|
|
998
1106
|
|
|
999
1107
|
function getGuard<I, O, E, R>(guard: GuardInput<I, O, E, R>): GuardType<I, O, E, R> {
|
|
@@ -1005,6 +1113,7 @@ function defaultGuard<A>(): GuardType<A, A> {
|
|
|
1005
1113
|
}
|
|
1006
1114
|
|
|
1007
1115
|
function mergeLayers(layers: ReadonlyArray<AnyLayer>): AnyLayer {
|
|
1116
|
+
if (layers.length === 0) return Layer.empty;
|
|
1008
1117
|
if (layers.length === 1) return layers[0];
|
|
1009
1118
|
let current = layers[0];
|
|
1010
1119
|
for (let i = 1; i < layers.length; i++) {
|
package/src/Parser.ts
CHANGED
|
@@ -30,17 +30,11 @@ export declare namespace Parser {
|
|
|
30
30
|
readonly return: never;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
export interface Char<C extends string> extends TypeLambda<
|
|
34
|
-
[input: string],
|
|
35
|
-
Result<C, string> | never
|
|
36
|
-
> {
|
|
33
|
+
export interface Char<C extends string> extends TypeLambda<[input: string], Result<C, string>> {
|
|
37
34
|
readonly return: Arg0<this> extends `${C}${infer Rest}` ? readonly [C, Rest] : never;
|
|
38
35
|
}
|
|
39
36
|
|
|
40
|
-
export interface String<S extends string> extends TypeLambda<
|
|
41
|
-
[input: string],
|
|
42
|
-
Result<S, string> | never
|
|
43
|
-
> {
|
|
37
|
+
export interface String<S extends string> extends TypeLambda<[input: string], Result<S, string>> {
|
|
44
38
|
readonly return: Arg0<this> extends `${S}${infer Rest}` ? readonly [S, Rest] : never;
|
|
45
39
|
}
|
|
46
40
|
|
|
@@ -137,7 +131,7 @@ export declare namespace Parser {
|
|
|
137
131
|
|
|
138
132
|
export interface TakeWhile1<Allowed extends string> extends TypeLambda<
|
|
139
133
|
[input: string],
|
|
140
|
-
Result<string, string>
|
|
134
|
+
Result<string, string>
|
|
141
135
|
> {
|
|
142
136
|
readonly return: Arg0<this> extends infer Input extends string
|
|
143
137
|
? TakeWhile1Internal<Input, Allowed>
|
package/src/Router.ts
CHANGED
|
@@ -24,7 +24,9 @@ export const ServerRouter = (options: MemoryOptions | InitialMemoryOptions): Lay
|
|
|
24
24
|
Layer.provideMerge(Ids.Default),
|
|
25
25
|
);
|
|
26
26
|
|
|
27
|
-
export const TestRouter = (
|
|
27
|
+
export const TestRouter = (
|
|
28
|
+
options: (MemoryOptions | InitialMemoryOptions) & {},
|
|
29
|
+
): Layer.Layer<Router> =>
|
|
28
30
|
CurrentRoute.Default.pipe(
|
|
29
31
|
Layer.provideMerge("url" in options ? initialMemory(options) : memory(options)),
|
|
30
32
|
Layer.provideMerge(Ids.Test()),
|