typeorm 0.3.26-dev.bdb8326 → 0.3.26-dev.ec26eae

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 (215) hide show
  1. package/README.md +15 -1113
  2. package/browser/cache/RedisQueryResultCache.d.ts +13 -0
  3. package/browser/cache/RedisQueryResultCache.js +105 -38
  4. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  5. package/browser/connection/ConnectionOptionsReader.js +1 -1
  6. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  7. package/browser/connection/options-reader/ConnectionOptionsEnvReader.d.ts +1 -1
  8. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js +1 -1
  9. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  10. package/browser/driver/aurora-mysql/AuroraMysqlDriver.d.ts +1 -1
  11. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +12 -21
  12. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  13. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +2 -2
  14. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  15. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +3 -3
  16. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  17. package/browser/driver/cockroachdb/CockroachDriver.js +2 -2
  18. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  19. package/browser/driver/cockroachdb/CockroachQueryRunner.js +4 -4
  20. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  21. package/browser/driver/cordova/CordovaQueryRunner.js +1 -1
  22. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  23. package/browser/driver/expo/legacy/ExpoLegacyQueryRunner.js +1 -1
  24. package/browser/driver/expo/legacy/ExpoLegacyQueryRunner.js.map +1 -1
  25. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +9 -9
  26. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  27. package/browser/driver/mongodb/MongoDriver.d.ts +1 -1
  28. package/browser/driver/mongodb/bson.typings.d.ts +0 -4
  29. package/browser/driver/mongodb/bson.typings.js +1 -1
  30. package/browser/driver/mongodb/bson.typings.js.map +1 -1
  31. package/browser/driver/mongodb/typings.d.ts +7 -10
  32. package/browser/driver/mongodb/typings.js +2 -2
  33. package/browser/driver/mongodb/typings.js.map +1 -1
  34. package/browser/driver/mysql/MysqlDriver.d.ts +1 -1
  35. package/browser/driver/mysql/MysqlDriver.js +3 -1
  36. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  37. package/browser/driver/mysql/MysqlQueryRunner.js +4 -4
  38. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  39. package/browser/driver/nativescript/NativescriptQueryRunner.js +1 -1
  40. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  41. package/browser/driver/oracle/OracleDriver.js +0 -5
  42. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  43. package/browser/driver/oracle/OracleQueryRunner.js +1 -1
  44. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  45. package/browser/driver/postgres/PostgresDriver.js +3 -5
  46. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  47. package/browser/driver/postgres/PostgresQueryRunner.js +5 -5
  48. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  49. package/browser/driver/react-native/ReactNativeDriver.d.ts +1 -1
  50. package/browser/driver/react-native/ReactNativeQueryRunner.js +1 -1
  51. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  52. package/browser/driver/sap/SapConnectionOptions.d.ts +33 -8
  53. package/browser/driver/sap/SapConnectionOptions.js.map +1 -1
  54. package/browser/driver/sap/SapDriver.d.ts +21 -22
  55. package/browser/driver/sap/SapDriver.js +127 -115
  56. package/browser/driver/sap/SapDriver.js.map +1 -1
  57. package/browser/driver/sap/SapQueryRunner.js +59 -63
  58. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  59. package/browser/driver/spanner/SpannerDriver.d.ts +1 -1
  60. package/browser/driver/spanner/SpannerQueryRunner.js +3 -3
  61. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
  62. package/browser/driver/sqlite/SqliteDriver.js +1 -1
  63. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  64. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +2 -2
  65. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +1 -1
  66. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  67. package/browser/driver/sqljs/SqljsDriver.d.ts +2 -1
  68. package/browser/driver/sqlserver/SqlServerQueryRunner.js +1 -1
  69. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  70. package/browser/driver/types/ColumnTypes.d.ts +1 -1
  71. package/browser/driver/types/ColumnTypes.js.map +1 -1
  72. package/browser/entity-manager/MongoEntityManager.js +3 -3
  73. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  74. package/browser/error/DriverPackageNotInstalledError.js +1 -2
  75. package/browser/error/DriverPackageNotInstalledError.js.map +1 -1
  76. package/browser/logger/FormattedConsoleLogger.js +1 -1
  77. package/browser/logger/FormattedConsoleLogger.js.map +1 -1
  78. package/browser/metadata/ColumnMetadata.d.ts +1 -1
  79. package/browser/metadata/ColumnMetadata.js.map +1 -1
  80. package/browser/metadata-builder/EntityMetadataBuilder.js +8 -1
  81. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  82. package/browser/metadata-builder/EntityMetadataValidator.js +2 -4
  83. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  84. package/browser/persistence/SubjectExecutor.js +4 -10
  85. package/browser/persistence/SubjectExecutor.js.map +1 -1
  86. package/browser/persistence/SubjectTopologicalSorter.js +5 -4
  87. package/browser/persistence/SubjectTopologicalSorter.js.map +1 -1
  88. package/browser/platform/BrowserPlatformTools.js +7 -3
  89. package/browser/platform/BrowserPlatformTools.js.map +1 -1
  90. package/browser/platform/PlatformTools.js +0 -2
  91. package/browser/platform/PlatformTools.js.map +1 -1
  92. package/browser/query-builder/QueryExpressionMap.js +1 -0
  93. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  94. package/browser/query-builder/RelationLoader.js +2 -0
  95. package/browser/query-builder/RelationLoader.js.map +1 -1
  96. package/browser/query-builder/SelectQueryBuilder.d.ts +1 -0
  97. package/browser/query-builder/SelectQueryBuilder.js +43 -5
  98. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  99. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  100. package/browser/query-runner/QueryLock.js +1 -0
  101. package/browser/query-runner/QueryLock.js.map +1 -1
  102. package/browser/util/ImportUtils.d.ts +1 -1
  103. package/browser/util/ImportUtils.js +2 -1
  104. package/browser/util/ImportUtils.js.map +1 -1
  105. package/browser/util/OrmUtils.d.ts +7 -10
  106. package/browser/util/OrmUtils.js +22 -31
  107. package/browser/util/OrmUtils.js.map +1 -1
  108. package/cache/RedisQueryResultCache.d.ts +13 -0
  109. package/cache/RedisQueryResultCache.js +105 -38
  110. package/cache/RedisQueryResultCache.js.map +1 -1
  111. package/cli.js +3 -1
  112. package/cli.js.map +1 -1
  113. package/connection/ConnectionOptionsReader.js +1 -1
  114. package/connection/ConnectionOptionsReader.js.map +1 -1
  115. package/connection/options-reader/ConnectionOptionsEnvReader.d.ts +1 -1
  116. package/connection/options-reader/ConnectionOptionsEnvReader.js +1 -1
  117. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  118. package/driver/aurora-mysql/AuroraMysqlDriver.d.ts +1 -1
  119. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +12 -21
  120. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  121. package/driver/better-sqlite3/BetterSqlite3Driver.js +2 -2
  122. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  123. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +3 -3
  124. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  125. package/driver/cockroachdb/CockroachDriver.js +2 -2
  126. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  127. package/driver/cockroachdb/CockroachQueryRunner.js +4 -4
  128. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  129. package/driver/cordova/CordovaQueryRunner.js +1 -1
  130. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  131. package/driver/expo/legacy/ExpoLegacyQueryRunner.js +1 -1
  132. package/driver/expo/legacy/ExpoLegacyQueryRunner.js.map +1 -1
  133. package/driver/mongodb/MongoConnectionOptions.d.ts +9 -9
  134. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  135. package/driver/mongodb/MongoDriver.d.ts +1 -1
  136. package/driver/mongodb/bson.typings.d.ts +0 -4
  137. package/driver/mongodb/bson.typings.js +0 -1
  138. package/driver/mongodb/bson.typings.js.map +1 -1
  139. package/driver/mongodb/typings.d.ts +7 -10
  140. package/driver/mongodb/typings.js +3 -2
  141. package/driver/mongodb/typings.js.map +1 -1
  142. package/driver/mysql/MysqlDriver.d.ts +1 -1
  143. package/driver/mysql/MysqlDriver.js +3 -1
  144. package/driver/mysql/MysqlDriver.js.map +1 -1
  145. package/driver/mysql/MysqlQueryRunner.js +4 -4
  146. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  147. package/driver/nativescript/NativescriptQueryRunner.js +1 -1
  148. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  149. package/driver/oracle/OracleDriver.js +0 -5
  150. package/driver/oracle/OracleDriver.js.map +1 -1
  151. package/driver/oracle/OracleQueryRunner.js +1 -1
  152. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  153. package/driver/postgres/PostgresDriver.js +3 -5
  154. package/driver/postgres/PostgresDriver.js.map +1 -1
  155. package/driver/postgres/PostgresQueryRunner.js +5 -5
  156. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  157. package/driver/react-native/ReactNativeDriver.d.ts +1 -1
  158. package/driver/react-native/ReactNativeQueryRunner.js +1 -1
  159. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  160. package/driver/sap/SapConnectionOptions.d.ts +33 -8
  161. package/driver/sap/SapConnectionOptions.js.map +1 -1
  162. package/driver/sap/SapDriver.d.ts +21 -22
  163. package/driver/sap/SapDriver.js +127 -115
  164. package/driver/sap/SapDriver.js.map +1 -1
  165. package/driver/sap/SapQueryRunner.js +64 -68
  166. package/driver/sap/SapQueryRunner.js.map +1 -1
  167. package/driver/spanner/SpannerDriver.d.ts +1 -1
  168. package/driver/spanner/SpannerQueryRunner.js +3 -3
  169. package/driver/spanner/SpannerQueryRunner.js.map +1 -1
  170. package/driver/sqlite/SqliteDriver.js +1 -1
  171. package/driver/sqlite/SqliteDriver.js.map +1 -1
  172. package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +2 -2
  173. package/driver/sqlite-abstract/AbstractSqliteDriver.js +1 -1
  174. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  175. package/driver/sqljs/SqljsDriver.d.ts +2 -1
  176. package/driver/sqlserver/SqlServerQueryRunner.js +1 -1
  177. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  178. package/driver/types/ColumnTypes.d.ts +1 -1
  179. package/driver/types/ColumnTypes.js.map +1 -1
  180. package/entity-manager/MongoEntityManager.js +3 -3
  181. package/entity-manager/MongoEntityManager.js.map +1 -1
  182. package/error/DriverPackageNotInstalledError.js +1 -2
  183. package/error/DriverPackageNotInstalledError.js.map +1 -1
  184. package/index.mjs +2 -2
  185. package/logger/FormattedConsoleLogger.js +1 -1
  186. package/logger/FormattedConsoleLogger.js.map +1 -1
  187. package/metadata/ColumnMetadata.d.ts +1 -1
  188. package/metadata/ColumnMetadata.js.map +1 -1
  189. package/metadata-builder/EntityMetadataBuilder.js +8 -1
  190. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  191. package/metadata-builder/EntityMetadataValidator.js +2 -4
  192. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  193. package/package.json +1 -1
  194. package/persistence/SubjectExecutor.js +4 -10
  195. package/persistence/SubjectExecutor.js.map +1 -1
  196. package/persistence/SubjectTopologicalSorter.js +5 -4
  197. package/persistence/SubjectTopologicalSorter.js.map +1 -1
  198. package/platform/PlatformTools.js +0 -2
  199. package/platform/PlatformTools.js.map +1 -1
  200. package/query-builder/QueryExpressionMap.js +1 -0
  201. package/query-builder/QueryExpressionMap.js.map +1 -1
  202. package/query-builder/RelationLoader.js +2 -0
  203. package/query-builder/RelationLoader.js.map +1 -1
  204. package/query-builder/SelectQueryBuilder.d.ts +1 -0
  205. package/query-builder/SelectQueryBuilder.js +43 -5
  206. package/query-builder/SelectQueryBuilder.js.map +1 -1
  207. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  208. package/query-runner/QueryLock.js +1 -0
  209. package/query-runner/QueryLock.js.map +1 -1
  210. package/util/ImportUtils.d.ts +1 -1
  211. package/util/ImportUtils.js +2 -1
  212. package/util/ImportUtils.js.map +1 -1
  213. package/util/OrmUtils.d.ts +7 -10
  214. package/util/OrmUtils.js +22 -31
  215. package/util/OrmUtils.js.map +1 -1
@@ -204,7 +204,7 @@ export declare class ReactNativeDriver implements Driver {
204
204
  /**
205
205
  * Creates generated map of values generated or returned by database after INSERT query.
206
206
  */
207
- createGeneratedMap(metadata: EntityMetadata, insertResult: any, entityIndex: number, entityNum: number): any;
207
+ createGeneratedMap(metadata: EntityMetadata, insertResult: any, entityIndex: number, entityNum: number): ObjectLiteral | undefined;
208
208
  /**
209
209
  * Differentiate columns of this table and columns from the given column metadatas columns
210
210
  * and returns only changed.
@@ -78,7 +78,7 @@ class ReactNativeQueryRunner extends AbstractSqliteQueryRunner_1.AbstractSqliteQ
78
78
  else {
79
79
  ok(result.raw);
80
80
  }
81
- }, async (err) => {
81
+ }, (err) => {
82
82
  this.driver.connection.logger.logQueryError(err, query, parameters, this);
83
83
  this.broadcaster.broadcastAfterQueryEvent(broadcasterResult, query, parameters, false, undefined, undefined, err);
84
84
  fail(new QueryFailedError_1.QueryFailedError(query, parameters, err));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/driver/react-native/ReactNativeQueryRunner.ts"],"names":[],"mappings":"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","file":"ReactNativeQueryRunner.js","sourcesContent":["import { ObjectLiteral } from \"../../common/ObjectLiteral\"\nimport { QueryFailedError } from \"../../error/QueryFailedError\"\nimport { QueryRunnerAlreadyReleasedError } from \"../../error/QueryRunnerAlreadyReleasedError\"\nimport { QueryResult } from \"../../query-runner/QueryResult\"\nimport { Broadcaster } from \"../../subscriber/Broadcaster\"\nimport { BroadcasterResult } from \"../../subscriber/BroadcasterResult\"\nimport { AbstractSqliteQueryRunner } from \"../sqlite-abstract/AbstractSqliteQueryRunner\"\nimport { ReactNativeDriver } from \"./ReactNativeDriver\"\n\n/**\n * Runs queries on a single sqlite database connection.\n */\nexport class ReactNativeQueryRunner extends AbstractSqliteQueryRunner {\n /**\n * Database driver used by connection.\n */\n // @ts-ignore temporary, we need to fix the issue with the AbstractSqliteDriver and circular errors\n driver: ReactNativeDriver\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(driver: ReactNativeDriver) {\n super()\n this.driver = driver\n this.connection = driver.connection\n this.broadcaster = new Broadcaster(this)\n }\n\n /**\n * Called before migrations are run.\n */\n async beforeMigration(): Promise<void> {\n await this.query(`PRAGMA foreign_keys = OFF`)\n }\n\n /**\n * Called after migrations are run.\n */\n async afterMigration(): Promise<void> {\n await this.query(`PRAGMA foreign_keys = ON`)\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 databaseConnection = await this.connect()\n\n this.driver.connection.logger.logQuery(query, parameters, this)\n await this.broadcaster.broadcast(\"BeforeQuery\", query, parameters)\n\n const broadcasterResult = new BroadcasterResult()\n\n const queryStartTime = Date.now()\n\n return new Promise(async (ok, fail) => {\n try {\n databaseConnection.executeSql(\n query,\n parameters,\n async (raw: any) => {\n // log slow queries if maxQueryExecution time is set\n const maxQueryExecutionTime =\n this.driver.options.maxQueryExecutionTime\n const queryEndTime = Date.now()\n const queryExecutionTime = queryEndTime - queryStartTime\n this.broadcaster.broadcastAfterQueryEvent(\n broadcasterResult,\n query,\n parameters,\n true,\n queryExecutionTime,\n raw,\n undefined,\n )\n\n if (\n maxQueryExecutionTime &&\n queryExecutionTime > maxQueryExecutionTime\n )\n this.driver.connection.logger.logQuerySlow(\n queryExecutionTime,\n query,\n parameters,\n this,\n )\n\n if (broadcasterResult.promises.length > 0)\n await Promise.all(broadcasterResult.promises)\n\n const result = new QueryResult()\n\n if (raw?.hasOwnProperty(\"rowsAffected\")) {\n result.affected = raw.rowsAffected\n }\n\n if (raw?.hasOwnProperty(\"rows\")) {\n const records = []\n for (let i = 0; i < raw.rows.length; i++) {\n records.push(raw.rows.item(i))\n }\n\n result.raw = records\n result.records = records\n }\n\n // return id of inserted row, if query was insert statement.\n if (query.substr(0, 11) === \"INSERT INTO\") {\n result.raw = raw.insertId\n }\n\n if (useStructuredResult) {\n ok(result)\n } else {\n ok(result.raw)\n }\n },\n async (err: any) => {\n this.driver.connection.logger.logQueryError(\n err,\n query,\n parameters,\n this,\n )\n this.broadcaster.broadcastAfterQueryEvent(\n broadcasterResult,\n query,\n parameters,\n false,\n undefined,\n undefined,\n err,\n )\n\n fail(new QueryFailedError(query, parameters, err))\n },\n )\n } catch (err) {\n fail(err)\n } finally {\n await broadcasterResult.wait()\n }\n })\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Parametrizes given object of values. Used to create column=value queries.\n */\n protected parametrize(\n objectLiteral: ObjectLiteral,\n startIndex: number = 0,\n ): string[] {\n return Object.keys(objectLiteral).map((key, index) => `\"${key}\"` + \"=?\")\n }\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/driver/react-native/ReactNativeQueryRunner.ts"],"names":[],"mappings":"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","file":"ReactNativeQueryRunner.js","sourcesContent":["import { ObjectLiteral } from \"../../common/ObjectLiteral\"\nimport { QueryFailedError } from \"../../error/QueryFailedError\"\nimport { QueryRunnerAlreadyReleasedError } from \"../../error/QueryRunnerAlreadyReleasedError\"\nimport { QueryResult } from \"../../query-runner/QueryResult\"\nimport { Broadcaster } from \"../../subscriber/Broadcaster\"\nimport { BroadcasterResult } from \"../../subscriber/BroadcasterResult\"\nimport { AbstractSqliteQueryRunner } from \"../sqlite-abstract/AbstractSqliteQueryRunner\"\nimport { ReactNativeDriver } from \"./ReactNativeDriver\"\n\n/**\n * Runs queries on a single sqlite database connection.\n */\nexport class ReactNativeQueryRunner extends AbstractSqliteQueryRunner {\n /**\n * Database driver used by connection.\n */\n // @ts-ignore temporary, we need to fix the issue with the AbstractSqliteDriver and circular errors\n driver: ReactNativeDriver\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(driver: ReactNativeDriver) {\n super()\n this.driver = driver\n this.connection = driver.connection\n this.broadcaster = new Broadcaster(this)\n }\n\n /**\n * Called before migrations are run.\n */\n async beforeMigration(): Promise<void> {\n await this.query(`PRAGMA foreign_keys = OFF`)\n }\n\n /**\n * Called after migrations are run.\n */\n async afterMigration(): Promise<void> {\n await this.query(`PRAGMA foreign_keys = ON`)\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 databaseConnection = await this.connect()\n\n this.driver.connection.logger.logQuery(query, parameters, this)\n await this.broadcaster.broadcast(\"BeforeQuery\", query, parameters)\n\n const broadcasterResult = new BroadcasterResult()\n\n const queryStartTime = Date.now()\n\n return new Promise(async (ok, fail) => {\n try {\n databaseConnection.executeSql(\n query,\n parameters,\n async (raw: any) => {\n // log slow queries if maxQueryExecution time is set\n const maxQueryExecutionTime =\n this.driver.options.maxQueryExecutionTime\n const queryEndTime = Date.now()\n const queryExecutionTime = queryEndTime - queryStartTime\n this.broadcaster.broadcastAfterQueryEvent(\n broadcasterResult,\n query,\n parameters,\n true,\n queryExecutionTime,\n raw,\n undefined,\n )\n\n if (\n maxQueryExecutionTime &&\n queryExecutionTime > maxQueryExecutionTime\n )\n this.driver.connection.logger.logQuerySlow(\n queryExecutionTime,\n query,\n parameters,\n this,\n )\n\n if (broadcasterResult.promises.length > 0)\n await Promise.all(broadcasterResult.promises)\n\n const result = new QueryResult()\n\n if (raw?.hasOwnProperty(\"rowsAffected\")) {\n result.affected = raw.rowsAffected\n }\n\n if (raw?.hasOwnProperty(\"rows\")) {\n const records = []\n for (let i = 0; i < raw.rows.length; i++) {\n records.push(raw.rows.item(i))\n }\n\n result.raw = records\n result.records = records\n }\n\n // return id of inserted row, if query was insert statement.\n if (query.substr(0, 11) === \"INSERT INTO\") {\n result.raw = raw.insertId\n }\n\n if (useStructuredResult) {\n ok(result)\n } else {\n ok(result.raw)\n }\n },\n (err: any) => {\n this.driver.connection.logger.logQueryError(\n err,\n query,\n parameters,\n this,\n )\n this.broadcaster.broadcastAfterQueryEvent(\n broadcasterResult,\n query,\n parameters,\n false,\n undefined,\n undefined,\n err,\n )\n\n fail(new QueryFailedError(query, parameters, err))\n },\n )\n } catch (err) {\n fail(err)\n } finally {\n await broadcasterResult.wait()\n }\n })\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Parametrizes given object of values. Used to create column=value queries.\n */\n protected parametrize(\n objectLiteral: ObjectLiteral,\n startIndex: number = 0,\n ): string[] {\n return Object.keys(objectLiteral).map((key, index) => `\"${key}\"` + \"=?\")\n }\n}\n"],"sourceRoot":"../.."}
@@ -14,40 +14,66 @@ export interface SapConnectionOptions extends BaseDataSourceOptions, SapConnecti
14
14
  readonly schema?: string;
15
15
  /**
16
16
  * The driver objects
17
- * This defaults to require("hdb-pool")
17
+ * This defaults to require("@sap/hana-client")
18
18
  */
19
19
  readonly driver?: any;
20
20
  /**
21
- * The driver objects
22
- * This defaults to require("@sap/hana-client")
21
+ * @deprecated Use {@link driver} instead.
23
22
  */
24
23
  readonly hanaClientDriver?: any;
25
24
  /**
26
25
  * Pool options.
27
26
  */
28
27
  readonly pool?: {
28
+ /**
29
+ * Maximum number of open connections created by the pool, each of which
30
+ * may be in the pool waiting to be reused or may no longer be in the
31
+ * pool and actively being used (default: 10).
32
+ */
33
+ readonly maxConnectedOrPooled?: number;
34
+ /**
35
+ * Defines the maximum time, in seconds, that connections are allowed to
36
+ * remain in the pool before being marked for eviction (default: 30).
37
+ */
38
+ readonly maxPooledIdleTime?: number;
39
+ /**
40
+ * Determines whether or not the pooled connection should be tested for
41
+ * viability before being reused (default: false).
42
+ */
43
+ readonly pingCheck?: boolean;
44
+ /**
45
+ * Maximum number of connections allowed to be in the pool, waiting to
46
+ * be reused (default: 0, no limit).
47
+ */
48
+ readonly poolCapacity?: number;
29
49
  /**
30
50
  * Max number of connections.
51
+ * @deprecated Use {@link maxConnectedOrPooled} instead.
31
52
  */
32
53
  readonly max?: number;
33
54
  /**
34
55
  * Minimum number of connections.
56
+ * @deprecated Obsolete, no alternative exists.
35
57
  */
36
58
  readonly min?: number;
37
59
  /**
38
- * Maximum number of waiting requests allowed. (default=0, no limit).
60
+ * Maximum number of waiting requests allowed.
61
+ * @deprecated Obsolete, no alternative exists.
39
62
  */
40
63
  readonly maxWaitingRequests?: number;
41
64
  /**
42
- * Max milliseconds a request will wait for a resource before timing out. (default=5000)
65
+ * Max milliseconds a request will wait for a resource before timing out.
66
+ * @deprecated Obsolete, no alternative exists.
43
67
  */
44
68
  readonly requestTimeout?: number;
45
69
  /**
46
- * How often to run resource timeout checks. (default=0, disabled)
70
+ * How often to run resource timeout checks.
71
+ * @deprecated Obsolete, no alternative exists.
47
72
  */
48
73
  readonly checkInterval?: number;
49
74
  /**
50
- * Idle timeout
75
+ * Idle timeout (in milliseconds).
76
+ * @deprecated Use {@link maxPooledIdleTime} (in seconds) instead .
51
77
  */
52
78
  readonly idleTimeout?: number;
53
79
  /**
@@ -56,5 +82,4 @@ export interface SapConnectionOptions extends BaseDataSourceOptions, SapConnecti
56
82
  */
57
83
  readonly poolErrorHandler?: (err: any) => any;
58
84
  };
59
- readonly poolSize?: never;
60
85
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/driver/sap/SapConnectionOptions.ts"],"names":[],"mappings":"","file":"SapConnectionOptions.js","sourcesContent":["import { BaseDataSourceOptions } from \"../../data-source/BaseDataSourceOptions\"\nimport { SapConnectionCredentialsOptions } from \"./SapConnectionCredentialsOptions\"\n\n/**\n * SAP Hana specific connection options.\n */\nexport interface SapConnectionOptions\n extends BaseDataSourceOptions,\n SapConnectionCredentialsOptions {\n /**\n * Database type.\n */\n readonly type: \"sap\"\n\n /**\n * Database schema.\n */\n readonly schema?: string\n\n /**\n * The driver objects\n * This defaults to require(\"hdb-pool\")\n */\n readonly driver?: any\n\n /**\n * The driver objects\n * This defaults to require(\"@sap/hana-client\")\n */\n readonly hanaClientDriver?: any\n\n /**\n * Pool options.\n */\n readonly pool?: {\n /**\n * Max number of connections.\n */\n readonly max?: number\n\n /**\n * Minimum number of connections.\n */\n readonly min?: number\n\n /**\n * Maximum number of waiting requests allowed. (default=0, no limit).\n */\n readonly maxWaitingRequests?: number\n /**\n * Max milliseconds a request will wait for a resource before timing out. (default=5000)\n */\n readonly requestTimeout?: number\n /**\n * How often to run resource timeout checks. (default=0, disabled)\n */\n readonly checkInterval?: number\n /**\n * Idle timeout\n */\n readonly idleTimeout?: number\n\n /**\n * Function handling errors thrown by drivers pool.\n * Defaults to logging error with `warn` level.\n */\n readonly poolErrorHandler?: (err: any) => any\n }\n\n readonly poolSize?: never\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/driver/sap/SapConnectionOptions.ts"],"names":[],"mappings":"","file":"SapConnectionOptions.js","sourcesContent":["import { BaseDataSourceOptions } from \"../../data-source/BaseDataSourceOptions\"\nimport { SapConnectionCredentialsOptions } from \"./SapConnectionCredentialsOptions\"\n\n/**\n * SAP Hana specific connection options.\n */\nexport interface SapConnectionOptions\n extends BaseDataSourceOptions,\n SapConnectionCredentialsOptions {\n /**\n * Database type.\n */\n readonly type: \"sap\"\n\n /**\n * Database schema.\n */\n readonly schema?: string\n\n /**\n * The driver objects\n * This defaults to require(\"@sap/hana-client\")\n */\n readonly driver?: any\n\n /**\n * @deprecated Use {@link driver} instead.\n */\n readonly hanaClientDriver?: any\n\n /**\n * Pool options.\n */\n readonly pool?: {\n /**\n * Maximum number of open connections created by the pool, each of which\n * may be in the pool waiting to be reused or may no longer be in the\n * pool and actively being used (default: 10).\n */\n readonly maxConnectedOrPooled?: number\n\n /**\n * Defines the maximum time, in seconds, that connections are allowed to\n * remain in the pool before being marked for eviction (default: 30).\n */\n readonly maxPooledIdleTime?: number\n\n /**\n * Determines whether or not the pooled connection should be tested for\n * viability before being reused (default: false).\n */\n readonly pingCheck?: boolean\n\n /**\n * Maximum number of connections allowed to be in the pool, waiting to\n * be reused (default: 0, no limit).\n */\n readonly poolCapacity?: number\n\n /**\n * Max number of connections.\n * @deprecated Use {@link maxConnectedOrPooled} instead.\n */\n readonly max?: number\n\n /**\n * Minimum number of connections.\n * @deprecated Obsolete, no alternative exists.\n */\n readonly min?: number\n\n /**\n * Maximum number of waiting requests allowed.\n * @deprecated Obsolete, no alternative exists.\n */\n readonly maxWaitingRequests?: number\n\n /**\n * Max milliseconds a request will wait for a resource before timing out.\n * @deprecated Obsolete, no alternative exists.\n */\n readonly requestTimeout?: number\n\n /**\n * How often to run resource timeout checks.\n * @deprecated Obsolete, no alternative exists.\n */\n readonly checkInterval?: number\n\n /**\n * Idle timeout (in milliseconds).\n * @deprecated Use {@link maxPooledIdleTime} (in seconds) instead .\n */\n readonly idleTimeout?: number\n\n /**\n * Function handling errors thrown by drivers pool.\n * Defaults to logging error with `warn` level.\n */\n readonly poolErrorHandler?: (err: any) => any\n }\n}\n"],"sourceRoot":"../.."}
@@ -1,15 +1,15 @@
1
1
  import { ColumnType, DataSource, EntityMetadata, ObjectLiteral, Table, TableColumn, TableForeignKey } from "../..";
2
2
  import { ColumnMetadata } from "../../metadata/ColumnMetadata";
3
3
  import { RdbmsSchemaBuilder } from "../../schema-builder/RdbmsSchemaBuilder";
4
+ import { View } from "../../schema-builder/view/View";
4
5
  import { Driver } from "../Driver";
5
6
  import { CteCapabilities } from "../types/CteCapabilities";
6
7
  import { DataTypeDefaults } from "../types/DataTypeDefaults";
7
8
  import { MappedColumnTypes } from "../types/MappedColumnTypes";
8
- import { SapConnectionOptions } from "./SapConnectionOptions";
9
- import { SapQueryRunner } from "./SapQueryRunner";
10
9
  import { ReplicationMode } from "../types/ReplicationMode";
11
- import { View } from "../../schema-builder/view/View";
12
10
  import { UpsertType } from "../types/UpsertType";
11
+ import { SapConnectionOptions } from "./SapConnectionOptions";
12
+ import { SapQueryRunner } from "./SapQueryRunner";
13
13
  /**
14
14
  * Organizes communication with SAP Hana DBMS.
15
15
  *
@@ -21,11 +21,11 @@ export declare class SapDriver implements Driver {
21
21
  */
22
22
  connection: DataSource;
23
23
  /**
24
- * Hana Pool instance.
24
+ * SAP HANA Client Pool instance.
25
25
  */
26
26
  client: any;
27
27
  /**
28
- * Hana Client streaming extension.
28
+ * SAP HANA Client streaming extension.
29
29
  */
30
30
  streamClient: any;
31
31
  /**
@@ -33,10 +33,9 @@ export declare class SapDriver implements Driver {
33
33
  */
34
34
  master: any;
35
35
  /**
36
- * Pool for slave databases.
37
- * Used in replication.
36
+ * Function handling errors thrown by drivers pool.
38
37
  */
39
- slaves: any[];
38
+ poolErrorHandler: (error: any) => void;
40
39
  /**
41
40
  * Connection options.
42
41
  */
@@ -104,7 +103,7 @@ export declare class SapDriver implements Driver {
104
103
  dataTypeDefaults: DataTypeDefaults;
105
104
  /**
106
105
  * Max length allowed by SAP HANA for aliases (identifiers).
107
- * @see https://help.sap.com/viewer/4fe29514fd584807ac9f2a04f6754767/2.0.03/en-US/20a760537519101497e3cfe07b348f3c.html
106
+ * @see https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-sql-reference-guide/system-limitations
108
107
  */
109
108
  maxAliasLength: number;
110
109
  cteCapabilities: CteCapabilities;
@@ -124,6 +123,18 @@ export declare class SapDriver implements Driver {
124
123
  * Closes connection with the database.
125
124
  */
126
125
  disconnect(): Promise<void>;
126
+ /**
127
+ * Obtains a new database connection to a master server.
128
+ * Used for replication.
129
+ * If replication is not setup then returns default connection's database connection.
130
+ */
131
+ obtainMasterConnection(): Promise<any>;
132
+ /**
133
+ * Obtains a new database connection to a slave server.
134
+ * Used for replication.
135
+ * If replication is not setup then returns master (default) connection's database connection.
136
+ */
137
+ obtainSlaveConnection(): Promise<any>;
127
138
  /**
128
139
  * Creates a schema builder used to build and sync a schema.
129
140
  */
@@ -187,22 +198,10 @@ export declare class SapDriver implements Driver {
187
198
  * Creates column type definition including length, precision and scale
188
199
  */
189
200
  createFullType(column: TableColumn): string;
190
- /**
191
- * Obtains a new database connection to a master server.
192
- * Used for replication.
193
- * If replication is not setup then returns default connection's database connection.
194
- */
195
- obtainMasterConnection(): Promise<any>;
196
- /**
197
- * Obtains a new database connection to a slave server.
198
- * Used for replication.
199
- * If replication is not setup then returns master (default) connection's database connection.
200
- */
201
- obtainSlaveConnection(): Promise<any>;
202
201
  /**
203
202
  * Creates generated map of values generated or returned by database after INSERT query.
204
203
  */
205
- createGeneratedMap(metadata: EntityMetadata, insertResult: ObjectLiteral): any;
204
+ createGeneratedMap(metadata: EntityMetadata, insertResult: ObjectLiteral): ObjectLiteral | undefined;
206
205
  /**
207
206
  * Differentiate columns of this table and columns from the given column metadatas columns
208
207
  * and returns only changed.
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SapDriver = void 0;
4
+ const node_util_1 = require("node:util");
4
5
  const __1 = require("../..");
5
6
  const DriverPackageNotInstalledError_1 = require("../../error/DriverPackageNotInstalledError");
6
7
  const TypeORMError_1 = require("../../error/TypeORMError");
@@ -8,10 +9,10 @@ const PlatformTools_1 = require("../../platform/PlatformTools");
8
9
  const RdbmsSchemaBuilder_1 = require("../../schema-builder/RdbmsSchemaBuilder");
9
10
  const ApplyValueTransformers_1 = require("../../util/ApplyValueTransformers");
10
11
  const DateUtils_1 = require("../../util/DateUtils");
12
+ const InstanceChecker_1 = require("../../util/InstanceChecker");
11
13
  const OrmUtils_1 = require("../../util/OrmUtils");
12
- const SapQueryRunner_1 = require("./SapQueryRunner");
13
14
  const DriverUtils_1 = require("../DriverUtils");
14
- const InstanceChecker_1 = require("../../util/InstanceChecker");
15
+ const SapQueryRunner_1 = require("./SapQueryRunner");
15
16
  /**
16
17
  * Organizes communication with SAP Hana DBMS.
17
18
  *
@@ -22,11 +23,6 @@ class SapDriver {
22
23
  // Constructor
23
24
  // -------------------------------------------------------------------------
24
25
  constructor(connection) {
25
- /**
26
- * Pool for slave databases.
27
- * Used in replication.
28
- */
29
- this.slaves = [];
30
26
  /**
31
27
  * Indicates if replication is enabled.
32
28
  */
@@ -46,36 +42,39 @@ class SapDriver {
46
42
  * @see https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-sql-reference-guide/data-types
47
43
  */
48
44
  this.supportedDataTypes = [
49
- "tinyint",
50
- "smallint",
51
- "int", // typeorm alias for "integer"
52
- "integer",
45
+ "alphanum", // removed in SAP HANA Cloud
46
+ "array",
53
47
  "bigint",
54
- "smalldecimal",
55
- "decimal",
48
+ "binary",
49
+ "blob",
50
+ "boolean",
51
+ "char", // not officially supported, in SAP HANA Cloud: alias for "nchar"
52
+ "clob", // in SAP HANA Cloud: alias for "nclob"
53
+ "date",
56
54
  "dec", // typeorm alias for "decimal"
57
- "real",
55
+ "decimal",
58
56
  "double",
59
57
  "float", // database alias for "real" / "double"
60
- "date",
61
- "time",
62
- "seconddate",
63
- "timestamp",
64
- "boolean",
65
- "char", // not officially supported, in SAP HANA Cloud: alias for "nchar"
58
+ "half_vector", // only supported in SAP HANA Cloud, not in SAP HANA 2.0
59
+ "int", // typeorm alias for "integer"
60
+ "integer",
66
61
  "nchar", // not officially supported
67
- "varchar", // in SAP HANA Cloud: alias for "nvarchar"
62
+ "nclob",
68
63
  "nvarchar",
69
- "text", // removed in SAP HANA Cloud
70
- "alphanum", // removed in SAP HANA Cloud
64
+ "real_vector", // only supported in SAP HANA Cloud, not in SAP HANA 2.0
65
+ "real",
66
+ "seconddate",
71
67
  "shorttext", // removed in SAP HANA Cloud
72
- "array",
73
- "varbinary",
74
- "blob",
75
- "clob", // in SAP HANA Cloud: alias for "nclob"
76
- "nclob",
68
+ "smalldecimal",
69
+ "smallint",
77
70
  "st_geometry",
78
71
  "st_point",
72
+ "text", // removed in SAP HANA Cloud
73
+ "time",
74
+ "timestamp",
75
+ "tinyint",
76
+ "varbinary",
77
+ "varchar", // in SAP HANA Cloud: alias for "nvarchar"
79
78
  ];
80
79
  /**
81
80
  * Returns type of upsert supported by driver if any
@@ -89,11 +88,14 @@ class SapDriver {
89
88
  * Gets list of column data types that support length by a driver.
90
89
  */
91
90
  this.withLengthColumnTypes = [
92
- "varchar",
93
- "nvarchar",
94
91
  "alphanum",
92
+ "binary",
93
+ "half_vector",
94
+ "nvarchar",
95
+ "real_vector",
95
96
  "shorttext",
96
97
  "varbinary",
98
+ "varchar",
97
99
  ];
98
100
  /**
99
101
  * Gets list of column data types that support precision by a driver.
@@ -102,7 +104,7 @@ class SapDriver {
102
104
  /**
103
105
  * Gets list of column data types that support scale by a driver.
104
106
  */
105
- this.withScaleColumnTypes = ["decimal"];
107
+ this.withScaleColumnTypes = ["decimal", "timestamp"];
106
108
  /**
107
109
  * Orm has special columns and we need to know what database column types should be for those types.
108
110
  * Column types are driver dependant.
@@ -137,17 +139,18 @@ class SapDriver {
137
139
  * Used in the cases when length/precision/scale is not specified by user.
138
140
  */
139
141
  this.dataTypeDefaults = {
142
+ binary: { length: 1 },
140
143
  char: { length: 1 },
144
+ decimal: { precision: 18, scale: 0 },
141
145
  nchar: { length: 1 },
142
- varchar: { length: 255 },
143
146
  nvarchar: { length: 255 },
144
147
  shorttext: { length: 255 },
145
148
  varbinary: { length: 255 },
146
- decimal: { precision: 18, scale: 0 },
149
+ varchar: { length: 255 },
147
150
  };
148
151
  /**
149
152
  * Max length allowed by SAP HANA for aliases (identifiers).
150
- * @see https://help.sap.com/viewer/4fe29514fd584807ac9f2a04f6754767/2.0.03/en-US/20a760537519101497e3cfe07b348f3c.html
153
+ * @see https://help.sap.com/docs/hana-cloud-database/sap-hana-cloud-sap-hana-database-sql-reference-guide/system-limitations
151
154
  */
152
155
  this.maxAliasLength = 128;
153
156
  this.cteCapabilities = {
@@ -170,50 +173,55 @@ class SapDriver {
170
173
  */
171
174
  async connect() {
172
175
  // HANA connection info
173
- const dbParams = {
174
- hostName: this.options.host,
176
+ const connectionOptions = {
177
+ host: this.options.host,
175
178
  port: this.options.port,
176
- userName: this.options.username,
179
+ user: this.options.username,
177
180
  password: this.options.password,
178
- ...this.options.extra,
181
+ database: this.options.database,
182
+ currentSchema: this.options.schema,
183
+ encrypt: this.options.encrypt,
184
+ sslValidateCertificate: this.options.sslValidateCertificate,
185
+ key: this.options.key,
186
+ cert: this.options.cert,
187
+ ca: this.options.ca,
179
188
  };
180
- if (this.options.database)
181
- dbParams.databaseName = this.options.database;
182
- if (this.options.schema)
183
- dbParams.currentSchema = this.options.schema;
184
- if (this.options.encrypt)
185
- dbParams.encrypt = this.options.encrypt;
186
- if (this.options.sslValidateCertificate)
187
- dbParams.validateCertificate = this.options.sslValidateCertificate;
188
- if (this.options.key)
189
- dbParams.key = this.options.key;
190
- if (this.options.cert)
191
- dbParams.cert = this.options.cert;
192
- if (this.options.ca)
193
- dbParams.ca = this.options.ca;
189
+ Object.keys(connectionOptions).forEach((key) => {
190
+ if (connectionOptions[key] === undefined) {
191
+ delete connectionOptions[key];
192
+ }
193
+ });
194
+ Object.assign(connectionOptions, this.options.extra ?? {});
194
195
  // pool options
195
- const options = {
196
- min: this.options.pool && this.options.pool.min
197
- ? this.options.pool.min
198
- : 1,
199
- max: this.options.pool && this.options.pool.max
200
- ? this.options.pool.max
201
- : 10,
196
+ const poolOptions = {
197
+ maxConnectedOrPooled: this.options.pool?.maxConnectedOrPooled ??
198
+ this.options.pool?.max ??
199
+ this.options.poolSize ??
200
+ 10,
201
+ maxPooledIdleTime: this.options.pool?.maxPooledIdleTime ??
202
+ (this.options.pool?.idleTimeout
203
+ ? this.options.pool.idleTimeout / 1000
204
+ : 30),
202
205
  };
203
- if (this.options.pool && this.options.pool.checkInterval)
204
- options.checkInterval = this.options.pool.checkInterval;
205
- if (this.options.pool && this.options.pool.maxWaitingRequests)
206
- options.maxWaitingRequests = this.options.pool.maxWaitingRequests;
207
- if (this.options.pool && this.options.pool.requestTimeout)
208
- options.requestTimeout = this.options.pool.requestTimeout;
209
- if (this.options.pool && this.options.pool.idleTimeout)
210
- options.idleTimeout = this.options.pool.idleTimeout;
211
- const { logger } = this.connection;
212
- const poolErrorHandler = options.poolErrorHandler ||
213
- ((error) => logger.log("warn", `SAP Hana pool raised an error. ${error}`));
214
- this.client.eventEmitter.on("poolError", poolErrorHandler);
206
+ if (this.options.pool?.pingCheck) {
207
+ poolOptions.pingCheck = this.options.pool.pingCheck;
208
+ }
209
+ if (this.options.pool?.poolCapacity) {
210
+ poolOptions.poolCapacity = this.options.pool.poolCapacity;
211
+ }
212
+ this.poolErrorHandler =
213
+ this.options.pool?.poolErrorHandler ??
214
+ ((error) => {
215
+ this.connection.logger.log("warn", `SAP HANA pool raised an error: ${error}`);
216
+ });
215
217
  // create the pool
216
- this.master = this.client.createPool(dbParams, options);
218
+ try {
219
+ this.master = this.client.createPool(connectionOptions, poolOptions);
220
+ }
221
+ catch (error) {
222
+ this.poolErrorHandler(error);
223
+ throw error;
224
+ }
217
225
  const queryRunner = this.createQueryRunner("master");
218
226
  const { version, database } = await queryRunner.getDatabaseAndVersion();
219
227
  this.version = version;
@@ -238,7 +246,39 @@ class SapDriver {
238
246
  throw new __1.ConnectionIsNotSetError("sap");
239
247
  }
240
248
  this.master = undefined;
241
- await pool.clear();
249
+ try {
250
+ await (0, node_util_1.promisify)(pool.clear).call(pool);
251
+ }
252
+ catch (error) {
253
+ this.poolErrorHandler(error);
254
+ throw error;
255
+ }
256
+ }
257
+ /**
258
+ * Obtains a new database connection to a master server.
259
+ * Used for replication.
260
+ * If replication is not setup then returns default connection's database connection.
261
+ */
262
+ async obtainMasterConnection() {
263
+ const pool = this.master;
264
+ if (!pool) {
265
+ throw new TypeORMError_1.TypeORMError("Driver not Connected");
266
+ }
267
+ try {
268
+ return await (0, node_util_1.promisify)(pool.getConnection).call(pool);
269
+ }
270
+ catch (error) {
271
+ this.poolErrorHandler(error);
272
+ throw error;
273
+ }
274
+ }
275
+ /**
276
+ * Obtains a new database connection to a slave server.
277
+ * Used for replication.
278
+ * If replication is not setup then returns master (default) connection's database connection.
279
+ */
280
+ async obtainSlaveConnection() {
281
+ return this.obtainMasterConnection();
242
282
  }
243
283
  /**
244
284
  * Creates a schema builder used to build and sync a schema.
@@ -352,10 +392,7 @@ class SapDriver {
352
392
  value = ApplyValueTransformers_1.ApplyValueTransformers.transformTo(columnMetadata.transformer, value);
353
393
  if (value === null || value === undefined)
354
394
  return value;
355
- if (columnMetadata.type === Boolean) {
356
- return value === true ? 1 : 0;
357
- }
358
- else if (columnMetadata.type === "date") {
395
+ if (columnMetadata.type === "date") {
359
396
  return DateUtils_1.DateUtils.mixedDateToDateString(value);
360
397
  }
361
398
  else if (columnMetadata.type === "time") {
@@ -390,10 +427,7 @@ class SapDriver {
390
427
  return columnMetadata.transformer
391
428
  ? ApplyValueTransformers_1.ApplyValueTransformers.transformFrom(columnMetadata.transformer, value)
392
429
  : value;
393
- if (columnMetadata.type === Boolean) {
394
- value = value ? true : false;
395
- }
396
- else if (columnMetadata.type === "timestamp" ||
430
+ if (columnMetadata.type === "timestamp" ||
397
431
  columnMetadata.type === "seconddate" ||
398
432
  columnMetadata.type === Date) {
399
433
  value = DateUtils_1.DateUtils.normalizeHydratedDate(value);
@@ -413,10 +447,6 @@ class SapDriver {
413
447
  else if (columnMetadata.type === "simple-enum") {
414
448
  value = DateUtils_1.DateUtils.stringToSimpleEnum(value, columnMetadata);
415
449
  }
416
- else if (columnMetadata.type === Number) {
417
- // convert to number if number
418
- value = !isNaN(+value) ? parseInt(value) : value;
419
- }
420
450
  if (columnMetadata.transformer)
421
451
  value = ApplyValueTransformers_1.ApplyValueTransformers.transformFrom(columnMetadata.transformer, value);
422
452
  return value;
@@ -477,6 +507,12 @@ class SapDriver {
477
507
  return "nchar";
478
508
  }
479
509
  }
510
+ else {
511
+ if (column.type === "real_vector" ||
512
+ column.type === "half_vector") {
513
+ return "varbinary";
514
+ }
515
+ }
480
516
  return column.type || "";
481
517
  }
482
518
  /**
@@ -553,25 +589,6 @@ class SapDriver {
553
589
  type += " array";
554
590
  return type;
555
591
  }
556
- /**
557
- * Obtains a new database connection to a master server.
558
- * Used for replication.
559
- * If replication is not setup then returns default connection's database connection.
560
- */
561
- obtainMasterConnection() {
562
- if (!this.master) {
563
- throw new TypeORMError_1.TypeORMError("Driver not Connected");
564
- }
565
- return this.master.getConnection();
566
- }
567
- /**
568
- * Obtains a new database connection to a slave server.
569
- * Used for replication.
570
- * If replication is not setup then returns master (default) connection's database connection.
571
- */
572
- obtainSlaveConnection() {
573
- return this.obtainMasterConnection();
574
- }
575
592
  /**
576
593
  * Creates generated map of values generated or returned by database after INSERT query.
577
594
  */
@@ -651,21 +668,16 @@ class SapDriver {
651
668
  * If driver dependency is not given explicitly, then try to load it via "require".
652
669
  */
653
670
  loadDependencies() {
654
- try {
655
- const client = this.options.driver || PlatformTools_1.PlatformTools.load("hdb-pool");
671
+ const client = this.options.driver ?? this.options.hanaClientDriver;
672
+ if (client) {
656
673
  this.client = client;
657
- }
658
- catch (e) {
659
- // todo: better error for browser env
660
- throw new DriverPackageNotInstalledError_1.DriverPackageNotInstalledError("SAP Hana", "hdb-pool");
674
+ return;
661
675
  }
662
676
  try {
663
- if (!this.options.hanaClientDriver) {
664
- PlatformTools_1.PlatformTools.load("@sap/hana-client");
665
- this.streamClient = PlatformTools_1.PlatformTools.load("@sap/hana-client/extension/Stream");
666
- }
677
+ this.client = PlatformTools_1.PlatformTools.load("@sap/hana-client");
678
+ this.streamClient = PlatformTools_1.PlatformTools.load("@sap/hana-client/extension/Stream");
667
679
  }
668
- catch (e) {
680
+ catch {
669
681
  // todo: better error for browser env
670
682
  throw new DriverPackageNotInstalledError_1.DriverPackageNotInstalledError("SAP Hana", "@sap/hana-client");
671
683
  }