- 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:340
Parameters#
mutation#
PendingMutation<any>
Returns#
handleDelete()#
protected handleDelete(
mutation,
context,
waitForCompletion): Promise<PendingOperation | null>;Defined in: PowerSyncTransactor.ts:258
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:180
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:301
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:216
Parameters#
mutation#
PendingMutation<any>
context#
LockContext
waitForCompletion#
boolean = false
Returns#
Promise<PendingOperation | null>
processMutationMetadata()#
protected processMutationMetadata(mutation): string | null;Defined in: PowerSyncTransactor.ts:359
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.