UNPKG

@aradox/multi-orm

Version:

Type-safe ORM with multi-datasource support, row-level security, and Prisma-like API for PostgreSQL, SQL Server, and HTTP APIs

49 lines 2.06 kB
/** * Transaction Manager * * Provides transaction support for SQL adapters with ACID guarantees. * Supports isolation levels, timeout control, and automatic rollback on errors. */ import { Transaction as ITransaction, TransactionOptions, FindManyAdapterArgs, FindUniqueAdapterArgs, CreateAdapterArgs, UpdateAdapterArgs, DeleteAdapterArgs, CountAdapterArgs } from '../types/adapter'; import { Connection } from 'tedious'; /** * MSSQL Transaction Implementation */ export declare class MSSQLTransaction implements ITransaction { private options; private executeQuery; readonly id: string; private connection; private isActive; private isCommitted; private isRolledBack; constructor(connection: Connection, options: TransactionOptions | undefined, executeQuery: (sql: string, params?: any[]) => Promise<any[]>); begin(): Promise<void>; commit(): Promise<void>; rollback(): Promise<void>; findMany(model: string, args: FindManyAdapterArgs): Promise<any[]>; findUnique(model: string, args: FindUniqueAdapterArgs): Promise<any | null>; create(model: string, args: CreateAdapterArgs): Promise<any>; update(model: string, args: UpdateAdapterArgs): Promise<any>; delete(model: string, args: DeleteAdapterArgs): Promise<any>; count(model: string, args: CountAdapterArgs): Promise<number>; private ensureActive; } /** * Transaction Manager for ORM Client */ export declare class TransactionManager { /** * Execute a function within a transaction with automatic rollback on error */ static run<T>(beginTransaction: () => Promise<ITransaction>, callback: (tx: ITransaction) => Promise<T>): Promise<T>; /** * Execute multiple operations in a transaction with retry logic */ static runWithRetry<T>(beginTransaction: () => Promise<ITransaction>, callback: (tx: ITransaction) => Promise<T>, options?: { maxRetries?: number; retryDelay?: number; retryableErrors?: string[]; }): Promise<T>; } //# sourceMappingURL=transaction.d.ts.map