Skip to content
Work in progress. These docs describe Spawnite at launch, and some parts are still being built.

RecordsOf

RecordsOf<T, Mode> = T extends [infer First, ...(infer Rest)] ? [...(First extends PredictedTrait<infer S> ? S extends Record<string, never> ? [] : [Mode extends "read" ? DeepReadonly<TraitRecord<S>> : TraitRecord<S>] : First extends CoreTrait<infer S> ? S extends Record<string, never> ? [] : [DeepReadonly<TraitRecord<S>>] : First extends PredictedModifier<infer Inner, infer Kind> ? RecordsOf<Inner, Kind extends "or" ? Mode : "read"> : First extends QueryParameter ? InstancesFromParameters<[First]> : []), ...RecordsOf<Rest, Mode>] : []

What a pass over a query hands its callback: koota’s records, with a predicted trait’s record read-only where Mode is "read", an Or‘s as each of its traits’, and a tracking modifier’s predicted records read-only always.

Type Parameter
T extends unknown[]
Mode extends "read" | "write"