typeorm 0.3.22-dev.206af0a → 0.3.22-dev.27b4207

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.
Files changed (45) hide show
  1. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +6 -9
  2. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  3. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js +6 -9
  4. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  5. package/browser/driver/cockroachdb/CockroachQueryRunner.js +7 -11
  6. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  7. package/browser/driver/mysql/MysqlQueryRunner.js +6 -9
  8. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  9. package/browser/driver/oracle/OracleQueryRunner.js +4 -6
  10. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  11. package/browser/driver/postgres/PostgresQueryRunner.js +6 -9
  12. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  13. package/browser/driver/sap/SapDriver.d.ts +2 -1
  14. package/browser/driver/sap/SapDriver.js +17 -11
  15. package/browser/driver/sap/SapDriver.js.map +1 -1
  16. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +6 -9
  17. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  18. package/browser/driver/sqlserver/SqlServerQueryRunner.js +5 -6
  19. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  20. package/browser/query-builder/RelationIdLoader.js +3 -2
  21. package/browser/query-builder/RelationIdLoader.js.map +1 -1
  22. package/commands/InitCommand.js +8 -16
  23. package/commands/InitCommand.js.map +1 -1
  24. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +6 -9
  25. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  26. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js +6 -9
  27. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  28. package/driver/cockroachdb/CockroachQueryRunner.js +7 -11
  29. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  30. package/driver/mysql/MysqlQueryRunner.js +6 -9
  31. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  32. package/driver/oracle/OracleQueryRunner.js +4 -6
  33. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  34. package/driver/postgres/PostgresQueryRunner.js +6 -9
  35. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  36. package/driver/sap/SapDriver.d.ts +2 -1
  37. package/driver/sap/SapDriver.js +17 -11
  38. package/driver/sap/SapDriver.js.map +1 -1
  39. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +6 -9
  40. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  41. package/driver/sqlserver/SqlServerQueryRunner.js +5 -6
  42. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  43. package/package.json +1 -1
  44. package/query-builder/RelationIdLoader.js +3 -2
  45. package/query-builder/RelationIdLoader.js.map +1 -1
@@ -67,13 +67,12 @@ export class AuroraPostgresQueryRunner extends PostgresQueryRunnerWrapper {
67
67
  throw err;
68
68
  }
69
69
  if (this.transactionDepth === 0) {
70
- this.transactionDepth += 1;
71
70
  await this.client.startTransaction();
72
71
  }
73
72
  else {
74
- this.transactionDepth += 1;
75
- await this.query(`SAVEPOINT typeorm_${this.transactionDepth} - 1`);
73
+ await this.query(`SAVEPOINT typeorm_${this.transactionDepth}`);
76
74
  }
75
+ this.transactionDepth += 1;
77
76
  await this.broadcaster.broadcast("AfterTransactionStart");
78
77
  }
79
78
  /**
@@ -85,14 +84,13 @@ export class AuroraPostgresQueryRunner extends PostgresQueryRunnerWrapper {
85
84
  throw new TransactionNotStartedError();
86
85
  await this.broadcaster.broadcast("BeforeTransactionCommit");
87
86
  if (this.transactionDepth > 1) {
88
- this.transactionDepth -= 1;
89
- await this.query(`RELEASE SAVEPOINT typeorm_${this.transactionDepth}`);
87
+ await this.query(`RELEASE SAVEPOINT typeorm_${this.transactionDepth - 1}`);
90
88
  }
91
89
  else {
92
- this.transactionDepth -= 1;
93
90
  await this.client.commitTransaction();
94
91
  this.isTransactionActive = false;
95
92
  }
93
+ this.transactionDepth -= 1;
96
94
  await this.broadcaster.broadcast("AfterTransactionCommit");
97
95
  }
98
96
  /**
@@ -104,14 +102,13 @@ export class AuroraPostgresQueryRunner extends PostgresQueryRunnerWrapper {
104
102
  throw new TransactionNotStartedError();
105
103
  await this.broadcaster.broadcast("BeforeTransactionRollback");
106
104
  if (this.transactionDepth > 1) {
107
- this.transactionDepth -= 1;
108
- await this.query(`ROLLBACK TO SAVEPOINT typeorm_${this.transactionDepth}`);
105
+ await this.query(`ROLLBACK TO SAVEPOINT typeorm_${this.transactionDepth - 1}`);
109
106
  }
110
107
  else {
111
- this.transactionDepth -= 1;
112
108
  await this.client.rollbackTransaction();
113
109
  this.isTransactionActive = false;
114
110
  }
111
+ this.transactionDepth -= 1;
115
112
  await this.broadcaster.broadcast("AfterTransactionRollback");
116
113
  }
117
114
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/driver/aurora-postgres/AuroraPostgresQueryRunner.ts"],"names":[],"mappings":"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","file":"AuroraPostgresQueryRunner.js","sourcesContent":["import { QueryRunnerAlreadyReleasedError } from \"../../error/QueryRunnerAlreadyReleasedError\"\nimport { TransactionNotStartedError } from \"../../error/TransactionNotStartedError\"\nimport { QueryRunner } from \"../../query-runner/QueryRunner\"\nimport { IsolationLevel } from \"../types/IsolationLevel\"\nimport { AuroraPostgresDriver } from \"./AuroraPostgresDriver\"\nimport { PostgresQueryRunner } from \"../postgres/PostgresQueryRunner\"\nimport { ReplicationMode } from \"../types/ReplicationMode\"\nimport { QueryResult } from \"../../query-runner/QueryResult\"\nimport { Table } from \"../../schema-builder/table/Table\"\nimport { TypeORMError } from \"../../error\"\n\nclass PostgresQueryRunnerWrapper extends PostgresQueryRunner {\n driver: any\n\n constructor(driver: any, mode: ReplicationMode) {\n super(driver, mode)\n }\n}\n\n/**\n * Runs queries on a single postgres database connection.\n */\nexport class AuroraPostgresQueryRunner\n extends PostgresQueryRunnerWrapper\n implements QueryRunner\n{\n // -------------------------------------------------------------------------\n // Public Implemented Properties\n // -------------------------------------------------------------------------\n\n /**\n * Database driver used by connection.\n */\n driver: AuroraPostgresDriver\n\n protected client: any\n\n // -------------------------------------------------------------------------\n // Protected Properties\n // -------------------------------------------------------------------------\n\n /**\n * Promise used to obtain a database connection for a first time.\n */\n protected databaseConnectionPromise: Promise<any>\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(\n driver: AuroraPostgresDriver,\n client: any,\n mode: ReplicationMode,\n ) {\n super(driver, mode)\n\n this.client = client\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates/uses database connection from the connection pool to perform further operations.\n * Returns obtained database connection.\n */\n connect(): Promise<any> {\n if (this.databaseConnection)\n return Promise.resolve(this.databaseConnection)\n\n if (this.databaseConnectionPromise)\n return this.databaseConnectionPromise\n\n if (this.mode === \"slave\" && this.driver.isReplicated) {\n this.databaseConnectionPromise = this.driver\n .obtainSlaveConnection()\n .then(([connection, release]: any[]) => {\n this.driver.connectedQueryRunners.push(this)\n this.databaseConnection = connection\n this.releaseCallback = release\n return this.databaseConnection\n })\n } else {\n // master\n this.databaseConnectionPromise = this.driver\n .obtainMasterConnection()\n .then(([connection, release]: any[]) => {\n this.driver.connectedQueryRunners.push(this)\n this.databaseConnection = connection\n this.releaseCallback = release\n return this.databaseConnection\n })\n }\n\n return this.databaseConnectionPromise\n }\n\n /**\n * Starts transaction on the current connection.\n */\n async startTransaction(isolationLevel?: IsolationLevel): Promise<void> {\n this.isTransactionActive = true\n try {\n await this.broadcaster.broadcast(\"BeforeTransactionStart\")\n } catch (err) {\n this.isTransactionActive = false\n throw err\n }\n\n if (this.transactionDepth === 0) {\n this.transactionDepth += 1\n await this.client.startTransaction()\n } else {\n this.transactionDepth += 1\n await this.query(`SAVEPOINT typeorm_${this.transactionDepth} - 1`)\n }\n\n await this.broadcaster.broadcast(\"AfterTransactionStart\")\n }\n\n /**\n * Commits transaction.\n * Error will be thrown if transaction was not started.\n */\n async commitTransaction(): Promise<void> {\n if (!this.isTransactionActive) throw new TransactionNotStartedError()\n\n await this.broadcaster.broadcast(\"BeforeTransactionCommit\")\n\n if (this.transactionDepth > 1) {\n this.transactionDepth -= 1\n await this.query(\n `RELEASE SAVEPOINT typeorm_${this.transactionDepth}`,\n )\n } else {\n this.transactionDepth -= 1\n await this.client.commitTransaction()\n this.isTransactionActive = false\n }\n\n await this.broadcaster.broadcast(\"AfterTransactionCommit\")\n }\n\n /**\n * Rollbacks transaction.\n * Error will be thrown if transaction was not started.\n */\n async rollbackTransaction(): Promise<void> {\n if (!this.isTransactionActive) throw new TransactionNotStartedError()\n\n await this.broadcaster.broadcast(\"BeforeTransactionRollback\")\n\n if (this.transactionDepth > 1) {\n this.transactionDepth -= 1\n await this.query(\n `ROLLBACK TO SAVEPOINT typeorm_${this.transactionDepth}`,\n )\n } else {\n this.transactionDepth -= 1\n await this.client.rollbackTransaction()\n this.isTransactionActive = false\n }\n\n await this.broadcaster.broadcast(\"AfterTransactionRollback\")\n }\n\n /**\n * Executes a given SQL query.\n */\n async query(\n query: string,\n parameters?: any[],\n useStructuredResult = false,\n ): Promise<any> {\n if (this.isReleased) throw new QueryRunnerAlreadyReleasedError()\n\n const raw = await this.client.query(query, parameters)\n\n const result = new QueryResult()\n\n result.raw = raw\n\n if (raw?.hasOwnProperty(\"records\") && Array.isArray(raw.records)) {\n result.records = raw.records\n }\n\n if (raw?.hasOwnProperty(\"numberOfRecordsUpdated\")) {\n result.affected = raw.numberOfRecordsUpdated\n }\n\n if (!useStructuredResult) {\n return result.raw\n }\n\n return result\n }\n\n /**\n * Change table comment.\n */\n changeTableComment(\n tableOrName: Table | string,\n comment?: string,\n ): Promise<void> {\n throw new TypeORMError(\n `aurora-postgres driver does not support change comment.`,\n )\n }\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/driver/aurora-postgres/AuroraPostgresQueryRunner.ts"],"names":[],"mappings":"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","file":"AuroraPostgresQueryRunner.js","sourcesContent":["import { QueryRunnerAlreadyReleasedError } from \"../../error/QueryRunnerAlreadyReleasedError\"\nimport { TransactionNotStartedError } from \"../../error/TransactionNotStartedError\"\nimport { QueryRunner } from \"../../query-runner/QueryRunner\"\nimport { IsolationLevel } from \"../types/IsolationLevel\"\nimport { AuroraPostgresDriver } from \"./AuroraPostgresDriver\"\nimport { PostgresQueryRunner } from \"../postgres/PostgresQueryRunner\"\nimport { ReplicationMode } from \"../types/ReplicationMode\"\nimport { QueryResult } from \"../../query-runner/QueryResult\"\nimport { Table } from \"../../schema-builder/table/Table\"\nimport { TypeORMError } from \"../../error\"\n\nclass PostgresQueryRunnerWrapper extends PostgresQueryRunner {\n driver: any\n\n constructor(driver: any, mode: ReplicationMode) {\n super(driver, mode)\n }\n}\n\n/**\n * Runs queries on a single postgres database connection.\n */\nexport class AuroraPostgresQueryRunner\n extends PostgresQueryRunnerWrapper\n implements QueryRunner\n{\n // -------------------------------------------------------------------------\n // Public Implemented Properties\n // -------------------------------------------------------------------------\n\n /**\n * Database driver used by connection.\n */\n driver: AuroraPostgresDriver\n\n protected client: any\n\n // -------------------------------------------------------------------------\n // Protected Properties\n // -------------------------------------------------------------------------\n\n /**\n * Promise used to obtain a database connection for a first time.\n */\n protected databaseConnectionPromise: Promise<any>\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(\n driver: AuroraPostgresDriver,\n client: any,\n mode: ReplicationMode,\n ) {\n super(driver, mode)\n\n this.client = client\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates/uses database connection from the connection pool to perform further operations.\n * Returns obtained database connection.\n */\n connect(): Promise<any> {\n if (this.databaseConnection)\n return Promise.resolve(this.databaseConnection)\n\n if (this.databaseConnectionPromise)\n return this.databaseConnectionPromise\n\n if (this.mode === \"slave\" && this.driver.isReplicated) {\n this.databaseConnectionPromise = this.driver\n .obtainSlaveConnection()\n .then(([connection, release]: any[]) => {\n this.driver.connectedQueryRunners.push(this)\n this.databaseConnection = connection\n this.releaseCallback = release\n return this.databaseConnection\n })\n } else {\n // master\n this.databaseConnectionPromise = this.driver\n .obtainMasterConnection()\n .then(([connection, release]: any[]) => {\n this.driver.connectedQueryRunners.push(this)\n this.databaseConnection = connection\n this.releaseCallback = release\n return this.databaseConnection\n })\n }\n\n return this.databaseConnectionPromise\n }\n\n /**\n * Starts transaction on the current connection.\n */\n async startTransaction(isolationLevel?: IsolationLevel): Promise<void> {\n this.isTransactionActive = true\n try {\n await this.broadcaster.broadcast(\"BeforeTransactionStart\")\n } catch (err) {\n this.isTransactionActive = false\n throw err\n }\n\n if (this.transactionDepth === 0) {\n await this.client.startTransaction()\n } else {\n await this.query(`SAVEPOINT typeorm_${this.transactionDepth}`)\n }\n this.transactionDepth += 1\n\n await this.broadcaster.broadcast(\"AfterTransactionStart\")\n }\n\n /**\n * Commits transaction.\n * Error will be thrown if transaction was not started.\n */\n async commitTransaction(): Promise<void> {\n if (!this.isTransactionActive) throw new TransactionNotStartedError()\n\n await this.broadcaster.broadcast(\"BeforeTransactionCommit\")\n\n if (this.transactionDepth > 1) {\n await this.query(\n `RELEASE SAVEPOINT typeorm_${this.transactionDepth - 1}`,\n )\n } else {\n await this.client.commitTransaction()\n this.isTransactionActive = false\n }\n this.transactionDepth -= 1\n\n await this.broadcaster.broadcast(\"AfterTransactionCommit\")\n }\n\n /**\n * Rollbacks transaction.\n * Error will be thrown if transaction was not started.\n */\n async rollbackTransaction(): Promise<void> {\n if (!this.isTransactionActive) throw new TransactionNotStartedError()\n\n await this.broadcaster.broadcast(\"BeforeTransactionRollback\")\n\n if (this.transactionDepth > 1) {\n await this.query(\n `ROLLBACK TO SAVEPOINT typeorm_${this.transactionDepth - 1}`,\n )\n } else {\n await this.client.rollbackTransaction()\n this.isTransactionActive = false\n }\n this.transactionDepth -= 1\n\n await this.broadcaster.broadcast(\"AfterTransactionRollback\")\n }\n\n /**\n * Executes a given SQL query.\n */\n async query(\n query: string,\n parameters?: any[],\n useStructuredResult = false,\n ): Promise<any> {\n if (this.isReleased) throw new QueryRunnerAlreadyReleasedError()\n\n const raw = await this.client.query(query, parameters)\n\n const result = new QueryResult()\n\n result.raw = raw\n\n if (raw?.hasOwnProperty(\"records\") && Array.isArray(raw.records)) {\n result.records = raw.records\n }\n\n if (raw?.hasOwnProperty(\"numberOfRecordsUpdated\")) {\n result.affected = raw.numberOfRecordsUpdated\n }\n\n if (!useStructuredResult) {\n return result.raw\n }\n\n return result\n }\n\n /**\n * Change table comment.\n */\n changeTableComment(\n tableOrName: Table | string,\n comment?: string,\n ): Promise<void> {\n throw new TypeORMError(\n `aurora-postgres driver does not support change comment.`,\n )\n }\n}\n"],"sourceRoot":"../.."}
@@ -129,7 +129,6 @@ export class CockroachQueryRunner extends BaseQueryRunner {
129
129
  throw err;
130
130
  }
131
131
  if (this.transactionDepth === 0) {
132
- this.transactionDepth += 1;
133
132
  await this.query("START TRANSACTION");
134
133
  await this.query("SAVEPOINT cockroach_restart");
135
134
  if (isolationLevel) {
@@ -137,9 +136,9 @@ export class CockroachQueryRunner extends BaseQueryRunner {
137
136
  }
138
137
  }
139
138
  else {
140
- this.transactionDepth += 1;
141
- await this.query(`SAVEPOINT typeorm_${this.transactionDepth - 1}`);
139
+ await this.query(`SAVEPOINT typeorm_${this.transactionDepth}`);
142
140
  }
141
+ this.transactionDepth += 1;
143
142
  this.storeQueries = true;
144
143
  await this.broadcaster.broadcast("AfterTransactionStart");
145
144
  }
@@ -152,19 +151,17 @@ export class CockroachQueryRunner extends BaseQueryRunner {
152
151
  throw new TransactionNotStartedError();
153
152
  await this.broadcaster.broadcast("BeforeTransactionCommit");
154
153
  if (this.transactionDepth > 1) {
154
+ await this.query(`RELEASE SAVEPOINT typeorm_${this.transactionDepth - 1}`);
155
155
  this.transactionDepth -= 1;
156
- await this.query(`RELEASE SAVEPOINT typeorm_${this.transactionDepth}`);
157
156
  }
158
157
  else {
159
158
  this.storeQueries = false;
160
- this.transactionDepth -= 1;
161
- // This was disabled because it failed tests after update to CRDB 24.2
162
- // https://github.com/typeorm/typeorm/pull/11190
163
- // await this.query("RELEASE SAVEPOINT cockroach_restart")
159
+ await this.query("RELEASE SAVEPOINT cockroach_restart");
164
160
  await this.query("COMMIT");
165
161
  this.queries = [];
166
162
  this.isTransactionActive = false;
167
163
  this.transactionRetries = 0;
164
+ this.transactionDepth -= 1;
168
165
  }
169
166
  await this.broadcaster.broadcast("AfterTransactionCommit");
170
167
  }
@@ -177,17 +174,16 @@ export class CockroachQueryRunner extends BaseQueryRunner {
177
174
  throw new TransactionNotStartedError();
178
175
  await this.broadcaster.broadcast("BeforeTransactionRollback");
179
176
  if (this.transactionDepth > 1) {
180
- this.transactionDepth -= 1;
181
- await this.query(`ROLLBACK TO SAVEPOINT typeorm_${this.transactionDepth}`);
177
+ await this.query(`ROLLBACK TO SAVEPOINT typeorm_${this.transactionDepth - 1}`);
182
178
  }
183
179
  else {
184
180
  this.storeQueries = false;
185
- this.transactionDepth -= 1;
186
181
  await this.query("ROLLBACK");
187
182
  this.queries = [];
188
183
  this.isTransactionActive = false;
189
184
  this.transactionRetries = 0;
190
185
  }
186
+ this.transactionDepth -= 1;
191
187
  await this.broadcaster.broadcast("AfterTransactionRollback");
192
188
  }
193
189
  /**