UNPKG

1.06 kBTypeScriptView Raw
1// Copyright IBM Corp. 2018. All Rights Reserved.
2// Node module: loopback-datasource-juggler
3// This file is licensed under the MIT License.
4// License text available at https://opensource.org/licenses/MIT
5
6import {Callback, Options, PromiseOrVoid} from './common';
7
8/**
9 * Local transaction
10 */
11export interface Transaction {
12 /**
13 * Commit the transaction
14 * @param callback
15 */
16 commit(callback?: Callback): PromiseOrVoid;
17 /**
18 * Rollback the transaction
19 * @param callback
20 */
21 rollback(callback?: Callback): PromiseOrVoid;
22}
23
24/**
25 * Isolation level
26 */
27export enum IsolationLevel {
28 READ_COMMITTED = 'READ COMMITTED', // default
29 READ_UNCOMMITTED = 'READ UNCOMMITTED',
30 SERIALIZABLE = 'SERIALIZABLE',
31 REPEATABLE_READ = 'REPEATABLE READ',
32}
33
34/**
35 * Mixin for transaction support
36 */
37export interface TransactionMixin {
38 /**
39 * Begin a new transaction
40 * @param options
41 * @param callback
42 */
43 beginTransaction(
44 options?: IsolationLevel | Options,
45 callback?: Callback<Transaction>,
46 ): PromiseOrVoid<Transaction>;
47}