@tanstack/db
Version:
A reactive client store for building super fast apps on sync
28 lines (27 loc) • 1.12 kB
text/typescript
import { Deferred } from './deferred.cjs';
import { MutationFn, PendingMutation, TransactionConfig, TransactionState } from './types.cjs';
export declare function createTransaction<TData extends object = Record<string, unknown>>(config: TransactionConfig<TData>): Transaction<TData>;
export declare function getActiveTransaction(): Transaction | undefined;
export declare class Transaction<T extends object = Record<string, unknown>> {
id: string;
state: TransactionState;
mutationFn: MutationFn<T>;
mutations: Array<PendingMutation<T>>;
isPersisted: Deferred<Transaction<T>>;
autoCommit: boolean;
createdAt: Date;
metadata: Record<string, unknown>;
error?: {
message: string;
error: Error;
};
constructor(config: TransactionConfig<T>);
setState(newState: TransactionState): void;
mutate(callback: () => void): Transaction<T>;
applyMutations(mutations: Array<PendingMutation<any>>): void;
rollback(config?: {
isSecondaryRollback?: boolean;
}): Transaction<T>;
touchCollection(): void;
commit(): Promise<Transaction<T>>;
}