ValidateEntries:Entriesextendsreadonly[ Entry<inferKey,inferIn,inferContribution>, ...(inferRest), ] ?IsAny<Ctx>extendstrue ?ValidateEntries<Rest,Ctx&{[PinKey]:Contribution}> :KeyextendskeyofCtx ?Conflict<Key> :keyofInextendskeyofCtx ?ValidateEntries<Rest,Ctx&{[PinKey]:Contribution}> :`middleware-prereq: key '${Extract< Exclude<keyofIn,keyofCtx>, string, >}' is not yet on the context (check ordering)` :true
Validate a tuple of entries in order against a seed context. Each entry's
prerequisites (In) must be present on the context accumulated so far, and
its key must not already be there. Resolves to true when the whole chain
is valid, or to a descriptive error-string type naming the offending key.
pipeline applies it seeded with BaseContext. A composing
wrapper that puts its own keys on the context before the entries run should
seed it with that context instead. Entries can then declare prerequisites on
the wrapper's keys, and a collision with one of them fails to compile.
Site it on the handler parameter, never on the entries tuple, so it does
not disrupt const Entries tuple inference. Conflict documents why
the parameter position is the one TypeScript prints:
Validate a tuple of entries in order against a seed context. Each entry's prerequisites (
In) must be present on the context accumulated so far, and its key must not already be there. Resolves totruewhen the whole chain is valid, or to a descriptive error-string type naming the offending key.pipeline applies it seeded with BaseContext. A composing wrapper that puts its own keys on the context before the entries run should seed it with that context instead. Entries can then declare prerequisites on the wrapper's keys, and a collision with one of them fails to compile.
Site it on the handler parameter, never on the entries tuple, so it does not disrupt
const Entriestuple inference. Conflict documents why the parameter position is the one TypeScript prints: