// Copyright IBM Corp. 2018. All Rights Reserved. // Node module: loopback-datasource-juggler // This file is licensed under the MIT License. // License text available at https://opensource.org/licenses/MIT import {Callback, Options, PromiseOrVoid} from './common'; /** * Local transaction */ export interface Transaction { /** * Commit the transaction * @param callback */ commit(callback?: Callback): PromiseOrVoid; /** * Rollback the transaction * @param callback */ rollback(callback?: Callback): PromiseOrVoid; } /** * Isolation level */ export enum IsolationLevel { READ_COMMITTED = 'READ COMMITTED', // default READ_UNCOMMITTED = 'READ UNCOMMITTED', SERIALIZABLE = 'SERIALIZABLE', REPEATABLE_READ = 'REPEATABLE READ', } /** * Mixin for transaction support */ export interface TransactionMixin { /** * Begin a new transaction * @param options * @param callback */ beginTransaction( options?: IsolationLevel | Options, callback?: Callback, ): PromiseOrVoid; }