@ts-awesome/orm 1.2.2 → 1.3.0-rc0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/base.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { IBuildableQuery, IBuildableQueryCompiler, IQueryData, IQueryDriver, IQueryExecutor, IQueryExecutorProvider, ITransaction, TableMetaProvider } from "./interfaces";
1
+ import { IBuildableQuery, IBuildableQueryCompiler, IQueryData, IQueryDriver, IQueryExecutor, IQueryExecutorProvider, IsolationLevel, ITransaction, TableMetaProvider } from "./interfaces";
2
2
  export declare abstract class BaseCompiler<TQuery> implements IBuildableQueryCompiler<TQuery> {
3
3
  abstract compile(query: IBuildableQuery): TQuery;
4
4
  }
@@ -11,12 +11,13 @@ export declare abstract class BaseExecutor<TQuery, R extends IQueryData = IQuery
11
11
  export declare abstract class BaseExecutorProvider<TQuery> implements IQueryExecutorProvider<TQuery> {
12
12
  abstract getExecutor(): IQueryExecutor<TQuery>;
13
13
  }
14
- export declare abstract class BaseTransaction<TQuery, R extends IQueryData = IQueryData> extends BaseExecutor<TQuery, R> implements ITransaction<TQuery, R> {
14
+ export declare abstract class BaseTransaction<TQuery, R extends IQueryData = IQueryData, IL = IsolationLevel> extends BaseExecutor<TQuery, R> implements ITransaction<TQuery, R, IL> {
15
15
  readonly finished: boolean;
16
16
  abstract commit(): Promise<void>;
17
17
  abstract rollback(): Promise<void>;
18
+ abstract setIsolationLevel(isolationLevel: IL): Promise<void>;
18
19
  }
19
- export declare abstract class BaseDriver<TQuery, R extends IQueryData = IQueryData> extends BaseExecutor<TQuery, R> implements IQueryDriver<TQuery, R> {
20
- abstract begin(): Promise<ITransaction<TQuery, R>>;
20
+ export declare abstract class BaseDriver<TQuery, R extends IQueryData = IQueryData, IL = IsolationLevel> extends BaseExecutor<TQuery, R> implements IQueryDriver<TQuery, R, IL> {
21
+ abstract begin(isolationLevel?: IL): Promise<ITransaction<TQuery, R, IL>>;
21
22
  abstract end(): Promise<void>;
22
23
  }
package/dist/base.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAQA,yCAAqC;AACrC,qCAAgC;AAGhC,IAAsB,YAAY,GAAlC,MAAsB,YAAY;CAEjC,CAAA;AAFqB,YAAY;IADjC,sBAAU,EAAE;GACS,YAAY,CAEjC;AAFqB,oCAAY;AAKlC,IAAsB,YAAY,GAAlC,MAAsB,YAAY;IAInB,OAAO,CAAC,KAAa,EAAE,KAAsB,EAAE,SAAS,GAAG,KAAK;;YAC3E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACpC,OAAO,eAAM,CAAC,MAAM,EAAE,KAAY,EAAE,SAAS,CAAC,CAAC;QACjD,CAAC;KAAA;CAGF,CAAA;AAVqB,YAAY;IADjC,sBAAU,EAAE;GACS,YAAY,CAUjC;AAVqB,oCAAY;AAalC,IAAsB,oBAAoB,GAA1C,MAAsB,oBAAoB;CAEzC,CAAA;AAFqB,oBAAoB;IADzC,sBAAU,EAAE;GACS,oBAAoB,CAEzC;AAFqB,oDAAoB;AAK1C,IAAsB,eAAe,GAArC,MAAsB,eAA2D,SAAQ,YAAuB;CAI/G,CAAA;AAJqB,eAAe;IADpC,sBAAU,EAAE;GACS,eAAe,CAIpC;AAJqB,0CAAe;AAOrC,IAAsB,UAAU,GAAhC,MAAsB,UAAsD,SAAQ,YAAuB;CAG1G,CAAA;AAHqB,UAAU;IAD/B,sBAAU,EAAE;GACS,UAAU,CAG/B;AAHqB,gCAAU"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAQA,yCAAqC;AACrC,qCAAgC;AAGhC,IAAsB,YAAY,GAAlC,MAAsB,YAAY;CAEjC,CAAA;AAFqB,YAAY;IADjC,sBAAU,EAAE;GACS,YAAY,CAEjC;AAFqB,oCAAY;AAKlC,IAAsB,YAAY,GAAlC,MAAsB,YAAY;IAInB,OAAO,CAAC,KAAa,EAAE,KAAsB,EAAE,SAAS,GAAG,KAAK;;YAC3E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACpC,OAAO,eAAM,CAAC,MAAM,EAAE,KAAY,EAAE,SAAS,CAAC,CAAC;QACjD,CAAC;KAAA;CAGF,CAAA;AAVqB,YAAY;IADjC,sBAAU,EAAE;GACS,YAAY,CAUjC;AAVqB,oCAAY;AAalC,IAAsB,oBAAoB,GAA1C,MAAsB,oBAAoB;CAEzC,CAAA;AAFqB,oBAAoB;IADzC,sBAAU,EAAE;GACS,oBAAoB,CAEzC;AAFqB,oDAAoB;AAK1C,IAAsB,eAAe,GAArC,MAAsB,eAAgF,SAAQ,YAAuB;CAKpI,CAAA;AALqB,eAAe;IADpC,sBAAU,EAAE;GACS,eAAe,CAKpC;AALqB,0CAAe;AAQrC,IAAsB,UAAU,GAAhC,MAAsB,UAA2E,SAAQ,YAAuB;CAG/H,CAAA;AAHqB,UAAU;IAD/B,sBAAU,EAAE;GACS,UAAU,CAG/B;AAHqB,gCAAU"}
@@ -212,13 +212,20 @@ export interface IQueryExecutor<T, R = IQueryData> {
212
212
  execute(query: T, scalar: true): Promise<number>;
213
213
  execute<X extends TableMetaProvider>(query: T, Model: X, sensitive?: boolean): Promise<ReadonlyArray<InstanceType<X>>>;
214
214
  }
215
- export interface ITransaction<TQuery, R = IQueryData> extends IQueryExecutor<TQuery, R> {
215
+ export declare const enum IsolationLevel {
216
+ Serializable = "SERIALIZABLE",
217
+ RepeatableReads = "REPEATABLE READ",
218
+ ReadCommitted = "READ COMMITTED",
219
+ ReadUncommitted = "READ UNCOMMITTED"
220
+ }
221
+ export interface ITransaction<TQuery, R = IQueryData, IL = IsolationLevel> extends IQueryExecutor<TQuery, R> {
216
222
  readonly finished: boolean;
217
223
  commit(): Promise<void>;
218
224
  rollback(): Promise<void>;
225
+ setIsolationLevel(isolationLevel: IL): Promise<void>;
219
226
  }
220
- export interface IQueryDriver<TQuery, R = IQueryData> extends IQueryExecutor<TQuery, R> {
221
- begin(): Promise<ITransaction<TQuery, R>>;
227
+ export interface IQueryDriver<TQuery, R = IQueryData, IL = IsolationLevel> extends IQueryExecutor<TQuery, R> {
228
+ begin(isolationLevel?: IL): Promise<ITransaction<TQuery, R, IL>>;
222
229
  end(): Promise<void>;
223
230
  }
224
231
  export interface IQueryExecutorProvider<TQuery> {
@@ -1,9 +1,9 @@
1
1
  import { TestExecutor } from './executor';
2
- import { IQueryDriver, ITransaction } from '../';
2
+ import { IQueryDriver, IsolationLevel, ITransaction } from '../';
3
3
  import { TestQuery, TestQueryResult } from './interfaces';
4
4
  export declare class TestDriver extends TestExecutor implements IQueryDriver<TestQuery, TestQueryResult> {
5
5
  private _active;
6
6
  get active(): boolean;
7
- begin(): Promise<ITransaction<TestQuery, TestQueryResult>>;
7
+ begin(isolationLevel?: IsolationLevel): Promise<ITransaction<TestQuery, TestQueryResult>>;
8
8
  end(): Promise<void>;
9
9
  }
@@ -27,9 +27,9 @@ let TestDriver = class TestDriver extends executor_1.TestExecutor {
27
27
  get active() {
28
28
  return this._active;
29
29
  }
30
- begin() {
30
+ begin(isolationLevel) {
31
31
  return __awaiter(this, void 0, void 0, function* () {
32
- return new transaction_1.TestTransaction();
32
+ return new transaction_1.TestTransaction(isolationLevel);
33
33
  });
34
34
  }
35
35
  end() {
@@ -1 +1 @@
1
- {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../src/test-driver/driver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,yCAAuC;AACvC,yCAA0C;AAG1C,+CAAgD;AAGhD,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,uBAAY;IAA5C;;QACU,YAAO,GAAG,IAAI,CAAC;IAezB,CAAC;IAbC,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEY,KAAK;;YAChB,OAAO,IAAI,6BAAe,EAAE,CAAC;QAC/B,CAAC;KAAA;IAEM,GAAG;QACR,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;CAEF,CAAA;AAhBY,UAAU;IADtB,sBAAU,EAAE;GACA,UAAU,CAgBtB;AAhBY,gCAAU"}
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../src/test-driver/driver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,yCAAuC;AACvC,yCAA0C;AAG1C,+CAAgD;AAGhD,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,uBAAY;IAA5C;;QACU,YAAO,GAAG,IAAI,CAAC;IAezB,CAAC;IAbC,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEY,KAAK,CAAC,cAA+B;;YAChD,OAAO,IAAI,6BAAe,CAAC,cAAc,CAAC,CAAC;QAC7C,CAAC;KAAA;IAEM,GAAG;QACR,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;CAEF,CAAA;AAhBY,UAAU;IADtB,sBAAU,EAAE;GACA,UAAU,CAgBtB;AAhBY,gCAAU"}
@@ -1,8 +1,13 @@
1
1
  import { TestExecutor } from './executor';
2
- import { ITransaction } from '../';
2
+ import { IsolationLevel, ITransaction } from '../';
3
3
  import { TestQuery, TestQueryResult } from './interfaces';
4
4
  export declare class TestTransaction extends TestExecutor implements ITransaction<TestQuery, TestQueryResult> {
5
- finished: boolean;
5
+ private _isolationLevel?;
6
+ _finished: boolean;
7
+ constructor(_isolationLevel?: IsolationLevel);
8
+ get finished(): boolean;
9
+ get isolationLevel(): IsolationLevel | undefined;
6
10
  commit(): Promise<void>;
7
11
  rollback(): Promise<void>;
12
+ setIsolationLevel(isolationLevel: IsolationLevel): Promise<void>;
8
13
  }
@@ -5,6 +5,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
8
11
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
12
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
13
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -19,25 +22,39 @@ exports.TestTransaction = void 0;
19
22
  const executor_1 = require("./executor");
20
23
  const inversify_1 = require("inversify");
21
24
  let TestTransaction = class TestTransaction extends executor_1.TestExecutor {
22
- constructor() {
23
- super(...arguments);
24
- this.finished = false;
25
+ constructor(_isolationLevel) {
26
+ super();
27
+ this._isolationLevel = _isolationLevel;
28
+ this._finished = false;
29
+ }
30
+ get finished() {
31
+ return this._finished;
32
+ }
33
+ get isolationLevel() {
34
+ return this._isolationLevel;
25
35
  }
26
36
  commit() {
27
37
  return __awaiter(this, void 0, void 0, function* () {
28
- this.finished = true;
38
+ this._finished = true;
29
39
  console.log('COMMIT');
30
40
  });
31
41
  }
32
42
  rollback() {
33
43
  return __awaiter(this, void 0, void 0, function* () {
34
- this.finished = true;
44
+ this._finished = true;
35
45
  console.log('ROLLBACK');
36
46
  });
37
47
  }
48
+ setIsolationLevel(isolationLevel) {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ this._isolationLevel = isolationLevel;
51
+ console.log('SET TRANSACTION ' + isolationLevel);
52
+ });
53
+ }
38
54
  };
39
55
  TestTransaction = __decorate([
40
- inversify_1.injectable()
56
+ inversify_1.injectable(),
57
+ __metadata("design:paramtypes", [String])
41
58
  ], TestTransaction);
42
59
  exports.TestTransaction = TestTransaction;
43
60
  //# sourceMappingURL=transaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/test-driver/transaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,yCAA0C;AAG1C,yCAAqC;AAGrC,IAAa,eAAe,GAA5B,MAAa,eAAgB,SAAQ,uBAAY;IAAjD;;QACS,aAAQ,GAAG,KAAK,CAAC;IAW1B,CAAC;IATc,MAAM;;YACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;KAAA;IAEY,QAAQ;;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1B,CAAC;KAAA;CACF,CAAA;AAZY,eAAe;IAD3B,sBAAU,EAAE;GACA,eAAe,CAY3B;AAZY,0CAAe"}
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/test-driver/transaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,yCAA0C;AAG1C,yCAAqC;AAGrC,IAAa,eAAe,GAA5B,MAAa,eAAgB,SAAQ,uBAAY;IAG/C,YAAoB,eAAgC;QAClD,KAAK,EAAE,CAAC;QADU,oBAAe,GAAf,eAAe,CAAiB;QAF7C,cAAS,GAAG,KAAK,CAAC;IAIzB,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAW,cAAc;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAEY,MAAM;;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;KAAA;IAEY,QAAQ;;YACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1B,CAAC;KAAA;IAEK,iBAAiB,CAAC,cAA8B;;YACpD,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,cAAc,CAAC,CAAC;QACnD,CAAC;KAAA;CACF,CAAA;AA7BY,eAAe;IAD3B,sBAAU,EAAE;;GACA,eAAe,CA6B3B;AA7BY,0CAAe"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ts-awesome/orm",
3
- "version": "1.2.2",
3
+ "version": "1.3.0-rc0",
4
4
  "description": "TypeScript ORM",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",