typeorm 0.2.28 → 0.2.29
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/README.md +7 -2
- package/browser/connection/ConnectionOptionsReader.js +27 -27
- package/browser/connection/ConnectionOptionsReader.js.map +1 -1
- package/browser/decorator/entity/ChildEntity.js +1 -1
- package/browser/decorator/entity/ChildEntity.js.map +1 -1
- package/browser/driver/DriverUtils.js +20 -12
- package/browser/driver/DriverUtils.js.map +1 -1
- package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +53 -6
- package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
- package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +53 -6
- package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachDriver.js +3 -3
- package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +4 -0
- package/browser/driver/cockroachdb/CockroachQueryRunner.js +112 -42
- package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/browser/driver/expo/ExpoQueryRunner.js +72 -14
- package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
- package/browser/driver/mongodb/MongoConnectionOptions.d.ts +4 -0
- package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
- package/browser/driver/mongodb/MongoDriver.d.ts +7 -3
- package/browser/driver/mongodb/MongoDriver.js +15 -14
- package/browser/driver/mongodb/MongoDriver.js.map +1 -1
- package/browser/driver/mongodb/MongoQueryRunner.d.ts +3 -3
- package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/browser/driver/mysql/MysqlDriver.js +4 -4
- package/browser/driver/mysql/MysqlDriver.js.map +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.d.ts +4 -0
- package/browser/driver/mysql/MysqlQueryRunner.js +107 -38
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/browser/driver/oracle/OracleQueryRunner.js +52 -6
- package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.js +7 -7
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.d.ts +8 -0
- package/browser/driver/postgres/PostgresQueryRunner.js +107 -18
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/react-native/ReactNativeDriver.js +1 -2
- package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
- package/browser/driver/sap/SapQueryRunner.js +56 -8
- package/browser/driver/sap/SapQueryRunner.js.map +1 -1
- package/browser/driver/sqlite/SqliteQueryRunner.js +4 -0
- package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +55 -7
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +133 -62
- package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/browser/entity-manager/MongoEntityManager.js +14 -3
- package/browser/entity-manager/MongoEntityManager.js.map +1 -1
- package/browser/find-options/FindOneOptions.d.ts +4 -0
- package/browser/find-options/FindOneOptions.js.map +1 -1
- package/browser/find-options/FindOperator.d.ts +20 -1
- package/browser/find-options/FindOperator.js +27 -1
- package/browser/find-options/FindOperator.js.map +1 -1
- package/browser/find-options/FindOperatorType.d.ts +1 -1
- package/browser/find-options/FindOperatorType.js.map +1 -1
- package/browser/find-options/FindOptionsUtils.js +5 -1
- package/browser/find-options/FindOptionsUtils.js.map +1 -1
- package/browser/find-options/operator/ILike.d.ts +6 -0
- package/browser/find-options/operator/ILike.js +10 -0
- package/browser/find-options/operator/ILike.js.map +1 -0
- package/browser/find-options/operator/Raw.d.ts +14 -2
- package/browser/find-options/operator/Raw.js +5 -6
- package/browser/find-options/operator/Raw.js.map +1 -1
- package/browser/index.d.ts +2 -0
- package/browser/index.js +1 -0
- package/browser/index.js.map +1 -1
- package/browser/logger/Logger.d.ts +1 -1
- package/browser/logger/Logger.js.map +1 -1
- package/browser/metadata/ColumnMetadata.js +14 -3
- package/browser/metadata/ColumnMetadata.js.map +1 -1
- package/browser/metadata/types/EventListenerTypes.d.ts +7 -7
- package/browser/metadata/types/EventListenerTypes.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataBuilder.js +14 -8
- package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataValidator.js +8 -5
- package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/browser/persistence/EntityPersistExecutor.js +1 -1
- package/browser/persistence/EntityPersistExecutor.js.map +1 -1
- package/browser/persistence/Subject.js +2 -1
- package/browser/persistence/Subject.js.map +1 -1
- package/browser/query-builder/DeleteQueryBuilder.js +2 -1
- package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/browser/query-builder/InsertQueryBuilder.js +31 -8
- package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryBuilder.d.ts +7 -0
- package/browser/query-builder/QueryBuilder.js +125 -32
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryExpressionMap.d.ts +4 -0
- package/browser/query-builder/QueryExpressionMap.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.d.ts +5 -0
- package/browser/query-builder/SelectQueryBuilder.js +73 -40
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-builder/UpdateQueryBuilder.js +2 -1
- package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +6 -3
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/browser/query-runner/QueryRunner.d.ts +1 -1
- package/browser/query-runner/QueryRunner.js.map +1 -1
- package/browser/repository/TreeRepository.js +2 -2
- package/browser/repository/TreeRepository.js.map +1 -1
- package/browser/subscriber/Broadcaster.d.ts +24 -0
- package/browser/subscriber/Broadcaster.js +120 -0
- package/browser/subscriber/Broadcaster.js.map +1 -1
- package/browser/subscriber/EntitySubscriberInterface.d.ts +27 -0
- package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
- package/browser/subscriber/event/TransactionCommitEvent.d.ts +22 -0
- package/browser/subscriber/event/TransactionCommitEvent.js +3 -0
- package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -0
- package/browser/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
- package/browser/subscriber/event/TransactionRollbackEvent.js +3 -0
- package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -0
- package/browser/subscriber/event/TransactionStartEvent.d.ts +22 -0
- package/browser/subscriber/event/TransactionStartEvent.js +3 -0
- package/browser/subscriber/event/TransactionStartEvent.js.map +1 -0
- package/browser/util/DateUtils.js +1 -7
- package/browser/util/DateUtils.js.map +1 -1
- package/commands/EntityCreateCommand.js +5 -2
- package/commands/EntityCreateCommand.js.map +1 -1
- package/commands/InitCommand.js +1 -1
- package/commands/InitCommand.js.map +1 -1
- package/commands/MigrationCreateCommand.js +4 -1
- package/commands/MigrationCreateCommand.js.map +1 -1
- package/commands/MigrationGenerateCommand.js +26 -28
- package/commands/MigrationGenerateCommand.js.map +1 -1
- package/commands/QueryCommand.d.ts +2 -0
- package/commands/QueryCommand.js +12 -3
- package/commands/QueryCommand.js.map +1 -1
- package/commands/SubscriberCreateCommand.js +5 -2
- package/commands/SubscriberCreateCommand.js.map +1 -1
- package/connection/ConnectionOptionsReader.js +27 -27
- package/connection/ConnectionOptionsReader.js.map +1 -1
- package/decorator/entity/ChildEntity.js +1 -1
- package/decorator/entity/ChildEntity.js.map +1 -1
- package/driver/DriverUtils.js +19 -11
- package/driver/DriverUtils.js.map +1 -1
- package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +53 -6
- package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
- package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +53 -6
- package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
- package/driver/cockroachdb/CockroachDriver.js +3 -3
- package/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.d.ts +4 -0
- package/driver/cockroachdb/CockroachQueryRunner.js +112 -42
- package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/driver/expo/ExpoQueryRunner.js +72 -14
- package/driver/expo/ExpoQueryRunner.js.map +1 -1
- package/driver/mongodb/MongoConnectionOptions.d.ts +4 -0
- package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
- package/driver/mongodb/MongoDriver.d.ts +7 -3
- package/driver/mongodb/MongoDriver.js +15 -14
- package/driver/mongodb/MongoDriver.js.map +1 -1
- package/driver/mongodb/MongoQueryRunner.d.ts +3 -3
- package/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/driver/mysql/MysqlDriver.js +4 -4
- package/driver/mysql/MysqlDriver.js.map +1 -1
- package/driver/mysql/MysqlQueryRunner.d.ts +4 -0
- package/driver/mysql/MysqlQueryRunner.js +107 -38
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/driver/oracle/OracleQueryRunner.js +52 -6
- package/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/driver/postgres/PostgresDriver.js +7 -7
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.d.ts +8 -0
- package/driver/postgres/PostgresQueryRunner.js +107 -18
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/react-native/ReactNativeDriver.js +1 -2
- package/driver/react-native/ReactNativeDriver.js.map +1 -1
- package/driver/sap/SapQueryRunner.js +56 -8
- package/driver/sap/SapQueryRunner.js.map +1 -1
- package/driver/sqlite/SqliteQueryRunner.js +4 -0
- package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +55 -7
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.js +133 -62
- package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/entity-manager/MongoEntityManager.js +14 -3
- package/entity-manager/MongoEntityManager.js.map +1 -1
- package/find-options/FindOneOptions.d.ts +4 -0
- package/find-options/FindOneOptions.js.map +1 -1
- package/find-options/FindOperator.d.ts +20 -1
- package/find-options/FindOperator.js +27 -1
- package/find-options/FindOperator.js.map +1 -1
- package/find-options/FindOperatorType.d.ts +1 -1
- package/find-options/FindOperatorType.js.map +1 -1
- package/find-options/FindOptionsUtils.js +5 -1
- package/find-options/FindOptionsUtils.js.map +1 -1
- package/find-options/operator/ILike.d.ts +6 -0
- package/find-options/operator/ILike.js +13 -0
- package/find-options/operator/ILike.js.map +1 -0
- package/find-options/operator/Raw.d.ts +14 -2
- package/find-options/operator/Raw.js +5 -6
- package/find-options/operator/Raw.js.map +1 -1
- package/index.d.ts +2 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/logger/Logger.d.ts +1 -1
- package/logger/Logger.js.map +1 -1
- package/metadata/ColumnMetadata.js +14 -3
- package/metadata/ColumnMetadata.js.map +1 -1
- package/metadata/types/EventListenerTypes.d.ts +7 -7
- package/metadata/types/EventListenerTypes.js.map +1 -1
- package/metadata-builder/EntityMetadataBuilder.js +14 -8
- package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/EntityMetadataValidator.js +8 -5
- package/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/package.json +3 -2
- package/persistence/EntityPersistExecutor.js +1 -1
- package/persistence/EntityPersistExecutor.js.map +1 -1
- package/persistence/Subject.js +2 -1
- package/persistence/Subject.js.map +1 -1
- package/query-builder/DeleteQueryBuilder.js +2 -1
- package/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/query-builder/InsertQueryBuilder.js +31 -8
- package/query-builder/InsertQueryBuilder.js.map +1 -1
- package/query-builder/QueryBuilder.d.ts +7 -0
- package/query-builder/QueryBuilder.js +124 -31
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/QueryExpressionMap.d.ts +4 -0
- package/query-builder/QueryExpressionMap.js.map +1 -1
- package/query-builder/SelectQueryBuilder.d.ts +5 -0
- package/query-builder/SelectQueryBuilder.js +73 -40
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-builder/UpdateQueryBuilder.js +2 -1
- package/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +6 -3
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/query-runner/QueryRunner.d.ts +1 -1
- package/query-runner/QueryRunner.js.map +1 -1
- package/repository/TreeRepository.js +2 -2
- package/repository/TreeRepository.js.map +1 -1
- package/subscriber/Broadcaster.d.ts +24 -0
- package/subscriber/Broadcaster.js +120 -0
- package/subscriber/Broadcaster.js.map +1 -1
- package/subscriber/EntitySubscriberInterface.d.ts +27 -0
- package/subscriber/EntitySubscriberInterface.js.map +1 -1
- package/subscriber/event/TransactionCommitEvent.d.ts +22 -0
- package/subscriber/event/TransactionCommitEvent.js +4 -0
- package/subscriber/event/TransactionCommitEvent.js.map +1 -0
- package/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
- package/subscriber/event/TransactionRollbackEvent.js +4 -0
- package/subscriber/event/TransactionRollbackEvent.js.map +1 -0
- package/subscriber/event/TransactionStartEvent.d.ts +22 -0
- package/subscriber/event/TransactionStartEvent.js +4 -0
- package/subscriber/event/TransactionStartEvent.js.map +1 -0
- package/typeorm-model-shim.js +145 -128
- package/util/DateUtils.js +1 -7
- package/util/DateUtils.js.map +1 -1
|
@@ -3,6 +3,7 @@ import { QueryRunnerAlreadyReleasedError } from "../../error/QueryRunnerAlreadyR
|
|
|
3
3
|
import { QueryFailedError } from "../../error/QueryFailedError";
|
|
4
4
|
import { AbstractSqliteQueryRunner } from "../sqlite-abstract/AbstractSqliteQueryRunner";
|
|
5
5
|
import { Broadcaster } from "../../subscriber/Broadcaster";
|
|
6
|
+
import { ConnectionIsNotSetError } from '../../error/ConnectionIsNotSetError';
|
|
6
7
|
/**
|
|
7
8
|
* Runs queries on a single sqlite database connection.
|
|
8
9
|
*
|
|
@@ -30,6 +31,9 @@ var SqliteQueryRunner = /** @class */ (function (_super) {
|
|
|
30
31
|
throw new QueryRunnerAlreadyReleasedError();
|
|
31
32
|
var connection = this.driver.connection;
|
|
32
33
|
var options = connection.options;
|
|
34
|
+
if (!connection.isConnected) {
|
|
35
|
+
throw new ConnectionIsNotSetError('sqlite');
|
|
36
|
+
}
|
|
33
37
|
return new Promise(function (ok, fail) { return __awaiter(_this, void 0, void 0, function () {
|
|
34
38
|
var databaseConnection, queryStartTime, isInsertQuery, execute, handler;
|
|
35
39
|
var _this = this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../browser/src/driver/sqlite/SqliteQueryRunner.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,+BAA+B,EAAC,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAC,yBAAyB,EAAC,MAAM,8CAA8C,CAAC;AAGvF,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"sources":["../browser/src/driver/sqlite/SqliteQueryRunner.ts"],"names":[],"mappings":"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","file":"SqliteQueryRunner.js","sourcesContent":["import {QueryRunnerAlreadyReleasedError} from \"../../error/QueryRunnerAlreadyReleasedError\";\nimport {QueryFailedError} from \"../../error/QueryFailedError\";\nimport {AbstractSqliteQueryRunner} from \"../sqlite-abstract/AbstractSqliteQueryRunner\";\nimport {SqliteConnectionOptions} from \"./SqliteConnectionOptions\";\nimport {SqliteDriver} from \"./SqliteDriver\";\nimport {Broadcaster} from \"../../subscriber/Broadcaster\";\nimport { ConnectionIsNotSetError } from '../../error/ConnectionIsNotSetError';\n\n/**\n * Runs queries on a single sqlite database connection.\n *\n * Does not support compose primary keys with autoincrement field.\n * todo: need to throw exception for this case.\n */\nexport class SqliteQueryRunner extends AbstractSqliteQueryRunner {\n\n /**\n * Database driver used by connection.\n */\n driver: SqliteDriver;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(driver: SqliteDriver) {\n super();\n this.driver = driver;\n this.connection = driver.connection;\n this.broadcaster = new Broadcaster(this);\n }\n\n /**\n * Executes a given SQL query.\n */\n query(query: string, parameters?: any[]): Promise<any> {\n if (this.isReleased)\n throw new QueryRunnerAlreadyReleasedError();\n\n const connection = this.driver.connection;\n const options = connection.options as SqliteConnectionOptions;\n\n if (!connection.isConnected){\n throw new ConnectionIsNotSetError('sqlite')\n }\n\n return new Promise<any[]>(async (ok, fail) => {\n\n const databaseConnection = await this.connect();\n this.driver.connection.logger.logQuery(query, parameters, this);\n const queryStartTime = +new Date();\n const isInsertQuery = query.substr(0, 11) === \"INSERT INTO\";\n\n const execute = async () => {\n if (isInsertQuery) {\n databaseConnection.run(query, parameters, handler);\n } else {\n databaseConnection.all(query, parameters, handler);\n }\n };\n\n const handler = function (err: any, result: any) {\n if (err && err.toString().indexOf(\"SQLITE_BUSY:\") !== -1) {\n if (typeof options.busyErrorRetry === \"number\" && options.busyErrorRetry > 0) {\n setTimeout(execute, options.busyErrorRetry);\n return;\n }\n }\n\n // log slow queries if maxQueryExecution time is set\n const maxQueryExecutionTime = connection.options.maxQueryExecutionTime;\n const queryEndTime = +new Date();\n const queryExecutionTime = queryEndTime - queryStartTime;\n if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)\n connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);\n\n if (err) {\n connection.logger.logQueryError(err, query, parameters, this);\n fail(new QueryFailedError(query, parameters, err));\n } else {\n ok(isInsertQuery ? this[\"lastID\"] : result);\n }\n };\n\n await execute();\n });\n }\n}\n"],"sourceRoot":"../.."}
|
|
@@ -7,6 +7,7 @@ import { Table } from "../../schema-builder/table/Table";
|
|
|
7
7
|
import { TableIndex } from "../../schema-builder/table/TableIndex";
|
|
8
8
|
import { TableForeignKey } from "../../schema-builder/table/TableForeignKey";
|
|
9
9
|
import { View } from "../../schema-builder/view/View";
|
|
10
|
+
import { BroadcasterResult } from "../../subscriber/BroadcasterResult";
|
|
10
11
|
import { Query } from "../Query";
|
|
11
12
|
import { TableUnique } from "../../schema-builder/table/TableUnique";
|
|
12
13
|
import { BaseQueryRunner } from "../../query-runner/BaseQueryRunner";
|
|
@@ -47,12 +48,12 @@ var AbstractSqliteQueryRunner = /** @class */ (function (_super) {
|
|
|
47
48
|
*/
|
|
48
49
|
AbstractSqliteQueryRunner.prototype.startTransaction = function (isolationLevel) {
|
|
49
50
|
return __awaiter(this, void 0, void 0, function () {
|
|
51
|
+
var beforeBroadcastResult, afterBroadcastResult;
|
|
50
52
|
return __generator(this, function (_a) {
|
|
51
53
|
switch (_a.label) {
|
|
52
54
|
case 0:
|
|
53
55
|
if (this.isTransactionActive)
|
|
54
56
|
throw new TransactionAlreadyStartedError();
|
|
55
|
-
this.isTransactionActive = true;
|
|
56
57
|
if (!isolationLevel) return [3 /*break*/, 4];
|
|
57
58
|
if (isolationLevel !== "READ UNCOMMITTED" && isolationLevel !== "SERIALIZABLE") {
|
|
58
59
|
throw new Error("SQLite only supports SERIALIZABLE and READ UNCOMMITTED isolation");
|
|
@@ -66,10 +67,27 @@ var AbstractSqliteQueryRunner = /** @class */ (function (_super) {
|
|
|
66
67
|
case 3:
|
|
67
68
|
_a.sent();
|
|
68
69
|
_a.label = 4;
|
|
69
|
-
case 4:
|
|
70
|
+
case 4:
|
|
71
|
+
beforeBroadcastResult = new BroadcasterResult();
|
|
72
|
+
this.broadcaster.broadcastBeforeTransactionStartEvent(beforeBroadcastResult);
|
|
73
|
+
if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 6];
|
|
74
|
+
return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
|
|
70
75
|
case 5:
|
|
71
76
|
_a.sent();
|
|
72
|
-
|
|
77
|
+
_a.label = 6;
|
|
78
|
+
case 6:
|
|
79
|
+
this.isTransactionActive = true;
|
|
80
|
+
return [4 /*yield*/, this.query("BEGIN TRANSACTION")];
|
|
81
|
+
case 7:
|
|
82
|
+
_a.sent();
|
|
83
|
+
afterBroadcastResult = new BroadcasterResult();
|
|
84
|
+
this.broadcaster.broadcastAfterTransactionStartEvent(afterBroadcastResult);
|
|
85
|
+
if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 9];
|
|
86
|
+
return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
|
|
87
|
+
case 8:
|
|
88
|
+
_a.sent();
|
|
89
|
+
_a.label = 9;
|
|
90
|
+
case 9: return [2 /*return*/];
|
|
73
91
|
}
|
|
74
92
|
});
|
|
75
93
|
});
|
|
@@ -80,16 +98,31 @@ var AbstractSqliteQueryRunner = /** @class */ (function (_super) {
|
|
|
80
98
|
*/
|
|
81
99
|
AbstractSqliteQueryRunner.prototype.commitTransaction = function () {
|
|
82
100
|
return __awaiter(this, void 0, void 0, function () {
|
|
101
|
+
var beforeBroadcastResult, afterBroadcastResult;
|
|
83
102
|
return __generator(this, function (_a) {
|
|
84
103
|
switch (_a.label) {
|
|
85
104
|
case 0:
|
|
86
105
|
if (!this.isTransactionActive)
|
|
87
106
|
throw new TransactionNotStartedError();
|
|
88
|
-
|
|
107
|
+
beforeBroadcastResult = new BroadcasterResult();
|
|
108
|
+
this.broadcaster.broadcastBeforeTransactionCommitEvent(beforeBroadcastResult);
|
|
109
|
+
if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
|
|
110
|
+
return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
|
|
89
111
|
case 1:
|
|
112
|
+
_a.sent();
|
|
113
|
+
_a.label = 2;
|
|
114
|
+
case 2: return [4 /*yield*/, this.query("COMMIT")];
|
|
115
|
+
case 3:
|
|
90
116
|
_a.sent();
|
|
91
117
|
this.isTransactionActive = false;
|
|
92
|
-
|
|
118
|
+
afterBroadcastResult = new BroadcasterResult();
|
|
119
|
+
this.broadcaster.broadcastAfterTransactionCommitEvent(afterBroadcastResult);
|
|
120
|
+
if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];
|
|
121
|
+
return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
|
|
122
|
+
case 4:
|
|
123
|
+
_a.sent();
|
|
124
|
+
_a.label = 5;
|
|
125
|
+
case 5: return [2 /*return*/];
|
|
93
126
|
}
|
|
94
127
|
});
|
|
95
128
|
});
|
|
@@ -100,16 +133,31 @@ var AbstractSqliteQueryRunner = /** @class */ (function (_super) {
|
|
|
100
133
|
*/
|
|
101
134
|
AbstractSqliteQueryRunner.prototype.rollbackTransaction = function () {
|
|
102
135
|
return __awaiter(this, void 0, void 0, function () {
|
|
136
|
+
var beforeBroadcastResult, afterBroadcastResult;
|
|
103
137
|
return __generator(this, function (_a) {
|
|
104
138
|
switch (_a.label) {
|
|
105
139
|
case 0:
|
|
106
140
|
if (!this.isTransactionActive)
|
|
107
141
|
throw new TransactionNotStartedError();
|
|
108
|
-
|
|
142
|
+
beforeBroadcastResult = new BroadcasterResult();
|
|
143
|
+
this.broadcaster.broadcastBeforeTransactionRollbackEvent(beforeBroadcastResult);
|
|
144
|
+
if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
|
|
145
|
+
return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
|
|
109
146
|
case 1:
|
|
147
|
+
_a.sent();
|
|
148
|
+
_a.label = 2;
|
|
149
|
+
case 2: return [4 /*yield*/, this.query("ROLLBACK")];
|
|
150
|
+
case 3:
|
|
110
151
|
_a.sent();
|
|
111
152
|
this.isTransactionActive = false;
|
|
112
|
-
|
|
153
|
+
afterBroadcastResult = new BroadcasterResult();
|
|
154
|
+
this.broadcaster.broadcastAfterTransactionRollbackEvent(afterBroadcastResult);
|
|
155
|
+
if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];
|
|
156
|
+
return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
|
|
157
|
+
case 4:
|
|
158
|
+
_a.sent();
|
|
159
|
+
_a.label = 5;
|
|
160
|
+
case 5: return [2 /*return*/];
|
|
113
161
|
}
|
|
114
162
|
});
|
|
115
163
|
});
|