IndexFieldsBySlug
IndexFieldsBySlug =
GeneratedVexTypesextendsobject?I:Record<string,Record<string, readonlystring[]>>
Defined in: packages/core/src/types/generated.ts:124
Maps each collection slug to its declared Convex indexes, each as a
readonly tuple of field names in declaration order (.index(name, [...]) — search indexes excluded, since withIndex never targets
those). Field order is exactly what ConstraintBuilder
(access/constraintTypes.ts) narrows against, so this registry is the
sole source of truth both the constraint builder and IndexNameFor
resolve through — no parallel name-union map (supersedes the old
IndexesBySlug).
- Before
vex generate: resolves toRecord<string, Record<string, readonly string[]>>. - After
vex generate: e.g.{ pages: { by_author_category: readonly ["authorId", "categoryId"] } }. A collection with NO indexed fields maps to{}, nevernever— see IndexNameFor.