typeorm 0.2.41-dev.c895680 → 0.2.42-dev.54cf660

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 (139) hide show
  1. package/browser/cache/DbQueryResultCache.js +12 -3
  2. package/browser/cache/DbQueryResultCache.js.map +1 -1
  3. package/browser/decorator/columns/PrimaryGeneratedColumn.d.ts +2 -1
  4. package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  5. package/browser/decorator/options/ColumnOptions.d.ts +4 -0
  6. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  7. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +22 -0
  8. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +3 -0
  9. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -0
  10. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +33 -39
  11. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  12. package/browser/driver/cockroachdb/CockroachQueryRunner.js +24 -30
  13. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  14. package/browser/driver/mongodb/MongoQueryRunner.d.ts +2 -0
  15. package/browser/driver/mongodb/MongoQueryRunner.js +3 -0
  16. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  17. package/browser/driver/mysql/MysqlQueryRunner.js +37 -39
  18. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  19. package/browser/driver/oracle/OracleDriver.js +1 -1
  20. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  21. package/browser/driver/oracle/OracleQueryRunner.js +13 -24
  22. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  23. package/browser/driver/postgres/PostgresDriver.d.ts +1 -0
  24. package/browser/driver/postgres/PostgresDriver.js +16 -7
  25. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  26. package/browser/driver/postgres/PostgresQueryRunner.d.ts +5 -0
  27. package/browser/driver/postgres/PostgresQueryRunner.js +316 -135
  28. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  29. package/browser/driver/sap/SapQueryRunner.js +36 -42
  30. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  31. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +8 -14
  32. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  33. package/browser/driver/sqlserver/SqlServerQueryRunner.js +32 -34
  34. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  35. package/browser/driver/types/MetadataTableType.d.ts +5 -0
  36. package/browser/driver/types/MetadataTableType.js +8 -0
  37. package/browser/driver/types/MetadataTableType.js.map +1 -0
  38. package/browser/index.d.ts +8 -0
  39. package/browser/index.js +8 -0
  40. package/browser/index.js.map +1 -1
  41. package/browser/metadata/ColumnMetadata.d.ts +4 -0
  42. package/browser/metadata/ColumnMetadata.js +2 -0
  43. package/browser/metadata/ColumnMetadata.js.map +1 -1
  44. package/browser/migration/MigrationExecutor.js +55 -48
  45. package/browser/migration/MigrationExecutor.js.map +1 -1
  46. package/browser/persistence/SubjectExecutor.js +2 -2
  47. package/browser/persistence/SubjectExecutor.js.map +1 -1
  48. package/browser/query-builder/ReturningResultsEntityUpdator.d.ts +4 -0
  49. package/browser/query-builder/ReturningResultsEntityUpdator.js +11 -2
  50. package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  51. package/browser/query-builder/SelectQueryBuilder.js +4 -4
  52. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  53. package/browser/query-builder/SoftDeleteQueryBuilder.js +1 -1
  54. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  55. package/browser/query-runner/BaseQueryRunner.d.ts +23 -0
  56. package/browser/query-runner/BaseQueryRunner.js +37 -0
  57. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  58. package/browser/query-runner/QueryRunner.d.ts +5 -0
  59. package/browser/query-runner/QueryRunner.js.map +1 -1
  60. package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +5 -1
  61. package/browser/schema-builder/RdbmsSchemaBuilder.js +58 -49
  62. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  63. package/browser/schema-builder/options/TableColumnOptions.d.ts +4 -0
  64. package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
  65. package/browser/schema-builder/table/TableColumn.d.ts +4 -0
  66. package/browser/schema-builder/table/TableColumn.js +2 -0
  67. package/browser/schema-builder/table/TableColumn.js.map +1 -1
  68. package/browser/schema-builder/util/TableUtils.js +1 -0
  69. package/browser/schema-builder/util/TableUtils.js.map +1 -1
  70. package/cache/DbQueryResultCache.js +12 -3
  71. package/cache/DbQueryResultCache.js.map +1 -1
  72. package/decorator/columns/PrimaryGeneratedColumn.d.ts +2 -1
  73. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  74. package/decorator/options/ColumnOptions.d.ts +4 -0
  75. package/decorator/options/ColumnOptions.js.map +1 -1
  76. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +22 -0
  77. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +4 -0
  78. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -0
  79. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +33 -39
  80. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  81. package/driver/cockroachdb/CockroachQueryRunner.js +24 -30
  82. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  83. package/driver/mongodb/MongoQueryRunner.d.ts +2 -0
  84. package/driver/mongodb/MongoQueryRunner.js +3 -0
  85. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  86. package/driver/mysql/MysqlQueryRunner.js +37 -39
  87. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  88. package/driver/oracle/OracleDriver.js +1 -1
  89. package/driver/oracle/OracleDriver.js.map +1 -1
  90. package/driver/oracle/OracleQueryRunner.js +13 -24
  91. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  92. package/driver/postgres/PostgresDriver.d.ts +1 -0
  93. package/driver/postgres/PostgresDriver.js +16 -7
  94. package/driver/postgres/PostgresDriver.js.map +1 -1
  95. package/driver/postgres/PostgresQueryRunner.d.ts +5 -0
  96. package/driver/postgres/PostgresQueryRunner.js +316 -135
  97. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  98. package/driver/sap/SapQueryRunner.js +36 -42
  99. package/driver/sap/SapQueryRunner.js.map +1 -1
  100. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +8 -14
  101. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  102. package/driver/sqlserver/SqlServerQueryRunner.js +32 -34
  103. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  104. package/driver/types/MetadataTableType.d.ts +5 -0
  105. package/driver/types/MetadataTableType.js +11 -0
  106. package/driver/types/MetadataTableType.js.map +1 -0
  107. package/index.d.ts +8 -0
  108. package/index.js +8 -0
  109. package/index.js.map +1 -1
  110. package/metadata/ColumnMetadata.d.ts +4 -0
  111. package/metadata/ColumnMetadata.js +2 -0
  112. package/metadata/ColumnMetadata.js.map +1 -1
  113. package/migration/MigrationExecutor.js +55 -48
  114. package/migration/MigrationExecutor.js.map +1 -1
  115. package/package.json +1 -1
  116. package/persistence/SubjectExecutor.js +2 -2
  117. package/persistence/SubjectExecutor.js.map +1 -1
  118. package/query-builder/ReturningResultsEntityUpdator.d.ts +4 -0
  119. package/query-builder/ReturningResultsEntityUpdator.js +11 -2
  120. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  121. package/query-builder/SelectQueryBuilder.js +4 -4
  122. package/query-builder/SelectQueryBuilder.js.map +1 -1
  123. package/query-builder/SoftDeleteQueryBuilder.js +1 -1
  124. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  125. package/query-runner/BaseQueryRunner.d.ts +23 -0
  126. package/query-runner/BaseQueryRunner.js +37 -0
  127. package/query-runner/BaseQueryRunner.js.map +1 -1
  128. package/query-runner/QueryRunner.d.ts +5 -0
  129. package/query-runner/QueryRunner.js.map +1 -1
  130. package/schema-builder/RdbmsSchemaBuilder.d.ts +5 -1
  131. package/schema-builder/RdbmsSchemaBuilder.js +58 -49
  132. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  133. package/schema-builder/options/TableColumnOptions.d.ts +4 -0
  134. package/schema-builder/options/TableColumnOptions.js.map +1 -1
  135. package/schema-builder/table/TableColumn.d.ts +4 -0
  136. package/schema-builder/table/TableColumn.js +2 -0
  137. package/schema-builder/table/TableColumn.js.map +1 -1
  138. package/schema-builder/util/TableUtils.js +1 -0
  139. package/schema-builder/util/TableUtils.js.map +1 -1
@@ -0,0 +1,5 @@
1
+ export declare enum MetadataTableType {
2
+ VIEW = "VIEW",
3
+ MATERIALIZED_VIEW = "MATERIALIZED_VIEW",
4
+ GENERATED_COLUMN = "GENERATED_COLUMN"
5
+ }
@@ -0,0 +1,8 @@
1
+ export var MetadataTableType;
2
+ (function (MetadataTableType) {
3
+ MetadataTableType["VIEW"] = "VIEW";
4
+ MetadataTableType["MATERIALIZED_VIEW"] = "MATERIALIZED_VIEW";
5
+ MetadataTableType["GENERATED_COLUMN"] = "GENERATED_COLUMN";
6
+ })(MetadataTableType || (MetadataTableType = {}));
7
+
8
+ //# sourceMappingURL=MetadataTableType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../browser/src/driver/types/MetadataTableType.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,kCAAa,CAAA;IACb,4DAAuC,CAAA;IACvC,0DAAqC,CAAA;AACzC,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B","file":"MetadataTableType.js","sourcesContent":["export enum MetadataTableType {\n VIEW = \"VIEW\",\n MATERIALIZED_VIEW = \"MATERIALIZED_VIEW\",\n GENERATED_COLUMN = \"GENERATED_COLUMN\"\n}\n"],"sourceRoot":"../.."}
@@ -99,6 +99,14 @@ export * from "./schema-builder/table/TableForeignKey";
99
99
  export * from "./schema-builder/table/TableIndex";
100
100
  export * from "./schema-builder/table/TableUnique";
101
101
  export * from "./schema-builder/table/Table";
102
+ export * from "./schema-builder/options/TableCheckOptions";
103
+ export * from "./schema-builder/options/TableColumnOptions";
104
+ export * from "./schema-builder/options/TableExclusionOptions";
105
+ export * from "./schema-builder/options/TableForeignKeyOptions";
106
+ export * from "./schema-builder/options/TableIndexOptions";
107
+ export * from "./schema-builder/options/TableOptions";
108
+ export * from "./schema-builder/options/TableUniqueOptions";
109
+ export * from "./schema-builder/options/ViewOptions";
102
110
  export * from "./driver/mongodb/typings";
103
111
  export * from "./driver/types/DatabaseType";
104
112
  export * from "./driver/types/ReplicationMode";
package/browser/index.js CHANGED
@@ -102,6 +102,14 @@ export * from "./schema-builder/table/TableForeignKey";
102
102
  export * from "./schema-builder/table/TableIndex";
103
103
  export * from "./schema-builder/table/TableUnique";
104
104
  export * from "./schema-builder/table/Table";
105
+ export * from "./schema-builder/options/TableCheckOptions";
106
+ export * from "./schema-builder/options/TableColumnOptions";
107
+ export * from "./schema-builder/options/TableExclusionOptions";
108
+ export * from "./schema-builder/options/TableForeignKeyOptions";
109
+ export * from "./schema-builder/options/TableIndexOptions";
110
+ export * from "./schema-builder/options/TableOptions";
111
+ export * from "./schema-builder/options/TableUniqueOptions";
112
+ export * from "./schema-builder/options/ViewOptions";
105
113
  export * from "./driver/mongodb/typings";
106
114
  export * from "./driver/types/DatabaseType";
107
115
  export * from "./driver/types/ReplicationMode";
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/index.ts"],"names":[],"mappings":"AAAA;GACG;AACH,OAAO,kBAAkB,CAAC;AAE1B,4EAA4E;AAC5E,wBAAwB;AACxB,4EAA4E;AAE5E,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAElD,OAAO,EAAC,uBAAuB,EAAC,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AAGjE,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAC,kBAAkB,EAAC,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAC,kBAAkB,EAAC,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAC,kBAAkB,EAAC,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAC,kBAAkB,EAAC,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAC,oBAAoB,EAAC,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAC;AAGlD,OAAO,EAAC,YAAY,EAAC,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAC,YAAY,EAAC,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAC,YAAY,EAAC,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAC,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAC,qBAAqB,EAAC,MAAM,yCAAyC,CAAC;AAY9E,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC","file":"index.js","sourcesContent":["/*!\n */\nimport \"reflect-metadata\";\n\n// -------------------------------------------------------------------------\n// Commonly Used exports\n// -------------------------------------------------------------------------\n\nexport * from \"./globals\";\nexport * from \"./container\";\nexport * from \"./common/EntityTarget\";\nexport * from \"./common/ObjectType\";\nexport * from \"./common/ObjectLiteral\";\nexport * from \"./common/DeepPartial\";\nexport * from \"./error\";\nexport * from \"./decorator/columns/Column\";\nexport * from \"./decorator/columns/CreateDateColumn\";\nexport * from \"./decorator/columns/DeleteDateColumn\";\nexport * from \"./decorator/columns/PrimaryGeneratedColumn\";\nexport * from \"./decorator/columns/PrimaryColumn\";\nexport * from \"./decorator/columns/UpdateDateColumn\";\nexport * from \"./decorator/columns/VersionColumn\";\nexport * from \"./decorator/columns/ViewColumn\";\nexport * from \"./decorator/columns/ObjectIdColumn\";\nexport * from \"./decorator/listeners/AfterInsert\";\nexport * from \"./decorator/listeners/AfterLoad\";\nexport * from \"./decorator/listeners/AfterRemove\";\nexport * from \"./decorator/listeners/AfterUpdate\";\nexport * from \"./decorator/listeners/BeforeInsert\";\nexport * from \"./decorator/listeners/BeforeRemove\";\nexport * from \"./decorator/listeners/BeforeUpdate\";\nexport * from \"./decorator/listeners/EventSubscriber\";\nexport * from \"./decorator/options/ColumnOptions\";\nexport * from \"./decorator/options/IndexOptions\";\nexport * from \"./decorator/options/JoinColumnOptions\";\nexport * from \"./decorator/options/JoinTableOptions\";\nexport * from \"./decorator/options/RelationOptions\";\nexport * from \"./decorator/options/EntityOptions\";\nexport * from \"./decorator/options/ValueTransformer\";\nexport * from \"./decorator/relations/JoinColumn\";\nexport * from \"./decorator/relations/JoinTable\";\nexport * from \"./decorator/relations/ManyToMany\";\nexport * from \"./decorator/relations/ManyToOne\";\nexport * from \"./decorator/relations/OneToMany\";\nexport * from \"./decorator/relations/OneToOne\";\nexport * from \"./decorator/relations/RelationCount\";\nexport * from \"./decorator/relations/RelationId\";\nexport * from \"./decorator/entity/Entity\";\nexport * from \"./decorator/entity/ChildEntity\";\nexport * from \"./decorator/entity/TableInheritance\";\nexport * from \"./decorator/entity-view/ViewEntity\";\nexport * from \"./decorator/transaction/Transaction\";\nexport * from \"./decorator/transaction/TransactionManager\";\nexport * from \"./decorator/transaction/TransactionRepository\";\nexport * from \"./decorator/tree/TreeLevelColumn\";\nexport * from \"./decorator/tree/TreeParent\";\nexport * from \"./decorator/tree/TreeChildren\";\nexport * from \"./decorator/tree/Tree\";\nexport * from \"./decorator/Index\";\nexport * from \"./decorator/Unique\";\nexport * from \"./decorator/Check\";\nexport * from \"./decorator/Exclusion\";\nexport * from \"./decorator/Generated\";\nexport * from \"./decorator/EntityRepository\";\nexport * from \"./find-options/operator/Any\";\nexport * from \"./find-options/operator/Between\";\nexport * from \"./find-options/operator/Equal\";\nexport * from \"./find-options/operator/In\";\nexport * from \"./find-options/operator/IsNull\";\nexport * from \"./find-options/operator/LessThan\";\nexport * from \"./find-options/operator/LessThanOrEqual\";\nexport * from \"./find-options/operator/ILike\";\nexport * from \"./find-options/operator/Like\";\nexport * from \"./find-options/operator/MoreThan\";\nexport * from \"./find-options/operator/MoreThanOrEqual\";\nexport * from \"./find-options/operator/Not\";\nexport * from \"./find-options/operator/Raw\";\nexport * from \"./find-options/FindConditions\";\nexport * from \"./find-options/FindManyOptions\";\nexport * from \"./find-options/FindOneOptions\";\nexport * from \"./find-options/FindOperator\";\nexport * from \"./find-options/FindOperatorType\";\nexport * from \"./find-options/JoinOptions\";\nexport * from \"./find-options/OrderByCondition\";\nexport * from \"./find-options/FindOptionsUtils\";\nexport * from \"./logger/Logger\";\nexport * from \"./logger/LoggerOptions\";\nexport * from \"./logger/AdvancedConsoleLogger\";\nexport * from \"./logger/SimpleConsoleLogger\";\nexport * from \"./logger/FileLogger\";\nexport * from \"./metadata/EntityMetadata\";\nexport * from \"./entity-manager/EntityManager\";\nexport * from \"./repository/AbstractRepository\";\nexport * from \"./repository/Repository\";\nexport * from \"./repository/BaseEntity\";\nexport * from \"./repository/TreeRepository\";\nexport * from \"./repository/MongoRepository\";\nexport * from \"./repository/RemoveOptions\";\nexport * from \"./repository/SaveOptions\";\nexport * from \"./schema-builder/table/TableCheck\";\nexport * from \"./schema-builder/table/TableColumn\";\nexport * from \"./schema-builder/table/TableExclusion\";\nexport * from \"./schema-builder/table/TableForeignKey\";\nexport * from \"./schema-builder/table/TableIndex\";\nexport * from \"./schema-builder/table/TableUnique\";\nexport * from \"./schema-builder/table/Table\";\nexport * from \"./driver/mongodb/typings\";\nexport * from \"./driver/types/DatabaseType\";\nexport * from \"./driver/types/ReplicationMode\";\nexport * from \"./driver/sqlserver/MssqlParameter\";\n\nexport {ConnectionOptionsReader} from \"./connection/ConnectionOptionsReader\";\nexport {Connection} from \"./connection/Connection\";\nexport {ConnectionManager} from \"./connection/ConnectionManager\";\nexport {ConnectionOptions} from \"./connection/ConnectionOptions\";\nexport {Driver} from \"./driver/Driver\";\nexport {QueryBuilder} from \"./query-builder/QueryBuilder\";\nexport {SelectQueryBuilder} from \"./query-builder/SelectQueryBuilder\";\nexport {DeleteQueryBuilder} from \"./query-builder/DeleteQueryBuilder\";\nexport {InsertQueryBuilder} from \"./query-builder/InsertQueryBuilder\";\nexport {UpdateQueryBuilder} from \"./query-builder/UpdateQueryBuilder\";\nexport {RelationQueryBuilder} from \"./query-builder/RelationQueryBuilder\";\nexport {Brackets} from \"./query-builder/Brackets\";\nexport {WhereExpressionBuilder} from \"./query-builder/WhereExpressionBuilder\";\nexport {WhereExpression} from \"./query-builder/WhereExpressionBuilder\";\nexport {InsertResult} from \"./query-builder/result/InsertResult\";\nexport {UpdateResult} from \"./query-builder/result/UpdateResult\";\nexport {DeleteResult} from \"./query-builder/result/DeleteResult\";\nexport {QueryResult} from \"./query-runner/QueryResult\";\nexport {QueryRunner} from \"./query-runner/QueryRunner\";\nexport {MongoEntityManager} from \"./entity-manager/MongoEntityManager\";\nexport {Migration} from \"./migration/Migration\";\nexport {MigrationExecutor} from \"./migration/MigrationExecutor\";\nexport {MigrationInterface} from \"./migration/MigrationInterface\";\nexport {DefaultNamingStrategy} from \"./naming-strategy/DefaultNamingStrategy\";\nexport {NamingStrategyInterface} from \"./naming-strategy/NamingStrategyInterface\";\nexport {FindOneOptions} from \"./find-options/FindOneOptions\";\nexport {FindManyOptions} from \"./find-options/FindManyOptions\";\nexport {InsertEvent} from \"./subscriber/event/InsertEvent\";\nexport {LoadEvent} from \"./subscriber/event/LoadEvent\";\nexport {UpdateEvent} from \"./subscriber/event/UpdateEvent\";\nexport {RemoveEvent} from \"./subscriber/event/RemoveEvent\";\nexport {TransactionCommitEvent} from \"./subscriber/event/TransactionCommitEvent\";\nexport {TransactionRollbackEvent} from \"./subscriber/event/TransactionRollbackEvent\";\nexport {TransactionStartEvent} from \"./subscriber/event/TransactionStartEvent\";\nexport {EntitySubscriberInterface} from \"./subscriber/EntitySubscriberInterface\";\nexport {EntitySchema} from \"./entity-schema/EntitySchema\";\nexport {EntitySchemaColumnOptions} from \"./entity-schema/EntitySchemaColumnOptions\";\nexport {EntitySchemaIndexOptions} from \"./entity-schema/EntitySchemaIndexOptions\";\nexport {EntitySchemaRelationOptions} from \"./entity-schema/EntitySchemaRelationOptions\";\nexport {ColumnType} from \"./driver/types/ColumnTypes\";\n"],"sourceRoot":"."}
1
+ {"version":3,"sources":["../browser/src/index.ts"],"names":[],"mappings":"AAAA;GACG;AACH,OAAO,kBAAkB,CAAC;AAE1B,4EAA4E;AAC5E,wBAAwB;AACxB,4EAA4E;AAE5E,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,iDAAiD,CAAC;AAChE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,sCAAsC,CAAC;AACrD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAElD,OAAO,EAAC,uBAAuB,EAAC,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AAGjE,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAC,kBAAkB,EAAC,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAC,kBAAkB,EAAC,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAC,kBAAkB,EAAC,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAC,kBAAkB,EAAC,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAC,oBAAoB,EAAC,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAC;AAGlD,OAAO,EAAC,YAAY,EAAC,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAC,YAAY,EAAC,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAC,YAAY,EAAC,MAAM,qCAAqC,CAAC;AACjE,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAC,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAC,qBAAqB,EAAC,MAAM,yCAAyC,CAAC;AAY9E,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC","file":"index.js","sourcesContent":["/*!\n */\nimport \"reflect-metadata\";\n\n// -------------------------------------------------------------------------\n// Commonly Used exports\n// -------------------------------------------------------------------------\n\nexport * from \"./globals\";\nexport * from \"./container\";\nexport * from \"./common/EntityTarget\";\nexport * from \"./common/ObjectType\";\nexport * from \"./common/ObjectLiteral\";\nexport * from \"./common/DeepPartial\";\nexport * from \"./error\";\nexport * from \"./decorator/columns/Column\";\nexport * from \"./decorator/columns/CreateDateColumn\";\nexport * from \"./decorator/columns/DeleteDateColumn\";\nexport * from \"./decorator/columns/PrimaryGeneratedColumn\";\nexport * from \"./decorator/columns/PrimaryColumn\";\nexport * from \"./decorator/columns/UpdateDateColumn\";\nexport * from \"./decorator/columns/VersionColumn\";\nexport * from \"./decorator/columns/ViewColumn\";\nexport * from \"./decorator/columns/ObjectIdColumn\";\nexport * from \"./decorator/listeners/AfterInsert\";\nexport * from \"./decorator/listeners/AfterLoad\";\nexport * from \"./decorator/listeners/AfterRemove\";\nexport * from \"./decorator/listeners/AfterUpdate\";\nexport * from \"./decorator/listeners/BeforeInsert\";\nexport * from \"./decorator/listeners/BeforeRemove\";\nexport * from \"./decorator/listeners/BeforeUpdate\";\nexport * from \"./decorator/listeners/EventSubscriber\";\nexport * from \"./decorator/options/ColumnOptions\";\nexport * from \"./decorator/options/IndexOptions\";\nexport * from \"./decorator/options/JoinColumnOptions\";\nexport * from \"./decorator/options/JoinTableOptions\";\nexport * from \"./decorator/options/RelationOptions\";\nexport * from \"./decorator/options/EntityOptions\";\nexport * from \"./decorator/options/ValueTransformer\";\nexport * from \"./decorator/relations/JoinColumn\";\nexport * from \"./decorator/relations/JoinTable\";\nexport * from \"./decorator/relations/ManyToMany\";\nexport * from \"./decorator/relations/ManyToOne\";\nexport * from \"./decorator/relations/OneToMany\";\nexport * from \"./decorator/relations/OneToOne\";\nexport * from \"./decorator/relations/RelationCount\";\nexport * from \"./decorator/relations/RelationId\";\nexport * from \"./decorator/entity/Entity\";\nexport * from \"./decorator/entity/ChildEntity\";\nexport * from \"./decorator/entity/TableInheritance\";\nexport * from \"./decorator/entity-view/ViewEntity\";\nexport * from \"./decorator/transaction/Transaction\";\nexport * from \"./decorator/transaction/TransactionManager\";\nexport * from \"./decorator/transaction/TransactionRepository\";\nexport * from \"./decorator/tree/TreeLevelColumn\";\nexport * from \"./decorator/tree/TreeParent\";\nexport * from \"./decorator/tree/TreeChildren\";\nexport * from \"./decorator/tree/Tree\";\nexport * from \"./decorator/Index\";\nexport * from \"./decorator/Unique\";\nexport * from \"./decorator/Check\";\nexport * from \"./decorator/Exclusion\";\nexport * from \"./decorator/Generated\";\nexport * from \"./decorator/EntityRepository\";\nexport * from \"./find-options/operator/Any\";\nexport * from \"./find-options/operator/Between\";\nexport * from \"./find-options/operator/Equal\";\nexport * from \"./find-options/operator/In\";\nexport * from \"./find-options/operator/IsNull\";\nexport * from \"./find-options/operator/LessThan\";\nexport * from \"./find-options/operator/LessThanOrEqual\";\nexport * from \"./find-options/operator/ILike\";\nexport * from \"./find-options/operator/Like\";\nexport * from \"./find-options/operator/MoreThan\";\nexport * from \"./find-options/operator/MoreThanOrEqual\";\nexport * from \"./find-options/operator/Not\";\nexport * from \"./find-options/operator/Raw\";\nexport * from \"./find-options/FindConditions\";\nexport * from \"./find-options/FindManyOptions\";\nexport * from \"./find-options/FindOneOptions\";\nexport * from \"./find-options/FindOperator\";\nexport * from \"./find-options/FindOperatorType\";\nexport * from \"./find-options/JoinOptions\";\nexport * from \"./find-options/OrderByCondition\";\nexport * from \"./find-options/FindOptionsUtils\";\nexport * from \"./logger/Logger\";\nexport * from \"./logger/LoggerOptions\";\nexport * from \"./logger/AdvancedConsoleLogger\";\nexport * from \"./logger/SimpleConsoleLogger\";\nexport * from \"./logger/FileLogger\";\nexport * from \"./metadata/EntityMetadata\";\nexport * from \"./entity-manager/EntityManager\";\nexport * from \"./repository/AbstractRepository\";\nexport * from \"./repository/Repository\";\nexport * from \"./repository/BaseEntity\";\nexport * from \"./repository/TreeRepository\";\nexport * from \"./repository/MongoRepository\";\nexport * from \"./repository/RemoveOptions\";\nexport * from \"./repository/SaveOptions\";\nexport * from \"./schema-builder/table/TableCheck\";\nexport * from \"./schema-builder/table/TableColumn\";\nexport * from \"./schema-builder/table/TableExclusion\";\nexport * from \"./schema-builder/table/TableForeignKey\";\nexport * from \"./schema-builder/table/TableIndex\";\nexport * from \"./schema-builder/table/TableUnique\";\nexport * from \"./schema-builder/table/Table\";\nexport * from \"./schema-builder/options/TableCheckOptions\";\nexport * from \"./schema-builder/options/TableColumnOptions\";\nexport * from \"./schema-builder/options/TableExclusionOptions\";\nexport * from \"./schema-builder/options/TableForeignKeyOptions\";\nexport * from \"./schema-builder/options/TableIndexOptions\";\nexport * from \"./schema-builder/options/TableOptions\";\nexport * from \"./schema-builder/options/TableUniqueOptions\";\nexport * from \"./schema-builder/options/ViewOptions\";\nexport * from \"./driver/mongodb/typings\";\nexport * from \"./driver/types/DatabaseType\";\nexport * from \"./driver/types/ReplicationMode\";\nexport * from \"./driver/sqlserver/MssqlParameter\";\n\nexport {ConnectionOptionsReader} from \"./connection/ConnectionOptionsReader\";\nexport {Connection} from \"./connection/Connection\";\nexport {ConnectionManager} from \"./connection/ConnectionManager\";\nexport {ConnectionOptions} from \"./connection/ConnectionOptions\";\nexport {Driver} from \"./driver/Driver\";\nexport {QueryBuilder} from \"./query-builder/QueryBuilder\";\nexport {SelectQueryBuilder} from \"./query-builder/SelectQueryBuilder\";\nexport {DeleteQueryBuilder} from \"./query-builder/DeleteQueryBuilder\";\nexport {InsertQueryBuilder} from \"./query-builder/InsertQueryBuilder\";\nexport {UpdateQueryBuilder} from \"./query-builder/UpdateQueryBuilder\";\nexport {RelationQueryBuilder} from \"./query-builder/RelationQueryBuilder\";\nexport {Brackets} from \"./query-builder/Brackets\";\nexport {WhereExpressionBuilder} from \"./query-builder/WhereExpressionBuilder\";\nexport {WhereExpression} from \"./query-builder/WhereExpressionBuilder\";\nexport {InsertResult} from \"./query-builder/result/InsertResult\";\nexport {UpdateResult} from \"./query-builder/result/UpdateResult\";\nexport {DeleteResult} from \"./query-builder/result/DeleteResult\";\nexport {QueryResult} from \"./query-runner/QueryResult\";\nexport {QueryRunner} from \"./query-runner/QueryRunner\";\nexport {MongoEntityManager} from \"./entity-manager/MongoEntityManager\";\nexport {Migration} from \"./migration/Migration\";\nexport {MigrationExecutor} from \"./migration/MigrationExecutor\";\nexport {MigrationInterface} from \"./migration/MigrationInterface\";\nexport {DefaultNamingStrategy} from \"./naming-strategy/DefaultNamingStrategy\";\nexport {NamingStrategyInterface} from \"./naming-strategy/NamingStrategyInterface\";\nexport {FindOneOptions} from \"./find-options/FindOneOptions\";\nexport {FindManyOptions} from \"./find-options/FindManyOptions\";\nexport {InsertEvent} from \"./subscriber/event/InsertEvent\";\nexport {LoadEvent} from \"./subscriber/event/LoadEvent\";\nexport {UpdateEvent} from \"./subscriber/event/UpdateEvent\";\nexport {RemoveEvent} from \"./subscriber/event/RemoveEvent\";\nexport {TransactionCommitEvent} from \"./subscriber/event/TransactionCommitEvent\";\nexport {TransactionRollbackEvent} from \"./subscriber/event/TransactionRollbackEvent\";\nexport {TransactionStartEvent} from \"./subscriber/event/TransactionStartEvent\";\nexport {EntitySubscriberInterface} from \"./subscriber/EntitySubscriberInterface\";\nexport {EntitySchema} from \"./entity-schema/EntitySchema\";\nexport {EntitySchemaColumnOptions} from \"./entity-schema/EntitySchemaColumnOptions\";\nexport {EntitySchemaIndexOptions} from \"./entity-schema/EntitySchemaIndexOptions\";\nexport {EntitySchemaRelationOptions} from \"./entity-schema/EntitySchemaRelationOptions\";\nexport {ColumnType} from \"./driver/types/ColumnTypes\";\n"],"sourceRoot":"."}
@@ -83,6 +83,10 @@ export declare class ColumnMetadata {
83
83
  * Specifies generation strategy if this column will use auto increment.
84
84
  */
85
85
  generationStrategy?: "uuid" | "increment" | "rowid";
86
+ /**
87
+ * Identity column type. Supports only in Postgres 10+.
88
+ */
89
+ generatedIdentity?: "ALWAYS" | "BY DEFAULT";
86
90
  /**
87
91
  * Column comment.
88
92
  * This feature is not supported by all databases.
@@ -138,6 +138,8 @@ var ColumnMetadata = /** @class */ (function () {
138
138
  this.default = options.args.options.default;
139
139
  if (options.args.options.onUpdate)
140
140
  this.onUpdate = options.args.options.onUpdate;
141
+ if (options.args.options.generatedIdentity)
142
+ this.generatedIdentity = options.args.options.generatedIdentity;
141
143
  if (options.args.options.scale !== null && options.args.options.scale !== undefined)
142
144
  this.scale = options.args.options.scale;
143
145
  if (options.args.options.zerofill) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/metadata/ColumnMetadata.ts"],"names":[],"mappings":"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","file":"ColumnMetadata.js","sourcesContent":["import {ColumnType} from \"../driver/types/ColumnTypes\";\nimport {EntityMetadata} from \"./EntityMetadata\";\nimport {EmbeddedMetadata} from \"./EmbeddedMetadata\";\nimport {RelationMetadata} from \"./RelationMetadata\";\nimport {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {ColumnMetadataArgs} from \"../metadata-args/ColumnMetadataArgs\";\nimport {Connection} from \"../connection/Connection\";\nimport {OrmUtils} from \"../util/OrmUtils\";\nimport {ValueTransformer} from \"../decorator/options/ValueTransformer\";\nimport {MongoDriver} from \"../driver/mongodb/MongoDriver\";\nimport {FindOperator} from \"../find-options/FindOperator\";\nimport {ApplyValueTransformers} from \"../util/ApplyValueTransformers\";\n\n/**\n * This metadata contains all information about entity's column.\n */\nexport class ColumnMetadata {\n\n // ---------------------------------------------------------------------\n // Public Properties\n // ---------------------------------------------------------------------\n\n /**\n * Target class where column decorator is used.\n * This may not be always equal to entity metadata (for example embeds or inheritance cases).\n */\n target: Function|string;\n\n /**\n * Entity metadata where this column metadata is.\n *\n * For example for @Column() name: string in Post, entityMetadata will be metadata of Post entity.\n */\n entityMetadata: EntityMetadata;\n\n /**\n * Embedded metadata where this column metadata is.\n * If this column is not in embed then this property value is undefined.\n */\n embeddedMetadata?: EmbeddedMetadata;\n\n /**\n * If column is a foreign key of some relation then this relation's metadata will be there.\n * If this column does not have a foreign key then this property value is undefined.\n */\n relationMetadata?: RelationMetadata;\n\n /**\n * Class's property name on which this column is applied.\n */\n propertyName: string;\n\n /**\n * The database type of the column.\n */\n type: ColumnType;\n\n /**\n * Type's length in the database.\n */\n length: string = \"\";\n\n /**\n * Type's display width in the database.\n */\n width?: number;\n\n /**\n * Defines column character set.\n */\n charset?: string;\n\n /**\n * Defines column collation.\n */\n collation?: string;\n\n /**\n * Indicates if this column is a primary key.\n */\n isPrimary: boolean = false;\n\n /**\n * Indicates if this column is generated (auto increment or generated other way).\n */\n isGenerated: boolean = false;\n\n /**\n * Indicates if column can contain nulls or not.\n */\n isNullable: boolean = false;\n\n /**\n * Indicates if column is selected by query builder or not.\n */\n isSelect: boolean = true;\n\n /**\n * Indicates if column is inserted by default or not.\n */\n isInsert: boolean = true;\n\n /**\n * Indicates if column allows updates or not.\n */\n isUpdate: boolean = true;\n\n /**\n * Specifies generation strategy if this column will use auto increment.\n */\n generationStrategy?: \"uuid\"|\"increment\"|\"rowid\";\n\n /**\n * Column comment.\n * This feature is not supported by all databases.\n */\n comment?: string;\n\n /**\n * Default database value.\n */\n default?: number | boolean | string | null | (number | boolean | string)[] | Record<string, object> | (() => string);\n\n /**\n * ON UPDATE trigger. Works only for MySQL.\n */\n onUpdate?: string;\n\n /**\n * The precision for a decimal (exact numeric) column (applies only for decimal column),\n * which is the maximum number of digits that are stored for the values.\n */\n precision?: number|null;\n\n /**\n * The scale for a decimal (exact numeric) column (applies only for decimal column),\n * which represents the number of digits to the right of the decimal point and must not be greater than precision.\n */\n scale?: number;\n\n /**\n * Puts ZEROFILL attribute on to numeric column. Works only for MySQL.\n * If you specify ZEROFILL for a numeric column, MySQL automatically adds the UNSIGNED attribute to the column\n */\n zerofill: boolean = false;\n\n /**\n * Puts UNSIGNED attribute on to numeric column. Works only for MySQL.\n */\n unsigned: boolean = false;\n\n /**\n * Array of possible enumerated values.\n *\n * `postgres` and `mysql` store enum values as strings but we want to keep support\n * for numeric and heterogeneous based typescript enums, so we need (string|number)[]\n */\n enum?: (string|number)[];\n\n /**\n * Exact name of enum\n */\n enumName?: string;\n\n /**\n * Generated column expression. Supports only in MySQL.\n */\n asExpression?: string;\n\n /**\n * Generated column type. Supports only in MySQL.\n */\n generatedType?: \"VIRTUAL\"|\"STORED\";\n\n /**\n * Return type of HSTORE column.\n * Returns value as string or as object.\n */\n hstoreType?: \"object\"|\"string\";\n\n /**\n * Indicates if this column is an array.\n */\n isArray: boolean = false;\n\n /**\n * Gets full path to this column property (including column property name).\n * Full path is relevant when column is used in embeds (one or multiple nested).\n * For example it will return \"counters.subcounters.likes\".\n * If property is not in embeds then it returns just property name of the column.\n */\n propertyPath: string;\n\n /**\n * Same as property path, but dots are replaced with '_'.\n * Used in query builder statements.\n */\n propertyAliasName: string;\n\n /**\n * Gets full path to this column database name (including column database name).\n * Full path is relevant when column is used in embeds (one or multiple nested).\n * For example it will return \"counters.subcounters.likes\".\n * If property is not in embeds then it returns just database name of the column.\n */\n databasePath: string;\n\n /**\n * Complete column name in the database including its embedded prefixes.\n */\n databaseName: string;\n\n /**\n * Database name in the database without embedded prefixes applied.\n */\n databaseNameWithoutPrefixes: string;\n\n /**\n * Database name set by entity metadata builder, not yet passed naming strategy process and without embedded prefixes.\n */\n givenDatabaseName?: string;\n\n /**\n * Indicates if column is virtual. Virtual columns are not mapped to the entity.\n */\n isVirtual: boolean = false;\n\n /**\n * Indicates if column is discriminator. Discriminator columns are not mapped to the entity.\n */\n isDiscriminator: boolean = false;\n\n /**\n * Indicates if column is tree-level column. Tree-level columns are used in closure entities.\n */\n isTreeLevel: boolean = false;\n\n /**\n * Indicates if this column contains an entity creation date.\n */\n isCreateDate: boolean = false;\n\n /**\n * Indicates if this column contains an entity update date.\n */\n isUpdateDate: boolean = false;\n\n /**\n * Indicates if this column contains an entity delete date.\n */\n isDeleteDate: boolean = false;\n\n /**\n * Indicates if this column contains an entity version.\n */\n isVersion: boolean = false;\n\n /**\n * Indicates if this column contains an object id.\n */\n isObjectId: boolean = false;\n\n /**\n * If this column is foreign key then it references some other column,\n * and this property will contain reference to this column.\n */\n referencedColumn: ColumnMetadata|undefined;\n\n /**\n * Specifies a value transformer that is to be used to (un)marshal\n * this column when reading or writing to the database.\n */\n transformer?: ValueTransformer|ValueTransformer[];\n\n /**\n * Column type in the case if this column is in the closure table.\n * Column can be ancestor or descendant in the closure tables.\n */\n closureType?: \"ancestor\"|\"descendant\";\n\n /**\n * Indicates if this column is nested set's left column.\n * Used only in tree entities with nested-set type.\n */\n isNestedSetLeft: boolean = false;\n\n /**\n * Indicates if this column is nested set's right column.\n * Used only in tree entities with nested-set type.\n */\n isNestedSetRight: boolean = false;\n\n /**\n * Indicates if this column is materialized path's path column.\n * Used only in tree entities with materialized path type.\n */\n isMaterializedPath: boolean = false;\n\n /**\n * Spatial Feature Type (Geometry, Point, Polygon, etc.)\n */\n spatialFeatureType?: string;\n\n /**\n * SRID (Spatial Reference ID (EPSG code))\n */\n srid?: number;\n\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n\n constructor(options: {\n connection: Connection,\n entityMetadata: EntityMetadata,\n embeddedMetadata?: EmbeddedMetadata,\n referencedColumn?: ColumnMetadata,\n args: ColumnMetadataArgs,\n closureType?: \"ancestor\"|\"descendant\",\n nestedSetLeft?: boolean,\n nestedSetRight?: boolean,\n materializedPath?: boolean,\n }) {\n this.entityMetadata = options.entityMetadata;\n this.embeddedMetadata = options.embeddedMetadata!;\n this.referencedColumn = options.referencedColumn;\n if (options.args.target)\n this.target = options.args.target;\n if (options.args.propertyName)\n this.propertyName = options.args.propertyName;\n if (options.args.options.name)\n this.givenDatabaseName = options.args.options.name;\n if (options.args.options.type)\n this.type = options.args.options.type;\n if (options.args.options.length)\n this.length = options.args.options.length ? options.args.options.length.toString() : \"\";\n if (options.args.options.width)\n this.width = options.args.options.width;\n if (options.args.options.charset)\n this.charset = options.args.options.charset;\n if (options.args.options.collation)\n this.collation = options.args.options.collation;\n if (options.args.options.primary)\n this.isPrimary = options.args.options.primary;\n if (options.args.options.default === null) // to make sure default: null is the same as nullable: true\n this.isNullable = true;\n if (options.args.options.nullable !== undefined)\n this.isNullable = options.args.options.nullable;\n if (options.args.options.select !== undefined)\n this.isSelect = options.args.options.select;\n if (options.args.options.insert !== undefined)\n this.isInsert = options.args.options.insert;\n if (options.args.options.update !== undefined)\n this.isUpdate = options.args.options.update;\n if (options.args.options.readonly !== undefined)\n this.isUpdate = !options.args.options.readonly;\n if (options.args.options.comment)\n this.comment = options.args.options.comment;\n if (options.args.options.default !== undefined)\n this.default = options.args.options.default;\n if (options.args.options.onUpdate)\n this.onUpdate = options.args.options.onUpdate;\n if (options.args.options.scale !== null && options.args.options.scale !== undefined)\n this.scale = options.args.options.scale;\n if (options.args.options.zerofill) {\n this.zerofill = options.args.options.zerofill;\n this.unsigned = true; // if you specify ZEROFILL for a numeric column, MySQL automatically adds the UNSIGNED attribute to the column\n }\n if (options.args.options.unsigned)\n this.unsigned = options.args.options.unsigned;\n if (options.args.options.precision !== null)\n this.precision = options.args.options.precision;\n if (options.args.options.enum) {\n if (options.args.options.enum instanceof Object && !Array.isArray(options.args.options.enum)) {\n this.enum = Object.keys(options.args.options.enum)\n // remove numeric keys - typescript numeric enum types generate them\n // From the documentation: “declaration merging” means that the compiler merges two separate declarations\n // declared with the same name into a single definition. This concept is often used to merge enum with namespace\n // where in namespace we define e.g. utility methods for creating enum. This is well known in other languages\n // like Java (enum methods). Here in case if enum have function, we need to remove it from metadata, otherwise\n // generated SQL statements contains string representation of that function which leads into syntax error\n // at database side.\n .filter(key => isNaN(+key) && typeof (options.args.options.enum as ObjectLiteral)[key] !== \"function\")\n .map(key => (options.args.options.enum as ObjectLiteral)[key]);\n\n } else {\n this.enum = options.args.options.enum;\n }\n }\n if (options.args.options.enumName) {\n this.enumName = options.args.options.enumName;\n }\n if (options.args.options.asExpression) {\n this.asExpression = options.args.options.asExpression;\n this.generatedType = options.args.options.generatedType ? options.args.options.generatedType : \"VIRTUAL\";\n }\n if (options.args.options.hstoreType)\n this.hstoreType = options.args.options.hstoreType;\n if (options.args.options.array)\n this.isArray = options.args.options.array;\n if (options.args.mode) {\n this.isVirtual = options.args.mode === \"virtual\";\n this.isTreeLevel = options.args.mode === \"treeLevel\";\n this.isCreateDate = options.args.mode === \"createDate\";\n this.isUpdateDate = options.args.mode === \"updateDate\";\n this.isDeleteDate = options.args.mode === \"deleteDate\";\n this.isVersion = options.args.mode === \"version\";\n this.isObjectId = options.args.mode === \"objectId\";\n }\n if (options.args.options.transformer)\n this.transformer = options.args.options.transformer;\n if (options.args.options.spatialFeatureType)\n this.spatialFeatureType = options.args.options.spatialFeatureType;\n if (options.args.options.srid !== undefined)\n this.srid = options.args.options.srid;\n if (this.isTreeLevel)\n this.type = options.connection.driver.mappedDataTypes.treeLevel;\n if (this.isCreateDate) {\n if (!this.type)\n this.type = options.connection.driver.mappedDataTypes.createDate;\n if (!this.default)\n this.default = () => options.connection.driver.mappedDataTypes.createDateDefault;\n // skip precision if it was explicitly set to \"null\" in column options. Otherwise use default precision if it exist.\n if (this.precision === undefined && options.args.options.precision === undefined && options.connection.driver.mappedDataTypes.createDatePrecision)\n this.precision = options.connection.driver.mappedDataTypes.createDatePrecision;\n }\n if (this.isUpdateDate) {\n if (!this.type)\n this.type = options.connection.driver.mappedDataTypes.updateDate;\n if (!this.default)\n this.default = () => options.connection.driver.mappedDataTypes.updateDateDefault;\n if (!this.onUpdate)\n this.onUpdate = options.connection.driver.mappedDataTypes.updateDateDefault;\n // skip precision if it was explicitly set to \"null\" in column options. Otherwise use default precision if it exist.\n if (this.precision === undefined && options.args.options.precision === undefined && options.connection.driver.mappedDataTypes.updateDatePrecision)\n this.precision = options.connection.driver.mappedDataTypes.updateDatePrecision;\n }\n if (this.isDeleteDate) {\n if (!this.type)\n this.type = options.connection.driver.mappedDataTypes.deleteDate;\n if (!this.isNullable)\n this.isNullable = options.connection.driver.mappedDataTypes.deleteDateNullable;\n // skip precision if it was explicitly set to \"null\" in column options. Otherwise use default precision if it exist.\n if (this.precision === undefined && options.args.options.precision === undefined && options.connection.driver.mappedDataTypes.deleteDatePrecision)\n this.precision = options.connection.driver.mappedDataTypes.deleteDatePrecision;\n }\n if (this.isVersion)\n this.type = options.connection.driver.mappedDataTypes.version;\n if (options.closureType)\n this.closureType = options.closureType;\n if (options.nestedSetLeft)\n this.isNestedSetLeft = options.nestedSetLeft;\n if (options.nestedSetRight)\n this.isNestedSetRight = options.nestedSetRight;\n if (options.materializedPath)\n this.isMaterializedPath = options.materializedPath;\n }\n\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n\n /**\n * Creates entity id map from the given entity ids array.\n */\n createValueMap(value: any, useDatabaseName = false) {\n\n // extract column value from embeds of entity if column is in embedded\n if (this.embeddedMetadata) {\n\n // example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeddeds\n // we need to get value of \"id\" column from the post real entity object and return it in a\n // { data: { information: { counters: { id: ... } } } } format\n\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const propertyNames = [...this.embeddedMetadata.parentPropertyNames];\n\n // now need to access post[data][information][counters] to get column value from the counters\n // and on each step we need to create complex literal object, e.g. first { data },\n // then { data: { information } }, then { data: { information: { counters } } },\n // then { data: { information: { counters: [this.propertyName]: entity[data][information][counters][this.propertyName] } } }\n // this recursive function helps doing that\n const extractEmbeddedColumnValue = (propertyNames: string[], map: ObjectLiteral): any => {\n const propertyName = propertyNames.shift();\n if (propertyName) {\n map[propertyName] = {};\n extractEmbeddedColumnValue(propertyNames, map[propertyName]);\n return map;\n }\n\n // this is bugfix for #720 when increment number is bigint we need to make sure its a string\n if ((this.generationStrategy === \"increment\" || this.generationStrategy === \"rowid\") && this.type === \"bigint\" && value !== null)\n value = String(value);\n\n map[useDatabaseName ? this.databaseName : this.propertyName] = value;\n return map;\n };\n return extractEmbeddedColumnValue(propertyNames, {});\n\n } else { // no embeds - no problems. Simply return column property name and its value of the entity\n\n // this is bugfix for #720 when increment number is bigint we need to make sure its a string\n if ((this.generationStrategy === \"increment\" || this.generationStrategy === \"rowid\") && this.type === \"bigint\" && value !== null)\n value = String(value);\n\n return { [useDatabaseName ? this.databaseName : this.propertyName]: value };\n }\n }\n\n /**\n * Extracts column value and returns its column name with this value in a literal object.\n * If column is in embedded (or recursive embedded) it returns complex literal object.\n *\n * Examples what this method can return depend if this column is in embeds.\n * { id: 1 } or { title: \"hello\" }, { counters: { code: 1 } }, { data: { information: { counters: { code: 1 } } } }\n */\n getEntityValueMap(entity: ObjectLiteral, options?: { skipNulls?: boolean }): ObjectLiteral|undefined {\n const returnNulls = false; // options && options.skipNulls === false ? false : true; // todo: remove if current will not bring problems, uncomment if it will.\n\n // extract column value from embeds of entity if column is in embedded\n if (this.embeddedMetadata) {\n\n // example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeddeds\n // we need to get value of \"id\" column from the post real entity object and return it in a\n // { data: { information: { counters: { id: ... } } } } format\n\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const propertyNames = [...this.embeddedMetadata.parentPropertyNames];\n const isEmbeddedArray = this.embeddedMetadata.isArray;\n\n // now need to access post[data][information][counters] to get column value from the counters\n // and on each step we need to create complex literal object, e.g. first { data },\n // then { data: { information } }, then { data: { information: { counters } } },\n // then { data: { information: { counters: [this.propertyName]: entity[data][information][counters][this.propertyName] } } }\n // this recursive function helps doing that\n const extractEmbeddedColumnValue = (propertyNames: string[], value: ObjectLiteral): ObjectLiteral => {\n if (value === undefined) {\n return {};\n }\n\n const propertyName = propertyNames.shift();\n\n if (propertyName) {\n const submap = extractEmbeddedColumnValue(propertyNames, value[propertyName]);\n if (Object.keys(submap).length > 0) {\n return { [propertyName]: submap };\n }\n return {};\n }\n\n if (isEmbeddedArray && Array.isArray(value)) {\n return value.map(v => ({ [this.propertyName]: v[this.propertyName] }));\n }\n\n if (value[this.propertyName] !== undefined && (returnNulls === false || value[this.propertyName] !== null)) {\n return { [this.propertyName]: value[this.propertyName] };\n }\n\n return {};\n };\n const map = extractEmbeddedColumnValue(propertyNames, entity);\n\n return Object.keys(map).length > 0 ? map : undefined;\n\n } else { // no embeds - no problems. Simply return column property name and its value of the entity\n if (this.relationMetadata && entity[this.relationMetadata.propertyName] && entity[this.relationMetadata.propertyName] instanceof Object) {\n const map = this.relationMetadata.joinColumns.reduce((map, joinColumn) => {\n const value = joinColumn.referencedColumn!.getEntityValueMap(entity[this.relationMetadata!.propertyName]);\n if (value === undefined) return map;\n return OrmUtils.mergeDeep(map, value);\n }, {});\n if (Object.keys(map).length > 0)\n return { [this.propertyName]: map };\n\n return undefined;\n } else {\n if (entity[this.propertyName] !== undefined && (returnNulls === false || entity[this.propertyName] !== null))\n return { [this.propertyName]: entity[this.propertyName] };\n\n return undefined;\n }\n }\n }\n\n /**\n * Extracts column value from the given entity.\n * If column is in embedded (or recursive embedded) it extracts its value from there.\n */\n getEntityValue(entity: ObjectLiteral, transform: boolean = false): any|undefined {\n if (entity === undefined || entity === null) return undefined;\n\n // extract column value from embeddeds of entity if column is in embedded\n let value: any = undefined;\n if (this.embeddedMetadata) {\n\n // example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeddeds\n // we need to get value of \"id\" column from the post real entity object\n\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const propertyNames = [...this.embeddedMetadata.parentPropertyNames];\n const isEmbeddedArray = this.embeddedMetadata.isArray;\n\n // next we need to access post[data][information][counters][this.propertyName] to get column value from the counters\n // this recursive function takes array of generated property names and gets the post[data][information][counters] embed\n const extractEmbeddedColumnValue = (propertyNames: string[], value: ObjectLiteral): any => {\n const propertyName = propertyNames.shift();\n return propertyName && value ? extractEmbeddedColumnValue(propertyNames, value[propertyName]) : value;\n };\n\n // once we get nested embed object we get its column, e.g. post[data][information][counters][this.propertyName]\n const embeddedObject = extractEmbeddedColumnValue(propertyNames, entity);\n if (embeddedObject) {\n if (this.relationMetadata && this.referencedColumn) {\n const relatedEntity = this.relationMetadata.getEntityValue(embeddedObject);\n if (relatedEntity && relatedEntity instanceof Object && !(relatedEntity instanceof FindOperator) && !(relatedEntity instanceof Buffer)) {\n value = this.referencedColumn.getEntityValue(relatedEntity);\n\n } else if (embeddedObject[this.propertyName] && embeddedObject[this.propertyName] instanceof Object && !(embeddedObject[this.propertyName] instanceof FindOperator) && !(embeddedObject[this.propertyName] instanceof Buffer) && !(embeddedObject[this.propertyName] instanceof Date)) {\n value = this.referencedColumn.getEntityValue(embeddedObject[this.propertyName]);\n\n } else {\n value = embeddedObject[this.propertyName];\n\n }\n\n } else if (this.referencedColumn) {\n value = this.referencedColumn.getEntityValue(embeddedObject[this.propertyName]);\n\n } else if (isEmbeddedArray && Array.isArray(embeddedObject)) {\n value = embeddedObject.map(o => o[this.propertyName]);\n } else {\n value = embeddedObject[this.propertyName];\n }\n }\n\n } else { // no embeds - no problems. Simply return column name by property name of the entity\n if (this.relationMetadata && this.referencedColumn) {\n const relatedEntity = this.relationMetadata.getEntityValue(entity);\n if (relatedEntity && relatedEntity instanceof Object && !(relatedEntity instanceof FindOperator) && !(relatedEntity instanceof Function) && !(relatedEntity instanceof Buffer)) {\n value = this.referencedColumn.getEntityValue(relatedEntity);\n\n } else if (entity[this.propertyName] && entity[this.propertyName] instanceof Object && !(entity[this.propertyName] instanceof FindOperator) && !(entity[this.propertyName] instanceof Function) && !(entity[this.propertyName] instanceof Buffer) && !(entity[this.propertyName] instanceof Date)) {\n value = this.referencedColumn.getEntityValue(entity[this.propertyName]);\n\n } else {\n value = entity[this.propertyName];\n }\n\n } else if (this.referencedColumn) {\n value = this.referencedColumn.getEntityValue(entity[this.propertyName]);\n\n } else {\n value = entity[this.propertyName];\n }\n }\n\n if (transform && this.transformer)\n value = ApplyValueTransformers.transformTo(this.transformer, value);\n\n return value;\n }\n\n /**\n * Sets given entity's column value.\n * Using of this method helps to set entity relation's value of the lazy and non-lazy relations.\n */\n setEntityValue(entity: ObjectLiteral, value: any): void {\n if (this.embeddedMetadata) {\n\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const extractEmbeddedColumnValue = (embeddedMetadatas: EmbeddedMetadata[], map: ObjectLiteral): any => {\n // if (!object[embeddedMetadata.propertyName])\n // object[embeddedMetadata.propertyName] = embeddedMetadata.create();\n\n const embeddedMetadata = embeddedMetadatas.shift();\n if (embeddedMetadata) {\n if (!map[embeddedMetadata.propertyName])\n map[embeddedMetadata.propertyName] = embeddedMetadata.create();\n\n extractEmbeddedColumnValue(embeddedMetadatas, map[embeddedMetadata.propertyName]);\n return map;\n }\n map[this.propertyName] = value;\n return map;\n };\n return extractEmbeddedColumnValue([...this.embeddedMetadata.embeddedMetadataTree], entity);\n\n } else {\n // we write a deep object in this entity only if the column is virtual\n // because if its not virtual it means the user defined a real column for this relation\n // also we don't do it if column is inside a junction table\n if (!this.entityMetadata.isJunction && this.isVirtual && this.referencedColumn && this.referencedColumn.propertyName !== this.propertyName) {\n if (!(this.propertyName in entity)) {\n entity[this.propertyName] = {};\n }\n\n entity[this.propertyName][this.referencedColumn.propertyName] = value;\n } else {\n entity[this.propertyName] = value;\n }\n }\n }\n\n // ---------------------------------------------------------------------\n // Builder Methods\n // ---------------------------------------------------------------------\n\n build(connection: Connection): this {\n this.propertyPath = this.buildPropertyPath();\n this.propertyAliasName = this.propertyPath.replace(\".\", \"_\");\n this.databaseName = this.buildDatabaseName(connection);\n this.databasePath = this.buildDatabasePath();\n this.databaseNameWithoutPrefixes = connection.namingStrategy.columnName(this.propertyName, this.givenDatabaseName, []);\n return this;\n }\n\n protected buildPropertyPath(): string {\n let path = \"\";\n if (this.embeddedMetadata && this.embeddedMetadata.parentPropertyNames.length)\n path = this.embeddedMetadata.parentPropertyNames.join(\".\") + \".\";\n\n path += this.propertyName;\n\n // we add reference column to property path only if this column is virtual\n // because if its not virtual it means user defined a real column for this relation\n // also we don't do it if column is inside a junction table\n if (!this.entityMetadata.isJunction && this.isVirtual && this.referencedColumn && this.referencedColumn.propertyName !== this.propertyName)\n path += \".\" + this.referencedColumn.propertyName;\n\n return path;\n }\n\n protected buildDatabasePath(): string {\n let path = \"\";\n if (this.embeddedMetadata && this.embeddedMetadata.parentPropertyNames.length)\n path = this.embeddedMetadata.parentPropertyNames.join(\".\") + \".\";\n\n path += this.databaseName;\n\n // we add reference column to property path only if this column is virtual\n // because if its not virtual it means user defined a real column for this relation\n // also we don't do it if column is inside a junction table\n if (!this.entityMetadata.isJunction && this.isVirtual && this.referencedColumn && this.referencedColumn.databaseName !== this.databaseName)\n path += \".\" + this.referencedColumn.databaseName;\n\n return path;\n }\n\n protected buildDatabaseName(connection: Connection): string {\n let propertyNames = this.embeddedMetadata ? this.embeddedMetadata.parentPrefixes : [];\n if (connection.driver instanceof MongoDriver) // we don't need to include embedded name for the mongodb column names\n propertyNames = [];\n return connection.namingStrategy.columnName(this.propertyName, this.givenDatabaseName, propertyNames);\n }\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/metadata/ColumnMetadata.ts"],"names":[],"mappings":"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","file":"ColumnMetadata.js","sourcesContent":["import {ColumnType} from \"../driver/types/ColumnTypes\";\nimport {EntityMetadata} from \"./EntityMetadata\";\nimport {EmbeddedMetadata} from \"./EmbeddedMetadata\";\nimport {RelationMetadata} from \"./RelationMetadata\";\nimport {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {ColumnMetadataArgs} from \"../metadata-args/ColumnMetadataArgs\";\nimport {Connection} from \"../connection/Connection\";\nimport {OrmUtils} from \"../util/OrmUtils\";\nimport {ValueTransformer} from \"../decorator/options/ValueTransformer\";\nimport {MongoDriver} from \"../driver/mongodb/MongoDriver\";\nimport {FindOperator} from \"../find-options/FindOperator\";\nimport {ApplyValueTransformers} from \"../util/ApplyValueTransformers\";\n\n/**\n * This metadata contains all information about entity's column.\n */\nexport class ColumnMetadata {\n\n // ---------------------------------------------------------------------\n // Public Properties\n // ---------------------------------------------------------------------\n\n /**\n * Target class where column decorator is used.\n * This may not be always equal to entity metadata (for example embeds or inheritance cases).\n */\n target: Function|string;\n\n /**\n * Entity metadata where this column metadata is.\n *\n * For example for @Column() name: string in Post, entityMetadata will be metadata of Post entity.\n */\n entityMetadata: EntityMetadata;\n\n /**\n * Embedded metadata where this column metadata is.\n * If this column is not in embed then this property value is undefined.\n */\n embeddedMetadata?: EmbeddedMetadata;\n\n /**\n * If column is a foreign key of some relation then this relation's metadata will be there.\n * If this column does not have a foreign key then this property value is undefined.\n */\n relationMetadata?: RelationMetadata;\n\n /**\n * Class's property name on which this column is applied.\n */\n propertyName: string;\n\n /**\n * The database type of the column.\n */\n type: ColumnType;\n\n /**\n * Type's length in the database.\n */\n length: string = \"\";\n\n /**\n * Type's display width in the database.\n */\n width?: number;\n\n /**\n * Defines column character set.\n */\n charset?: string;\n\n /**\n * Defines column collation.\n */\n collation?: string;\n\n /**\n * Indicates if this column is a primary key.\n */\n isPrimary: boolean = false;\n\n /**\n * Indicates if this column is generated (auto increment or generated other way).\n */\n isGenerated: boolean = false;\n\n /**\n * Indicates if column can contain nulls or not.\n */\n isNullable: boolean = false;\n\n /**\n * Indicates if column is selected by query builder or not.\n */\n isSelect: boolean = true;\n\n /**\n * Indicates if column is inserted by default or not.\n */\n isInsert: boolean = true;\n\n /**\n * Indicates if column allows updates or not.\n */\n isUpdate: boolean = true;\n\n /**\n * Specifies generation strategy if this column will use auto increment.\n */\n generationStrategy?: \"uuid\"|\"increment\"|\"rowid\";\n\n /**\n * Identity column type. Supports only in Postgres 10+.\n */\n generatedIdentity?: \"ALWAYS\"|\"BY DEFAULT\";\n\n /**\n * Column comment.\n * This feature is not supported by all databases.\n */\n comment?: string;\n\n /**\n * Default database value.\n */\n default?: number | boolean | string | null | (number | boolean | string)[] | Record<string, object> | (() => string);\n\n /**\n * ON UPDATE trigger. Works only for MySQL.\n */\n onUpdate?: string;\n\n /**\n * The precision for a decimal (exact numeric) column (applies only for decimal column),\n * which is the maximum number of digits that are stored for the values.\n */\n precision?: number|null;\n\n /**\n * The scale for a decimal (exact numeric) column (applies only for decimal column),\n * which represents the number of digits to the right of the decimal point and must not be greater than precision.\n */\n scale?: number;\n\n /**\n * Puts ZEROFILL attribute on to numeric column. Works only for MySQL.\n * If you specify ZEROFILL for a numeric column, MySQL automatically adds the UNSIGNED attribute to the column\n */\n zerofill: boolean = false;\n\n /**\n * Puts UNSIGNED attribute on to numeric column. Works only for MySQL.\n */\n unsigned: boolean = false;\n\n /**\n * Array of possible enumerated values.\n *\n * `postgres` and `mysql` store enum values as strings but we want to keep support\n * for numeric and heterogeneous based typescript enums, so we need (string|number)[]\n */\n enum?: (string|number)[];\n\n /**\n * Exact name of enum\n */\n enumName?: string;\n\n /**\n * Generated column expression. Supports only in MySQL.\n */\n asExpression?: string;\n\n /**\n * Generated column type. Supports only in MySQL.\n */\n generatedType?: \"VIRTUAL\"|\"STORED\";\n\n /**\n * Return type of HSTORE column.\n * Returns value as string or as object.\n */\n hstoreType?: \"object\"|\"string\";\n\n /**\n * Indicates if this column is an array.\n */\n isArray: boolean = false;\n\n /**\n * Gets full path to this column property (including column property name).\n * Full path is relevant when column is used in embeds (one or multiple nested).\n * For example it will return \"counters.subcounters.likes\".\n * If property is not in embeds then it returns just property name of the column.\n */\n propertyPath: string;\n\n /**\n * Same as property path, but dots are replaced with '_'.\n * Used in query builder statements.\n */\n propertyAliasName: string;\n\n /**\n * Gets full path to this column database name (including column database name).\n * Full path is relevant when column is used in embeds (one or multiple nested).\n * For example it will return \"counters.subcounters.likes\".\n * If property is not in embeds then it returns just database name of the column.\n */\n databasePath: string;\n\n /**\n * Complete column name in the database including its embedded prefixes.\n */\n databaseName: string;\n\n /**\n * Database name in the database without embedded prefixes applied.\n */\n databaseNameWithoutPrefixes: string;\n\n /**\n * Database name set by entity metadata builder, not yet passed naming strategy process and without embedded prefixes.\n */\n givenDatabaseName?: string;\n\n /**\n * Indicates if column is virtual. Virtual columns are not mapped to the entity.\n */\n isVirtual: boolean = false;\n\n /**\n * Indicates if column is discriminator. Discriminator columns are not mapped to the entity.\n */\n isDiscriminator: boolean = false;\n\n /**\n * Indicates if column is tree-level column. Tree-level columns are used in closure entities.\n */\n isTreeLevel: boolean = false;\n\n /**\n * Indicates if this column contains an entity creation date.\n */\n isCreateDate: boolean = false;\n\n /**\n * Indicates if this column contains an entity update date.\n */\n isUpdateDate: boolean = false;\n\n /**\n * Indicates if this column contains an entity delete date.\n */\n isDeleteDate: boolean = false;\n\n /**\n * Indicates if this column contains an entity version.\n */\n isVersion: boolean = false;\n\n /**\n * Indicates if this column contains an object id.\n */\n isObjectId: boolean = false;\n\n /**\n * If this column is foreign key then it references some other column,\n * and this property will contain reference to this column.\n */\n referencedColumn: ColumnMetadata|undefined;\n\n /**\n * Specifies a value transformer that is to be used to (un)marshal\n * this column when reading or writing to the database.\n */\n transformer?: ValueTransformer|ValueTransformer[];\n\n /**\n * Column type in the case if this column is in the closure table.\n * Column can be ancestor or descendant in the closure tables.\n */\n closureType?: \"ancestor\"|\"descendant\";\n\n /**\n * Indicates if this column is nested set's left column.\n * Used only in tree entities with nested-set type.\n */\n isNestedSetLeft: boolean = false;\n\n /**\n * Indicates if this column is nested set's right column.\n * Used only in tree entities with nested-set type.\n */\n isNestedSetRight: boolean = false;\n\n /**\n * Indicates if this column is materialized path's path column.\n * Used only in tree entities with materialized path type.\n */\n isMaterializedPath: boolean = false;\n\n /**\n * Spatial Feature Type (Geometry, Point, Polygon, etc.)\n */\n spatialFeatureType?: string;\n\n /**\n * SRID (Spatial Reference ID (EPSG code))\n */\n srid?: number;\n\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n\n constructor(options: {\n connection: Connection,\n entityMetadata: EntityMetadata,\n embeddedMetadata?: EmbeddedMetadata,\n referencedColumn?: ColumnMetadata,\n args: ColumnMetadataArgs,\n closureType?: \"ancestor\"|\"descendant\",\n nestedSetLeft?: boolean,\n nestedSetRight?: boolean,\n materializedPath?: boolean,\n }) {\n this.entityMetadata = options.entityMetadata;\n this.embeddedMetadata = options.embeddedMetadata!;\n this.referencedColumn = options.referencedColumn;\n if (options.args.target)\n this.target = options.args.target;\n if (options.args.propertyName)\n this.propertyName = options.args.propertyName;\n if (options.args.options.name)\n this.givenDatabaseName = options.args.options.name;\n if (options.args.options.type)\n this.type = options.args.options.type;\n if (options.args.options.length)\n this.length = options.args.options.length ? options.args.options.length.toString() : \"\";\n if (options.args.options.width)\n this.width = options.args.options.width;\n if (options.args.options.charset)\n this.charset = options.args.options.charset;\n if (options.args.options.collation)\n this.collation = options.args.options.collation;\n if (options.args.options.primary)\n this.isPrimary = options.args.options.primary;\n if (options.args.options.default === null) // to make sure default: null is the same as nullable: true\n this.isNullable = true;\n if (options.args.options.nullable !== undefined)\n this.isNullable = options.args.options.nullable;\n if (options.args.options.select !== undefined)\n this.isSelect = options.args.options.select;\n if (options.args.options.insert !== undefined)\n this.isInsert = options.args.options.insert;\n if (options.args.options.update !== undefined)\n this.isUpdate = options.args.options.update;\n if (options.args.options.readonly !== undefined)\n this.isUpdate = !options.args.options.readonly;\n if (options.args.options.comment)\n this.comment = options.args.options.comment;\n if (options.args.options.default !== undefined)\n this.default = options.args.options.default;\n if (options.args.options.onUpdate)\n this.onUpdate = options.args.options.onUpdate;\n if (options.args.options.generatedIdentity)\n this.generatedIdentity = options.args.options.generatedIdentity;\n if (options.args.options.scale !== null && options.args.options.scale !== undefined)\n this.scale = options.args.options.scale;\n if (options.args.options.zerofill) {\n this.zerofill = options.args.options.zerofill;\n this.unsigned = true; // if you specify ZEROFILL for a numeric column, MySQL automatically adds the UNSIGNED attribute to the column\n }\n if (options.args.options.unsigned)\n this.unsigned = options.args.options.unsigned;\n if (options.args.options.precision !== null)\n this.precision = options.args.options.precision;\n if (options.args.options.enum) {\n if (options.args.options.enum instanceof Object && !Array.isArray(options.args.options.enum)) {\n this.enum = Object.keys(options.args.options.enum)\n // remove numeric keys - typescript numeric enum types generate them\n // From the documentation: “declaration merging” means that the compiler merges two separate declarations\n // declared with the same name into a single definition. This concept is often used to merge enum with namespace\n // where in namespace we define e.g. utility methods for creating enum. This is well known in other languages\n // like Java (enum methods). Here in case if enum have function, we need to remove it from metadata, otherwise\n // generated SQL statements contains string representation of that function which leads into syntax error\n // at database side.\n .filter(key => isNaN(+key) && typeof (options.args.options.enum as ObjectLiteral)[key] !== \"function\")\n .map(key => (options.args.options.enum as ObjectLiteral)[key]);\n\n } else {\n this.enum = options.args.options.enum;\n }\n }\n if (options.args.options.enumName) {\n this.enumName = options.args.options.enumName;\n }\n if (options.args.options.asExpression) {\n this.asExpression = options.args.options.asExpression;\n this.generatedType = options.args.options.generatedType ? options.args.options.generatedType : \"VIRTUAL\";\n }\n if (options.args.options.hstoreType)\n this.hstoreType = options.args.options.hstoreType;\n if (options.args.options.array)\n this.isArray = options.args.options.array;\n if (options.args.mode) {\n this.isVirtual = options.args.mode === \"virtual\";\n this.isTreeLevel = options.args.mode === \"treeLevel\";\n this.isCreateDate = options.args.mode === \"createDate\";\n this.isUpdateDate = options.args.mode === \"updateDate\";\n this.isDeleteDate = options.args.mode === \"deleteDate\";\n this.isVersion = options.args.mode === \"version\";\n this.isObjectId = options.args.mode === \"objectId\";\n }\n if (options.args.options.transformer)\n this.transformer = options.args.options.transformer;\n if (options.args.options.spatialFeatureType)\n this.spatialFeatureType = options.args.options.spatialFeatureType;\n if (options.args.options.srid !== undefined)\n this.srid = options.args.options.srid;\n if (this.isTreeLevel)\n this.type = options.connection.driver.mappedDataTypes.treeLevel;\n if (this.isCreateDate) {\n if (!this.type)\n this.type = options.connection.driver.mappedDataTypes.createDate;\n if (!this.default)\n this.default = () => options.connection.driver.mappedDataTypes.createDateDefault;\n // skip precision if it was explicitly set to \"null\" in column options. Otherwise use default precision if it exist.\n if (this.precision === undefined && options.args.options.precision === undefined && options.connection.driver.mappedDataTypes.createDatePrecision)\n this.precision = options.connection.driver.mappedDataTypes.createDatePrecision;\n }\n if (this.isUpdateDate) {\n if (!this.type)\n this.type = options.connection.driver.mappedDataTypes.updateDate;\n if (!this.default)\n this.default = () => options.connection.driver.mappedDataTypes.updateDateDefault;\n if (!this.onUpdate)\n this.onUpdate = options.connection.driver.mappedDataTypes.updateDateDefault;\n // skip precision if it was explicitly set to \"null\" in column options. Otherwise use default precision if it exist.\n if (this.precision === undefined && options.args.options.precision === undefined && options.connection.driver.mappedDataTypes.updateDatePrecision)\n this.precision = options.connection.driver.mappedDataTypes.updateDatePrecision;\n }\n if (this.isDeleteDate) {\n if (!this.type)\n this.type = options.connection.driver.mappedDataTypes.deleteDate;\n if (!this.isNullable)\n this.isNullable = options.connection.driver.mappedDataTypes.deleteDateNullable;\n // skip precision if it was explicitly set to \"null\" in column options. Otherwise use default precision if it exist.\n if (this.precision === undefined && options.args.options.precision === undefined && options.connection.driver.mappedDataTypes.deleteDatePrecision)\n this.precision = options.connection.driver.mappedDataTypes.deleteDatePrecision;\n }\n if (this.isVersion)\n this.type = options.connection.driver.mappedDataTypes.version;\n if (options.closureType)\n this.closureType = options.closureType;\n if (options.nestedSetLeft)\n this.isNestedSetLeft = options.nestedSetLeft;\n if (options.nestedSetRight)\n this.isNestedSetRight = options.nestedSetRight;\n if (options.materializedPath)\n this.isMaterializedPath = options.materializedPath;\n }\n\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n\n /**\n * Creates entity id map from the given entity ids array.\n */\n createValueMap(value: any, useDatabaseName = false) {\n\n // extract column value from embeds of entity if column is in embedded\n if (this.embeddedMetadata) {\n\n // example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeddeds\n // we need to get value of \"id\" column from the post real entity object and return it in a\n // { data: { information: { counters: { id: ... } } } } format\n\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const propertyNames = [...this.embeddedMetadata.parentPropertyNames];\n\n // now need to access post[data][information][counters] to get column value from the counters\n // and on each step we need to create complex literal object, e.g. first { data },\n // then { data: { information } }, then { data: { information: { counters } } },\n // then { data: { information: { counters: [this.propertyName]: entity[data][information][counters][this.propertyName] } } }\n // this recursive function helps doing that\n const extractEmbeddedColumnValue = (propertyNames: string[], map: ObjectLiteral): any => {\n const propertyName = propertyNames.shift();\n if (propertyName) {\n map[propertyName] = {};\n extractEmbeddedColumnValue(propertyNames, map[propertyName]);\n return map;\n }\n\n // this is bugfix for #720 when increment number is bigint we need to make sure its a string\n if ((this.generationStrategy === \"increment\" || this.generationStrategy === \"rowid\") && this.type === \"bigint\" && value !== null)\n value = String(value);\n\n map[useDatabaseName ? this.databaseName : this.propertyName] = value;\n return map;\n };\n return extractEmbeddedColumnValue(propertyNames, {});\n\n } else { // no embeds - no problems. Simply return column property name and its value of the entity\n\n // this is bugfix for #720 when increment number is bigint we need to make sure its a string\n if ((this.generationStrategy === \"increment\" || this.generationStrategy === \"rowid\") && this.type === \"bigint\" && value !== null)\n value = String(value);\n\n return { [useDatabaseName ? this.databaseName : this.propertyName]: value };\n }\n }\n\n /**\n * Extracts column value and returns its column name with this value in a literal object.\n * If column is in embedded (or recursive embedded) it returns complex literal object.\n *\n * Examples what this method can return depend if this column is in embeds.\n * { id: 1 } or { title: \"hello\" }, { counters: { code: 1 } }, { data: { information: { counters: { code: 1 } } } }\n */\n getEntityValueMap(entity: ObjectLiteral, options?: { skipNulls?: boolean }): ObjectLiteral|undefined {\n const returnNulls = false; // options && options.skipNulls === false ? false : true; // todo: remove if current will not bring problems, uncomment if it will.\n\n // extract column value from embeds of entity if column is in embedded\n if (this.embeddedMetadata) {\n\n // example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeddeds\n // we need to get value of \"id\" column from the post real entity object and return it in a\n // { data: { information: { counters: { id: ... } } } } format\n\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const propertyNames = [...this.embeddedMetadata.parentPropertyNames];\n const isEmbeddedArray = this.embeddedMetadata.isArray;\n\n // now need to access post[data][information][counters] to get column value from the counters\n // and on each step we need to create complex literal object, e.g. first { data },\n // then { data: { information } }, then { data: { information: { counters } } },\n // then { data: { information: { counters: [this.propertyName]: entity[data][information][counters][this.propertyName] } } }\n // this recursive function helps doing that\n const extractEmbeddedColumnValue = (propertyNames: string[], value: ObjectLiteral): ObjectLiteral => {\n if (value === undefined) {\n return {};\n }\n\n const propertyName = propertyNames.shift();\n\n if (propertyName) {\n const submap = extractEmbeddedColumnValue(propertyNames, value[propertyName]);\n if (Object.keys(submap).length > 0) {\n return { [propertyName]: submap };\n }\n return {};\n }\n\n if (isEmbeddedArray && Array.isArray(value)) {\n return value.map(v => ({ [this.propertyName]: v[this.propertyName] }));\n }\n\n if (value[this.propertyName] !== undefined && (returnNulls === false || value[this.propertyName] !== null)) {\n return { [this.propertyName]: value[this.propertyName] };\n }\n\n return {};\n };\n const map = extractEmbeddedColumnValue(propertyNames, entity);\n\n return Object.keys(map).length > 0 ? map : undefined;\n\n } else { // no embeds - no problems. Simply return column property name and its value of the entity\n if (this.relationMetadata && entity[this.relationMetadata.propertyName] && entity[this.relationMetadata.propertyName] instanceof Object) {\n const map = this.relationMetadata.joinColumns.reduce((map, joinColumn) => {\n const value = joinColumn.referencedColumn!.getEntityValueMap(entity[this.relationMetadata!.propertyName]);\n if (value === undefined) return map;\n return OrmUtils.mergeDeep(map, value);\n }, {});\n if (Object.keys(map).length > 0)\n return { [this.propertyName]: map };\n\n return undefined;\n } else {\n if (entity[this.propertyName] !== undefined && (returnNulls === false || entity[this.propertyName] !== null))\n return { [this.propertyName]: entity[this.propertyName] };\n\n return undefined;\n }\n }\n }\n\n /**\n * Extracts column value from the given entity.\n * If column is in embedded (or recursive embedded) it extracts its value from there.\n */\n getEntityValue(entity: ObjectLiteral, transform: boolean = false): any|undefined {\n if (entity === undefined || entity === null) return undefined;\n\n // extract column value from embeddeds of entity if column is in embedded\n let value: any = undefined;\n if (this.embeddedMetadata) {\n\n // example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeddeds\n // we need to get value of \"id\" column from the post real entity object\n\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const propertyNames = [...this.embeddedMetadata.parentPropertyNames];\n const isEmbeddedArray = this.embeddedMetadata.isArray;\n\n // next we need to access post[data][information][counters][this.propertyName] to get column value from the counters\n // this recursive function takes array of generated property names and gets the post[data][information][counters] embed\n const extractEmbeddedColumnValue = (propertyNames: string[], value: ObjectLiteral): any => {\n const propertyName = propertyNames.shift();\n return propertyName && value ? extractEmbeddedColumnValue(propertyNames, value[propertyName]) : value;\n };\n\n // once we get nested embed object we get its column, e.g. post[data][information][counters][this.propertyName]\n const embeddedObject = extractEmbeddedColumnValue(propertyNames, entity);\n if (embeddedObject) {\n if (this.relationMetadata && this.referencedColumn) {\n const relatedEntity = this.relationMetadata.getEntityValue(embeddedObject);\n if (relatedEntity && relatedEntity instanceof Object && !(relatedEntity instanceof FindOperator) && !(relatedEntity instanceof Buffer)) {\n value = this.referencedColumn.getEntityValue(relatedEntity);\n\n } else if (embeddedObject[this.propertyName] && embeddedObject[this.propertyName] instanceof Object && !(embeddedObject[this.propertyName] instanceof FindOperator) && !(embeddedObject[this.propertyName] instanceof Buffer) && !(embeddedObject[this.propertyName] instanceof Date)) {\n value = this.referencedColumn.getEntityValue(embeddedObject[this.propertyName]);\n\n } else {\n value = embeddedObject[this.propertyName];\n\n }\n\n } else if (this.referencedColumn) {\n value = this.referencedColumn.getEntityValue(embeddedObject[this.propertyName]);\n\n } else if (isEmbeddedArray && Array.isArray(embeddedObject)) {\n value = embeddedObject.map(o => o[this.propertyName]);\n } else {\n value = embeddedObject[this.propertyName];\n }\n }\n\n } else { // no embeds - no problems. Simply return column name by property name of the entity\n if (this.relationMetadata && this.referencedColumn) {\n const relatedEntity = this.relationMetadata.getEntityValue(entity);\n if (relatedEntity && relatedEntity instanceof Object && !(relatedEntity instanceof FindOperator) && !(relatedEntity instanceof Function) && !(relatedEntity instanceof Buffer)) {\n value = this.referencedColumn.getEntityValue(relatedEntity);\n\n } else if (entity[this.propertyName] && entity[this.propertyName] instanceof Object && !(entity[this.propertyName] instanceof FindOperator) && !(entity[this.propertyName] instanceof Function) && !(entity[this.propertyName] instanceof Buffer) && !(entity[this.propertyName] instanceof Date)) {\n value = this.referencedColumn.getEntityValue(entity[this.propertyName]);\n\n } else {\n value = entity[this.propertyName];\n }\n\n } else if (this.referencedColumn) {\n value = this.referencedColumn.getEntityValue(entity[this.propertyName]);\n\n } else {\n value = entity[this.propertyName];\n }\n }\n\n if (transform && this.transformer)\n value = ApplyValueTransformers.transformTo(this.transformer, value);\n\n return value;\n }\n\n /**\n * Sets given entity's column value.\n * Using of this method helps to set entity relation's value of the lazy and non-lazy relations.\n */\n setEntityValue(entity: ObjectLiteral, value: any): void {\n if (this.embeddedMetadata) {\n\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const extractEmbeddedColumnValue = (embeddedMetadatas: EmbeddedMetadata[], map: ObjectLiteral): any => {\n // if (!object[embeddedMetadata.propertyName])\n // object[embeddedMetadata.propertyName] = embeddedMetadata.create();\n\n const embeddedMetadata = embeddedMetadatas.shift();\n if (embeddedMetadata) {\n if (!map[embeddedMetadata.propertyName])\n map[embeddedMetadata.propertyName] = embeddedMetadata.create();\n\n extractEmbeddedColumnValue(embeddedMetadatas, map[embeddedMetadata.propertyName]);\n return map;\n }\n map[this.propertyName] = value;\n return map;\n };\n return extractEmbeddedColumnValue([...this.embeddedMetadata.embeddedMetadataTree], entity);\n\n } else {\n // we write a deep object in this entity only if the column is virtual\n // because if its not virtual it means the user defined a real column for this relation\n // also we don't do it if column is inside a junction table\n if (!this.entityMetadata.isJunction && this.isVirtual && this.referencedColumn && this.referencedColumn.propertyName !== this.propertyName) {\n if (!(this.propertyName in entity)) {\n entity[this.propertyName] = {};\n }\n\n entity[this.propertyName][this.referencedColumn.propertyName] = value;\n } else {\n entity[this.propertyName] = value;\n }\n }\n }\n\n // ---------------------------------------------------------------------\n // Builder Methods\n // ---------------------------------------------------------------------\n\n build(connection: Connection): this {\n this.propertyPath = this.buildPropertyPath();\n this.propertyAliasName = this.propertyPath.replace(\".\", \"_\");\n this.databaseName = this.buildDatabaseName(connection);\n this.databasePath = this.buildDatabasePath();\n this.databaseNameWithoutPrefixes = connection.namingStrategy.columnName(this.propertyName, this.givenDatabaseName, []);\n return this;\n }\n\n protected buildPropertyPath(): string {\n let path = \"\";\n if (this.embeddedMetadata && this.embeddedMetadata.parentPropertyNames.length)\n path = this.embeddedMetadata.parentPropertyNames.join(\".\") + \".\";\n\n path += this.propertyName;\n\n // we add reference column to property path only if this column is virtual\n // because if its not virtual it means user defined a real column for this relation\n // also we don't do it if column is inside a junction table\n if (!this.entityMetadata.isJunction && this.isVirtual && this.referencedColumn && this.referencedColumn.propertyName !== this.propertyName)\n path += \".\" + this.referencedColumn.propertyName;\n\n return path;\n }\n\n protected buildDatabasePath(): string {\n let path = \"\";\n if (this.embeddedMetadata && this.embeddedMetadata.parentPropertyNames.length)\n path = this.embeddedMetadata.parentPropertyNames.join(\".\") + \".\";\n\n path += this.databaseName;\n\n // we add reference column to property path only if this column is virtual\n // because if its not virtual it means user defined a real column for this relation\n // also we don't do it if column is inside a junction table\n if (!this.entityMetadata.isJunction && this.isVirtual && this.referencedColumn && this.referencedColumn.databaseName !== this.databaseName)\n path += \".\" + this.referencedColumn.databaseName;\n\n return path;\n }\n\n protected buildDatabaseName(connection: Connection): string {\n let propertyNames = this.embeddedMetadata ? this.embeddedMetadata.parentPrefixes : [];\n if (connection.driver instanceof MongoDriver) // we don't need to include embedded name for the mongodb column names\n propertyNames = [];\n return connection.namingStrategy.columnName(this.propertyName, this.givenDatabaseName, propertyNames);\n }\n\n}\n"],"sourceRoot":".."}
@@ -3,6 +3,7 @@ import { Table } from "../schema-builder/table/Table";
3
3
  import { Migration } from "./Migration";
4
4
  import { SqlServerDriver } from "../driver/sqlserver/SqlServerDriver";
5
5
  import { MssqlParameter } from "../driver/sqlserver/MssqlParameter";
6
+ import { RdbmsSchemaBuilder } from "../schema-builder/RdbmsSchemaBuilder";
6
7
  import { MongoDriver } from "../driver/mongodb/MongoDriver";
7
8
  import { TypeORMError } from "../error";
8
9
  /**
@@ -191,7 +192,7 @@ var MigrationExecutor = /** @class */ (function () {
191
192
  */
192
193
  MigrationExecutor.prototype.executePendingMigrations = function () {
193
194
  return __awaiter(this, void 0, void 0, function () {
194
- var queryRunner, executedMigrations, lastTimeExecutedMigration, allMigrations, successMigrations, pendingMigrations, transactionStartedByUs, _loop_2, this_2, pendingMigrations_1, pendingMigrations_1_1, migration, e_2_1, err_1, rollbackError_1;
195
+ var queryRunner, schemaBuilder, executedMigrations, lastTimeExecutedMigration, allMigrations, successMigrations, pendingMigrations, transactionStartedByUs, _loop_2, this_2, pendingMigrations_1, pendingMigrations_1_1, migration, e_2_1, err_1, rollbackError_1;
195
196
  var e_2, _a;
196
197
  var _this = this;
197
198
  return __generator(this, function (_b) {
@@ -203,8 +204,14 @@ var MigrationExecutor = /** @class */ (function () {
203
204
  case 1:
204
205
  // create migrations table if its not created yet
205
206
  _b.sent();
206
- return [4 /*yield*/, this.loadExecutedMigrations(queryRunner)];
207
+ schemaBuilder = this.connection.driver.createSchemaBuilder();
208
+ if (!(schemaBuilder instanceof RdbmsSchemaBuilder)) return [3 /*break*/, 3];
209
+ return [4 /*yield*/, schemaBuilder.createMetadataTableIfNecessary(queryRunner)];
207
210
  case 2:
211
+ _b.sent();
212
+ _b.label = 3;
213
+ case 3: return [4 /*yield*/, this.loadExecutedMigrations(queryRunner)];
214
+ case 4:
208
215
  executedMigrations = _b.sent();
209
216
  lastTimeExecutedMigration = this.getLatestTimestampMigration(executedMigrations);
210
217
  allMigrations = this.getMigrations();
@@ -220,15 +227,15 @@ var MigrationExecutor = /** @class */ (function () {
220
227
  // every check is passed means that migration was not run yet and we need to run it
221
228
  return true;
222
229
  });
223
- if (!!pendingMigrations.length) return [3 /*break*/, 5];
230
+ if (!!pendingMigrations.length) return [3 /*break*/, 7];
224
231
  this.connection.logger.logSchemaBuild("No migrations are pending");
225
- if (!!this.queryRunner) return [3 /*break*/, 4];
232
+ if (!!this.queryRunner) return [3 /*break*/, 6];
226
233
  return [4 /*yield*/, queryRunner.release()];
227
- case 3:
228
- _b.sent();
229
- _b.label = 4;
230
- case 4: return [2 /*return*/, []];
231
234
  case 5:
235
+ _b.sent();
236
+ _b.label = 6;
237
+ case 6: return [2 /*return*/, []];
238
+ case 7:
232
239
  // log information about migration execution
233
240
  this.connection.logger.logSchemaBuild(executedMigrations.length + " migrations are already loaded in the database.");
234
241
  this.connection.logger.logSchemaBuild(allMigrations.length + " migrations were found in the source code.");
@@ -236,14 +243,14 @@ var MigrationExecutor = /** @class */ (function () {
236
243
  this.connection.logger.logSchemaBuild(lastTimeExecutedMigration.name + " is the last executed migration. It was executed on " + new Date(lastTimeExecutedMigration.timestamp).toString() + ".");
237
244
  this.connection.logger.logSchemaBuild(pendingMigrations.length + " migrations are new migrations that needs to be executed.");
238
245
  transactionStartedByUs = false;
239
- if (!(this.transaction === "all" && !queryRunner.isTransactionActive)) return [3 /*break*/, 7];
246
+ if (!(this.transaction === "all" && !queryRunner.isTransactionActive)) return [3 /*break*/, 9];
240
247
  return [4 /*yield*/, queryRunner.startTransaction()];
241
- case 6:
248
+ case 8:
242
249
  _b.sent();
243
250
  transactionStartedByUs = true;
244
- _b.label = 7;
245
- case 7:
246
- _b.trys.push([7, 18, 23, 26]);
251
+ _b.label = 9;
252
+ case 9:
253
+ _b.trys.push([9, 20, 25, 28]);
247
254
  _loop_2 = function (migration) {
248
255
  return __generator(this, function (_c) {
249
256
  switch (_c.label) {
@@ -286,61 +293,61 @@ var MigrationExecutor = /** @class */ (function () {
286
293
  });
287
294
  };
288
295
  this_2 = this;
289
- _b.label = 8;
290
- case 8:
291
- _b.trys.push([8, 13, 14, 15]);
296
+ _b.label = 10;
297
+ case 10:
298
+ _b.trys.push([10, 15, 16, 17]);
292
299
  pendingMigrations_1 = __values(pendingMigrations), pendingMigrations_1_1 = pendingMigrations_1.next();
293
- _b.label = 9;
294
- case 9:
295
- if (!!pendingMigrations_1_1.done) return [3 /*break*/, 12];
300
+ _b.label = 11;
301
+ case 11:
302
+ if (!!pendingMigrations_1_1.done) return [3 /*break*/, 14];
296
303
  migration = pendingMigrations_1_1.value;
297
304
  return [5 /*yield**/, _loop_2(migration)];
298
- case 10:
305
+ case 12:
299
306
  _b.sent();
300
- _b.label = 11;
301
- case 11:
302
- pendingMigrations_1_1 = pendingMigrations_1.next();
303
- return [3 /*break*/, 9];
304
- case 12: return [3 /*break*/, 15];
307
+ _b.label = 13;
305
308
  case 13:
309
+ pendingMigrations_1_1 = pendingMigrations_1.next();
310
+ return [3 /*break*/, 11];
311
+ case 14: return [3 /*break*/, 17];
312
+ case 15:
306
313
  e_2_1 = _b.sent();
307
314
  e_2 = { error: e_2_1 };
308
- return [3 /*break*/, 15];
309
- case 14:
315
+ return [3 /*break*/, 17];
316
+ case 16:
310
317
  try {
311
318
  if (pendingMigrations_1_1 && !pendingMigrations_1_1.done && (_a = pendingMigrations_1.return)) _a.call(pendingMigrations_1);
312
319
  }
313
320
  finally { if (e_2) throw e_2.error; }
314
321
  return [7 /*endfinally*/];
315
- case 15:
316
- if (!(this.transaction === "all" && transactionStartedByUs)) return [3 /*break*/, 17];
322
+ case 17:
323
+ if (!(this.transaction === "all" && transactionStartedByUs)) return [3 /*break*/, 19];
317
324
  return [4 /*yield*/, queryRunner.commitTransaction()];
318
- case 16:
319
- _b.sent();
320
- _b.label = 17;
321
- case 17: return [3 /*break*/, 26];
322
325
  case 18:
323
- err_1 = _b.sent();
324
- if (!transactionStartedByUs) return [3 /*break*/, 22];
326
+ _b.sent();
325
327
  _b.label = 19;
326
- case 19:
327
- _b.trys.push([19, 21, , 22]);
328
- return [4 /*yield*/, queryRunner.rollbackTransaction()];
328
+ case 19: return [3 /*break*/, 28];
329
329
  case 20:
330
- _b.sent();
331
- return [3 /*break*/, 22];
330
+ err_1 = _b.sent();
331
+ if (!transactionStartedByUs) return [3 /*break*/, 24];
332
+ _b.label = 21;
332
333
  case 21:
333
- rollbackError_1 = _b.sent();
334
- return [3 /*break*/, 22];
335
- case 22: throw err_1;
334
+ _b.trys.push([21, 23, , 24]);
335
+ return [4 /*yield*/, queryRunner.rollbackTransaction()];
336
+ case 22:
337
+ _b.sent();
338
+ return [3 /*break*/, 24];
336
339
  case 23:
337
- if (!!this.queryRunner) return [3 /*break*/, 25];
340
+ rollbackError_1 = _b.sent();
341
+ return [3 /*break*/, 24];
342
+ case 24: throw err_1;
343
+ case 25:
344
+ if (!!this.queryRunner) return [3 /*break*/, 27];
338
345
  return [4 /*yield*/, queryRunner.release()];
339
- case 24:
346
+ case 26:
340
347
  _b.sent();
341
- _b.label = 25;
342
- case 25: return [7 /*endfinally*/];
343
- case 26: return [2 /*return*/, successMigrations];
348
+ _b.label = 27;
349
+ case 27: return [7 /*endfinally*/];
350
+ case 28: return [2 /*return*/, successMigrations];
344
351
  }
345
352
  });
346
353
  });