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
|
@@ -5,6 +5,7 @@ var QueryRunnerAlreadyReleasedError_1 = require("../../error/QueryRunnerAlreadyR
|
|
|
5
5
|
var QueryFailedError_1 = require("../../error/QueryFailedError");
|
|
6
6
|
var AbstractSqliteQueryRunner_1 = require("../sqlite-abstract/AbstractSqliteQueryRunner");
|
|
7
7
|
var Broadcaster_1 = require("../../subscriber/Broadcaster");
|
|
8
|
+
var ConnectionIsNotSetError_1 = require("../../error/ConnectionIsNotSetError");
|
|
8
9
|
/**
|
|
9
10
|
* Runs queries on a single sqlite database connection.
|
|
10
11
|
*
|
|
@@ -32,6 +33,9 @@ var SqliteQueryRunner = /** @class */ (function (_super) {
|
|
|
32
33
|
throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
|
|
33
34
|
var connection = this.driver.connection;
|
|
34
35
|
var options = connection.options;
|
|
36
|
+
if (!connection.isConnected) {
|
|
37
|
+
throw new ConnectionIsNotSetError_1.ConnectionIsNotSetError('sqlite');
|
|
38
|
+
}
|
|
35
39
|
return new Promise(function (ok, fail) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
36
40
|
var databaseConnection, queryStartTime, isInsertQuery, execute, handler;
|
|
37
41
|
var _this = this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/driver/sqlite/SqliteQueryRunner.ts"],"names":[],"mappings":";;;AAAA,+FAA4F;AAC5F,iEAA8D;AAC9D,0FAAuF;AAGvF,4DAAyD;
|
|
1
|
+
{"version":3,"sources":["../../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":"../.."}
|
|
@@ -9,6 +9,7 @@ var Table_1 = require("../../schema-builder/table/Table");
|
|
|
9
9
|
var TableIndex_1 = require("../../schema-builder/table/TableIndex");
|
|
10
10
|
var TableForeignKey_1 = require("../../schema-builder/table/TableForeignKey");
|
|
11
11
|
var View_1 = require("../../schema-builder/view/View");
|
|
12
|
+
var BroadcasterResult_1 = require("../../subscriber/BroadcasterResult");
|
|
12
13
|
var Query_1 = require("../Query");
|
|
13
14
|
var TableUnique_1 = require("../../schema-builder/table/TableUnique");
|
|
14
15
|
var BaseQueryRunner_1 = require("../../query-runner/BaseQueryRunner");
|
|
@@ -49,12 +50,12 @@ var AbstractSqliteQueryRunner = /** @class */ (function (_super) {
|
|
|
49
50
|
*/
|
|
50
51
|
AbstractSqliteQueryRunner.prototype.startTransaction = function (isolationLevel) {
|
|
51
52
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
53
|
+
var beforeBroadcastResult, afterBroadcastResult;
|
|
52
54
|
return tslib_1.__generator(this, function (_a) {
|
|
53
55
|
switch (_a.label) {
|
|
54
56
|
case 0:
|
|
55
57
|
if (this.isTransactionActive)
|
|
56
58
|
throw new TransactionAlreadyStartedError_1.TransactionAlreadyStartedError();
|
|
57
|
-
this.isTransactionActive = true;
|
|
58
59
|
if (!isolationLevel) return [3 /*break*/, 4];
|
|
59
60
|
if (isolationLevel !== "READ UNCOMMITTED" && isolationLevel !== "SERIALIZABLE") {
|
|
60
61
|
throw new Error("SQLite only supports SERIALIZABLE and READ UNCOMMITTED isolation");
|
|
@@ -68,10 +69,27 @@ var AbstractSqliteQueryRunner = /** @class */ (function (_super) {
|
|
|
68
69
|
case 3:
|
|
69
70
|
_a.sent();
|
|
70
71
|
_a.label = 4;
|
|
71
|
-
case 4:
|
|
72
|
+
case 4:
|
|
73
|
+
beforeBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
74
|
+
this.broadcaster.broadcastBeforeTransactionStartEvent(beforeBroadcastResult);
|
|
75
|
+
if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 6];
|
|
76
|
+
return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
|
|
72
77
|
case 5:
|
|
73
78
|
_a.sent();
|
|
74
|
-
|
|
79
|
+
_a.label = 6;
|
|
80
|
+
case 6:
|
|
81
|
+
this.isTransactionActive = true;
|
|
82
|
+
return [4 /*yield*/, this.query("BEGIN TRANSACTION")];
|
|
83
|
+
case 7:
|
|
84
|
+
_a.sent();
|
|
85
|
+
afterBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
86
|
+
this.broadcaster.broadcastAfterTransactionStartEvent(afterBroadcastResult);
|
|
87
|
+
if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 9];
|
|
88
|
+
return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
|
|
89
|
+
case 8:
|
|
90
|
+
_a.sent();
|
|
91
|
+
_a.label = 9;
|
|
92
|
+
case 9: return [2 /*return*/];
|
|
75
93
|
}
|
|
76
94
|
});
|
|
77
95
|
});
|
|
@@ -82,16 +100,31 @@ var AbstractSqliteQueryRunner = /** @class */ (function (_super) {
|
|
|
82
100
|
*/
|
|
83
101
|
AbstractSqliteQueryRunner.prototype.commitTransaction = function () {
|
|
84
102
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
103
|
+
var beforeBroadcastResult, afterBroadcastResult;
|
|
85
104
|
return tslib_1.__generator(this, function (_a) {
|
|
86
105
|
switch (_a.label) {
|
|
87
106
|
case 0:
|
|
88
107
|
if (!this.isTransactionActive)
|
|
89
108
|
throw new TransactionNotStartedError_1.TransactionNotStartedError();
|
|
90
|
-
|
|
109
|
+
beforeBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
110
|
+
this.broadcaster.broadcastBeforeTransactionCommitEvent(beforeBroadcastResult);
|
|
111
|
+
if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
|
|
112
|
+
return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
|
|
91
113
|
case 1:
|
|
114
|
+
_a.sent();
|
|
115
|
+
_a.label = 2;
|
|
116
|
+
case 2: return [4 /*yield*/, this.query("COMMIT")];
|
|
117
|
+
case 3:
|
|
92
118
|
_a.sent();
|
|
93
119
|
this.isTransactionActive = false;
|
|
94
|
-
|
|
120
|
+
afterBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
121
|
+
this.broadcaster.broadcastAfterTransactionCommitEvent(afterBroadcastResult);
|
|
122
|
+
if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];
|
|
123
|
+
return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
|
|
124
|
+
case 4:
|
|
125
|
+
_a.sent();
|
|
126
|
+
_a.label = 5;
|
|
127
|
+
case 5: return [2 /*return*/];
|
|
95
128
|
}
|
|
96
129
|
});
|
|
97
130
|
});
|
|
@@ -102,16 +135,31 @@ var AbstractSqliteQueryRunner = /** @class */ (function (_super) {
|
|
|
102
135
|
*/
|
|
103
136
|
AbstractSqliteQueryRunner.prototype.rollbackTransaction = function () {
|
|
104
137
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
138
|
+
var beforeBroadcastResult, afterBroadcastResult;
|
|
105
139
|
return tslib_1.__generator(this, function (_a) {
|
|
106
140
|
switch (_a.label) {
|
|
107
141
|
case 0:
|
|
108
142
|
if (!this.isTransactionActive)
|
|
109
143
|
throw new TransactionNotStartedError_1.TransactionNotStartedError();
|
|
110
|
-
|
|
144
|
+
beforeBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
145
|
+
this.broadcaster.broadcastBeforeTransactionRollbackEvent(beforeBroadcastResult);
|
|
146
|
+
if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
|
|
147
|
+
return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
|
|
111
148
|
case 1:
|
|
149
|
+
_a.sent();
|
|
150
|
+
_a.label = 2;
|
|
151
|
+
case 2: return [4 /*yield*/, this.query("ROLLBACK")];
|
|
152
|
+
case 3:
|
|
112
153
|
_a.sent();
|
|
113
154
|
this.isTransactionActive = false;
|
|
114
|
-
|
|
155
|
+
afterBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
156
|
+
this.broadcaster.broadcastAfterTransactionRollbackEvent(afterBroadcastResult);
|
|
157
|
+
if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];
|
|
158
|
+
return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
|
|
159
|
+
case 4:
|
|
160
|
+
_a.sent();
|
|
161
|
+
_a.label = 5;
|
|
162
|
+
case 5: return [2 /*return*/];
|
|
115
163
|
}
|
|
116
164
|
});
|
|
117
165
|
});
|