ValueErrorsOf<S>Union of every value leaf's error type in S — fails layer / client acquire
(all-or-nothing). Empty/never when the spec has no fallible materialize fields. An any /
unknown spec (erased toolkit boundaries) contributes never so it cannot poison Layer E.
export type type ValueErrorsOf<S extends Spec> =
unknown extends S
? never
: {
[K in keyof S]: S[K] extends {
readonly _tag: "value"
}
? ErrorOf<AsMethod<S[K]>>
: S[K] extends Spec
? ValueErrorsOf<S[K]>
: never
}[keyof S]
Union of every
value
leaf's error type in S — fails layer / client acquire
(all-or-nothing). Empty/never when the spec has no fallible materialize fields. An any /
unknown spec (erased toolkit boundaries) contributes never so it cannot poison Layer E.
ValueErrorsOf<function (type parameter) S in type ValueErrorsOf<S extends Spec>S extends Spec> = unknown extends function (type parameter) S in type ValueErrorsOf<S extends Spec>S
? never
: {
[function (type parameter) KK in keyof function (type parameter) S in type ValueErrorsOf<S extends Spec>S]: function (type parameter) S in type ValueErrorsOf<S extends Spec>S[function (type parameter) KK] extends { readonly _tag: "value"_tag: "value" }
? type ErrorOf<M extends AnyMethod> =
M["error"]["Type"]
ErrorOf<type AsMethod<T> = T extends {
readonly kind: MethodKind
readonly payload: infer P extends
| Schema.Struct.Fields
| Schema.Top
| undefined
readonly success: infer Su extends Schema.Top
readonly error: infer E extends Schema.Top
readonly stream: infer Str extends boolean
readonly annotations: infer Ann extends MethodAnnotations
}
? Method<P, Su, E, Str, Ann, Derive>
: never
Reconstruct a proper
Method
from a leaf's parts via infer — prop-presence + infer …
extends … is F-independent (reduces under a generic item schema) and keeps the payload precise,
unlike Extract/&. Lets the recursive spec types feed the existing ServiceMethod/ServeMethod/
RpcOf under a nested, generic Spec.
AsMethod<function (type parameter) S in type ValueErrorsOf<S extends Spec>S[function (type parameter) KK]>>
: function (type parameter) S in type ValueErrorsOf<S extends Spec>S[function (type parameter) KK] extends Spec
? type ValueErrorsOf<S extends Spec> =
unknown extends S
? never
: {
[K in keyof S]: S[K] extends {
readonly _tag: "value"
}
? ErrorOf<AsMethod<S[K]>>
: S[K] extends Spec
? ValueErrorsOf<S[K]>
: never
}[keyof S]
Union of every
value
leaf's error type in S — fails layer / client acquire
(all-or-nothing). Empty/never when the spec has no fallible materialize fields. An any /
unknown spec (erased toolkit boundaries) contributes never so it cannot poison Layer E.
ValueErrorsOf<function (type parameter) S in type ValueErrorsOf<S extends Spec>S[function (type parameter) KK]>
: never;
}[keyof function (type parameter) S in type ValueErrorsOf<S extends Spec>S];