@typed/router 1.0.0-beta.2 → 1.0.0-beta.4
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 +1 -1
- package/dist/CurrentRoute.d.ts +2 -2
- package/dist/CurrentRoute.d.ts.map +1 -1
- package/dist/CurrentRoute.js +4 -4
- package/dist/Matcher.d.ts +18 -19
- package/dist/Matcher.d.ts.map +1 -1
- package/dist/Matcher.js +112 -109
- package/dist/MatcherV2.d.ts +3 -0
- package/dist/MatcherV2.d.ts.map +1 -0
- package/dist/MatcherV2.js +1 -0
- package/dist/test-utils/matcherBrowserHarness.d.ts +10 -0
- package/dist/test-utils/matcherBrowserHarness.d.ts.map +1 -0
- package/dist/test-utils/matcherBrowserHarness.js +13 -0
- package/package.json +21 -18
- package/src/CurrentRoute.ts +5 -5
- package/src/Matcher.browser.test.ts +767 -0
- package/src/Matcher.test.ts +348 -73
- package/src/Matcher.ts +170 -166
- package/src/__screenshots__/Matcher.browser.test.ts/typed-router-Matcher--browser--back---restores-previous-match-1.png +0 -0
- package/src/__screenshots__/Matcher.browser.test.ts/typed-router-Matcher--browser--catchTag-RouteNotFound-can-navigate-and-re-match--browser-history--1.png +0 -0
- package/src/__screenshots__/Matcher.browser.test.ts/typed-router-Matcher--browser--decodes-query-params-from-pathname-search-1.png +0 -0
- package/src/__screenshots__/Matcher.browser.test.ts/typed-router-Matcher--browser--function-Matcher-catch--and-composition--browser--instance-catchTag-does-not-catch-RouteGuardError-from-guards-1.png +0 -0
- package/src/__screenshots__/Matcher.browser.test.ts/typed-router-Matcher--browser--history-back-restores-previous-match--popstate-sync--1.png +0 -0
- package/src/__screenshots__/Matcher.browser.test.ts/typed-router-Matcher--browser--path-and-query-params-both-decode--distinct-names--1.png +0 -0
- package/src/__screenshots__/Matcher.browser.test.ts/typed-router-Matcher--browser--prefix-scopes-routes-under-a-path-segment-1.png +0 -0
- package/src/__screenshots__/Matcher.browser.test.ts/typed-router-Matcher--browser--provideService-supplies-a-service-to-handlers-1.png +0 -0
- package/src/__screenshots__/Matcher.browser.test.ts/typed-router-Matcher--browser--query-param-wins-over-path-param-when-names-collide-1.png +0 -0
- package/src/__screenshots__/Matcher.browser.test.ts/typed-router-Matcher--browser--redirectTo-navigates-away-from-unmatched-path--side-effect--1.png +0 -0
- package/src/__screenshots__/Matcher.browser.test.ts/typed-router-Matcher--browser--redirectTo-navigates-then-matches-target-route-1.png +0 -0
- package/src/__screenshots__/Matcher.browser.test.ts/typed-router-Matcher--browser--reuses-shared-layers-and-layouts-across-route-changes-1.png +0 -0
- package/src/test-utils/matcherBrowserHarness.ts +22 -0
package/README.md
CHANGED
|
@@ -95,7 +95,7 @@ For file-based routing, see `@typed/app` and its virtual `router:./routes` impor
|
|
|
95
95
|
| `matcher.prefix(route)` | Nest this matcher under a parent route. |
|
|
96
96
|
| `matcher.provide(...layers)` | Provide Effect layers to the matcher. |
|
|
97
97
|
| `matcher.provideService(tag, service)` | Provide a single service. |
|
|
98
|
-
| `matcher.
|
|
98
|
+
| `matcher.provideContext(services)` | Provide a service map. |
|
|
99
99
|
| `matcher.catchCause(f)` | Handle failures by cause. |
|
|
100
100
|
| `matcher.catch(f)` | Handle failures by error value. |
|
|
101
101
|
| `matcher.catchTag(tag, f)` | Handle a specific error tag. |
|
package/dist/CurrentRoute.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
2
|
import * as Layer from "effect/Layer";
|
|
3
|
-
import * as
|
|
3
|
+
import * as Context from "effect/Context";
|
|
4
4
|
import { Navigation } from "@typed/navigation/Navigation";
|
|
5
5
|
import { type Route } from "./Route.js";
|
|
6
6
|
export interface CurrentRouteTree {
|
|
7
7
|
readonly route: Route<string, any>;
|
|
8
8
|
readonly parent?: CurrentRouteTree | undefined;
|
|
9
9
|
}
|
|
10
|
-
declare const CurrentRoute_base:
|
|
10
|
+
declare const CurrentRoute_base: Context.ServiceClass<CurrentRoute, "@typed/router/CurrentRoute", CurrentRouteTree> & {
|
|
11
11
|
readonly make: Effect.Effect<CurrentRouteTree, never, Navigation>;
|
|
12
12
|
};
|
|
13
13
|
export declare class CurrentRoute extends CurrentRoute_base {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CurrentRoute.d.ts","sourceRoot":"","sources":["../src/CurrentRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"CurrentRoute.d.ts","sourceRoot":"","sources":["../src/CurrentRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAS,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAChD;;;;AAED,qBAAa,YAAa,SAAQ,iBAKjC;IACC,MAAM,CAAC,QAAQ,CAAC,OAAO,+CAAiD;IAExE,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAI,OAAO,KAAK,CAAC,GAAG,6CAUtC;CACL"}
|
package/dist/CurrentRoute.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
2
|
import * as Layer from "effect/Layer";
|
|
3
|
-
import * as
|
|
3
|
+
import * as Context from "effect/Context";
|
|
4
4
|
import { Navigation } from "@typed/navigation/Navigation";
|
|
5
5
|
import { Parse } from "./Route.js";
|
|
6
|
-
export class CurrentRoute extends
|
|
6
|
+
export class CurrentRoute extends Context.Service()("@typed/router/CurrentRoute", {
|
|
7
7
|
make: Effect.map(Navigation.base, (base) => ({ route: Parse(base) })),
|
|
8
8
|
}) {
|
|
9
9
|
static Default = Layer.effect(CurrentRoute, CurrentRoute.make);
|
|
10
10
|
static extend = (route) => Layer.unwrap(Effect.gen(function* () {
|
|
11
|
-
const services = yield* Effect.
|
|
12
|
-
const parent =
|
|
11
|
+
const services = yield* Effect.context();
|
|
12
|
+
const parent = Context.getOrUndefined(services, CurrentRoute);
|
|
13
13
|
return Layer.succeed(CurrentRoute, {
|
|
14
14
|
route,
|
|
15
15
|
parent,
|
package/dist/Matcher.d.ts
CHANGED
|
@@ -6,13 +6,12 @@ import * as Option from "effect/Option";
|
|
|
6
6
|
import { type Pipeable } from "effect/Pipeable";
|
|
7
7
|
import * as Schema from "effect/Schema";
|
|
8
8
|
import * as Scope from "effect/Scope";
|
|
9
|
-
import * as
|
|
9
|
+
import * as Context from "effect/Context";
|
|
10
10
|
import * as Stream from "effect/Stream";
|
|
11
11
|
import type { ExcludeTag, ExtractTag, NoInfer, Tags } from "effect/Types";
|
|
12
12
|
import type * as Fx from "@typed/fx/Fx/Fx";
|
|
13
13
|
import { RefSubject } from "@typed/fx/RefSubject";
|
|
14
14
|
import type { MatchAst } from "./AST.js";
|
|
15
|
-
import { CurrentRoute } from "./CurrentRoute.js";
|
|
16
15
|
import { type Route } from "./Route.js";
|
|
17
16
|
import type { Router } from "./Router.js";
|
|
18
17
|
export type Layout<Params, A, E, R, B, E2, R2> = (params: LayoutParams<Params, A, E, R>) => Fx.Fx<B, E2, R2>;
|
|
@@ -22,13 +21,13 @@ export type LayoutParams<Params, A, E, R> = {
|
|
|
22
21
|
};
|
|
23
22
|
export type CatchHandler<E, A, E2, R2> = (cause: RefSubject.RefSubject<Cause.Cause<E>>) => Fx.Fx<A, E2, R2>;
|
|
24
23
|
export type AnyLayer = Layer.Layer<any, any, any> | Layer.Layer<never, any, any> | Layer.Layer<any, never, any> | Layer.Layer<any, any, never> | Layer.Layer<never, never, never> | Layer.Layer<any, never, never> | Layer.Layer<never, any, never> | Layer.Layer<never, never, any>;
|
|
25
|
-
export type AnyServiceMap =
|
|
24
|
+
export type AnyServiceMap = Context.Context<any> | Context.Context<never>;
|
|
26
25
|
export type AnyDependency = AnyLayer | AnyServiceMap;
|
|
27
26
|
type AnyLayout = Layout<any, any, any, any, any, any, any>;
|
|
28
27
|
type AnyCatch = CatchHandler<any, any, any, any>;
|
|
29
28
|
type AnyGuard = GuardType<any, any, any, any>;
|
|
30
29
|
type AnyMatchHandler = (params: RefSubject.RefSubject<any>) => Fx.Fx<any, any, any>;
|
|
31
|
-
export type DependencyProvided<D> = D extends Layer.Layer<infer Provided, any, any> ? Provided : D extends
|
|
30
|
+
export type DependencyProvided<D> = D extends Layer.Layer<infer Provided, any, any> ? Provided : D extends Context.Context<infer Provided> ? Provided : never;
|
|
32
31
|
export type DependencyError<D> = D extends Layer.Layer<any, infer E, any> ? E : never;
|
|
33
32
|
export type DependencyRequirements<D> = D extends Layer.Layer<any, any, infer R> ? R : never;
|
|
34
33
|
type LayerSuccess<L> = L extends Layer.Layer<infer Provided, any, any> ? Provided : never;
|
|
@@ -73,7 +72,7 @@ type ApplyCatch<A, E, R, C> = C extends CatchHandler<any, infer CA, infer CE, in
|
|
|
73
72
|
readonly r: R;
|
|
74
73
|
};
|
|
75
74
|
type ComputeMatchResult<E2, R2, D, LB, LE2, LR2, C, GE, GR> = ApplyCatch<LB, ApplyDependencies<E2 | GE | LE2, R2 | GR | LR2, D>["e"], ApplyDependencies<E2 | GE | LE2, R2 | GR | LR2, D>["r"], C>;
|
|
76
|
-
export interface Matcher<A, E = never, R = never> extends Pipeable {
|
|
75
|
+
export interface Matcher<A, E = never, R = never> extends Fx.Fx<A, E | RouteNotFound | RouteDecodeError | RouteGuardError, R | Router | Scope.Scope>, Pipeable {
|
|
77
76
|
readonly cases: ReadonlyArray<MatchAst>;
|
|
78
77
|
match<Rt extends Route.Any, B, E2 = never, R2 = never>(route: Rt, handler: (params: RefSubject.RefSubject<Route.Type<Rt>>) => MatchHandlerReturnValue<B, E2, R2>): Matcher<A | B, E | E2, R | R2 | Scope.Scope>;
|
|
79
78
|
match<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<A | B, E | E2, R | R2 | Scope.Scope>;
|
|
@@ -86,8 +85,8 @@ export interface Matcher<A, E = never, R = never> extends Pipeable {
|
|
|
86
85
|
match<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<A | ComputeMatchResult<E2, R2, D, LB, LE2, LR2, C, never, never>["a"], E | ComputeMatchResult<E2, R2, D, LB, LE2, LR2, C, never, never>["e"], R | ComputeMatchResult<E2, R2, D, LB, LE2, LR2, C, never, never>["r"] | Scope.Scope>;
|
|
87
86
|
readonly prefix: <Rt extends Route.Any>(route: Rt) => Matcher<A, E, R>;
|
|
88
87
|
readonly provide: <Layers extends readonly [AnyLayer, ...AnyLayer[]]>(...layers: Layers) => Matcher<A, E | LayerError<Layers[number]>, Exclude<R, LayerSuccess<Layers[number]>> | LayerServices<Layers[number]>>;
|
|
89
|
-
readonly provideService: <Id, S>(tag:
|
|
90
|
-
readonly
|
|
88
|
+
readonly provideService: <Id, S>(tag: Context.Service<Id, S>, service: S) => Matcher<A, E, Exclude<R, Id>>;
|
|
89
|
+
readonly provideContext: <R2>(services: Context.Context<R2>) => Matcher<A, E, Exclude<R, R2>>;
|
|
91
90
|
readonly catchCause: <B, E2, R2>(f: CatchHandler<E, B, E2, R2>) => Matcher<A | B, E2, R | R2>;
|
|
92
91
|
readonly catch: <B, E2, R2>(f: (e: E) => Fx.Fx<B, E2, R2>) => Matcher<A | B, E2, R | R2>;
|
|
93
92
|
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>;
|
|
@@ -110,12 +109,12 @@ export declare namespace Matcher {
|
|
|
110
109
|
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);
|
|
111
110
|
export declare const empty: Matcher<never>;
|
|
112
111
|
export declare const match: {
|
|
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,
|
|
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,
|
|
112
|
+
<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>;
|
|
113
|
+
<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>;
|
|
115
114
|
<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"]>;
|
|
116
115
|
<Rt extends Route.Any, const B>(route: Rt, handler: B): Matcher<B, never, Scope.Scope>;
|
|
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>,
|
|
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>,
|
|
116
|
+
<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>>;
|
|
117
|
+
<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>>;
|
|
119
118
|
<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"]>;
|
|
120
119
|
<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>>;
|
|
121
120
|
<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"]>;
|
|
@@ -125,20 +124,20 @@ export declare const match: {
|
|
|
125
124
|
* Use this so directory layouts (e.g. api/_layout) and directory dependencies apply only to routes under that directory.
|
|
126
125
|
*/
|
|
127
126
|
export declare function merge<const Matchers extends ReadonlyArray<Matcher.Any>>(...matchers: Matchers): Matcher<Matcher.MergeSuccess<Matchers>, Matcher.MergeError<Matchers>, Matcher.MergeServices<Matchers>>;
|
|
128
|
-
declare const RouteGuardError_base: Schema.
|
|
127
|
+
declare const RouteGuardError_base: Schema.Class<RouteGuardError, Schema.Struct<{
|
|
129
128
|
readonly _tag: Schema.tag<"RouteGuardError">;
|
|
130
129
|
readonly path: Schema.String;
|
|
131
130
|
readonly causes: Schema.$Array<Schema.Unknown>;
|
|
132
131
|
}>, Cause.YieldableError>;
|
|
133
132
|
export declare class RouteGuardError extends RouteGuardError_base {
|
|
134
133
|
}
|
|
135
|
-
declare const RouteNotFound_base: Schema.
|
|
134
|
+
declare const RouteNotFound_base: Schema.Class<RouteNotFound, Schema.Struct<{
|
|
136
135
|
readonly _tag: Schema.tag<"RouteNotFound">;
|
|
137
136
|
readonly path: Schema.String;
|
|
138
137
|
}>, Cause.YieldableError>;
|
|
139
138
|
export declare class RouteNotFound extends RouteNotFound_base {
|
|
140
139
|
}
|
|
141
|
-
declare const RouteDecodeError_base: Schema.
|
|
140
|
+
declare const RouteDecodeError_base: Schema.Class<RouteDecodeError, Schema.Struct<{
|
|
142
141
|
readonly _tag: Schema.tag<"RouteDecodeError">;
|
|
143
142
|
readonly path: Schema.String;
|
|
144
143
|
readonly cause: Schema.String;
|
|
@@ -157,7 +156,6 @@ export type CompiledEntry = {
|
|
|
157
156
|
readonly catches: ReadonlyArray<AnyCatch>;
|
|
158
157
|
readonly decode: (input: unknown) => Effect.Effect<any, Schema.SchemaError, any>;
|
|
159
158
|
};
|
|
160
|
-
export declare function run<M extends Matcher.Any>(matcher: M): Fx.Fx<Matcher.Success<M>, Matcher.Error<M> | RouteNotFound | RouteDecodeError | RouteGuardError, Matcher.Services<M> | Router | CurrentRoute | Scope.Scope>;
|
|
161
159
|
type InputSucces<T> = [Matcher.Success<T> | Fx.Fx.Success<T>] extends [infer A] ? A : never;
|
|
162
160
|
type InputError<T> = [Matcher.Error<T> | Fx.Fx.Error<T>] extends [infer E] ? E : never;
|
|
163
161
|
type InputServices<T> = [Matcher.Services<T> | Fx.Fx.Services<T>] extends [infer R] ? R : never;
|
|
@@ -167,6 +165,7 @@ export declare const catchCause: {
|
|
|
167
165
|
};
|
|
168
166
|
export declare const catch_: {
|
|
169
167
|
<I extends Fx.Fx.Any | Matcher.Any, B, E2, R2>(f: (e: InputError<I>) => Fx.Fx<B, E2, R2>): (input: I) => Fx.Fx<InputSucces<I> | B, E2, InputServices<I> | R2 | Router | Scope.Scope>;
|
|
168
|
+
<I extends Fx.Fx.Any | Matcher.Any, B, E2, R2>(input: I, f: (e: InputError<I>) => Fx.Fx<B, E2, R2>): Fx.Fx<InputSucces<I> | B, E2, InputServices<I> | R2 | Router | Scope.Scope>;
|
|
170
169
|
};
|
|
171
170
|
export { catch_ as catch };
|
|
172
171
|
export declare const catchTag: {
|
|
@@ -174,7 +173,7 @@ export declare const catchTag: {
|
|
|
174
173
|
<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>;
|
|
175
174
|
};
|
|
176
175
|
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
|
-
type NormalizeLayer<T extends AnyDependency> = T extends Layer.Layer<infer A, infer E, infer R> ? Layer.Layer<A, E, R> : T extends
|
|
176
|
+
type NormalizeLayer<T extends AnyDependency> = T extends Layer.Layer<infer A, infer E, infer R> ? Layer.Layer<A, E, R> : T extends Context.Context<infer R> ? Layer.Layer<R> : never;
|
|
178
177
|
type NormalizeLayers<T extends ReadonlyArray<AnyDependency>> = {
|
|
179
178
|
[K in keyof T]: NormalizeLayer<T[K]>;
|
|
180
179
|
};
|
|
@@ -194,7 +193,7 @@ export declare function compile(cases: ReadonlyArray<MatchAst>): ReadonlyArray<C
|
|
|
194
193
|
*/
|
|
195
194
|
export declare function makeLayerManager(memoMap: Layer.MemoMap, rootScope: Scope.Scope, fiberId: number): {
|
|
196
195
|
prepare: (desired: ReadonlyArray<AnyLayer>) => Effect.Effect<{
|
|
197
|
-
services:
|
|
196
|
+
services: Context.Context<never>;
|
|
198
197
|
commit: Effect.Effect<void, never, never>;
|
|
199
198
|
rollback: Effect.Effect<void, never, never>;
|
|
200
199
|
}, any, any>;
|
|
@@ -203,13 +202,13 @@ export declare function makeLayerManager(memoMap: Layer.MemoMap, rootScope: Scop
|
|
|
203
202
|
* @internal
|
|
204
203
|
*/
|
|
205
204
|
export declare function makeLayoutManager(rootScope: Scope.Scope, fiberId: number): {
|
|
206
|
-
apply: (layouts: ReadonlyArray<AnyLayout>, paramsValue: any, inner: Fx.Fx<any, any, any>, services:
|
|
205
|
+
apply: (layouts: ReadonlyArray<AnyLayout>, paramsValue: any, inner: Fx.Fx<any, any, any>, services: Context.Context<any>) => Effect.Effect<Fx.Fx<any, any, any>, never, never>;
|
|
207
206
|
updateParams: (layouts: ReadonlyArray<AnyLayout>, paramsValue: any) => Effect.Effect<void, never, never>;
|
|
208
207
|
};
|
|
209
208
|
/**
|
|
210
209
|
* @internal
|
|
211
210
|
*/
|
|
212
211
|
export declare function makeCatchManager(rootScope: Scope.Scope, fiberId: number): {
|
|
213
|
-
apply: (catches: ReadonlyArray<AnyCatch>, inner: Fx.Fx<any, any, any>, services:
|
|
212
|
+
apply: (catches: ReadonlyArray<AnyCatch>, inner: Fx.Fx<any, any, any>, services: Context.Context<any>) => Effect.Effect<Fx.Fx<any, any, any>, never, never>;
|
|
214
213
|
};
|
|
215
214
|
//# sourceMappingURL=Matcher.d.ts.map
|
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
|
@@ -2,7 +2,7 @@ import * as findMyWay from "find-my-way-ts";
|
|
|
2
2
|
import * as Cause from "effect/Cause";
|
|
3
3
|
import * as Effect from "effect/Effect";
|
|
4
4
|
import * as Exit from "effect/Exit";
|
|
5
|
-
import { interrupt
|
|
5
|
+
import { interrupt } from "effect/Exit";
|
|
6
6
|
import { dual, identity } from "effect/Function";
|
|
7
7
|
import * as Result from "effect/Result";
|
|
8
8
|
import * as Layer from "effect/Layer";
|
|
@@ -11,18 +11,18 @@ import { pipeArguments } from "effect/Pipeable";
|
|
|
11
11
|
import * as Schema from "effect/Schema";
|
|
12
12
|
import { makeFormatterDefault } from "effect/SchemaIssue";
|
|
13
13
|
import * as Scope from "effect/Scope";
|
|
14
|
-
import * as
|
|
14
|
+
import * as Context from "effect/Context";
|
|
15
15
|
import * as Stream from "effect/Stream";
|
|
16
16
|
import { exit } from "@typed/fx/Fx";
|
|
17
17
|
import { mapEffect } from "@typed/fx/Fx/combinators/mapEffect";
|
|
18
|
-
import {
|
|
18
|
+
import { provideContext } from "@typed/fx/Fx/combinators/provide";
|
|
19
19
|
import { skipRepeats } from "@typed/fx/Fx/combinators/skipRepeats";
|
|
20
20
|
import { switchMap } from "@typed/fx/Fx/combinators/switchMap";
|
|
21
21
|
import { unwrap } from "@typed/fx/Fx/combinators/unwrap";
|
|
22
22
|
import { fromEffect, never } from "@typed/fx/Fx/constructors/fromEffect";
|
|
23
23
|
import { succeed } from "@typed/fx/Fx/constructors/succeed";
|
|
24
24
|
import { fromStream } from "@typed/fx/Fx/stream";
|
|
25
|
-
import { isFx } from "@typed/fx/Fx/TypeId";
|
|
25
|
+
import { FxTypeId, isFx } from "@typed/fx/Fx/TypeId";
|
|
26
26
|
import { RefSubject } from "@typed/fx/RefSubject";
|
|
27
27
|
import { CurrentPath, Navigation } from "@typed/navigation/Navigation";
|
|
28
28
|
import * as AST from "./AST.js";
|
|
@@ -96,6 +96,11 @@ function parseMatchArgs(args) {
|
|
|
96
96
|
};
|
|
97
97
|
}
|
|
98
98
|
class MatcherImpl {
|
|
99
|
+
[FxTypeId] = {
|
|
100
|
+
_A: identity,
|
|
101
|
+
_E: identity,
|
|
102
|
+
_R: identity,
|
|
103
|
+
};
|
|
99
104
|
cases;
|
|
100
105
|
constructor(cases) {
|
|
101
106
|
this.cases = cases;
|
|
@@ -131,10 +136,10 @@ class MatcherImpl {
|
|
|
131
136
|
return new MatcherImpl([AST.layer(this.cases, layers)]);
|
|
132
137
|
}
|
|
133
138
|
provideService(tag, service) {
|
|
134
|
-
return this.
|
|
139
|
+
return this.provideContext(Context.make(tag, service));
|
|
135
140
|
}
|
|
136
|
-
|
|
137
|
-
return this.provide(Layer.
|
|
141
|
+
provideContext(services) {
|
|
142
|
+
return this.provide(Layer.succeedContext(services));
|
|
138
143
|
}
|
|
139
144
|
catchCause(f) {
|
|
140
145
|
return new MatcherImpl([AST.catchCause(this.cases, f)]);
|
|
@@ -177,6 +182,97 @@ class MatcherImpl {
|
|
|
177
182
|
pipe() {
|
|
178
183
|
return pipeArguments(this, arguments);
|
|
179
184
|
}
|
|
185
|
+
run(sink) {
|
|
186
|
+
return Effect.gen({ self: this }, function* () {
|
|
187
|
+
const fiberId = yield* Effect.fiberId;
|
|
188
|
+
const rootScope = yield* Effect.scope;
|
|
189
|
+
const current = yield* CurrentRoute;
|
|
190
|
+
const prefixed = this.prefix(current.route);
|
|
191
|
+
const entries = compile(prefixed.cases);
|
|
192
|
+
const router = findMyWay.make({
|
|
193
|
+
ignoreTrailingSlash: true,
|
|
194
|
+
caseSensitive: false,
|
|
195
|
+
});
|
|
196
|
+
const handlersByPath = new Map();
|
|
197
|
+
const memoMap = yield* Layer.makeMemoMap;
|
|
198
|
+
const layerManager = makeLayerManager(memoMap, rootScope, fiberId);
|
|
199
|
+
const layoutManager = makeLayoutManager(rootScope, fiberId);
|
|
200
|
+
const catchManager = makeCatchManager(rootScope, fiberId);
|
|
201
|
+
for (const entry of entries) {
|
|
202
|
+
const path = entry.route.path;
|
|
203
|
+
const existing = handlersByPath.get(path);
|
|
204
|
+
if (existing !== undefined) {
|
|
205
|
+
existing.push(entry);
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
const list = [entry];
|
|
209
|
+
handlersByPath.set(path, list);
|
|
210
|
+
router.all(path, list);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
let currentState = null;
|
|
214
|
+
const stream = CurrentPath.pipe(mapEffect(Effect.fn(function* (path) {
|
|
215
|
+
const result = router.find("GET", path);
|
|
216
|
+
if (result === undefined)
|
|
217
|
+
return yield* new RouteNotFound({ path });
|
|
218
|
+
const input = { ...result.params, ...result.searchParams };
|
|
219
|
+
const entries = result.handler;
|
|
220
|
+
const guardCauses = [];
|
|
221
|
+
let matchedEntry = undefined;
|
|
222
|
+
let matchedParams = undefined;
|
|
223
|
+
let matchedPrepared = undefined;
|
|
224
|
+
for (const entry of entries) {
|
|
225
|
+
const params = yield* Effect.mapErrorEager(entry.decode(input), (cause) => new RouteDecodeError({ path, cause: makeFormatterDefault()(cause.issue) }));
|
|
226
|
+
const prepared = yield* layerManager.prepare(entry.layers);
|
|
227
|
+
const guardExit = yield* entry
|
|
228
|
+
.guard(params)
|
|
229
|
+
.pipe(Effect.provideContext(prepared.services), Effect.exit);
|
|
230
|
+
if (Exit.isFailure(guardExit)) {
|
|
231
|
+
guardCauses.push(guardExit.cause);
|
|
232
|
+
yield* prepared.rollback;
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
235
|
+
if (Option.isNone(guardExit.value)) {
|
|
236
|
+
yield* prepared.rollback;
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
matchedEntry = entry;
|
|
240
|
+
matchedParams = guardExit.value.value;
|
|
241
|
+
matchedPrepared = prepared;
|
|
242
|
+
break;
|
|
243
|
+
}
|
|
244
|
+
if (matchedEntry === undefined || matchedPrepared === undefined) {
|
|
245
|
+
return yield* new RouteGuardError({ path, causes: guardCauses });
|
|
246
|
+
}
|
|
247
|
+
yield* matchedPrepared.commit;
|
|
248
|
+
if (currentState !== null && currentState.entry === matchedEntry) {
|
|
249
|
+
yield* RefSubject.set(currentState.params, matchedParams);
|
|
250
|
+
yield* layoutManager.updateParams(matchedEntry.layouts, matchedParams);
|
|
251
|
+
return currentState.fx;
|
|
252
|
+
}
|
|
253
|
+
if (currentState !== null) {
|
|
254
|
+
yield* Scope.close(currentState.scope, interrupt(fiberId));
|
|
255
|
+
currentState = null;
|
|
256
|
+
}
|
|
257
|
+
const scope = yield* Scope.fork(rootScope);
|
|
258
|
+
const paramsRef = yield* RefSubject.make(matchedParams).pipe(Scope.provide(scope));
|
|
259
|
+
const preparedServices = matchedPrepared.services;
|
|
260
|
+
const handlerServices = Context.merge(preparedServices, Context.make(Scope.Scope, scope));
|
|
261
|
+
const handlerFx = matchedEntry.handler(paramsRef).pipe(provideContext(handlerServices));
|
|
262
|
+
const withLayouts = yield* layoutManager.apply(matchedEntry.layouts, matchedParams, handlerFx, preparedServices);
|
|
263
|
+
const withCatches = yield* catchManager.apply(matchedEntry.catches, withLayouts, preparedServices);
|
|
264
|
+
const fx = withCatches;
|
|
265
|
+
currentState = {
|
|
266
|
+
entry: matchedEntry,
|
|
267
|
+
params: paramsRef,
|
|
268
|
+
scope,
|
|
269
|
+
fx,
|
|
270
|
+
};
|
|
271
|
+
return currentState.fx;
|
|
272
|
+
})), skipRepeats, switchMap(identity));
|
|
273
|
+
return yield* stream.run(sink);
|
|
274
|
+
});
|
|
275
|
+
}
|
|
180
276
|
}
|
|
181
277
|
function normalizeHandler(handler) {
|
|
182
278
|
if (isMatchHandlerFn(handler))
|
|
@@ -226,105 +322,12 @@ export class RouteDecodeError extends Schema.ErrorClass("@typed/router/RouteDeco
|
|
|
226
322
|
cause: Schema.String,
|
|
227
323
|
}) {
|
|
228
324
|
}
|
|
229
|
-
export function run(matcher) {
|
|
230
|
-
return unwrap(Effect.gen(function* () {
|
|
231
|
-
const fiberId = yield* Effect.fiberId;
|
|
232
|
-
const rootScope = yield* Effect.scope;
|
|
233
|
-
const current = yield* CurrentRoute;
|
|
234
|
-
const prefixed = matcher.prefix(current.route);
|
|
235
|
-
const entries = compile(prefixed.cases);
|
|
236
|
-
const router = findMyWay.make({
|
|
237
|
-
ignoreTrailingSlash: true,
|
|
238
|
-
caseSensitive: false,
|
|
239
|
-
});
|
|
240
|
-
const handlersByPath = new Map();
|
|
241
|
-
const memoMap = yield* Layer.makeMemoMap;
|
|
242
|
-
const layerManager = makeLayerManager(memoMap, rootScope, fiberId);
|
|
243
|
-
const layoutManager = makeLayoutManager(rootScope, fiberId);
|
|
244
|
-
const catchManager = makeCatchManager(rootScope, fiberId);
|
|
245
|
-
for (const entry of entries) {
|
|
246
|
-
const path = entry.route.path;
|
|
247
|
-
const existing = handlersByPath.get(path);
|
|
248
|
-
if (existing !== undefined) {
|
|
249
|
-
existing.push(entry);
|
|
250
|
-
}
|
|
251
|
-
else {
|
|
252
|
-
const list = [entry];
|
|
253
|
-
handlersByPath.set(path, list);
|
|
254
|
-
router.all(path, list);
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
let currentState = null;
|
|
258
|
-
return CurrentPath.pipe(mapEffect(Effect.fn(function* (path) {
|
|
259
|
-
const result = router.find("GET", path);
|
|
260
|
-
if (result === undefined)
|
|
261
|
-
return yield* new RouteNotFound({ path });
|
|
262
|
-
const input = { ...result.params, ...result.searchParams };
|
|
263
|
-
const entries = result.handler;
|
|
264
|
-
const guardCauses = [];
|
|
265
|
-
let matchedEntry = undefined;
|
|
266
|
-
let matchedParams = undefined;
|
|
267
|
-
let matchedPrepared = undefined;
|
|
268
|
-
for (const entry of entries) {
|
|
269
|
-
const params = yield* Effect.mapErrorEager(entry.decode(input), (cause) => new RouteDecodeError({ path, cause: makeFormatterDefault()(cause.issue) }));
|
|
270
|
-
const prepared = yield* layerManager.prepare(entry.layers);
|
|
271
|
-
const guardExit = yield* entry
|
|
272
|
-
.guard(params)
|
|
273
|
-
.pipe(Effect.provideServices(prepared.services), Effect.exit);
|
|
274
|
-
if (Exit.isFailure(guardExit)) {
|
|
275
|
-
guardCauses.push(guardExit.cause);
|
|
276
|
-
yield* prepared.rollback;
|
|
277
|
-
continue;
|
|
278
|
-
}
|
|
279
|
-
if (Option.isNone(guardExit.value)) {
|
|
280
|
-
yield* prepared.rollback;
|
|
281
|
-
continue;
|
|
282
|
-
}
|
|
283
|
-
matchedEntry = entry;
|
|
284
|
-
matchedParams = guardExit.value.value;
|
|
285
|
-
matchedPrepared = prepared;
|
|
286
|
-
break;
|
|
287
|
-
}
|
|
288
|
-
if (matchedEntry === undefined || matchedPrepared === undefined) {
|
|
289
|
-
return yield* new RouteGuardError({ path, causes: guardCauses });
|
|
290
|
-
}
|
|
291
|
-
yield* matchedPrepared.commit;
|
|
292
|
-
if (currentState !== null && currentState.entry === matchedEntry) {
|
|
293
|
-
yield* RefSubject.set(currentState.params, matchedParams);
|
|
294
|
-
yield* layoutManager.updateParams(matchedEntry.layouts, matchedParams);
|
|
295
|
-
return currentState.fx;
|
|
296
|
-
}
|
|
297
|
-
if (currentState !== null) {
|
|
298
|
-
yield* Scope.close(currentState.scope, interrupt(fiberId));
|
|
299
|
-
currentState = null;
|
|
300
|
-
}
|
|
301
|
-
const scope = yield* Scope.fork(rootScope);
|
|
302
|
-
const paramsRef = yield* RefSubject.make(matchedParams).pipe(Scope.provide(scope));
|
|
303
|
-
const preparedServices = matchedPrepared.services;
|
|
304
|
-
const handlerServices = ServiceMap.merge(preparedServices, ServiceMap.make(Scope.Scope, scope));
|
|
305
|
-
const handlerFx = matchedEntry
|
|
306
|
-
.handler(paramsRef)
|
|
307
|
-
.pipe(provideServices(handlerServices));
|
|
308
|
-
const withLayouts = yield* layoutManager.apply(matchedEntry.layouts, matchedParams, handlerFx, preparedServices);
|
|
309
|
-
const withCatches = yield* catchManager.apply(matchedEntry.catches, withLayouts, preparedServices);
|
|
310
|
-
const fx = withCatches;
|
|
311
|
-
currentState = {
|
|
312
|
-
entry: matchedEntry,
|
|
313
|
-
params: paramsRef,
|
|
314
|
-
scope,
|
|
315
|
-
fx,
|
|
316
|
-
};
|
|
317
|
-
return currentState.fx;
|
|
318
|
-
})), skipRepeats, switchMap(identity));
|
|
319
|
-
}));
|
|
320
|
-
}
|
|
321
325
|
export const catchCause = dual(2, (input, f) => {
|
|
322
326
|
const eff = Effect.gen(function* () {
|
|
323
327
|
const fiberId = yield* Effect.fiberId;
|
|
324
328
|
const rootScope = yield* Effect.scope;
|
|
325
|
-
const fx = isFx(input) ? input : run(input);
|
|
326
329
|
const manager = makeCatchManager(rootScope, fiberId);
|
|
327
|
-
const result = yield* manager.apply([f],
|
|
330
|
+
const result = yield* manager.apply([f], input, Context.empty());
|
|
328
331
|
return result;
|
|
329
332
|
});
|
|
330
333
|
return unwrap(eff);
|
|
@@ -369,7 +372,7 @@ function isServiceMap(dep) {
|
|
|
369
372
|
}
|
|
370
373
|
function toSingleLayer(dep) {
|
|
371
374
|
if (isServiceMap(dep))
|
|
372
|
-
return Layer.
|
|
375
|
+
return Layer.succeedContext(dep);
|
|
373
376
|
return dep;
|
|
374
377
|
}
|
|
375
378
|
function normalizeDependencies(dependencies) {
|
|
@@ -483,15 +486,15 @@ export function makeLayerManager(memoMap, rootScope, fiberId) {
|
|
|
483
486
|
: ((cachedDesiredSet = new Set(desired)), (cachedOrder = desired), cachedDesiredSet);
|
|
484
487
|
const removed = order.filter((layer) => !desiredSet.has(layer));
|
|
485
488
|
const added = [];
|
|
486
|
-
let services =
|
|
489
|
+
let services = Context.empty();
|
|
487
490
|
for (const layer of desired) {
|
|
488
491
|
const existing = states.get(layer);
|
|
489
492
|
if (existing) {
|
|
490
|
-
services =
|
|
493
|
+
services = Context.merge(services, existing.services);
|
|
491
494
|
continue;
|
|
492
495
|
}
|
|
493
496
|
const scope = yield* Scope.fork(rootScope);
|
|
494
|
-
const buildExit = yield* Layer.buildWithMemoMap(layer, memoMap, scope).pipe(Effect.
|
|
497
|
+
const buildExit = yield* Layer.buildWithMemoMap(layer, memoMap, scope).pipe(Effect.provideContext(services), Effect.exit);
|
|
495
498
|
if (Exit.isFailure(buildExit)) {
|
|
496
499
|
for (let i = added.length - 1; i >= 0; i--) {
|
|
497
500
|
const addedLayer = added[i];
|
|
@@ -505,7 +508,7 @@ export function makeLayerManager(memoMap, rootScope, fiberId) {
|
|
|
505
508
|
return yield* Effect.failCause(buildExit.cause);
|
|
506
509
|
}
|
|
507
510
|
const servicesForLayer = buildExit.value;
|
|
508
|
-
services =
|
|
511
|
+
services = Context.merge(services, servicesForLayer);
|
|
509
512
|
states.set(layer, { scope, services: servicesForLayer });
|
|
510
513
|
added.push(layer);
|
|
511
514
|
}
|
|
@@ -562,7 +565,7 @@ export function makeLayoutManager(rootScope, fiberId) {
|
|
|
562
565
|
const content = yield* RefSubject.make(Effect.succeed(current), {
|
|
563
566
|
eq: (left, right) => left === right,
|
|
564
567
|
}).pipe(Scope.provide(scope));
|
|
565
|
-
const fx = layout({ params, content: content.pipe(switchMap(identity)) }).pipe(
|
|
568
|
+
const fx = layout({ params, content: content.pipe(switchMap(identity)) }).pipe(provideContext(Context.merge(services, Context.make(Scope.Scope, scope))));
|
|
566
569
|
states.set(layout, { params, content, fx, scope });
|
|
567
570
|
current = fx;
|
|
568
571
|
}
|
|
@@ -610,9 +613,9 @@ export function makeCatchManager(rootScope, fiberId) {
|
|
|
610
613
|
const content = yield* RefSubject.make(Effect.succeed(current), {
|
|
611
614
|
eq: (left, right) => left === right,
|
|
612
615
|
}).pipe(Scope.provide(scope));
|
|
613
|
-
const fallback = catcher(causes).pipe(
|
|
616
|
+
const fallback = catcher(causes).pipe(provideContext(Context.merge(services, Context.make(Scope.Scope, scope))));
|
|
614
617
|
const fx = content.pipe(switchMap(identity), exit, mapEffect(Effect.fn(function* (e) {
|
|
615
|
-
if (isSuccess(e))
|
|
618
|
+
if (Exit.isSuccess(e))
|
|
616
619
|
return succeed(e.value);
|
|
617
620
|
yield* RefSubject.set(causes, e.cause);
|
|
618
621
|
return fallback;
|