- Core API Reference
- Collection
- createCollection
- liveQueryCollectionOptions
- createLiveQueryCollection
- createOptimisticAction
- createTransaction
- Electric DB Collection
- electricCollectionOptions
- Query DB Collection
- queryCollectionOptions
- RxDB DB Collection
- rxdbCollectionOptions
- PowerSync Collection
- powerSyncCollectionOptions
- createIndexedDB
- indexedDBCollectionOptions
- React Hooks
- useLiveQuery
PowerSyncTransactor
Defined in: PowerSyncTransactor.ts:55
Applies mutations to the PowerSync database. This method is called automatically by the collection's insert, update, and delete operations. You typically don't need to call this directly unless you have special transaction requirements.
Example#
// Create a collection
const collection = createCollection(
powerSyncCollectionOptions<Document>({
database: db,
table: APP_SCHEMA.props.documents,
})
)
const addTx = createTransaction({
autoCommit: false,
mutationFn: async ({ transaction }) => {
await new PowerSyncTransactor({ database: db }).applyTransaction(transaction)
},
})
addTx.mutate(() => {
for (let i = 0; i < 5; i++) {
collection.insert({ id: randomUUID(), name: `tx-${i}` })
}
})
await addTx.commit()
await addTx.when('settled')Param#
The transaction containing mutations to apply
Constructors#
Constructor#
new PowerSyncTransactor(options): PowerSyncTransactor;Defined in: PowerSyncTransactor.ts:59
Parameters#
options#
Returns#
PowerSyncTransactor
Properties#
database#
database: CommonPowerSyncDatabase;Defined in: PowerSyncTransactor.ts:56
pendingOperationStore#
pendingOperationStore: PendingOperationStore;Defined in: PowerSyncTransactor.ts:57
Methods#
applyTransaction()#
applyTransaction(transaction): Promise<void>;Defined in: PowerSyncTransactor.ts:67
Persists a Transaction to the PowerSync SQLite database.
Parameters#
transaction#
Transaction<any>
Returns#
Promise<void>
getMutationCollectionMeta()#
protected getMutationCollectionMeta(mutation): PowerSyncCollectionMeta<any>;Defined in: PowerSyncTransactor.ts:341
Parameters#
mutation#
PendingMutation<any>
Returns#
handleDelete()#
protected handleDelete(
mutation,
context,
waitForCompletion): Promise<PendingOperation | null>;Defined in: PowerSyncTransactor.ts:259
Parameters#
mutation#
PendingMutation<any>
context#
LockContext
waitForCompletion#
boolean = false
Returns#
Promise<PendingOperation | null>
handleInsert()#
protected handleInsert(
mutation,
context,
waitForCompletion): Promise<PendingOperation | null>;Defined in: PowerSyncTransactor.ts:181
Parameters#
mutation#
PendingMutation<any>
context#
LockContext
waitForCompletion#
boolean = false
Returns#
Promise<PendingOperation | null>
handleOperationWithCompletion()#
protected handleOperationWithCompletion(
mutation,
context,
waitForCompletion,
handler): Promise<PendingOperation | null>;Defined in: PowerSyncTransactor.ts:302
Helper function which wraps a persistence operation by:
- Fetching the mutation's collection's SQLite table details
- Executing the mutation
- Returning the last pending diff operation if required
Parameters#
mutation#
PendingMutation<any>
context#
LockContext
waitForCompletion#
boolean
handler#
(tableName, mutation, serializeValue) => Promise<false | void>
Returns#
Promise<PendingOperation | null>
handleUpdate()#
protected handleUpdate(
mutation,
context,
waitForCompletion): Promise<PendingOperation | null>;Defined in: PowerSyncTransactor.ts:217
Parameters#
mutation#
PendingMutation<any>
context#
LockContext
waitForCompletion#
boolean = false
Returns#
Promise<PendingOperation | null>
processMutationMetadata()#
protected processMutationMetadata(mutation): string | null;Defined in: PowerSyncTransactor.ts:360
Processes collection mutation metadata for persistence to the database. We only support storing string metadata.
Parameters#
mutation#
PendingMutation<any>
Returns#
string | null
null if no metadata should be stored.