@tsrt/typeorm-transactions
Version:
TypeORM convenient transactions management
38 lines (37 loc) • 1.59 kB
TypeScript
import { EntityManager, Connection, QueryRunner } from 'typeorm';
import { IsolationLevel } from 'typeorm/driver/types/IsolationLevel';
import { AnyFunction } from './utils';
export declare class Transaction implements ITransaction {
protected readonly _options: ITransactionOptionsExtended;
protected readonly _connection: Connection;
protected readonly _queryRunner: QueryRunner;
protected readonly _manager: EntityManager;
protected readonly _shouldUseParentManager: boolean;
protected readonly _parentManager: EntityManager;
constructor(_options: ITransactionOptionsExtended);
get manager(): EntityManager;
begin(): Promise<void>;
commit(): Promise<void>;
rollback(error?: string | Error): Promise<void>;
protected get _transactionId(): string;
protected get _isTransactionActive(): boolean;
protected get _isTransactionNotReleased(): boolean;
protected _saveManager(manager: EntityManager): void;
protected _endTransaction(): Promise<void>;
protected _validateNsAvailability(): void;
}
export declare type Propagation = 'REQUIRED' | 'SUPPORT' | 'SEPARATE';
export interface ITransaction {
begin(): Promise<void>;
commit(): Promise<void>;
rollback(err?: string | Error): Promise<void>;
}
export interface ITransactionOptions {
propagation?: Propagation;
isolationLevel?: IsolationLevel;
}
export interface ITransactionOptionsExtended extends ITransactionOptions {
connection?: Connection | AnyFunction<Connection>;
connectionName?: string | AnyFunction<string>;
manager?: EntityManager;
}