@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
TypeScript
/**
* 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