UNPKG

@dossierhq/sqlite-core

Version:

A library used by concrete SQLite adapters for Dossier.

16 lines (15 loc) 1.25 kB
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 {};