Skip to content

IndexFieldsBySlug

IndexFieldsBySlug = GeneratedVexTypes extends object ? I : Record<string, Record<string, readonly string[]>>

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 to Record<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 {}, never never — see IndexNameFor.