Skip to content

VersionedTargetRows

Defined in: packages/core/src/versions/resolveVersionedTarget.ts:24

The one place saveDraft’s shared implementation (versions/saveDraft.ts) learns how a versioned collection’s table differs from vex_globals’s single shared table — every other step of the save-a-draft pipeline (bootstrap/patch the draft row, snapshot the published state, record history) is identical code for either kind, driven entirely through this descriptor.

DataModel extends GenericDataModel

The Convex data model (inferred from ctx).

buildDraftInsert: (userFields, publishedId?) => Record<string, unknown>

Defined in: packages/core/src/versions/resolveVersionedTarget.ts:43

Builds the DB payload to insert a new draft row.

Record<string, unknown>

string

Record<string, unknown>


buildDraftPatch: (row, patch) => Record<string, unknown>

Defined in: packages/core/src/versions/resolveVersionedTarget.ts:48

Builds the DB payload to patch patch onto an existing draft row.

Record<string, unknown>

Record<string, unknown>

Record<string, unknown>


buildDraftReplace: (row, userFields) => Record<string, unknown>

Defined in: packages/core/src/versions/resolveVersionedTarget.ts:56

Builds the DB payload to replace every user field on an existing draft row with userFields — fields absent from userFields are cleared.

Record<string, unknown>

Record<string, unknown>

Record<string, unknown>


documentId: string

Defined in: packages/core/src/versions/resolveVersionedTarget.ts:35

The id vex_versions history rows are keyed on — the published row’s _id for a collection (or the draft-only row’s _id when the document has never been published), or the global’s slug. Resolved once, up front, so it never shifts across a bootstrap this call might perform.


draftRow: Record<string, unknown> | null

Defined in: packages/core/src/versions/resolveVersionedTarget.ts:39

The currently-stored draft row (vex_status === "draft"), if any.


historyCollection: string

Defined in: packages/core/src/versions/resolveVersionedTarget.ts:28

The collection value createVersion/getLatestVersion group history rows under.


publishedRow: Record<string, unknown> | null

Defined in: packages/core/src/versions/resolveVersionedTarget.ts:37

The currently-stored published row (vex_status !== "draft"), if any.


table: TableNamesInDataModel<DataModel>

Defined in: packages/core/src/versions/resolveVersionedTarget.ts:26

The table the published/draft rows live in.


toUserFields: (row) => Record<string, unknown>

Defined in: packages/core/src/versions/resolveVersionedTarget.ts:41

Extracts the clean user-field document from a stored row — storedDoc/snapshot shape.

Record<string, unknown>

Record<string, unknown>