@dossierhq/sqlite-core
Version:
A library used by concrete SQLite adapters for Dossier.
16 lines (15 loc) • 1.25 kB
TypeScript
import { type ErrorType, type PromiseResult } from '@dossierhq/core';
import type { Transaction, TransactionContext } from '@dossierhq/database-adapter';
import { type Database } from './QueryFunctions.js';
import type { AdapterTransaction } from './SqliteDatabaseAdapter.js';
interface SqliteTransaction extends Transaction {
savePointCount: number;
/** The start of the root transaction */
transactionTimestamp: Date;
adapterTransaction: AdapterTransaction | null;
}
export type SqliteTransactionContext = TransactionContext<SqliteTransaction>;
export declare function getTransactionTimestamp(transaction: Transaction | null): Date;
export declare function withRootTransaction<TOk, TError extends ErrorType, TContext extends TransactionContext>(database: Database, context: TransactionContext, childContextFactory: (transaction: Transaction) => TContext, callback: (context: TContext) => PromiseResult<TOk, TError>): PromiseResult<TOk, TError | typeof ErrorType.Generic>;
export declare function withNestedTransaction<TOk, TError extends ErrorType>(database: Database, context: TransactionContext, transaction: Transaction, callback: () => PromiseResult<TOk, TError>): PromiseResult<TOk, TError | typeof ErrorType.Generic>;
export {};