@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 CHANGED
@@ -2,7 +2,23 @@
2
2
 
3
3
  > **Beta:** This package is in beta; APIs may change.
4
4
 
5
- `@typed/router` provides **typed routing**: path and query parameters with Effect Schema, route definitions (**Route**), **Matcher** (pattern matching on routes), **CurrentRoute**, and **Router** (compile, layout/catch managers). Use it for type-safe routing in Effect apps, with parsable path/query and composable matchers that produce Fx streams.
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 | Description |
45
- |--------|-------------|
46
- | `Router` | Type: `CurrentRoute` or `Navigation`. The routing service union. |
47
- | `BrowserRouter(window?)` | `Layer<Router>`. Provides router using the browser `window` (or global). |
48
- | `ServerRouter(options)` | `Layer<Router>`. Provides router with `memory()` or `initialMemory()` from `@typed/navigation`. |
49
- | `TestRouter(options)` | `Layer<Router>`. Like `ServerRouter` but with `Ids.Test()` for deterministic IDs. |
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 | Description |
54
- |--------|-------------|
55
- | `Route<P, S>` | Interface: `ast`, `path`, `paramsSchema`, `pathSchema`, `querySchema`. Path/query types come from the path string. |
56
- | `Route.make(ast)` | Build a `Route` from an `AST.RouteAst`. |
57
- | `Route.Parse(path)` | Parse a path string (e.g. `"/todos/:id?filter=all"`) into a typed `Route`. |
58
- | `Route.Slash` | Route for `"/"`. |
59
- | `Route.Wildcard` | Route for `"*"`. |
60
- | `Route.Param(name)` | Route for `/:name` (string param). |
61
- | `Route.ParamWithSchema(name, schema)` | Route for `/:name` with an Effect Schema codec. |
62
- | `Route.Number(name)` | Route for `/:name` decoded as number. |
63
- | `Route.Int(name)` | Route for `/:name` decoded as integer. |
64
- | `Route.Join(...routes)` | Join route segments into one route (path and params combined). |
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 | Description |
70
- |--------|-------------|
71
- | `Matcher<A, E, R>` | Interface: pattern match on routes; each case yields an Fx. |
72
- | `match` | Start a matcher (same as `empty.match`). |
73
- | `empty` | Empty matcher (no cases). |
74
- | `matcher.match(route, handler)` | Add a case: `route` + handler (function, Fx, Effect, Stream, or value). |
75
- | `matcher.match(route, options)` | Add a case with `handler`, optional `dependencies`, `layout`, `catch`. |
76
- | `matcher.match(route, guard, handler)` | Add a case with a guard (e.g. from `@typed/guard`) before the handler. |
77
- | `matcher.prefix(route)` | Nest this matcher under a parent route. |
78
- | `matcher.provide(...layers)` | Provide Effect layers to the matcher. |
79
- | `matcher.provideService(tag, service)` | Provide a single service. |
80
- | `matcher.provideServices(services)` | Provide a service map. |
81
- | `matcher.catchCause(f)` | Handle failures by cause. |
82
- | `matcher.catch(f)` | Handle failures by error value. |
83
- | `matcher.catchTag(tag, f)` | Handle a specific error tag. |
84
- | `matcher.layout(layout)` | Wrap matcher output in a layout Fx. |
85
- | `run(matcher)` | Compile the matcher and return an `Fx` that reacts to the current path (requires `Router` + `CurrentRoute`). |
86
- | `catchCause(input, f)` | Attach cause-based error handling to an Fx or matcher run. |
87
- | `catch(input, f)` | Attach error-based handling. |
88
- | `catchTag(input, tag, f)` | Attach tag-based error handling. |
89
- | `redirectTo(path)` | Returns a function that, given an Fx or matcher, redirects to `path` on failure. |
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 | Description |
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>` | `(cause: RefSubject<Cause<E>>) => Fx<A, E2, R2>`. |
97
- | `MatchHandler<Params, A, E, R>` | Handler for a route: Fx, Effect, Stream, value, or `(params) => ...`. |
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 | Description |
102
- |-------|-------------|
103
- | `RouteNotFound` | No route matched the path. |
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` | Guard rejected (e.g. auth). |
123
+ | `RouteGuardError` | Guard rejected (e.g. auth). |
106
124
 
107
125
  ### CurrentRoute
108
126
 
109
- | Symbol | Description |
110
- |--------|-------------|
111
- | `CurrentRoute` | Effect Service exposing the current matched route tree. |
112
- | `CurrentRouteTree` | `{ route: Route<string, any>; parent?: CurrentRouteTree }`. |
113
- | `CurrentRoute.Default` | Layer that provides `CurrentRoute` from `Navigation.base`. |
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, R2 | Scope.Scope>;
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, R2 | Scope.Scope>;
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>, R2 | Scope.Scope | GuardServices<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>, R2 | Scope.Scope | GuardServices<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.Array$<Schema.Unknown>;
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
  */
@@ -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((dep) => Layer.isLayer(dep)
350
- ? dep
351
- : Layer.succeedServices(dep));
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> | never> {
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> {
@@ -1 +1 @@
1
- {"version":3,"file":"Parser.d.ts","sourceRoot":"","sources":["../src/Parser.ts"],"names":[],"mappings":"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"}
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.Record$<Schema.Record.Key, Schema.Top>[]>;
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.Record$<Schema.Record.Key, Schema.Top>[]>;
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.Record$<Schema.Record.Key, Schema.Top>[]>;
213
- }>, Schema.Record$<Schema.Record.Key, Schema.Top>[]>;
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
@@ -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,GAAI,SAAS,CAAC,aAAa,GAAG,oBAAoB,CAAC,GAAG,EAAE,KAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAIjG,CAAC"}
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.0",
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
- "effect": "4.0.0-beta.4",
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": "5.9.3",
29
- "vitest": "4.0.18"
32
+ "typescript": "catalog:",
33
+ "vitest": "catalog:"
30
34
  },
31
- "scripts": {
32
- "build": "tsc",
33
- "test": "vitest run --passWithNoTests"
34
- }
35
- }
35
+ "files": [
36
+ "dist",
37
+ "src"
38
+ ]
39
+ }
@@ -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 = Effect.makeLatchUnsafe();
44
- const done = Effect.makeLatchUnsafe();
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 = Effect.makeLatchUnsafe();
103
- const done = Effect.makeLatchUnsafe();
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 = Effect.makeLatchUnsafe();
209
- const done = Effect.makeLatchUnsafe();
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 = Effect.makeLatchUnsafe();
392
- const done = Effect.makeLatchUnsafe();
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, B, never, never, undefined>,
466
+ options: MatchHandlerOptions<Route.Type<Rt>, B, E2, R2, D, LB, LE2, LR2, C>,
445
467
  ): Matcher<
446
- A | B,
447
- E | E2 | DependencyError<D extends ReadonlyArray<infer Dep> ? Dep : never>,
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, B, never, never, undefined>,
497
+ options: MatchHandlerOptions<GuardOutput<G>, B, E2, R2, D, LB, LE2, LR2, C>,
472
498
  ): Matcher<
473
- A | B,
474
- E | E2 | GuardError<G> | DependencyError<D extends ReadonlyArray<infer Dep> ? Dep : never>,
475
- R | R2 | GuardServices<G> | Scope.Scope
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, B, never, never, undefined>,
521
+ options: MatchOptions<Rt, B, E2, R2, D, LB, LE2, LR2, C>,
490
522
  ): Matcher<
491
- A | B,
492
- E | E2 | DependencyError<D extends ReadonlyArray<infer Dep> ? Dep : never>,
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((dep) =>
993
- Layer.isLayer(dep)
994
- ? dep
995
- : (Layer.succeedServices(dep as ServiceMap.ServiceMap<any>) as AnyLayer),
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> | never
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 = (options: (MemoryOptions | InitialMemoryOptions) & {}): Layer.Layer<Router> =>
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()),
package/tsconfig.json DELETED
@@ -1,6 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.base.json",
3
- "compilerOptions": { "rootDir": "src", "outDir": "dist" },
4
- "include": ["src"],
5
- "exclude": ["**/*.test.ts"]
6
- }