interface / @typed/router/AST

RouteAst.Transform

A Route AST node carrying an Effect Schema transformation.

Package version
1.0.0-beta.13
Category
Route structure
Since
1.0.0
Member of
RouteAst

Import

import { RouteAst } from "@typed/router/AST";

Access RouteAst.Transform through the imported RouteAst export. Its declaration below describes the member.

Signatures

interface Transform {
    type: "transform";
    from: RouteAst;
    to: Top;
    transformation: Transformation<any, any, any, any>;
}

Why

Schema-backed parameters can change decoded types while retaining their encoded route shape.

Ownership and lifetime

Transform describes plain readonly AST data. Routes and Matchers retain the concrete nodes they receive by reference; the type itself owns no resource.

Property: from

The encoded Route AST consumed by a schema transformation.

Property: from: Why

The executor can decode from the path-shaped representation before producing the transformed type.

Property: from: Ownership and lifetime

RouteAst.Transform retains the encoded child Route AST by reference for later schema projection and decoding.

Property: to

The target Effect Schema for transformed route parameters.

Property: to: Why

The route carries the exact decoded type and its service requirements.

Property: to: Ownership and lifetime

The containing Transform node retains its to Schema by reference; services are acquired only when that Schema runs.

Property: transformation

The Effect Schema transformation applied to route parameters.

Property: transformation: Why

Decode and encode behavior, errors, and service requirements remain in the schema contract.

Property: transformation: Ownership and lifetime

The transformation object is retained by reference. Any services it requires are acquired by the Effect that later runs the derived Schema.

Property: type

The discriminant identifying this AST variant.

Property: type: Why

Exhaustive switches can interpret syntax without instanceof checks or hidden classes.

Source