typeorm 0.3.23-dev.cebd63b → 0.3.23-dev.fadad1a

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 (217) hide show
  1. package/browser/cache/DbQueryResultCache.js +1 -1
  2. package/browser/cache/DbQueryResultCache.js.map +1 -1
  3. package/browser/cache/RedisQueryResultCache.js +1 -1
  4. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  5. package/browser/data-source/BaseDataSourceOptions.d.ts +1 -1
  6. package/browser/data-source/BaseDataSourceOptions.js.map +1 -1
  7. package/browser/data-source/DataSource.js +2 -1
  8. package/browser/data-source/DataSource.js.map +1 -1
  9. package/browser/decorator/ForeignKey.d.ts +22 -0
  10. package/browser/decorator/ForeignKey.js +41 -0
  11. package/browser/decorator/ForeignKey.js.map +1 -0
  12. package/browser/decorator/options/ForeignKeyOptions.d.ts +24 -0
  13. package/browser/decorator/options/ForeignKeyOptions.js +3 -0
  14. package/browser/decorator/options/ForeignKeyOptions.js.map +1 -0
  15. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +2 -2
  16. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  17. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +8 -8
  18. package/browser/driver/cockroachdb/CockroachQueryRunner.js +18 -18
  19. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  20. package/browser/driver/cordova/CordovaQueryRunner.js +8 -8
  21. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  22. package/browser/driver/expo/ExpoQueryRunner.js +7 -6
  23. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  24. package/browser/driver/expo/legacy/ExpoLegacyQueryRunner.js +2 -2
  25. package/browser/driver/expo/legacy/ExpoLegacyQueryRunner.js.map +1 -1
  26. package/browser/driver/mysql/MysqlConnectionOptions.d.ts +6 -0
  27. package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  28. package/browser/driver/mysql/MysqlQueryRunner.d.ts +7 -7
  29. package/browser/driver/mysql/MysqlQueryRunner.js +23 -18
  30. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  31. package/browser/driver/nativescript/NativescriptQueryRunner.js +6 -6
  32. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  33. package/browser/driver/oracle/OracleQueryRunner.d.ts +7 -7
  34. package/browser/driver/oracle/OracleQueryRunner.js +15 -15
  35. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  36. package/browser/driver/postgres/PostgresQueryRunner.js +4 -4
  37. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  38. package/browser/driver/react-native/ReactNativeQueryRunner.js +53 -46
  39. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  40. package/browser/driver/sap/SapQueryRunner.d.ts +1 -1
  41. package/browser/driver/sap/SapQueryRunner.js +48 -25
  42. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  43. package/browser/driver/spanner/SpannerQueryRunner.js +10 -10
  44. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
  45. package/browser/driver/sqlite/SqliteQueryRunner.js +11 -11
  46. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  47. package/browser/driver/sqljs/SqljsQueryRunner.js +7 -7
  48. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  49. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +1 -1
  50. package/browser/driver/sqlserver/SqlServerQueryRunner.js +9 -9
  51. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  52. package/browser/driver/types/GeoJsonTypes.d.ts +20 -15
  53. package/browser/driver/types/GeoJsonTypes.js.map +1 -1
  54. package/browser/entity-schema/EntitySchemaColumnForeignKeyOptions.d.ts +12 -0
  55. package/browser/entity-schema/EntitySchemaColumnForeignKeyOptions.js +3 -0
  56. package/browser/entity-schema/EntitySchemaColumnForeignKeyOptions.js.map +1 -0
  57. package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +5 -0
  58. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  59. package/browser/entity-schema/EntitySchemaForeignKeyOptions.d.ts +16 -0
  60. package/browser/entity-schema/EntitySchemaForeignKeyOptions.js +3 -0
  61. package/browser/entity-schema/EntitySchemaForeignKeyOptions.js.map +1 -0
  62. package/browser/entity-schema/EntitySchemaOptions.d.ts +5 -0
  63. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  64. package/browser/entity-schema/EntitySchemaTransformer.js +29 -0
  65. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  66. package/browser/index.d.ts +2 -0
  67. package/browser/index.js +2 -0
  68. package/browser/index.js.map +1 -1
  69. package/browser/logger/AbstractLogger.d.ts +1 -1
  70. package/browser/logger/AbstractLogger.js +5 -1
  71. package/browser/logger/AbstractLogger.js.map +1 -1
  72. package/browser/logger/FormattedConsoleLogger.d.ts +13 -0
  73. package/browser/logger/FormattedConsoleLogger.js +55 -0
  74. package/browser/logger/FormattedConsoleLogger.js.map +1 -0
  75. package/browser/logger/Logger.d.ts +1 -0
  76. package/browser/logger/Logger.js.map +1 -1
  77. package/browser/logger/LoggerFactory.d.ts +1 -1
  78. package/browser/logger/LoggerFactory.js +3 -0
  79. package/browser/logger/LoggerFactory.js.map +1 -1
  80. package/browser/metadata/EntityListenerMetadata.js +14 -2
  81. package/browser/metadata/EntityListenerMetadata.js.map +1 -1
  82. package/browser/metadata-args/ForeignKeyMetadataArgs.d.ts +54 -0
  83. package/browser/metadata-args/ForeignKeyMetadataArgs.js +3 -0
  84. package/browser/metadata-args/ForeignKeyMetadataArgs.js.map +1 -0
  85. package/browser/metadata-args/MetadataArgsStorage.d.ts +4 -0
  86. package/browser/metadata-args/MetadataArgsStorage.js +8 -0
  87. package/browser/metadata-args/MetadataArgsStorage.js.map +1 -1
  88. package/browser/metadata-builder/EntityMetadataBuilder.d.ts +4 -0
  89. package/browser/metadata-builder/EntityMetadataBuilder.js +70 -0
  90. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  91. package/browser/persistence/SubjectChangedColumnsComputer.js +23 -9
  92. package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  93. package/browser/platform/PlatformTools.d.ts +5 -0
  94. package/browser/platform/PlatformTools.js +16 -0
  95. package/browser/platform/PlatformTools.js.map +1 -1
  96. package/browser/query-builder/SelectQueryBuilder.js +1 -1
  97. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  98. package/browser/repository/MongoRepository.d.ts +1 -1
  99. package/browser/repository/MongoRepository.js.map +1 -1
  100. package/browser/subscriber/Broadcaster.d.ts +6 -6
  101. package/browser/subscriber/Broadcaster.js +1 -1
  102. package/browser/subscriber/Broadcaster.js.map +1 -1
  103. package/browser/subscriber/event/UpdateEvent.d.ts +4 -0
  104. package/browser/subscriber/event/UpdateEvent.js.map +1 -1
  105. package/cache/DbQueryResultCache.js +1 -1
  106. package/cache/DbQueryResultCache.js.map +1 -1
  107. package/cache/RedisQueryResultCache.js +1 -1
  108. package/cache/RedisQueryResultCache.js.map +1 -1
  109. package/commands/MigrationCreateCommand.d.ts +3 -1
  110. package/commands/MigrationCreateCommand.js +17 -3
  111. package/commands/MigrationCreateCommand.js.map +1 -1
  112. package/commands/MigrationGenerateCommand.d.ts +3 -1
  113. package/commands/MigrationGenerateCommand.js +17 -3
  114. package/commands/MigrationGenerateCommand.js.map +1 -1
  115. package/data-source/BaseDataSourceOptions.d.ts +1 -1
  116. package/data-source/BaseDataSourceOptions.js.map +1 -1
  117. package/data-source/DataSource.js +2 -1
  118. package/data-source/DataSource.js.map +1 -1
  119. package/decorator/ForeignKey.d.ts +22 -0
  120. package/decorator/ForeignKey.js +44 -0
  121. package/decorator/ForeignKey.js.map +1 -0
  122. package/decorator/options/ForeignKeyOptions.d.ts +24 -0
  123. package/decorator/options/ForeignKeyOptions.js +4 -0
  124. package/decorator/options/ForeignKeyOptions.js.map +1 -0
  125. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +2 -2
  126. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  127. package/driver/cockroachdb/CockroachQueryRunner.d.ts +8 -8
  128. package/driver/cockroachdb/CockroachQueryRunner.js +18 -18
  129. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  130. package/driver/cordova/CordovaQueryRunner.js +8 -8
  131. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  132. package/driver/expo/ExpoQueryRunner.js +7 -6
  133. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  134. package/driver/expo/legacy/ExpoLegacyQueryRunner.js +2 -2
  135. package/driver/expo/legacy/ExpoLegacyQueryRunner.js.map +1 -1
  136. package/driver/mysql/MysqlConnectionOptions.d.ts +6 -0
  137. package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  138. package/driver/mysql/MysqlQueryRunner.d.ts +7 -7
  139. package/driver/mysql/MysqlQueryRunner.js +23 -18
  140. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  141. package/driver/nativescript/NativescriptQueryRunner.js +6 -6
  142. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  143. package/driver/oracle/OracleQueryRunner.d.ts +7 -7
  144. package/driver/oracle/OracleQueryRunner.js +15 -15
  145. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  146. package/driver/postgres/PostgresQueryRunner.js +4 -4
  147. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  148. package/driver/react-native/ReactNativeQueryRunner.js +53 -46
  149. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  150. package/driver/sap/SapQueryRunner.d.ts +1 -1
  151. package/driver/sap/SapQueryRunner.js +48 -25
  152. package/driver/sap/SapQueryRunner.js.map +1 -1
  153. package/driver/spanner/SpannerQueryRunner.js +10 -10
  154. package/driver/spanner/SpannerQueryRunner.js.map +1 -1
  155. package/driver/sqlite/SqliteQueryRunner.js +11 -11
  156. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  157. package/driver/sqljs/SqljsQueryRunner.js +7 -7
  158. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  159. package/driver/sqlserver/SqlServerQueryRunner.d.ts +1 -1
  160. package/driver/sqlserver/SqlServerQueryRunner.js +9 -9
  161. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  162. package/driver/types/GeoJsonTypes.d.ts +20 -15
  163. package/driver/types/GeoJsonTypes.js.map +1 -1
  164. package/entity-schema/EntitySchemaColumnForeignKeyOptions.d.ts +12 -0
  165. package/entity-schema/EntitySchemaColumnForeignKeyOptions.js +4 -0
  166. package/entity-schema/EntitySchemaColumnForeignKeyOptions.js.map +1 -0
  167. package/entity-schema/EntitySchemaColumnOptions.d.ts +5 -0
  168. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  169. package/entity-schema/EntitySchemaForeignKeyOptions.d.ts +16 -0
  170. package/entity-schema/EntitySchemaForeignKeyOptions.js +4 -0
  171. package/entity-schema/EntitySchemaForeignKeyOptions.js.map +1 -0
  172. package/entity-schema/EntitySchemaOptions.d.ts +5 -0
  173. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  174. package/entity-schema/EntitySchemaTransformer.js +29 -0
  175. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  176. package/index.d.ts +2 -0
  177. package/index.js +2 -0
  178. package/index.js.map +1 -1
  179. package/index.mjs +4 -0
  180. package/logger/AbstractLogger.d.ts +1 -1
  181. package/logger/AbstractLogger.js +5 -1
  182. package/logger/AbstractLogger.js.map +1 -1
  183. package/logger/FormattedConsoleLogger.d.ts +13 -0
  184. package/logger/FormattedConsoleLogger.js +59 -0
  185. package/logger/FormattedConsoleLogger.js.map +1 -0
  186. package/logger/Logger.d.ts +1 -0
  187. package/logger/Logger.js.map +1 -1
  188. package/logger/LoggerFactory.d.ts +1 -1
  189. package/logger/LoggerFactory.js +3 -0
  190. package/logger/LoggerFactory.js.map +1 -1
  191. package/metadata/EntityListenerMetadata.js +14 -2
  192. package/metadata/EntityListenerMetadata.js.map +1 -1
  193. package/metadata-args/ForeignKeyMetadataArgs.d.ts +54 -0
  194. package/metadata-args/ForeignKeyMetadataArgs.js +4 -0
  195. package/metadata-args/ForeignKeyMetadataArgs.js.map +1 -0
  196. package/metadata-args/MetadataArgsStorage.d.ts +4 -0
  197. package/metadata-args/MetadataArgsStorage.js +8 -0
  198. package/metadata-args/MetadataArgsStorage.js.map +1 -1
  199. package/metadata-builder/EntityMetadataBuilder.d.ts +4 -0
  200. package/metadata-builder/EntityMetadataBuilder.js +70 -0
  201. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  202. package/package.json +1 -1
  203. package/persistence/SubjectChangedColumnsComputer.js +23 -9
  204. package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  205. package/platform/PlatformTools.d.ts +5 -0
  206. package/platform/PlatformTools.js +16 -0
  207. package/platform/PlatformTools.js.map +1 -1
  208. package/query-builder/SelectQueryBuilder.js +1 -1
  209. package/query-builder/SelectQueryBuilder.js.map +1 -1
  210. package/repository/MongoRepository.d.ts +1 -1
  211. package/repository/MongoRepository.js.map +1 -1
  212. package/subscriber/Broadcaster.d.ts +6 -6
  213. package/subscriber/Broadcaster.js +1 -1
  214. package/subscriber/Broadcaster.js.map +1 -1
  215. package/subscriber/event/UpdateEvent.d.ts +4 -0
  216. package/subscriber/event/UpdateEvent.js.map +1 -1
  217. package/typeorm-model-shim.js +6 -1
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ForeignKey = ForeignKey;
4
+ const globals_1 = require("../globals");
5
+ const ObjectUtils_1 = require("../util/ObjectUtils");
6
+ /**
7
+ * Creates a database foreign key. Can be used on entity property or on entity.
8
+ * Can create foreign key with composite columns when used on entity.
9
+ * Warning! Don't use this with relations; relation decorators create foreign keys automatically.
10
+ */
11
+ function ForeignKey(typeFunctionOrTarget, inverseSideOrColumnNamesOrOptions, referencedColumnNamesOrOptions, maybeOptions) {
12
+ const inverseSide = typeof inverseSideOrColumnNamesOrOptions === "string" ||
13
+ typeof inverseSideOrColumnNamesOrOptions === "function"
14
+ ? inverseSideOrColumnNamesOrOptions
15
+ : undefined;
16
+ const columnNames = Array.isArray(inverseSideOrColumnNamesOrOptions)
17
+ ? inverseSideOrColumnNamesOrOptions
18
+ : undefined;
19
+ const referencedColumnNames = Array.isArray(referencedColumnNamesOrOptions)
20
+ ? referencedColumnNamesOrOptions
21
+ : undefined;
22
+ const options = ObjectUtils_1.ObjectUtils.isObject(inverseSideOrColumnNamesOrOptions) &&
23
+ !Array.isArray(inverseSideOrColumnNamesOrOptions)
24
+ ? inverseSideOrColumnNamesOrOptions
25
+ : ObjectUtils_1.ObjectUtils.isObject(referencedColumnNamesOrOptions) &&
26
+ !Array.isArray(referencedColumnNamesOrOptions)
27
+ ? referencedColumnNamesOrOptions
28
+ : maybeOptions;
29
+ return function (clsOrObject, propertyName) {
30
+ (0, globals_1.getMetadataArgsStorage)().foreignKeys.push({
31
+ target: propertyName
32
+ ? clsOrObject.constructor
33
+ : clsOrObject,
34
+ propertyName: propertyName,
35
+ type: typeFunctionOrTarget,
36
+ inverseSide,
37
+ columnNames,
38
+ referencedColumnNames,
39
+ ...options,
40
+ });
41
+ };
42
+ }
43
+
44
+ //# sourceMappingURL=ForeignKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/decorator/ForeignKey.ts"],"names":[],"mappings":";;AAgDA,gCAuDC;AAtGD,wCAAmD;AAEnD,qDAAiD;AAwCjD;;;;GAIG;AACH,SAAgB,UAAU,CAKtB,oBAA8D,EAC9D,iCAIuB,EACvB,8BAEuB,EACvB,YAAgC;IAEhC,MAAM,WAAW,GACb,OAAO,iCAAiC,KAAK,QAAQ;QACrD,OAAO,iCAAiC,KAAK,UAAU;QACnD,CAAC,CAAC,iCAAiC;QACnC,CAAC,CAAC,SAAS,CAAA;IAEnB,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,iCAAiC,CAAC;QAChE,CAAC,CAAC,iCAAiC;QACnC,CAAC,CAAC,SAAS,CAAA;IAEf,MAAM,qBAAqB,GAAG,KAAK,CAAC,OAAO,CAAC,8BAA8B,CAAC;QACvE,CAAC,CAAC,8BAA8B;QAChC,CAAC,CAAC,SAAS,CAAA;IAEf,MAAM,OAAO,GACT,yBAAW,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QACvD,CAAC,KAAK,CAAC,OAAO,CAAC,iCAAiC,CAAC;QAC7C,CAAC,CAAC,iCAAiC;QACnC,CAAC,CAAC,yBAAW,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YACpD,CAAC,KAAK,CAAC,OAAO,CAAC,8BAA8B,CAAC;YAChD,CAAC,CAAC,8BAA8B;YAChC,CAAC,CAAC,YAAY,CAAA;IAEtB,OAAO,UACH,WAA8B,EAC9B,YAA8B;QAE9B,IAAA,gCAAsB,GAAE,CAAC,WAAW,CAAC,IAAI,CAAC;YACtC,MAAM,EAAE,YAAY;gBAChB,CAAC,CAAC,WAAW,CAAC,WAAW;gBACzB,CAAC,CAAE,WAAwB;YAC/B,YAAY,EAAE,YAAY;YAC1B,IAAI,EAAE,oBAAoB;YAC1B,WAAW;YACX,WAAW;YACX,qBAAqB;YACrB,GAAI,OAA6B;SACV,CAAC,CAAA;IAChC,CAAC,CAAA;AACL,CAAC","file":"ForeignKey.js","sourcesContent":["import { ObjectType } from \"../common/ObjectType\"\nimport { getMetadataArgsStorage } from \"../globals\"\nimport { ForeignKeyMetadataArgs } from \"../metadata-args/ForeignKeyMetadataArgs\"\nimport { ObjectUtils } from \"../util/ObjectUtils\"\nimport { ForeignKeyOptions } from \"./options/ForeignKeyOptions\"\n\n/**\n * Creates a database foreign key. Can be used on entity property or on entity.\n * Can create foreign key with composite columns when used on entity.\n * Warning! Don't use this with relations; relation decorators create foreign keys automatically.\n */\nexport function ForeignKey<T>(\n typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>),\n options?: ForeignKeyOptions,\n): PropertyDecorator\n\n/**\n * Creates a database foreign key. Can be used on entity property or on entity.\n * Can create foreign key with composite columns when used on entity.\n * Warning! Don't use this with relations; relation decorators create foreign keys automatically.\n */\nexport function ForeignKey<T>(\n typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>),\n inverseSide: string | ((object: T) => any),\n options?: ForeignKeyOptions,\n): PropertyDecorator\n\n/**\n * Creates a database foreign key. Can be used on entity property or on entity.\n * Can create foreign key with composite columns when used on entity.\n * Warning! Don't use this with relations; relation decorators create foreign keys automatically.\n */\nexport function ForeignKey<\n T,\n C extends (readonly [] | readonly string[]) &\n (number extends C[\"length\"] ? readonly [] : unknown),\n>(\n typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>),\n columnNames: C,\n referencedColumnNames: { [K in keyof C]: string },\n options?: ForeignKeyOptions,\n): ClassDecorator\n\n/**\n * Creates a database foreign key. Can be used on entity property or on entity.\n * Can create foreign key with composite columns when used on entity.\n * Warning! Don't use this with relations; relation decorators create foreign keys automatically.\n */\nexport function ForeignKey<\n T,\n C extends (readonly [] | readonly string[]) &\n (number extends C[\"length\"] ? readonly [] : unknown),\n>(\n typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>),\n inverseSideOrColumnNamesOrOptions?:\n | string\n | ((object: T) => any)\n | C\n | ForeignKeyOptions,\n referencedColumnNamesOrOptions?:\n | { [K in keyof C]: string }\n | ForeignKeyOptions,\n maybeOptions?: ForeignKeyOptions,\n): ClassDecorator & PropertyDecorator {\n const inverseSide =\n typeof inverseSideOrColumnNamesOrOptions === \"string\" ||\n typeof inverseSideOrColumnNamesOrOptions === \"function\"\n ? inverseSideOrColumnNamesOrOptions\n : undefined\n\n const columnNames = Array.isArray(inverseSideOrColumnNamesOrOptions)\n ? inverseSideOrColumnNamesOrOptions\n : undefined\n\n const referencedColumnNames = Array.isArray(referencedColumnNamesOrOptions)\n ? referencedColumnNamesOrOptions\n : undefined\n\n const options =\n ObjectUtils.isObject(inverseSideOrColumnNamesOrOptions) &&\n !Array.isArray(inverseSideOrColumnNamesOrOptions)\n ? inverseSideOrColumnNamesOrOptions\n : ObjectUtils.isObject(referencedColumnNamesOrOptions) &&\n !Array.isArray(referencedColumnNamesOrOptions)\n ? referencedColumnNamesOrOptions\n : maybeOptions\n\n return function (\n clsOrObject: Function | Object,\n propertyName?: string | symbol,\n ) {\n getMetadataArgsStorage().foreignKeys.push({\n target: propertyName\n ? clsOrObject.constructor\n : (clsOrObject as Function),\n propertyName: propertyName,\n type: typeFunctionOrTarget,\n inverseSide,\n columnNames,\n referencedColumnNames,\n ...(options as ForeignKeyOptions),\n } as ForeignKeyMetadataArgs)\n }\n}\n"],"sourceRoot":".."}
@@ -0,0 +1,24 @@
1
+ import { DeferrableType } from "../../metadata/types/DeferrableType";
2
+ import { OnDeleteType } from "../../metadata/types/OnDeleteType";
3
+ import { OnUpdateType } from "../../metadata/types/OnUpdateType";
4
+ /**
5
+ * Describes all foreign key options.
6
+ */
7
+ export interface ForeignKeyOptions {
8
+ /**
9
+ * Name of the foreign key constraint.
10
+ */
11
+ name?: string;
12
+ /**
13
+ * Database cascade action on delete.
14
+ */
15
+ onDelete?: OnDeleteType;
16
+ /**
17
+ * Database cascade action on update.
18
+ */
19
+ onUpdate?: OnUpdateType;
20
+ /**
21
+ * Indicate if foreign key constraints can be deferred.
22
+ */
23
+ deferrable?: DeferrableType;
24
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+
4
+ //# sourceMappingURL=ForeignKeyOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/decorator/options/ForeignKeyOptions.ts"],"names":[],"mappings":"","file":"ForeignKeyOptions.js","sourcesContent":["import { DeferrableType } from \"../../metadata/types/DeferrableType\"\nimport { OnDeleteType } from \"../../metadata/types/OnDeleteType\"\nimport { OnUpdateType } from \"../../metadata/types/OnUpdateType\"\n\n/**\n * Describes all foreign key options.\n */\nexport interface ForeignKeyOptions {\n /**\n * Name of the foreign key constraint.\n */\n name?: string\n\n /**\n * Database cascade action on delete.\n */\n onDelete?: OnDeleteType\n\n /**\n * Database cascade action on update.\n */\n onUpdate?: OnUpdateType\n\n /**\n * Indicate if foreign key constraints can be deferred.\n */\n deferrable?: DeferrableType\n}\n"],"sourceRoot":"../.."}
@@ -73,7 +73,7 @@ class BetterSqlite3QueryRunner extends AbstractSqliteQueryRunner_1.AbstractSqlit
73
73
  const broadcasterResult = new BroadcasterResult_1.BroadcasterResult();
74
74
  this.driver.connection.logger.logQuery(query, parameters, this);
75
75
  this.broadcaster.broadcastBeforeQueryEvent(broadcasterResult, query, parameters);
76
- const queryStartTime = +new Date();
76
+ const queryStartTime = Date.now();
77
77
  const stmt = await this.getStmt(query);
78
78
  try {
79
79
  const result = new QueryResult_1.QueryResult();
@@ -91,7 +91,7 @@ class BetterSqlite3QueryRunner extends AbstractSqliteQueryRunner_1.AbstractSqlit
91
91
  }
92
92
  // log slow queries if maxQueryExecution time is set
93
93
  const maxQueryExecutionTime = this.driver.options.maxQueryExecutionTime;
94
- const queryEndTime = +new Date();
94
+ const queryEndTime = Date.now();
95
95
  const queryExecutionTime = queryEndTime - queryStartTime;
96
96
  if (maxQueryExecutionTime &&
97
97
  queryExecutionTime > maxQueryExecutionTime)
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/driver/better-sqlite3/BetterSqlite3QueryRunner.ts"],"names":[],"mappings":";;;AAAA,iGAA6F;AAC7F,mEAA+D;AAC/D,4FAAwF;AACxF,8DAA0D;AAE1D,gEAA4D;AAC5D,0EAAsE;AAEtE;;;;;GAKG;AACH,MAAa,wBAAyB,SAAQ,qDAAyB;IAMnE,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,YAAY,MAA2B;QACnC,KAAK,EAAE,CAAA;QAYH,cAAS,GAAG,IAAI,GAAG,EAAe,CAAA;QAXtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,yBAAW,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,KAAK,QAAQ,EAAE,CAAC;YAC7D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAA;QAC3D,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,SAAS,GAAG,GAAG,CAAA;QACxB,CAAC;IACL,CAAC;IAKO,KAAK,CAAC,OAAO,CAAC,KAAa;QAC/B,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACpC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;gBAC/C,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBACxC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;gBAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;oBAC1C,2CAA2C;oBAC3C,4BAA4B;oBAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAM,CAAA;oBAC/C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAC9B,CAAC;YACL,CAAC;YACD,OAAO,IAAI,CAAA;QACf,CAAC;aAAM,CAAC;YACJ,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;YAC/C,OAAO,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC5C,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACjB,MAAM,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;IACjD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAChB,MAAM,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CACP,KAAa,EACb,UAAkB,EAClB,mBAAmB,GAAG,KAAK;QAE3B,IAAI,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,iEAA+B,EAAE,CAAA;QAEhE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAA;QAEzC,MAAM,iBAAiB,GAAG,IAAI,qCAAiB,EAAE,CAAA;QAEjD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;QAC/D,IAAI,CAAC,WAAW,CAAC,yBAAyB,CACtC,iBAAiB,EACjB,KAAK,EACL,UAAU,CACb,CAAA;QACD,MAAM,cAAc,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;QAElC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAEtC,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,yBAAW,EAAE,CAAA;YAEhC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACd,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;gBAE5C,MAAM,CAAC,GAAG,GAAG,GAAG,CAAA;gBAEhB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrB,MAAM,CAAC,OAAO,GAAG,GAAG,CAAA;gBACxB,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;gBAC5C,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAA;gBAC7B,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,eAAe,CAAA;YACpC,CAAC;YAED,oDAAoD;YACpD,MAAM,qBAAqB,GACvB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAA;YAC7C,MAAM,YAAY,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;YAChC,MAAM,kBAAkB,GAAG,YAAY,GAAG,cAAc,CAAA;YACxD,IACI,qBAAqB;gBACrB,kBAAkB,GAAG,qBAAqB;gBAE1C,UAAU,CAAC,MAAM,CAAC,YAAY,CAC1B,kBAAkB,EAClB,KAAK,EACL,UAAU,EACV,IAAI,CACP,CAAA;YAEL,IAAI,CAAC,WAAW,CAAC,wBAAwB,CACrC,iBAAiB,EACjB,KAAK,EACL,UAAU,EACV,IAAI,EACJ,kBAAkB,EAClB,MAAM,CAAC,GAAG,EACV,SAAS,CACZ,CAAA;YAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACvB,OAAO,MAAM,CAAC,GAAG,CAAA;YACrB,CAAC;YAED,OAAO,MAAM,CAAA;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;YAC7D,MAAM,IAAI,mCAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,CAAA;QACtD,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,oBAAoB;IACpB,4EAA4E;IAElE,KAAK,CAAC,gBAAgB,CAC5B,SAAiB,EACjB,YAA+B;QAE/B,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;QAC5D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CACxB,UACI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,IACjC,wBAAwB,IAAI,CAAC,UAAU,CACnC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,eAAe,CACnD,oBAAoB,YAAY,UAC7B,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UACxC,UAAU,SAAS,IAAI,CAC1B,CAAA;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IACS,KAAK,CAAC,iBAAiB,CAAC,SAAiB,EAAE,MAAc;QAC/D,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;QAC5D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CACxB,UACI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,IAAI,CAAC,CAAC,CAAC,EAClC,GAAG,MAAM,KAAK,SAAS,IAAI,CAC9B,CAAA;QACD,OAAO,GAAG,CAAA;IACd,CAAC;CACJ;AAvKD,4DAuKC","file":"BetterSqlite3QueryRunner.js","sourcesContent":["import { QueryRunnerAlreadyReleasedError } from \"../../error/QueryRunnerAlreadyReleasedError\"\nimport { QueryFailedError } from \"../../error/QueryFailedError\"\nimport { AbstractSqliteQueryRunner } from \"../sqlite-abstract/AbstractSqliteQueryRunner\"\nimport { Broadcaster } from \"../../subscriber/Broadcaster\"\nimport { BetterSqlite3Driver } from \"./BetterSqlite3Driver\"\nimport { QueryResult } from \"../../query-runner/QueryResult\"\nimport { BroadcasterResult } from \"../../subscriber/BroadcasterResult\"\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 BetterSqlite3QueryRunner extends AbstractSqliteQueryRunner {\n /**\n * Database driver used by connection.\n */\n driver: BetterSqlite3Driver\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(driver: BetterSqlite3Driver) {\n super()\n this.driver = driver\n this.connection = driver.connection\n this.broadcaster = new Broadcaster(this)\n if (typeof this.driver.options.statementCacheSize === \"number\") {\n this.cacheSize = this.driver.options.statementCacheSize\n } else {\n this.cacheSize = 100\n }\n }\n\n private cacheSize: number\n private stmtCache = new Map<string, any>()\n\n private async getStmt(query: string) {\n if (this.cacheSize > 0) {\n let stmt = this.stmtCache.get(query)\n if (!stmt) {\n const databaseConnection = await this.connect()\n stmt = databaseConnection.prepare(query)\n this.stmtCache.set(query, stmt)\n while (this.stmtCache.size > this.cacheSize) {\n // since es6 map keeps the insertion order,\n // it comes to be FIFO cache\n const key = this.stmtCache.keys().next().value!\n this.stmtCache.delete(key)\n }\n }\n return stmt\n } else {\n const databaseConnection = await this.connect()\n return databaseConnection.prepare(query)\n }\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 connection = this.driver.connection\n\n const broadcasterResult = new BroadcasterResult()\n\n this.driver.connection.logger.logQuery(query, parameters, this)\n this.broadcaster.broadcastBeforeQueryEvent(\n broadcasterResult,\n query,\n parameters,\n )\n const queryStartTime = +new Date()\n\n const stmt = await this.getStmt(query)\n\n try {\n const result = new QueryResult()\n\n if (stmt.reader) {\n const raw = stmt.all.apply(stmt, parameters)\n\n result.raw = raw\n\n if (Array.isArray(raw)) {\n result.records = raw\n }\n } else {\n const raw = stmt.run.apply(stmt, parameters)\n result.affected = raw.changes\n result.raw = raw.lastInsertRowid\n }\n\n // log slow queries if maxQueryExecution time is set\n const maxQueryExecutionTime =\n this.driver.options.maxQueryExecutionTime\n const queryEndTime = +new Date()\n const queryExecutionTime = queryEndTime - queryStartTime\n if (\n maxQueryExecutionTime &&\n queryExecutionTime > maxQueryExecutionTime\n )\n connection.logger.logQuerySlow(\n queryExecutionTime,\n query,\n parameters,\n this,\n )\n\n this.broadcaster.broadcastAfterQueryEvent(\n broadcasterResult,\n query,\n parameters,\n true,\n queryExecutionTime,\n result.raw,\n undefined,\n )\n\n if (!useStructuredResult) {\n return result.raw\n }\n\n return result\n } catch (err) {\n connection.logger.logQueryError(err, query, parameters, this)\n throw new QueryFailedError(query, parameters, err)\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n protected async loadTableRecords(\n tablePath: string,\n tableOrIndex: \"table\" | \"index\",\n ) {\n const [database, tableName] = this.splitTablePath(tablePath)\n const res = await this.query(\n `SELECT ${\n database ? `'${database}'` : null\n } as database, * FROM ${this.escapePath(\n `${database ? `${database}.` : \"\"}sqlite_master`,\n )} WHERE \"type\" = '${tableOrIndex}' AND \"${\n tableOrIndex === \"table\" ? \"name\" : \"tbl_name\"\n }\" IN ('${tableName}')`,\n )\n return res\n }\n protected async loadPragmaRecords(tablePath: string, pragma: string) {\n const [database, tableName] = this.splitTablePath(tablePath)\n const res = await this.query(\n `PRAGMA ${\n database ? `\"${database}\".` : \"\"\n }${pragma}(\"${tableName}\")`,\n )\n return res\n }\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/driver/better-sqlite3/BetterSqlite3QueryRunner.ts"],"names":[],"mappings":"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","file":"BetterSqlite3QueryRunner.js","sourcesContent":["import { QueryRunnerAlreadyReleasedError } from \"../../error/QueryRunnerAlreadyReleasedError\"\nimport { QueryFailedError } from \"../../error/QueryFailedError\"\nimport { AbstractSqliteQueryRunner } from \"../sqlite-abstract/AbstractSqliteQueryRunner\"\nimport { Broadcaster } from \"../../subscriber/Broadcaster\"\nimport { BetterSqlite3Driver } from \"./BetterSqlite3Driver\"\nimport { QueryResult } from \"../../query-runner/QueryResult\"\nimport { BroadcasterResult } from \"../../subscriber/BroadcasterResult\"\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 BetterSqlite3QueryRunner extends AbstractSqliteQueryRunner {\n /**\n * Database driver used by connection.\n */\n driver: BetterSqlite3Driver\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(driver: BetterSqlite3Driver) {\n super()\n this.driver = driver\n this.connection = driver.connection\n this.broadcaster = new Broadcaster(this)\n if (typeof this.driver.options.statementCacheSize === \"number\") {\n this.cacheSize = this.driver.options.statementCacheSize\n } else {\n this.cacheSize = 100\n }\n }\n\n private cacheSize: number\n private stmtCache = new Map<string, any>()\n\n private async getStmt(query: string) {\n if (this.cacheSize > 0) {\n let stmt = this.stmtCache.get(query)\n if (!stmt) {\n const databaseConnection = await this.connect()\n stmt = databaseConnection.prepare(query)\n this.stmtCache.set(query, stmt)\n while (this.stmtCache.size > this.cacheSize) {\n // since es6 map keeps the insertion order,\n // it comes to be FIFO cache\n const key = this.stmtCache.keys().next().value!\n this.stmtCache.delete(key)\n }\n }\n return stmt\n } else {\n const databaseConnection = await this.connect()\n return databaseConnection.prepare(query)\n }\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 connection = this.driver.connection\n\n const broadcasterResult = new BroadcasterResult()\n\n this.driver.connection.logger.logQuery(query, parameters, this)\n this.broadcaster.broadcastBeforeQueryEvent(\n broadcasterResult,\n query,\n parameters,\n )\n const queryStartTime = Date.now()\n\n const stmt = await this.getStmt(query)\n\n try {\n const result = new QueryResult()\n\n if (stmt.reader) {\n const raw = stmt.all.apply(stmt, parameters)\n\n result.raw = raw\n\n if (Array.isArray(raw)) {\n result.records = raw\n }\n } else {\n const raw = stmt.run.apply(stmt, parameters)\n result.affected = raw.changes\n result.raw = raw.lastInsertRowid\n }\n\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 if (\n maxQueryExecutionTime &&\n queryExecutionTime > maxQueryExecutionTime\n )\n connection.logger.logQuerySlow(\n queryExecutionTime,\n query,\n parameters,\n this,\n )\n\n this.broadcaster.broadcastAfterQueryEvent(\n broadcasterResult,\n query,\n parameters,\n true,\n queryExecutionTime,\n result.raw,\n undefined,\n )\n\n if (!useStructuredResult) {\n return result.raw\n }\n\n return result\n } catch (err) {\n connection.logger.logQueryError(err, query, parameters, this)\n throw new QueryFailedError(query, parameters, err)\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n protected async loadTableRecords(\n tablePath: string,\n tableOrIndex: \"table\" | \"index\",\n ) {\n const [database, tableName] = this.splitTablePath(tablePath)\n const res = await this.query(\n `SELECT ${\n database ? `'${database}'` : null\n } as database, * FROM ${this.escapePath(\n `${database ? `${database}.` : \"\"}sqlite_master`,\n )} WHERE \"type\" = '${tableOrIndex}' AND \"${\n tableOrIndex === \"table\" ? \"name\" : \"tbl_name\"\n }\" IN ('${tableName}')`,\n )\n return res\n }\n protected async loadPragmaRecords(tablePath: string, pragma: string) {\n const [database, tableName] = this.splitTablePath(tablePath)\n const res = await this.query(\n `PRAGMA ${\n database ? `\"${database}\".` : \"\"\n }${pragma}(\"${tableName}\")`,\n )\n return res\n }\n}\n"],"sourceRoot":"../.."}
@@ -1,18 +1,18 @@
1
+ import { ReadStream } from "../../platform/PlatformTools";
2
+ import { BaseQueryRunner } from "../../query-runner/BaseQueryRunner";
1
3
  import { QueryRunner } from "../../query-runner/QueryRunner";
2
- import { TableColumn } from "../../schema-builder/table/TableColumn";
3
4
  import { Table } from "../../schema-builder/table/Table";
4
- import { TableIndex } from "../../schema-builder/table/TableIndex";
5
+ import { TableCheck } from "../../schema-builder/table/TableCheck";
6
+ import { TableColumn } from "../../schema-builder/table/TableColumn";
7
+ import { TableExclusion } from "../../schema-builder/table/TableExclusion";
5
8
  import { TableForeignKey } from "../../schema-builder/table/TableForeignKey";
9
+ import { TableIndex } from "../../schema-builder/table/TableIndex";
10
+ import { TableUnique } from "../../schema-builder/table/TableUnique";
6
11
  import { View } from "../../schema-builder/view/View";
7
12
  import { Query } from "../Query";
8
- import { CockroachDriver } from "./CockroachDriver";
9
- import { ReadStream } from "../../platform/PlatformTools";
10
- import { TableUnique } from "../../schema-builder/table/TableUnique";
11
- import { BaseQueryRunner } from "../../query-runner/BaseQueryRunner";
12
- import { TableCheck } from "../../schema-builder/table/TableCheck";
13
13
  import { IsolationLevel } from "../types/IsolationLevel";
14
- import { TableExclusion } from "../../schema-builder/table/TableExclusion";
15
14
  import { ReplicationMode } from "../types/ReplicationMode";
15
+ import { CockroachDriver } from "./CockroachDriver";
16
16
  /**
17
17
  * Runs queries on a single postgres database connection.
18
18
  */
@@ -1,27 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CockroachQueryRunner = void 0;
4
- const QueryResult_1 = require("../../query-runner/QueryResult");
4
+ const error_1 = require("../../error");
5
+ const QueryFailedError_1 = require("../../error/QueryFailedError");
6
+ const QueryRunnerAlreadyReleasedError_1 = require("../../error/QueryRunnerAlreadyReleasedError");
5
7
  const TransactionNotStartedError_1 = require("../../error/TransactionNotStartedError");
6
- const TableColumn_1 = require("../../schema-builder/table/TableColumn");
8
+ const BaseQueryRunner_1 = require("../../query-runner/BaseQueryRunner");
9
+ const QueryResult_1 = require("../../query-runner/QueryResult");
7
10
  const Table_1 = require("../../schema-builder/table/Table");
8
- const TableIndex_1 = require("../../schema-builder/table/TableIndex");
11
+ const TableCheck_1 = require("../../schema-builder/table/TableCheck");
12
+ const TableColumn_1 = require("../../schema-builder/table/TableColumn");
13
+ const TableExclusion_1 = require("../../schema-builder/table/TableExclusion");
9
14
  const TableForeignKey_1 = require("../../schema-builder/table/TableForeignKey");
10
- const QueryRunnerAlreadyReleasedError_1 = require("../../error/QueryRunnerAlreadyReleasedError");
15
+ const TableIndex_1 = require("../../schema-builder/table/TableIndex");
16
+ const TableUnique_1 = require("../../schema-builder/table/TableUnique");
11
17
  const View_1 = require("../../schema-builder/view/View");
12
- const Query_1 = require("../Query");
13
- const QueryFailedError_1 = require("../../error/QueryFailedError");
14
18
  const Broadcaster_1 = require("../../subscriber/Broadcaster");
15
- const TableUnique_1 = require("../../schema-builder/table/TableUnique");
16
- const BaseQueryRunner_1 = require("../../query-runner/BaseQueryRunner");
17
- const OrmUtils_1 = require("../../util/OrmUtils");
18
- const TableCheck_1 = require("../../schema-builder/table/TableCheck");
19
- const TableExclusion_1 = require("../../schema-builder/table/TableExclusion");
20
- const error_1 = require("../../error");
21
- const MetadataTableType_1 = require("../types/MetadataTableType");
22
- const InstanceChecker_1 = require("../../util/InstanceChecker");
23
19
  const BroadcasterResult_1 = require("../../subscriber/BroadcasterResult");
20
+ const InstanceChecker_1 = require("../../util/InstanceChecker");
21
+ const OrmUtils_1 = require("../../util/OrmUtils");
24
22
  const VersionUtils_1 = require("../../util/VersionUtils");
23
+ const Query_1 = require("../Query");
24
+ const MetadataTableType_1 = require("../types/MetadataTableType");
25
25
  /**
26
26
  * Runs queries on a single postgres database connection.
27
27
  */
@@ -196,10 +196,10 @@ class CockroachQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
196
196
  if (this.isReleased)
197
197
  throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
198
198
  const databaseConnection = await this.connect();
199
- const broadcasterResult = new BroadcasterResult_1.BroadcasterResult();
200
199
  this.driver.connection.logger.logQuery(query, parameters, this);
201
- this.broadcaster.broadcastBeforeQueryEvent(broadcasterResult, query, parameters);
202
- const queryStartTime = +new Date();
200
+ await this.broadcaster.broadcast("BeforeQuery", query, parameters);
201
+ const broadcasterResult = new BroadcasterResult_1.BroadcasterResult();
202
+ const queryStartTime = Date.now();
203
203
  if (this.isTransactionActive && this.storeQueries) {
204
204
  this.queries.push({ query, parameters });
205
205
  }
@@ -209,7 +209,7 @@ class CockroachQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
209
209
  });
210
210
  // log slow queries if maxQueryExecution time is set
211
211
  const maxQueryExecutionTime = this.driver.options.maxQueryExecutionTime;
212
- const queryEndTime = +new Date();
212
+ const queryEndTime = Date.now();
213
213
  const queryExecutionTime = queryEndTime - queryStartTime;
214
214
  if (maxQueryExecutionTime &&
215
215
  queryExecutionTime > maxQueryExecutionTime) {