Import
import { makeRouteExecutor } from "@typed/router";This public exposure is a re-export. Its import path is supported; declaration documentation is shared with the other public exposures below.
Signatures
export declare function makeRouteExecutor<A, E = never, R = never>(): Effect.Effect<RouteExecutor<A, E, R>, never, R | Scope.Scope>;Why
One owner coordinates layer rollback, guard order, layout reuse, catch boundaries, and handler finalization.
Ownership and lifetime
The returned Effect must run inside the Scope that will own the executor. Do not let the executor escape that Scope: closing it interrupts the selected handler and finalizes all Layer, layout, and catch children.
Examples
import * as Router from "@typed/router"
import * as Effect from "effect/Effect"
const useExecutor = Effect.scoped(
Effect.gen(function* () {
yield* Router.makeRouteExecutor<string>()
yield* Effect.log("route executor is owned by this scope")
})
)Other public imports
These import paths expose the same declaration. Each page retains its own public name and signature.