typeorm 1.0.0-beta.1 → 1.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/cache/DbQueryResultCache.d.ts +7 -0
- package/browser/cache/DbQueryResultCache.js +12 -4
- package/browser/cache/DbQueryResultCache.js.map +1 -1
- package/browser/cache/RedisQueryResultCache.d.ts +7 -0
- package/browser/cache/RedisQueryResultCache.js +15 -10
- package/browser/cache/RedisQueryResultCache.js.map +1 -1
- package/browser/cli-ts-node-esm.js +2 -2
- package/browser/cli-ts-node-esm.js.map +1 -1
- package/browser/common/RelationType.d.ts +2 -0
- package/browser/common/RelationType.js.map +1 -1
- package/browser/connection/ConnectionMetadataBuilder.d.ts +3 -0
- package/browser/connection/ConnectionMetadataBuilder.js +3 -0
- package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
- package/browser/connection/ConnectionOptionsReader.d.ts +5 -4
- package/browser/connection/ConnectionOptionsReader.js +14 -12
- package/browser/connection/ConnectionOptionsReader.js.map +1 -1
- package/browser/data-source/BaseDataSourceOptions.d.ts +8 -0
- package/browser/data-source/BaseDataSourceOptions.js.map +1 -1
- package/browser/data-source/DataSource.d.ts +20 -1
- package/browser/data-source/DataSource.js +37 -15
- package/browser/data-source/DataSource.js.map +1 -1
- package/browser/decorator/Check.d.ts +2 -0
- package/browser/decorator/Check.js +2 -1
- package/browser/decorator/Check.js.map +1 -1
- package/browser/decorator/Exclusion.d.ts +2 -0
- package/browser/decorator/Exclusion.js +1 -0
- package/browser/decorator/Exclusion.js.map +1 -1
- package/browser/decorator/ForeignKey.d.ts +3 -0
- package/browser/decorator/ForeignKey.js +1 -0
- package/browser/decorator/ForeignKey.js.map +1 -1
- package/browser/decorator/Generated.d.ts +1 -0
- package/browser/decorator/Generated.js +1 -0
- package/browser/decorator/Generated.js.map +1 -1
- package/browser/decorator/Index.d.ts +7 -0
- package/browser/decorator/Index.js +13 -13
- package/browser/decorator/Index.js.map +1 -1
- package/browser/decorator/Unique.d.ts +4 -0
- package/browser/decorator/Unique.js +6 -6
- package/browser/decorator/Unique.js.map +1 -1
- package/browser/decorator/columns/Column.d.ts +11 -0
- package/browser/decorator/columns/Column.js +3 -3
- package/browser/decorator/columns/Column.js.map +1 -1
- package/browser/decorator/columns/CreateDateColumn.d.ts +1 -0
- package/browser/decorator/columns/CreateDateColumn.js +2 -1
- package/browser/decorator/columns/CreateDateColumn.js.map +1 -1
- package/browser/decorator/columns/DeleteDateColumn.d.ts +1 -0
- package/browser/decorator/columns/DeleteDateColumn.js +2 -1
- package/browser/decorator/columns/DeleteDateColumn.js.map +1 -1
- package/browser/decorator/columns/ObjectIdColumn.d.ts +1 -0
- package/browser/decorator/columns/ObjectIdColumn.js +3 -4
- package/browser/decorator/columns/ObjectIdColumn.js.map +1 -1
- package/browser/decorator/columns/PrimaryColumn.d.ts +2 -0
- package/browser/decorator/columns/PrimaryColumn.js +2 -2
- package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
- package/browser/decorator/columns/PrimaryGeneratedColumn.d.ts +4 -0
- package/browser/decorator/columns/PrimaryGeneratedColumn.js +1 -0
- package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
- package/browser/decorator/columns/UpdateDateColumn.d.ts +1 -0
- package/browser/decorator/columns/UpdateDateColumn.js +2 -1
- package/browser/decorator/columns/UpdateDateColumn.js.map +1 -1
- package/browser/decorator/columns/VersionColumn.d.ts +1 -0
- package/browser/decorator/columns/VersionColumn.js +2 -1
- package/browser/decorator/columns/VersionColumn.js.map +1 -1
- package/browser/decorator/columns/ViewColumn.d.ts +1 -0
- package/browser/decorator/columns/ViewColumn.js +2 -1
- package/browser/decorator/columns/ViewColumn.js.map +1 -1
- package/browser/decorator/columns/VirtualColumn.d.ts +2 -0
- package/browser/decorator/columns/VirtualColumn.js +1 -0
- package/browser/decorator/columns/VirtualColumn.js.map +1 -1
- package/browser/decorator/entity/ChildEntity.d.ts +1 -0
- package/browser/decorator/entity/ChildEntity.js +1 -0
- package/browser/decorator/entity/ChildEntity.js.map +1 -1
- package/browser/decorator/entity/Entity.d.ts +2 -0
- package/browser/decorator/entity/Entity.js +7 -6
- package/browser/decorator/entity/Entity.js.map +1 -1
- package/browser/decorator/entity/TableInheritance.d.ts +1 -0
- package/browser/decorator/entity/TableInheritance.js +3 -2
- package/browser/decorator/entity/TableInheritance.js.map +1 -1
- package/browser/decorator/entity-view/ViewEntity.d.ts +2 -0
- package/browser/decorator/entity-view/ViewEntity.js +4 -3
- package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
- package/browser/decorator/options/ColumnOptions.d.ts +3 -0
- package/browser/decorator/options/ColumnOptions.js.map +1 -1
- package/browser/decorator/options/EntityOptions.d.ts +1 -0
- package/browser/decorator/options/EntityOptions.js.map +1 -1
- package/browser/decorator/options/RelationOptions.d.ts +2 -0
- package/browser/decorator/options/RelationOptions.js.map +1 -1
- package/browser/decorator/options/VirtualColumnOptions.d.ts +1 -0
- package/browser/decorator/options/VirtualColumnOptions.js.map +1 -1
- package/browser/decorator/relations/JoinColumn.d.ts +2 -0
- package/browser/decorator/relations/JoinColumn.js +2 -1
- package/browser/decorator/relations/JoinColumn.js.map +1 -1
- package/browser/decorator/relations/JoinTable.d.ts +2 -0
- package/browser/decorator/relations/JoinTable.js +5 -4
- package/browser/decorator/relations/JoinTable.js.map +1 -1
- package/browser/decorator/relations/ManyToMany.d.ts +2 -0
- package/browser/decorator/relations/ManyToMany.js +2 -2
- package/browser/decorator/relations/ManyToMany.js.map +1 -1
- package/browser/decorator/relations/ManyToOne.d.ts +2 -0
- package/browser/decorator/relations/ManyToOne.js +3 -3
- package/browser/decorator/relations/ManyToOne.js.map +1 -1
- package/browser/decorator/relations/OneToMany.d.ts +1 -0
- package/browser/decorator/relations/OneToMany.js +3 -3
- package/browser/decorator/relations/OneToMany.js.map +1 -1
- package/browser/decorator/relations/OneToOne.d.ts +2 -0
- package/browser/decorator/relations/OneToOne.js +3 -3
- package/browser/decorator/relations/OneToOne.js.map +1 -1
- package/browser/decorator/relations/RelationId.d.ts +1 -0
- package/browser/decorator/relations/RelationId.js +1 -0
- package/browser/decorator/relations/RelationId.js.map +1 -1
- package/browser/decorator/tree/Tree.d.ts +1 -0
- package/browser/decorator/tree/Tree.js +1 -0
- package/browser/decorator/tree/Tree.js.map +1 -1
- package/browser/decorator/tree/TreeChildren.d.ts +1 -0
- package/browser/decorator/tree/TreeChildren.js +3 -3
- package/browser/decorator/tree/TreeChildren.js.map +1 -1
- package/browser/decorator/tree/TreeParent.d.ts +1 -0
- package/browser/decorator/tree/TreeParent.js +3 -3
- package/browser/decorator/tree/TreeParent.js.map +1 -1
- package/browser/driver/Driver.d.ts +5 -0
- package/browser/driver/Driver.js.map +1 -1
- package/browser/driver/DriverFactory.d.ts +1 -0
- package/browser/driver/DriverFactory.js +1 -0
- package/browser/driver/DriverFactory.js.map +1 -1
- package/browser/driver/DriverUtils.d.ts +7 -0
- package/browser/driver/DriverUtils.js +34 -21
- package/browser/driver/DriverUtils.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts +1 -0
- package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlDataSourceOptions.d.ts +1 -0
- package/browser/driver/aurora-mysql/AuroraMysqlDataSourceOptions.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.d.ts +37 -0
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.js +53 -16
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +64 -0
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +90 -30
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
- package/browser/driver/aurora-postgres/AuroraPostgresDriver.d.ts +13 -0
- package/browser/driver/aurora-postgres/AuroraPostgresDriver.js +26 -5
- package/browser/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
- package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +3 -0
- package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js +27 -1
- package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
- package/browser/driver/better-sqlite3/BetterSqlite3DataSourceOptions.d.ts +1 -0
- package/browser/driver/better-sqlite3/BetterSqlite3DataSourceOptions.js.map +1 -1
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.d.ts +3 -0
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +5 -3
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
- package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +1 -0
- package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +1 -0
- package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
- package/browser/driver/capacitor/CapacitorDriver.d.ts +1 -0
- package/browser/driver/capacitor/CapacitorDriver.js +3 -3
- package/browser/driver/capacitor/CapacitorDriver.js.map +1 -1
- package/browser/driver/capacitor/CapacitorQueryRunner.d.ts +2 -0
- package/browser/driver/capacitor/CapacitorQueryRunner.js +4 -2
- package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachDataSourceOptions.d.ts +1 -0
- package/browser/driver/cockroachdb/CockroachDataSourceOptions.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachDriver.d.ts +35 -0
- package/browser/driver/cockroachdb/CockroachDriver.js +64 -29
- package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +74 -0
- package/browser/driver/cockroachdb/CockroachQueryRunner.js +143 -119
- package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/browser/driver/cordova/CordovaDriver.d.ts +6 -0
- package/browser/driver/cordova/CordovaDriver.js +14 -4
- package/browser/driver/cordova/CordovaDriver.js.map +1 -1
- package/browser/driver/cordova/CordovaQueryRunner.d.ts +2 -0
- package/browser/driver/cordova/CordovaQueryRunner.js +3 -1
- package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
- package/browser/driver/expo/ExpoDriver.js +1 -2
- package/browser/driver/expo/ExpoDriver.js.map +1 -1
- package/browser/driver/mongodb/MongoDriver.d.ts +25 -0
- package/browser/driver/mongodb/MongoDriver.js +35 -6
- package/browser/driver/mongodb/MongoDriver.js.map +1 -1
- package/browser/driver/mongodb/MongoQueryRunner.d.ts +84 -0
- package/browser/driver/mongodb/MongoQueryRunner.js +102 -18
- package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/browser/driver/mongodb/bson.typings.d.ts +1 -0
- package/browser/driver/mongodb/bson.typings.js.map +1 -1
- package/browser/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +1 -0
- package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/mysql/MysqlDataSourceOptions.d.ts +2 -0
- package/browser/driver/mysql/MysqlDataSourceOptions.js.map +1 -1
- package/browser/driver/mysql/MysqlDriver.d.ts +37 -0
- package/browser/driver/mysql/MysqlDriver.js +57 -17
- package/browser/driver/mysql/MysqlDriver.js.map +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.d.ts +64 -0
- package/browser/driver/mysql/MysqlQueryRunner.js +140 -111
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/browser/driver/nativescript/NativescriptDriver.d.ts +1 -0
- package/browser/driver/nativescript/NativescriptDriver.js +3 -4
- package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
- package/browser/driver/nativescript/NativescriptQueryRunner.d.ts +2 -0
- package/browser/driver/nativescript/NativescriptQueryRunner.js +3 -1
- package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
- package/browser/driver/oracle/OracleDriver.d.ts +32 -0
- package/browser/driver/oracle/OracleDriver.js +48 -15
- package/browser/driver/oracle/OracleDriver.js.map +1 -1
- package/browser/driver/oracle/OracleQueryRunner.d.ts +66 -0
- package/browser/driver/oracle/OracleQueryRunner.js +119 -83
- package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/browser/driver/postgres/PostgresDataSourceOptions.d.ts +2 -0
- package/browser/driver/postgres/PostgresDataSourceOptions.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.d.ts +37 -0
- package/browser/driver/postgres/PostgresDriver.js +67 -31
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.d.ts +81 -0
- package/browser/driver/postgres/PostgresQueryRunner.js +152 -121
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/react-native/ReactNativeDriver.d.ts +29 -0
- package/browser/driver/react-native/ReactNativeDriver.js +45 -12
- package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
- package/browser/driver/react-native/ReactNativeQueryRunner.d.ts +2 -0
- package/browser/driver/react-native/ReactNativeQueryRunner.js +3 -1
- package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
- package/browser/driver/sap/SapDataSourceOptions.d.ts +1 -0
- package/browser/driver/sap/SapDataSourceOptions.js.map +1 -1
- package/browser/driver/sap/SapDriver.d.ts +30 -0
- package/browser/driver/sap/SapDriver.js +45 -11
- package/browser/driver/sap/SapDriver.js.map +1 -1
- package/browser/driver/sap/SapQueryRunner.d.ts +66 -0
- package/browser/driver/sap/SapQueryRunner.js +101 -56
- package/browser/driver/sap/SapQueryRunner.js.map +1 -1
- package/browser/driver/spanner/SpannerDataSourceOptions.d.ts +1 -0
- package/browser/driver/spanner/SpannerDataSourceOptions.js.map +1 -1
- package/browser/driver/spanner/SpannerDriver.d.ts +33 -0
- package/browser/driver/spanner/SpannerDriver.js +50 -10
- package/browser/driver/spanner/SpannerDriver.js.map +1 -1
- package/browser/driver/spanner/SpannerQueryRunner.d.ts +64 -0
- package/browser/driver/spanner/SpannerQueryRunner.js +89 -32
- package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +30 -0
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +43 -77
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +59 -0
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +89 -45
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqljs/SqljsDriver.d.ts +5 -0
- package/browser/driver/sqljs/SqljsDriver.js +8 -4
- package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
- package/browser/driver/sqljs/SqljsQueryRunner.d.ts +1 -0
- package/browser/driver/sqljs/SqljsQueryRunner.js +1 -0
- package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/MssqlParameter.d.ts +1 -0
- package/browser/driver/sqlserver/MssqlParameter.js +1 -0
- package/browser/driver/sqlserver/MssqlParameter.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerDataSourceOptions.d.ts +14 -5
- package/browser/driver/sqlserver/SqlServerDataSourceOptions.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerDriver.d.ts +42 -0
- package/browser/driver/sqlserver/SqlServerDriver.js +100 -26
- package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +76 -10
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +160 -163
- package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/browser/driver/types/IsolationLevel.d.ts +2 -1
- package/browser/driver/types/IsolationLevel.js +8 -0
- package/browser/driver/types/IsolationLevel.js.map +1 -1
- package/browser/driver/validate-isolation-level.d.ts +9 -0
- package/browser/driver/validate-isolation-level.js +23 -0
- package/browser/driver/validate-isolation-level.js.map +1 -0
- package/browser/entity-manager/EntityManager.d.ts +38 -1
- package/browser/entity-manager/EntityManager.js +58 -12
- package/browser/entity-manager/EntityManager.js.map +1 -1
- package/browser/entity-manager/EntityManagerFactory.d.ts +1 -0
- package/browser/entity-manager/EntityManagerFactory.js +1 -0
- package/browser/entity-manager/EntityManagerFactory.js.map +1 -1
- package/browser/entity-manager/MongoEntityManager.d.ts +54 -1
- package/browser/entity-manager/MongoEntityManager.js +103 -12
- package/browser/entity-manager/MongoEntityManager.js.map +1 -1
- package/browser/entity-manager/SqljsEntityManager.d.ts +2 -0
- package/browser/entity-manager/SqljsEntityManager.js +2 -0
- package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
- package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +1 -0
- package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaOptions.d.ts +1 -0
- package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaTransformer.d.ts +1 -0
- package/browser/entity-schema/EntitySchemaTransformer.js +25 -26
- package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/browser/error/InitializedRelationError.d.ts +1 -0
- package/browser/error/InitializedRelationError.js +1 -0
- package/browser/error/InitializedRelationError.js.map +1 -1
- package/browser/find-options/FindOptionsUtils.d.ts +7 -0
- package/browser/find-options/FindOptionsUtils.js +7 -0
- package/browser/find-options/FindOptionsUtils.js.map +1 -1
- package/browser/find-options/OrderByCondition.d.ts +2 -1
- package/browser/find-options/OrderByCondition.js.map +1 -1
- package/browser/find-options/operator/Any.d.ts +4 -1
- package/browser/find-options/operator/Any.js +4 -1
- package/browser/find-options/operator/Any.js.map +1 -1
- package/browser/find-options/operator/ArrayContainedBy.d.ts +4 -1
- package/browser/find-options/operator/ArrayContainedBy.js +4 -1
- package/browser/find-options/operator/ArrayContainedBy.js.map +1 -1
- package/browser/find-options/operator/ArrayContains.d.ts +4 -1
- package/browser/find-options/operator/ArrayContains.js +4 -1
- package/browser/find-options/operator/ArrayContains.js.map +1 -1
- package/browser/find-options/operator/ArrayOverlap.d.ts +4 -1
- package/browser/find-options/operator/ArrayOverlap.js +4 -1
- package/browser/find-options/operator/ArrayOverlap.js.map +1 -1
- package/browser/find-options/operator/Between.d.ts +4 -1
- package/browser/find-options/operator/Between.js +4 -1
- package/browser/find-options/operator/Between.js.map +1 -1
- package/browser/find-options/operator/Equal.d.ts +6 -3
- package/browser/find-options/operator/Equal.js +6 -3
- package/browser/find-options/operator/Equal.js.map +1 -1
- package/browser/find-options/operator/ILike.d.ts +4 -1
- package/browser/find-options/operator/ILike.js +4 -1
- package/browser/find-options/operator/ILike.js.map +1 -1
- package/browser/find-options/operator/In.d.ts +4 -1
- package/browser/find-options/operator/In.js +4 -1
- package/browser/find-options/operator/In.js.map +1 -1
- package/browser/find-options/operator/IsNull.d.ts +4 -1
- package/browser/find-options/operator/IsNull.js +4 -1
- package/browser/find-options/operator/IsNull.js.map +1 -1
- package/browser/find-options/operator/JsonContains.d.ts +4 -1
- package/browser/find-options/operator/JsonContains.js +4 -1
- package/browser/find-options/operator/JsonContains.js.map +1 -1
- package/browser/find-options/operator/LessThan.d.ts +4 -1
- package/browser/find-options/operator/LessThan.js +4 -1
- package/browser/find-options/operator/LessThan.js.map +1 -1
- package/browser/find-options/operator/LessThanOrEqual.d.ts +4 -1
- package/browser/find-options/operator/LessThanOrEqual.js +4 -1
- package/browser/find-options/operator/LessThanOrEqual.js.map +1 -1
- package/browser/find-options/operator/Like.d.ts +4 -1
- package/browser/find-options/operator/Like.js +4 -1
- package/browser/find-options/operator/Like.js.map +1 -1
- package/browser/find-options/operator/MoreThan.d.ts +4 -1
- package/browser/find-options/operator/MoreThan.js +4 -1
- package/browser/find-options/operator/MoreThan.js.map +1 -1
- package/browser/find-options/operator/MoreThanOrEqual.d.ts +4 -1
- package/browser/find-options/operator/MoreThanOrEqual.js +4 -1
- package/browser/find-options/operator/MoreThanOrEqual.js.map +1 -1
- package/browser/find-options/operator/Not.d.ts +4 -1
- package/browser/find-options/operator/Not.js +4 -1
- package/browser/find-options/operator/Not.js.map +1 -1
- package/browser/find-options/operator/Raw.d.ts +12 -3
- package/browser/find-options/operator/Raw.js.map +1 -1
- package/browser/globals.js +1 -2
- package/browser/globals.js.map +1 -1
- package/browser/logger/AbstractLogger.d.ts +9 -0
- package/browser/logger/AbstractLogger.js +10 -2
- package/browser/logger/AbstractLogger.js.map +1 -1
- package/browser/logger/AdvancedConsoleLogger.d.ts +1 -0
- package/browser/logger/AdvancedConsoleLogger.js +1 -0
- package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
- package/browser/logger/DebugLogger.d.ts +2 -0
- package/browser/logger/DebugLogger.js +3 -1
- package/browser/logger/DebugLogger.js.map +1 -1
- package/browser/logger/FileLogger.d.ts +13 -2
- package/browser/logger/FileLogger.js +4 -5
- package/browser/logger/FileLogger.js.map +1 -1
- package/browser/logger/FormattedConsoleLogger.d.ts +1 -0
- package/browser/logger/FormattedConsoleLogger.js +1 -0
- package/browser/logger/FormattedConsoleLogger.js.map +1 -1
- package/browser/logger/LoggerFactory.d.ts +1 -0
- package/browser/logger/LoggerFactory.js +1 -0
- package/browser/logger/LoggerFactory.js.map +1 -1
- package/browser/logger/LoggerOptions.d.ts +0 -9
- package/browser/logger/LoggerOptions.js.map +1 -1
- package/browser/logger/SimpleConsoleLogger.d.ts +1 -0
- package/browser/logger/SimpleConsoleLogger.js +1 -0
- package/browser/logger/SimpleConsoleLogger.js.map +1 -1
- package/browser/metadata/CheckMetadata.d.ts +1 -0
- package/browser/metadata/CheckMetadata.js +4 -3
- package/browser/metadata/CheckMetadata.js.map +1 -1
- package/browser/metadata/ColumnMetadata.d.ts +8 -5
- package/browser/metadata/ColumnMetadata.js +17 -25
- package/browser/metadata/ColumnMetadata.js.map +1 -1
- package/browser/metadata/EmbeddedMetadata.d.ts +1 -0
- package/browser/metadata/EmbeddedMetadata.js +1 -0
- package/browser/metadata/EmbeddedMetadata.js.map +1 -1
- package/browser/metadata/EntityListenerMetadata.d.ts +3 -0
- package/browser/metadata/EntityListenerMetadata.js +3 -0
- package/browser/metadata/EntityListenerMetadata.js.map +1 -1
- package/browser/metadata/EntityMetadata.d.ts +25 -5
- package/browser/metadata/EntityMetadata.js +32 -12
- package/browser/metadata/EntityMetadata.js.map +1 -1
- package/browser/metadata/ExclusionMetadata.d.ts +1 -0
- package/browser/metadata/ExclusionMetadata.js +4 -3
- package/browser/metadata/ExclusionMetadata.js.map +1 -1
- package/browser/metadata/ForeignKeyMetadata.d.ts +1 -0
- package/browser/metadata/ForeignKeyMetadata.js +6 -5
- package/browser/metadata/ForeignKeyMetadata.js.map +1 -1
- package/browser/metadata/IndexMetadata.d.ts +1 -0
- package/browser/metadata/IndexMetadata.js +4 -3
- package/browser/metadata/IndexMetadata.js.map +1 -1
- package/browser/metadata/RelationIdMetadata.d.ts +1 -0
- package/browser/metadata/RelationIdMetadata.js +1 -0
- package/browser/metadata/RelationIdMetadata.js.map +1 -1
- package/browser/metadata/RelationMetadata.d.ts +8 -0
- package/browser/metadata/RelationMetadata.js +15 -15
- package/browser/metadata/RelationMetadata.js.map +1 -1
- package/browser/metadata/UniqueMetadata.d.ts +1 -0
- package/browser/metadata/UniqueMetadata.js +4 -3
- package/browser/metadata/UniqueMetadata.js.map +1 -1
- package/browser/metadata-args/MetadataArgsStorage.d.ts +4 -0
- package/browser/metadata-args/MetadataArgsStorage.js +4 -0
- package/browser/metadata-args/MetadataArgsStorage.js.map +1 -1
- package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +1 -0
- package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +7 -11
- package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataBuilder.d.ts +7 -0
- package/browser/metadata-builder/EntityMetadataBuilder.js +11 -6
- package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataValidator.d.ts +4 -0
- package/browser/metadata-builder/EntityMetadataValidator.js +6 -43
- package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.d.ts +3 -0
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +39 -20
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/MetadataUtils.d.ts +3 -0
- package/browser/metadata-builder/MetadataUtils.js +4 -1
- package/browser/metadata-builder/MetadataUtils.js.map +1 -1
- package/browser/metadata-builder/RelationJoinColumnBuilder.d.ts +3 -0
- package/browser/metadata-builder/RelationJoinColumnBuilder.js +17 -1
- package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/browser/migration/MigrationExecutor.d.ts +9 -0
- package/browser/migration/MigrationExecutor.js +16 -7
- package/browser/migration/MigrationExecutor.js.map +1 -1
- package/browser/naming-strategy/DefaultNamingStrategy.d.ts +3 -0
- package/browser/naming-strategy/DefaultNamingStrategy.js +13 -10
- package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
- package/browser/naming-strategy/NamingStrategyInterface.d.ts +2 -0
- package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
- package/browser/persistence/EntityPersistExecutor.js +2 -4
- package/browser/persistence/EntityPersistExecutor.js.map +1 -1
- package/browser/persistence/Subject.js +4 -6
- package/browser/persistence/Subject.js.map +1 -1
- package/browser/persistence/SubjectChangedColumnsComputer.d.ts +3 -0
- package/browser/persistence/SubjectChangedColumnsComputer.js +3 -0
- package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
- package/browser/persistence/SubjectDatabaseEntityLoader.d.ts +1 -0
- package/browser/persistence/SubjectDatabaseEntityLoader.js +3 -1
- package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
- package/browser/persistence/SubjectExecutor.d.ts +2 -0
- package/browser/persistence/SubjectExecutor.js +15 -27
- package/browser/persistence/SubjectExecutor.js.map +1 -1
- package/browser/persistence/SubjectTopologicalSorter.d.ts +4 -0
- package/browser/persistence/SubjectTopologicalSorter.js +4 -0
- package/browser/persistence/SubjectTopologicalSorter.js.map +1 -1
- package/browser/persistence/subject-builder/CascadesSubjectBuilder.d.ts +2 -0
- package/browser/persistence/subject-builder/CascadesSubjectBuilder.js +37 -11
- package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
- package/browser/persistence/subject-builder/ManyToManySubjectBuilder.d.ts +11 -8
- package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js +15 -13
- package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
- package/browser/persistence/subject-builder/OneToManySubjectBuilder.d.ts +9 -10
- package/browser/persistence/subject-builder/OneToManySubjectBuilder.js +30 -24
- package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
- package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.d.ts +9 -10
- package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +9 -10
- package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
- package/browser/persistence/tree/ClosureSubjectExecutor.d.ts +4 -0
- package/browser/persistence/tree/ClosureSubjectExecutor.js +10 -8
- package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
- package/browser/persistence/tree/MaterializedPathSubjectExecutor.d.ts +2 -0
- package/browser/persistence/tree/MaterializedPathSubjectExecutor.js +8 -6
- package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
- package/browser/persistence/tree/NestedSetSubjectExecutor.d.ts +5 -0
- package/browser/persistence/tree/NestedSetSubjectExecutor.js +10 -5
- package/browser/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
- package/browser/platform/PlatformTools.d.ts +9 -0
- package/browser/platform/PlatformTools.js +10 -1
- package/browser/platform/PlatformTools.js.map +1 -1
- package/browser/query-builder/Alias.js +1 -1
- package/browser/query-builder/Alias.js.map +1 -1
- package/browser/query-builder/Brackets.d.ts +1 -0
- package/browser/query-builder/Brackets.js +1 -0
- package/browser/query-builder/Brackets.js.map +1 -1
- package/browser/query-builder/DeleteQueryBuilder.d.ts +7 -0
- package/browser/query-builder/DeleteQueryBuilder.js +9 -0
- package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/browser/query-builder/InsertQueryBuilder.d.ts +9 -0
- package/browser/query-builder/InsertQueryBuilder.js +14 -8
- package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
- package/browser/query-builder/JoinAttribute.js +3 -3
- package/browser/query-builder/JoinAttribute.js.map +1 -1
- package/browser/query-builder/QueryBuilder.d.ts +25 -4
- package/browser/query-builder/QueryBuilder.js +58 -15
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryBuilderUtils.d.ts +1 -0
- package/browser/query-builder/QueryBuilderUtils.js +1 -0
- package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
- package/browser/query-builder/QueryExpressionMap.d.ts +5 -0
- package/browser/query-builder/QueryExpressionMap.js +4 -1
- package/browser/query-builder/QueryExpressionMap.js.map +1 -1
- package/browser/query-builder/RelationIdLoader.d.ts +6 -35
- package/browser/query-builder/RelationIdLoader.js +19 -43
- package/browser/query-builder/RelationIdLoader.js.map +1 -1
- package/browser/query-builder/RelationLoader.d.ts +11 -2
- package/browser/query-builder/RelationLoader.js +20 -17
- package/browser/query-builder/RelationLoader.js.map +1 -1
- package/browser/query-builder/RelationQueryBuilder.d.ts +5 -0
- package/browser/query-builder/RelationQueryBuilder.js +5 -0
- package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
- package/browser/query-builder/RelationRemover.d.ts +1 -0
- package/browser/query-builder/RelationRemover.js +1 -0
- package/browser/query-builder/RelationRemover.js.map +1 -1
- package/browser/query-builder/RelationUpdater.d.ts +1 -0
- package/browser/query-builder/RelationUpdater.js +1 -0
- package/browser/query-builder/RelationUpdater.js.map +1 -1
- package/browser/query-builder/ReturningResultsEntityUpdator.d.ts +2 -0
- package/browser/query-builder/ReturningResultsEntityUpdator.js +3 -1
- package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.d.ts +31 -8
- package/browser/query-builder/SelectQueryBuilder.js +98 -70
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-builder/SoftDeleteQueryBuilder.d.ts +11 -0
- package/browser/query-builder/SoftDeleteQueryBuilder.js +17 -0
- package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
- package/browser/query-builder/UpdateQueryBuilder.d.ts +11 -0
- package/browser/query-builder/UpdateQueryBuilder.js +18 -1
- package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdAttribute.js +5 -5
- package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdLoader.d.ts +2 -1
- package/browser/query-builder/relation-id/RelationIdLoader.js +6 -3
- package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
- package/browser/query-builder/transformer/DocumentToEntityTransformer.js +3 -16
- package/browser/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
- package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +2 -4
- package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
- package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.d.ts +1 -0
- package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js +1 -0
- package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +6 -0
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +6 -7
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/browser/query-runner/BaseQueryRunner.d.ts +21 -1
- package/browser/query-runner/BaseQueryRunner.js +36 -49
- package/browser/query-runner/BaseQueryRunner.js.map +1 -1
- package/browser/query-runner/QueryRunner.d.ts +5 -1
- package/browser/query-runner/QueryRunner.js.map +1 -1
- package/browser/repository/BaseEntity.d.ts +32 -0
- package/browser/repository/BaseEntity.js +36 -0
- package/browser/repository/BaseEntity.js.map +1 -1
- package/browser/repository/MongoRepository.d.ts +39 -0
- package/browser/repository/MongoRepository.js +41 -2
- package/browser/repository/MongoRepository.js.map +1 -1
- package/browser/repository/Repository.d.ts +37 -1
- package/browser/repository/Repository.js +43 -2
- package/browser/repository/Repository.js.map +1 -1
- package/browser/repository/TreeRepository.d.ts +11 -0
- package/browser/repository/TreeRepository.js +12 -1
- package/browser/repository/TreeRepository.js.map +1 -1
- package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +6 -4
- package/browser/schema-builder/RdbmsSchemaBuilder.js +10 -13
- package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/browser/schema-builder/table/Table.d.ts +17 -0
- package/browser/schema-builder/table/Table.js +19 -2
- package/browser/schema-builder/table/Table.js.map +1 -1
- package/browser/schema-builder/table/TableCheck.d.ts +1 -0
- package/browser/schema-builder/table/TableCheck.js +1 -0
- package/browser/schema-builder/table/TableCheck.js.map +1 -1
- package/browser/schema-builder/table/TableColumn.js +7 -7
- package/browser/schema-builder/table/TableColumn.js.map +1 -1
- package/browser/schema-builder/table/TableExclusion.d.ts +1 -0
- package/browser/schema-builder/table/TableExclusion.js +1 -0
- package/browser/schema-builder/table/TableExclusion.js.map +1 -1
- package/browser/schema-builder/table/TableForeignKey.d.ts +1 -0
- package/browser/schema-builder/table/TableForeignKey.js +1 -0
- package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
- package/browser/schema-builder/table/TableIndex.d.ts +1 -0
- package/browser/schema-builder/table/TableIndex.js +2 -1
- package/browser/schema-builder/table/TableIndex.js.map +1 -1
- package/browser/schema-builder/table/TableUnique.d.ts +1 -0
- package/browser/schema-builder/table/TableUnique.js +1 -0
- package/browser/schema-builder/table/TableUnique.js.map +1 -1
- package/browser/schema-builder/util/ViewUtils.d.ts +1 -0
- package/browser/schema-builder/util/ViewUtils.js +1 -0
- package/browser/schema-builder/util/ViewUtils.js.map +1 -1
- package/browser/schema-builder/view/View.d.ts +3 -0
- package/browser/schema-builder/view/View.js +3 -0
- package/browser/schema-builder/view/View.js.map +1 -1
- package/browser/subscriber/Broadcaster.d.ts +20 -0
- package/browser/subscriber/Broadcaster.js +25 -6
- package/browser/subscriber/Broadcaster.js.map +1 -1
- package/browser/subscriber/event/BaseEvent.d.ts +1 -0
- package/browser/subscriber/event/BaseEvent.js.map +1 -1
- package/browser/util/DateUtils.d.ts +15 -0
- package/browser/util/DateUtils.js +15 -0
- package/browser/util/DateUtils.js.map +1 -1
- package/browser/util/DepGraph.d.ts +10 -0
- package/browser/util/DepGraph.js +11 -0
- package/browser/util/DepGraph.js.map +1 -1
- package/browser/util/DirectoryExportedClassesLoader.d.ts +1 -0
- package/browser/util/DirectoryExportedClassesLoader.js +1 -0
- package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
- package/browser/util/ObjectUtils.d.ts +6 -0
- package/browser/util/ObjectUtils.js +4 -0
- package/browser/util/ObjectUtils.js.map +1 -1
- package/browser/util/OrmUtils.d.ts +14 -0
- package/browser/util/OrmUtils.js +18 -6
- package/browser/util/OrmUtils.js.map +1 -1
- package/browser/util/PathUtils.d.ts +2 -0
- package/browser/util/PathUtils.js +2 -0
- package/browser/util/PathUtils.js.map +1 -1
- package/browser/util/RandomGenerator.d.ts +2 -0
- package/browser/util/RandomGenerator.js +2 -0
- package/browser/util/RandomGenerator.js.map +1 -1
- package/browser/util/StringUtils.d.ts +11 -4
- package/browser/util/StringUtils.js +15 -7
- package/browser/util/StringUtils.js.map +1 -1
- package/browser/util/TreeRepositoryUtils.js +2 -2
- package/browser/util/TreeRepositoryUtils.js.map +1 -1
- package/cache/DbQueryResultCache.d.ts +7 -0
- package/cache/DbQueryResultCache.js +12 -4
- package/cache/DbQueryResultCache.js.map +1 -1
- package/cache/RedisQueryResultCache.d.ts +7 -0
- package/cache/RedisQueryResultCache.js +15 -10
- package/cache/RedisQueryResultCache.js.map +1 -1
- package/cli-ts-node-esm.js +2 -2
- package/cli-ts-node-esm.js.map +1 -1
- package/commands/CacheClearCommand.js +1 -1
- package/commands/CacheClearCommand.js.map +1 -1
- package/commands/CommandUtils.d.ts +4 -0
- package/commands/CommandUtils.js +4 -0
- package/commands/CommandUtils.js.map +1 -1
- package/commands/EntityCreateCommand.d.ts +1 -0
- package/commands/EntityCreateCommand.js +1 -0
- package/commands/EntityCreateCommand.js.map +1 -1
- package/commands/InitCommand.d.ts +10 -0
- package/commands/InitCommand.js +16 -9
- package/commands/InitCommand.js.map +1 -1
- package/commands/MigrationCreateCommand.d.ts +2 -0
- package/commands/MigrationCreateCommand.js +2 -0
- package/commands/MigrationCreateCommand.js.map +1 -1
- package/commands/MigrationGenerateCommand.d.ts +3 -0
- package/commands/MigrationGenerateCommand.js +4 -1
- package/commands/MigrationGenerateCommand.js.map +1 -1
- package/commands/MigrationRevertCommand.js +1 -1
- package/commands/MigrationRevertCommand.js.map +1 -1
- package/commands/MigrationRunCommand.js +1 -1
- package/commands/MigrationRunCommand.js.map +1 -1
- package/commands/MigrationShowCommand.js +1 -1
- package/commands/MigrationShowCommand.js.map +1 -1
- package/commands/QueryCommand.js +1 -1
- package/commands/QueryCommand.js.map +1 -1
- package/commands/SchemaDropCommand.js +1 -1
- package/commands/SchemaDropCommand.js.map +1 -1
- package/commands/SchemaSyncCommand.js +1 -1
- package/commands/SchemaSyncCommand.js.map +1 -1
- package/commands/SubscriberCreateCommand.d.ts +1 -0
- package/commands/SubscriberCreateCommand.js +1 -0
- package/commands/SubscriberCreateCommand.js.map +1 -1
- package/commands/VersionCommand.js +2 -2
- package/commands/VersionCommand.js.map +1 -1
- package/common/RelationType.d.ts +2 -0
- package/common/RelationType.js.map +1 -1
- package/connection/ConnectionMetadataBuilder.d.ts +3 -0
- package/connection/ConnectionMetadataBuilder.js +3 -0
- package/connection/ConnectionMetadataBuilder.js.map +1 -1
- package/connection/ConnectionOptionsReader.d.ts +5 -4
- package/connection/ConnectionOptionsReader.js +14 -12
- package/connection/ConnectionOptionsReader.js.map +1 -1
- package/data-source/BaseDataSourceOptions.d.ts +8 -0
- package/data-source/BaseDataSourceOptions.js.map +1 -1
- package/data-source/DataSource.d.ts +20 -1
- package/data-source/DataSource.js +37 -15
- package/data-source/DataSource.js.map +1 -1
- package/decorator/Check.d.ts +2 -0
- package/decorator/Check.js +2 -1
- package/decorator/Check.js.map +1 -1
- package/decorator/Exclusion.d.ts +2 -0
- package/decorator/Exclusion.js +1 -0
- package/decorator/Exclusion.js.map +1 -1
- package/decorator/ForeignKey.d.ts +3 -0
- package/decorator/ForeignKey.js +1 -0
- package/decorator/ForeignKey.js.map +1 -1
- package/decorator/Generated.d.ts +1 -0
- package/decorator/Generated.js +1 -0
- package/decorator/Generated.js.map +1 -1
- package/decorator/Index.d.ts +7 -0
- package/decorator/Index.js +13 -13
- package/decorator/Index.js.map +1 -1
- package/decorator/Unique.d.ts +4 -0
- package/decorator/Unique.js +6 -6
- package/decorator/Unique.js.map +1 -1
- package/decorator/columns/Column.d.ts +11 -0
- package/decorator/columns/Column.js +3 -3
- package/decorator/columns/Column.js.map +1 -1
- package/decorator/columns/CreateDateColumn.d.ts +1 -0
- package/decorator/columns/CreateDateColumn.js +2 -1
- package/decorator/columns/CreateDateColumn.js.map +1 -1
- package/decorator/columns/DeleteDateColumn.d.ts +1 -0
- package/decorator/columns/DeleteDateColumn.js +2 -1
- package/decorator/columns/DeleteDateColumn.js.map +1 -1
- package/decorator/columns/ObjectIdColumn.d.ts +1 -0
- package/decorator/columns/ObjectIdColumn.js +3 -4
- package/decorator/columns/ObjectIdColumn.js.map +1 -1
- package/decorator/columns/PrimaryColumn.d.ts +2 -0
- package/decorator/columns/PrimaryColumn.js +2 -2
- package/decorator/columns/PrimaryColumn.js.map +1 -1
- package/decorator/columns/PrimaryGeneratedColumn.d.ts +4 -0
- package/decorator/columns/PrimaryGeneratedColumn.js +1 -0
- package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
- package/decorator/columns/UpdateDateColumn.d.ts +1 -0
- package/decorator/columns/UpdateDateColumn.js +2 -1
- package/decorator/columns/UpdateDateColumn.js.map +1 -1
- package/decorator/columns/VersionColumn.d.ts +1 -0
- package/decorator/columns/VersionColumn.js +2 -1
- package/decorator/columns/VersionColumn.js.map +1 -1
- package/decorator/columns/ViewColumn.d.ts +1 -0
- package/decorator/columns/ViewColumn.js +2 -1
- package/decorator/columns/ViewColumn.js.map +1 -1
- package/decorator/columns/VirtualColumn.d.ts +2 -0
- package/decorator/columns/VirtualColumn.js +1 -0
- package/decorator/columns/VirtualColumn.js.map +1 -1
- package/decorator/entity/ChildEntity.d.ts +1 -0
- package/decorator/entity/ChildEntity.js +1 -0
- package/decorator/entity/ChildEntity.js.map +1 -1
- package/decorator/entity/Entity.d.ts +2 -0
- package/decorator/entity/Entity.js +7 -6
- package/decorator/entity/Entity.js.map +1 -1
- package/decorator/entity/TableInheritance.d.ts +1 -0
- package/decorator/entity/TableInheritance.js +3 -2
- package/decorator/entity/TableInheritance.js.map +1 -1
- package/decorator/entity-view/ViewEntity.d.ts +2 -0
- package/decorator/entity-view/ViewEntity.js +4 -3
- package/decorator/entity-view/ViewEntity.js.map +1 -1
- package/decorator/options/ColumnOptions.d.ts +3 -0
- package/decorator/options/ColumnOptions.js.map +1 -1
- package/decorator/options/EntityOptions.d.ts +1 -0
- package/decorator/options/EntityOptions.js.map +1 -1
- package/decorator/options/RelationOptions.d.ts +2 -0
- package/decorator/options/RelationOptions.js.map +1 -1
- package/decorator/options/VirtualColumnOptions.d.ts +1 -0
- package/decorator/options/VirtualColumnOptions.js.map +1 -1
- package/decorator/relations/JoinColumn.d.ts +2 -0
- package/decorator/relations/JoinColumn.js +2 -1
- package/decorator/relations/JoinColumn.js.map +1 -1
- package/decorator/relations/JoinTable.d.ts +2 -0
- package/decorator/relations/JoinTable.js +5 -4
- package/decorator/relations/JoinTable.js.map +1 -1
- package/decorator/relations/ManyToMany.d.ts +2 -0
- package/decorator/relations/ManyToMany.js +2 -2
- package/decorator/relations/ManyToMany.js.map +1 -1
- package/decorator/relations/ManyToOne.d.ts +2 -0
- package/decorator/relations/ManyToOne.js +3 -3
- package/decorator/relations/ManyToOne.js.map +1 -1
- package/decorator/relations/OneToMany.d.ts +1 -0
- package/decorator/relations/OneToMany.js +3 -3
- package/decorator/relations/OneToMany.js.map +1 -1
- package/decorator/relations/OneToOne.d.ts +2 -0
- package/decorator/relations/OneToOne.js +3 -3
- package/decorator/relations/OneToOne.js.map +1 -1
- package/decorator/relations/RelationId.d.ts +1 -0
- package/decorator/relations/RelationId.js +1 -0
- package/decorator/relations/RelationId.js.map +1 -1
- package/decorator/tree/Tree.d.ts +1 -0
- package/decorator/tree/Tree.js +1 -0
- package/decorator/tree/Tree.js.map +1 -1
- package/decorator/tree/TreeChildren.d.ts +1 -0
- package/decorator/tree/TreeChildren.js +3 -3
- package/decorator/tree/TreeChildren.js.map +1 -1
- package/decorator/tree/TreeParent.d.ts +1 -0
- package/decorator/tree/TreeParent.js +3 -3
- package/decorator/tree/TreeParent.js.map +1 -1
- package/driver/Driver.d.ts +5 -0
- package/driver/Driver.js.map +1 -1
- package/driver/DriverFactory.d.ts +1 -0
- package/driver/DriverFactory.js +1 -0
- package/driver/DriverFactory.js.map +1 -1
- package/driver/DriverUtils.d.ts +7 -0
- package/driver/DriverUtils.js +34 -21
- package/driver/DriverUtils.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts +1 -0
- package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlDataSourceOptions.d.ts +1 -0
- package/driver/aurora-mysql/AuroraMysqlDataSourceOptions.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlDriver.d.ts +37 -0
- package/driver/aurora-mysql/AuroraMysqlDriver.js +53 -16
- package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +64 -0
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +90 -30
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
- package/driver/aurora-postgres/AuroraPostgresDriver.d.ts +13 -0
- package/driver/aurora-postgres/AuroraPostgresDriver.js +26 -5
- package/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
- package/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +3 -0
- package/driver/aurora-postgres/AuroraPostgresQueryRunner.js +27 -1
- package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
- package/driver/better-sqlite3/BetterSqlite3DataSourceOptions.d.ts +1 -0
- package/driver/better-sqlite3/BetterSqlite3DataSourceOptions.js.map +1 -1
- package/driver/better-sqlite3/BetterSqlite3Driver.d.ts +3 -0
- package/driver/better-sqlite3/BetterSqlite3Driver.js +5 -3
- package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
- package/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +1 -0
- package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +1 -0
- package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
- package/driver/capacitor/CapacitorDriver.d.ts +1 -0
- package/driver/capacitor/CapacitorDriver.js +3 -3
- package/driver/capacitor/CapacitorDriver.js.map +1 -1
- package/driver/capacitor/CapacitorQueryRunner.d.ts +2 -0
- package/driver/capacitor/CapacitorQueryRunner.js +4 -2
- package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
- package/driver/cockroachdb/CockroachDataSourceOptions.d.ts +1 -0
- package/driver/cockroachdb/CockroachDataSourceOptions.js.map +1 -1
- package/driver/cockroachdb/CockroachDriver.d.ts +35 -0
- package/driver/cockroachdb/CockroachDriver.js +64 -29
- package/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.d.ts +74 -0
- package/driver/cockroachdb/CockroachQueryRunner.js +143 -119
- package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/driver/cordova/CordovaDriver.d.ts +6 -0
- package/driver/cordova/CordovaDriver.js +14 -4
- package/driver/cordova/CordovaDriver.js.map +1 -1
- package/driver/cordova/CordovaQueryRunner.d.ts +2 -0
- package/driver/cordova/CordovaQueryRunner.js +3 -1
- package/driver/cordova/CordovaQueryRunner.js.map +1 -1
- package/driver/expo/ExpoDriver.js +1 -2
- package/driver/expo/ExpoDriver.js.map +1 -1
- package/driver/mongodb/MongoDriver.d.ts +25 -0
- package/driver/mongodb/MongoDriver.js +35 -6
- package/driver/mongodb/MongoDriver.js.map +1 -1
- package/driver/mongodb/MongoQueryRunner.d.ts +84 -0
- package/driver/mongodb/MongoQueryRunner.js +102 -18
- package/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/driver/mongodb/bson.typings.d.ts +1 -0
- package/driver/mongodb/bson.typings.js.map +1 -1
- package/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +1 -0
- package/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
- package/driver/mysql/MysqlDataSourceOptions.d.ts +2 -0
- package/driver/mysql/MysqlDataSourceOptions.js.map +1 -1
- package/driver/mysql/MysqlDriver.d.ts +37 -0
- package/driver/mysql/MysqlDriver.js +57 -17
- package/driver/mysql/MysqlDriver.js.map +1 -1
- package/driver/mysql/MysqlQueryRunner.d.ts +64 -0
- package/driver/mysql/MysqlQueryRunner.js +140 -111
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/driver/nativescript/NativescriptDriver.d.ts +1 -0
- package/driver/nativescript/NativescriptDriver.js +3 -4
- package/driver/nativescript/NativescriptDriver.js.map +1 -1
- package/driver/nativescript/NativescriptQueryRunner.d.ts +2 -0
- package/driver/nativescript/NativescriptQueryRunner.js +3 -1
- package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
- package/driver/oracle/OracleDriver.d.ts +32 -0
- package/driver/oracle/OracleDriver.js +48 -15
- package/driver/oracle/OracleDriver.js.map +1 -1
- package/driver/oracle/OracleQueryRunner.d.ts +66 -0
- package/driver/oracle/OracleQueryRunner.js +119 -83
- package/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/driver/postgres/PostgresDataSourceOptions.d.ts +2 -0
- package/driver/postgres/PostgresDataSourceOptions.js.map +1 -1
- package/driver/postgres/PostgresDriver.d.ts +37 -0
- package/driver/postgres/PostgresDriver.js +67 -31
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.d.ts +81 -0
- package/driver/postgres/PostgresQueryRunner.js +152 -121
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/react-native/ReactNativeDriver.d.ts +29 -0
- package/driver/react-native/ReactNativeDriver.js +45 -12
- package/driver/react-native/ReactNativeDriver.js.map +1 -1
- package/driver/react-native/ReactNativeQueryRunner.d.ts +2 -0
- package/driver/react-native/ReactNativeQueryRunner.js +3 -1
- package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
- package/driver/sap/SapDataSourceOptions.d.ts +1 -0
- package/driver/sap/SapDataSourceOptions.js.map +1 -1
- package/driver/sap/SapDriver.d.ts +30 -0
- package/driver/sap/SapDriver.js +45 -11
- package/driver/sap/SapDriver.js.map +1 -1
- package/driver/sap/SapQueryRunner.d.ts +66 -0
- package/driver/sap/SapQueryRunner.js +101 -56
- package/driver/sap/SapQueryRunner.js.map +1 -1
- package/driver/spanner/SpannerDataSourceOptions.d.ts +1 -0
- package/driver/spanner/SpannerDataSourceOptions.js.map +1 -1
- package/driver/spanner/SpannerDriver.d.ts +33 -0
- package/driver/spanner/SpannerDriver.js +50 -10
- package/driver/spanner/SpannerDriver.js.map +1 -1
- package/driver/spanner/SpannerQueryRunner.d.ts +64 -0
- package/driver/spanner/SpannerQueryRunner.js +89 -32
- package/driver/spanner/SpannerQueryRunner.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +30 -0
- package/driver/sqlite-abstract/AbstractSqliteDriver.js +43 -77
- package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +59 -0
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +89 -45
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/driver/sqljs/SqljsDriver.d.ts +5 -0
- package/driver/sqljs/SqljsDriver.js +8 -4
- package/driver/sqljs/SqljsDriver.js.map +1 -1
- package/driver/sqljs/SqljsQueryRunner.d.ts +1 -0
- package/driver/sqljs/SqljsQueryRunner.js +1 -0
- package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
- package/driver/sqlserver/MssqlParameter.d.ts +1 -0
- package/driver/sqlserver/MssqlParameter.js +1 -0
- package/driver/sqlserver/MssqlParameter.js.map +1 -1
- package/driver/sqlserver/SqlServerDataSourceOptions.d.ts +14 -5
- package/driver/sqlserver/SqlServerDataSourceOptions.js.map +1 -1
- package/driver/sqlserver/SqlServerDriver.d.ts +42 -0
- package/driver/sqlserver/SqlServerDriver.js +100 -26
- package/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.d.ts +76 -10
- package/driver/sqlserver/SqlServerQueryRunner.js +160 -163
- package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/driver/types/IsolationLevel.d.ts +2 -1
- package/driver/types/IsolationLevel.js +8 -0
- package/driver/types/IsolationLevel.js.map +1 -1
- package/driver/validate-isolation-level.d.ts +9 -0
- package/driver/validate-isolation-level.js +23 -0
- package/driver/validate-isolation-level.js.map +1 -0
- package/entity-manager/EntityManager.d.ts +38 -1
- package/entity-manager/EntityManager.js +58 -12
- package/entity-manager/EntityManager.js.map +1 -1
- package/entity-manager/EntityManagerFactory.d.ts +1 -0
- package/entity-manager/EntityManagerFactory.js +1 -0
- package/entity-manager/EntityManagerFactory.js.map +1 -1
- package/entity-manager/MongoEntityManager.d.ts +54 -1
- package/entity-manager/MongoEntityManager.js +103 -12
- package/entity-manager/MongoEntityManager.js.map +1 -1
- package/entity-manager/SqljsEntityManager.d.ts +2 -0
- package/entity-manager/SqljsEntityManager.js +2 -0
- package/entity-manager/SqljsEntityManager.js.map +1 -1
- package/entity-schema/EntitySchemaColumnOptions.d.ts +1 -0
- package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
- package/entity-schema/EntitySchemaOptions.d.ts +1 -0
- package/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/entity-schema/EntitySchemaTransformer.d.ts +1 -0
- package/entity-schema/EntitySchemaTransformer.js +25 -26
- package/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/error/InitializedRelationError.d.ts +1 -0
- package/error/InitializedRelationError.js +1 -0
- package/error/InitializedRelationError.js.map +1 -1
- package/find-options/FindOptionsUtils.d.ts +7 -0
- package/find-options/FindOptionsUtils.js +7 -0
- package/find-options/FindOptionsUtils.js.map +1 -1
- package/find-options/OrderByCondition.d.ts +2 -1
- package/find-options/OrderByCondition.js.map +1 -1
- package/find-options/operator/Any.d.ts +4 -1
- package/find-options/operator/Any.js +4 -1
- package/find-options/operator/Any.js.map +1 -1
- package/find-options/operator/ArrayContainedBy.d.ts +4 -1
- package/find-options/operator/ArrayContainedBy.js +4 -1
- package/find-options/operator/ArrayContainedBy.js.map +1 -1
- package/find-options/operator/ArrayContains.d.ts +4 -1
- package/find-options/operator/ArrayContains.js +4 -1
- package/find-options/operator/ArrayContains.js.map +1 -1
- package/find-options/operator/ArrayOverlap.d.ts +4 -1
- package/find-options/operator/ArrayOverlap.js +4 -1
- package/find-options/operator/ArrayOverlap.js.map +1 -1
- package/find-options/operator/Between.d.ts +4 -1
- package/find-options/operator/Between.js +4 -1
- package/find-options/operator/Between.js.map +1 -1
- package/find-options/operator/Equal.d.ts +6 -3
- package/find-options/operator/Equal.js +6 -3
- package/find-options/operator/Equal.js.map +1 -1
- package/find-options/operator/ILike.d.ts +4 -1
- package/find-options/operator/ILike.js +4 -1
- package/find-options/operator/ILike.js.map +1 -1
- package/find-options/operator/In.d.ts +4 -1
- package/find-options/operator/In.js +4 -1
- package/find-options/operator/In.js.map +1 -1
- package/find-options/operator/IsNull.d.ts +4 -1
- package/find-options/operator/IsNull.js +4 -1
- package/find-options/operator/IsNull.js.map +1 -1
- package/find-options/operator/JsonContains.d.ts +4 -1
- package/find-options/operator/JsonContains.js +4 -1
- package/find-options/operator/JsonContains.js.map +1 -1
- package/find-options/operator/LessThan.d.ts +4 -1
- package/find-options/operator/LessThan.js +4 -1
- package/find-options/operator/LessThan.js.map +1 -1
- package/find-options/operator/LessThanOrEqual.d.ts +4 -1
- package/find-options/operator/LessThanOrEqual.js +4 -1
- package/find-options/operator/LessThanOrEqual.js.map +1 -1
- package/find-options/operator/Like.d.ts +4 -1
- package/find-options/operator/Like.js +4 -1
- package/find-options/operator/Like.js.map +1 -1
- package/find-options/operator/MoreThan.d.ts +4 -1
- package/find-options/operator/MoreThan.js +4 -1
- package/find-options/operator/MoreThan.js.map +1 -1
- package/find-options/operator/MoreThanOrEqual.d.ts +4 -1
- package/find-options/operator/MoreThanOrEqual.js +4 -1
- package/find-options/operator/MoreThanOrEqual.js.map +1 -1
- package/find-options/operator/Not.d.ts +4 -1
- package/find-options/operator/Not.js +4 -1
- package/find-options/operator/Not.js.map +1 -1
- package/find-options/operator/Raw.d.ts +12 -3
- package/find-options/operator/Raw.js.map +1 -1
- package/globals.js +1 -2
- package/globals.js.map +1 -1
- package/logger/AbstractLogger.d.ts +9 -0
- package/logger/AbstractLogger.js +10 -2
- package/logger/AbstractLogger.js.map +1 -1
- package/logger/AdvancedConsoleLogger.d.ts +1 -0
- package/logger/AdvancedConsoleLogger.js +1 -0
- package/logger/AdvancedConsoleLogger.js.map +1 -1
- package/logger/DebugLogger.d.ts +2 -0
- package/logger/DebugLogger.js +3 -1
- package/logger/DebugLogger.js.map +1 -1
- package/logger/FileLogger.d.ts +13 -2
- package/logger/FileLogger.js +4 -5
- package/logger/FileLogger.js.map +1 -1
- package/logger/FormattedConsoleLogger.d.ts +1 -0
- package/logger/FormattedConsoleLogger.js +1 -0
- package/logger/FormattedConsoleLogger.js.map +1 -1
- package/logger/LoggerFactory.d.ts +1 -0
- package/logger/LoggerFactory.js +1 -0
- package/logger/LoggerFactory.js.map +1 -1
- package/logger/LoggerOptions.d.ts +0 -9
- package/logger/LoggerOptions.js.map +1 -1
- package/logger/SimpleConsoleLogger.d.ts +1 -0
- package/logger/SimpleConsoleLogger.js +1 -0
- package/logger/SimpleConsoleLogger.js.map +1 -1
- package/metadata/CheckMetadata.d.ts +1 -0
- package/metadata/CheckMetadata.js +4 -3
- package/metadata/CheckMetadata.js.map +1 -1
- package/metadata/ColumnMetadata.d.ts +8 -5
- package/metadata/ColumnMetadata.js +17 -25
- package/metadata/ColumnMetadata.js.map +1 -1
- package/metadata/EmbeddedMetadata.d.ts +1 -0
- package/metadata/EmbeddedMetadata.js +1 -0
- package/metadata/EmbeddedMetadata.js.map +1 -1
- package/metadata/EntityListenerMetadata.d.ts +3 -0
- package/metadata/EntityListenerMetadata.js +3 -0
- package/metadata/EntityListenerMetadata.js.map +1 -1
- package/metadata/EntityMetadata.d.ts +25 -5
- package/metadata/EntityMetadata.js +32 -12
- package/metadata/EntityMetadata.js.map +1 -1
- package/metadata/ExclusionMetadata.d.ts +1 -0
- package/metadata/ExclusionMetadata.js +4 -3
- package/metadata/ExclusionMetadata.js.map +1 -1
- package/metadata/ForeignKeyMetadata.d.ts +1 -0
- package/metadata/ForeignKeyMetadata.js +6 -5
- package/metadata/ForeignKeyMetadata.js.map +1 -1
- package/metadata/IndexMetadata.d.ts +1 -0
- package/metadata/IndexMetadata.js +4 -3
- package/metadata/IndexMetadata.js.map +1 -1
- package/metadata/RelationIdMetadata.d.ts +1 -0
- package/metadata/RelationIdMetadata.js +1 -0
- package/metadata/RelationIdMetadata.js.map +1 -1
- package/metadata/RelationMetadata.d.ts +8 -0
- package/metadata/RelationMetadata.js +15 -15
- package/metadata/RelationMetadata.js.map +1 -1
- package/metadata/UniqueMetadata.d.ts +1 -0
- package/metadata/UniqueMetadata.js +4 -3
- package/metadata/UniqueMetadata.js.map +1 -1
- package/metadata-args/MetadataArgsStorage.d.ts +4 -0
- package/metadata-args/MetadataArgsStorage.js +4 -0
- package/metadata-args/MetadataArgsStorage.js.map +1 -1
- package/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +1 -0
- package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +7 -11
- package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/EntityMetadataBuilder.d.ts +7 -0
- package/metadata-builder/EntityMetadataBuilder.js +11 -6
- package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/EntityMetadataValidator.d.ts +4 -0
- package/metadata-builder/EntityMetadataValidator.js +6 -43
- package/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/metadata-builder/JunctionEntityMetadataBuilder.d.ts +3 -0
- package/metadata-builder/JunctionEntityMetadataBuilder.js +39 -20
- package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/MetadataUtils.d.ts +3 -0
- package/metadata-builder/MetadataUtils.js +4 -1
- package/metadata-builder/MetadataUtils.js.map +1 -1
- package/metadata-builder/RelationJoinColumnBuilder.d.ts +3 -0
- package/metadata-builder/RelationJoinColumnBuilder.js +17 -1
- package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/migration/MigrationExecutor.d.ts +9 -0
- package/migration/MigrationExecutor.js +16 -7
- package/migration/MigrationExecutor.js.map +1 -1
- package/naming-strategy/DefaultNamingStrategy.d.ts +3 -0
- package/naming-strategy/DefaultNamingStrategy.js +13 -10
- package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
- package/naming-strategy/NamingStrategyInterface.d.ts +2 -0
- package/naming-strategy/NamingStrategyInterface.js.map +1 -1
- package/package.json +6 -2
- package/persistence/EntityPersistExecutor.js +2 -4
- package/persistence/EntityPersistExecutor.js.map +1 -1
- package/persistence/Subject.js +4 -6
- package/persistence/Subject.js.map +1 -1
- package/persistence/SubjectChangedColumnsComputer.d.ts +3 -0
- package/persistence/SubjectChangedColumnsComputer.js +3 -0
- package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
- package/persistence/SubjectDatabaseEntityLoader.d.ts +1 -0
- package/persistence/SubjectDatabaseEntityLoader.js +3 -1
- package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
- package/persistence/SubjectExecutor.d.ts +2 -0
- package/persistence/SubjectExecutor.js +15 -27
- package/persistence/SubjectExecutor.js.map +1 -1
- package/persistence/SubjectTopologicalSorter.d.ts +4 -0
- package/persistence/SubjectTopologicalSorter.js +4 -0
- package/persistence/SubjectTopologicalSorter.js.map +1 -1
- package/persistence/subject-builder/CascadesSubjectBuilder.d.ts +2 -0
- package/persistence/subject-builder/CascadesSubjectBuilder.js +37 -11
- package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/ManyToManySubjectBuilder.d.ts +11 -8
- package/persistence/subject-builder/ManyToManySubjectBuilder.js +15 -13
- package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/OneToManySubjectBuilder.d.ts +9 -10
- package/persistence/subject-builder/OneToManySubjectBuilder.js +30 -24
- package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.d.ts +9 -10
- package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +9 -10
- package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
- package/persistence/tree/ClosureSubjectExecutor.d.ts +4 -0
- package/persistence/tree/ClosureSubjectExecutor.js +10 -8
- package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
- package/persistence/tree/MaterializedPathSubjectExecutor.d.ts +2 -0
- package/persistence/tree/MaterializedPathSubjectExecutor.js +8 -6
- package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
- package/persistence/tree/NestedSetSubjectExecutor.d.ts +5 -0
- package/persistence/tree/NestedSetSubjectExecutor.js +10 -5
- package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
- package/platform/PlatformTools.d.ts +9 -0
- package/platform/PlatformTools.js +10 -1
- package/platform/PlatformTools.js.map +1 -1
- package/query-builder/Alias.js +1 -1
- package/query-builder/Alias.js.map +1 -1
- package/query-builder/Brackets.d.ts +1 -0
- package/query-builder/Brackets.js +1 -0
- package/query-builder/Brackets.js.map +1 -1
- package/query-builder/DeleteQueryBuilder.d.ts +7 -0
- package/query-builder/DeleteQueryBuilder.js +9 -0
- package/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/query-builder/InsertQueryBuilder.d.ts +9 -0
- package/query-builder/InsertQueryBuilder.js +14 -8
- package/query-builder/InsertQueryBuilder.js.map +1 -1
- package/query-builder/JoinAttribute.js +3 -3
- package/query-builder/JoinAttribute.js.map +1 -1
- package/query-builder/QueryBuilder.d.ts +25 -4
- package/query-builder/QueryBuilder.js +58 -15
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/QueryBuilderUtils.d.ts +1 -0
- package/query-builder/QueryBuilderUtils.js +1 -0
- package/query-builder/QueryBuilderUtils.js.map +1 -1
- package/query-builder/QueryExpressionMap.d.ts +5 -0
- package/query-builder/QueryExpressionMap.js +4 -1
- package/query-builder/QueryExpressionMap.js.map +1 -1
- package/query-builder/RelationIdLoader.d.ts +6 -35
- package/query-builder/RelationIdLoader.js +19 -43
- package/query-builder/RelationIdLoader.js.map +1 -1
- package/query-builder/RelationLoader.d.ts +11 -2
- package/query-builder/RelationLoader.js +20 -17
- package/query-builder/RelationLoader.js.map +1 -1
- package/query-builder/RelationQueryBuilder.d.ts +5 -0
- package/query-builder/RelationQueryBuilder.js +5 -0
- package/query-builder/RelationQueryBuilder.js.map +1 -1
- package/query-builder/RelationRemover.d.ts +1 -0
- package/query-builder/RelationRemover.js +1 -0
- package/query-builder/RelationRemover.js.map +1 -1
- package/query-builder/RelationUpdater.d.ts +1 -0
- package/query-builder/RelationUpdater.js +1 -0
- package/query-builder/RelationUpdater.js.map +1 -1
- package/query-builder/ReturningResultsEntityUpdator.d.ts +2 -0
- package/query-builder/ReturningResultsEntityUpdator.js +3 -1
- package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
- package/query-builder/SelectQueryBuilder.d.ts +31 -8
- package/query-builder/SelectQueryBuilder.js +98 -70
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-builder/SoftDeleteQueryBuilder.d.ts +11 -0
- package/query-builder/SoftDeleteQueryBuilder.js +17 -0
- package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
- package/query-builder/UpdateQueryBuilder.d.ts +11 -0
- package/query-builder/UpdateQueryBuilder.js +18 -1
- package/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/query-builder/relation-id/RelationIdAttribute.js +5 -5
- package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
- package/query-builder/relation-id/RelationIdLoader.d.ts +2 -1
- package/query-builder/relation-id/RelationIdLoader.js +6 -3
- package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
- package/query-builder/transformer/DocumentToEntityTransformer.js +3 -16
- package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
- package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +2 -4
- package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
- package/query-builder/transformer/PlainObjectToNewEntityTransformer.d.ts +1 -0
- package/query-builder/transformer/PlainObjectToNewEntityTransformer.js +1 -0
- package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +6 -0
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +6 -7
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/query-runner/BaseQueryRunner.d.ts +21 -1
- package/query-runner/BaseQueryRunner.js +36 -49
- package/query-runner/BaseQueryRunner.js.map +1 -1
- package/query-runner/QueryRunner.d.ts +5 -1
- package/query-runner/QueryRunner.js.map +1 -1
- package/repository/BaseEntity.d.ts +32 -0
- package/repository/BaseEntity.js +36 -0
- package/repository/BaseEntity.js.map +1 -1
- package/repository/MongoRepository.d.ts +39 -0
- package/repository/MongoRepository.js +41 -2
- package/repository/MongoRepository.js.map +1 -1
- package/repository/Repository.d.ts +37 -1
- package/repository/Repository.js +43 -2
- package/repository/Repository.js.map +1 -1
- package/repository/TreeRepository.d.ts +11 -0
- package/repository/TreeRepository.js +12 -1
- package/repository/TreeRepository.js.map +1 -1
- package/schema-builder/RdbmsSchemaBuilder.d.ts +6 -4
- package/schema-builder/RdbmsSchemaBuilder.js +10 -13
- package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/schema-builder/table/Table.d.ts +17 -0
- package/schema-builder/table/Table.js +19 -2
- package/schema-builder/table/Table.js.map +1 -1
- package/schema-builder/table/TableCheck.d.ts +1 -0
- package/schema-builder/table/TableCheck.js +1 -0
- package/schema-builder/table/TableCheck.js.map +1 -1
- package/schema-builder/table/TableColumn.js +7 -7
- package/schema-builder/table/TableColumn.js.map +1 -1
- package/schema-builder/table/TableExclusion.d.ts +1 -0
- package/schema-builder/table/TableExclusion.js +1 -0
- package/schema-builder/table/TableExclusion.js.map +1 -1
- package/schema-builder/table/TableForeignKey.d.ts +1 -0
- package/schema-builder/table/TableForeignKey.js +1 -0
- package/schema-builder/table/TableForeignKey.js.map +1 -1
- package/schema-builder/table/TableIndex.d.ts +1 -0
- package/schema-builder/table/TableIndex.js +2 -1
- package/schema-builder/table/TableIndex.js.map +1 -1
- package/schema-builder/table/TableUnique.d.ts +1 -0
- package/schema-builder/table/TableUnique.js +1 -0
- package/schema-builder/table/TableUnique.js.map +1 -1
- package/schema-builder/util/ViewUtils.d.ts +1 -0
- package/schema-builder/util/ViewUtils.js +1 -0
- package/schema-builder/util/ViewUtils.js.map +1 -1
- package/schema-builder/view/View.d.ts +3 -0
- package/schema-builder/view/View.js +3 -0
- package/schema-builder/view/View.js.map +1 -1
- package/subscriber/Broadcaster.d.ts +20 -0
- package/subscriber/Broadcaster.js +25 -6
- package/subscriber/Broadcaster.js.map +1 -1
- package/subscriber/event/BaseEvent.d.ts +1 -0
- package/subscriber/event/BaseEvent.js.map +1 -1
- package/util/DateUtils.d.ts +15 -0
- package/util/DateUtils.js +15 -0
- package/util/DateUtils.js.map +1 -1
- package/util/DepGraph.d.ts +10 -0
- package/util/DepGraph.js +11 -0
- package/util/DepGraph.js.map +1 -1
- package/util/DirectoryExportedClassesLoader.d.ts +1 -0
- package/util/DirectoryExportedClassesLoader.js +1 -0
- package/util/DirectoryExportedClassesLoader.js.map +1 -1
- package/util/ObjectUtils.d.ts +6 -0
- package/util/ObjectUtils.js +4 -0
- package/util/ObjectUtils.js.map +1 -1
- package/util/OrmUtils.d.ts +14 -0
- package/util/OrmUtils.js +18 -6
- package/util/OrmUtils.js.map +1 -1
- package/util/PathUtils.d.ts +2 -0
- package/util/PathUtils.js +2 -0
- package/util/PathUtils.js.map +1 -1
- package/util/RandomGenerator.d.ts +2 -0
- package/util/RandomGenerator.js +2 -0
- package/util/RandomGenerator.js.map +1 -1
- package/util/StringUtils.d.ts +11 -4
- package/util/StringUtils.js +15 -7
- package/util/StringUtils.js.map +1 -1
- package/util/TreeRepositoryUtils.js +2 -2
- package/util/TreeRepositoryUtils.js.map +1 -1
|
@@ -100,13 +100,11 @@ class PlainObjectToDatabaseEntityTransformer {
|
|
|
100
100
|
loadMap.loadMapItems.forEach((loadMapItem) => {
|
|
101
101
|
if (!loadMapItem.relation ||
|
|
102
102
|
!loadMapItem.entity ||
|
|
103
|
-
!loadMapItem.parentLoadMapItem
|
|
104
|
-
!loadMapItem.parentLoadMapItem.entity)
|
|
103
|
+
!loadMapItem.parentLoadMapItem?.entity)
|
|
105
104
|
return;
|
|
106
105
|
if (loadMapItem.relation.isManyToMany ||
|
|
107
106
|
loadMapItem.relation.isOneToMany) {
|
|
108
|
-
|
|
109
|
-
loadMapItem.parentLoadMapItem.entity[loadMapItem.relation.propertyName] = [];
|
|
107
|
+
loadMapItem.parentLoadMapItem.entity[loadMapItem.relation.propertyName] ??= [];
|
|
110
108
|
loadMapItem.parentLoadMapItem.entity[loadMapItem.relation.propertyName].push(loadMapItem.entity);
|
|
111
109
|
}
|
|
112
110
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlainObjectToDatabaseEntityTransformer.js","sourceRoot":"","sources":["../../../../src/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ObjectLiteral } from \"../../common/ObjectLiteral\"\nimport type { EntityMetadata } from \"../../metadata/EntityMetadata\"\nimport type { EntityManager } from \"../../entity-manager/EntityManager\"\nimport type { MongoEntityManager } from \"../../entity-manager/MongoEntityManager\"\nimport type { RelationMetadata } from \"../../metadata/RelationMetadata\"\n\n/**\n */\nclass LoadMapItem {\n entity?: ObjectLiteral\n plainEntity: ObjectLiteral\n metadata: EntityMetadata\n parentLoadMapItem?: LoadMapItem\n relation?: RelationMetadata\n\n constructor(\n plainEntity: ObjectLiteral,\n metadata: EntityMetadata,\n parentLoadMapItem?: LoadMapItem,\n relation?: RelationMetadata,\n ) {\n this.plainEntity = plainEntity\n this.metadata = metadata\n this.parentLoadMapItem = parentLoadMapItem\n this.relation = relation\n }\n\n get target(): Function | string {\n return this.metadata.target\n }\n\n get id(): any {\n return this.metadata.getEntityIdMixedMap(this.plainEntity)\n }\n}\n\nclass LoadMap {\n loadMapItems: LoadMapItem[] = []\n\n get mainLoadMapItem(): LoadMapItem | undefined {\n return this.loadMapItems.find(\n (item) => !item.relation && !item.parentLoadMapItem,\n )\n }\n\n addLoadMap(newLoadMap: LoadMapItem) {\n const item = this.loadMapItems.find(\n (item) =>\n item.target === newLoadMap.target && item.id === newLoadMap.id,\n )\n if (!item) this.loadMapItems.push(newLoadMap)\n }\n\n fillEntities(target: Function | string, entities: any[]) {\n entities.forEach((entity) => {\n const item = this.loadMapItems.find((loadMapItem) => {\n return (\n loadMapItem.target === target &&\n loadMapItem.metadata.compareEntities(\n entity,\n loadMapItem.plainEntity,\n )\n )\n })\n if (item) item.entity = entity\n })\n }\n\n groupByTargetIds(): { target: Function | string; ids: any[] }[] {\n const groups: { target: Function | string; ids: any[] }[] = []\n this.loadMapItems.forEach((loadMapItem) => {\n let group = groups.find(\n (group) => group.target === loadMapItem.target,\n )\n if (!group) {\n group = { target: loadMapItem.target, ids: [] }\n groups.push(group)\n }\n\n group.ids.push(loadMapItem.id)\n })\n return groups\n }\n}\n\n/**\n * Transforms plain old javascript object\n * Entity is constructed based on its entity metadata.\n */\nexport class PlainObjectToDatabaseEntityTransformer {\n constructor(private manager: EntityManager) {}\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n async transform(\n plainObject: ObjectLiteral,\n metadata: EntityMetadata,\n ): Promise<ObjectLiteral | undefined> {\n // if plain object does not have id then nothing to load really\n if (!metadata.hasAllPrimaryKeys(plainObject))\n return Promise.reject(\n \"Given object does not have a primary column, cannot transform it to database entity.\",\n )\n\n // create a special load map that will hold all metadata that will be used to operate with entities easily\n const loadMap = new LoadMap()\n const fillLoadMap = (\n entity: ObjectLiteral,\n entityMetadata: EntityMetadata,\n parentLoadMapItem?: LoadMapItem,\n relation?: RelationMetadata,\n ) => {\n const item = new LoadMapItem(\n entity,\n entityMetadata,\n parentLoadMapItem,\n relation,\n )\n loadMap.addLoadMap(item)\n\n entityMetadata\n .extractRelationValuesFromEntity(entity, metadata.relations)\n .filter((value) => value !== null && value !== undefined)\n .forEach(([relation, value, inverseEntityMetadata]) =>\n fillLoadMap(value, inverseEntityMetadata, item, relation),\n )\n }\n fillLoadMap(plainObject, metadata)\n // load all entities and store them in the load map\n const isMongoDb =\n this.manager.dataSource.driver.options.type === \"mongodb\"\n await Promise.all(\n loadMap.groupByTargetIds().map(async (targetWithIds) => {\n let entities: ObjectLiteral[]\n if (isMongoDb) {\n const mongoManager = this\n .manager as unknown as MongoEntityManager\n entities = await mongoManager.findByIds(\n targetWithIds.target,\n targetWithIds.ids,\n )\n } else {\n entities = await this.manager\n .getRepository<ObjectLiteral>(\n targetWithIds.target as any,\n )\n .createQueryBuilder()\n .whereInIds(targetWithIds.ids)\n .getMany()\n }\n loadMap.fillEntities(targetWithIds.target, entities)\n }),\n )\n\n // go through each item in the load map and set their entity relationship using metadata stored in load map\n loadMap.loadMapItems.forEach((loadMapItem) => {\n if (\n !loadMapItem.relation ||\n !loadMapItem.entity ||\n !loadMapItem.parentLoadMapItem ||\n !loadMapItem.parentLoadMapItem.entity\n )\n return\n\n if (\n loadMapItem.relation.isManyToMany ||\n loadMapItem.relation.isOneToMany\n ) {\n if (\n !loadMapItem.parentLoadMapItem.entity[\n loadMapItem.relation.propertyName\n ]\n )\n loadMapItem.parentLoadMapItem.entity[\n loadMapItem.relation.propertyName\n ] = []\n loadMapItem.parentLoadMapItem.entity[\n loadMapItem.relation.propertyName\n ].push(loadMapItem.entity)\n } else {\n loadMapItem.parentLoadMapItem.entity[\n loadMapItem.relation.propertyName\n ] = loadMapItem.entity\n }\n })\n\n return loadMap.mainLoadMapItem\n ? loadMap.mainLoadMapItem.entity\n : undefined\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"PlainObjectToDatabaseEntityTransformer.js","sourceRoot":"","sources":["../../../../src/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ObjectLiteral } from \"../../common/ObjectLiteral\"\nimport type { EntityMetadata } from \"../../metadata/EntityMetadata\"\nimport type { EntityManager } from \"../../entity-manager/EntityManager\"\nimport type { MongoEntityManager } from \"../../entity-manager/MongoEntityManager\"\nimport type { RelationMetadata } from \"../../metadata/RelationMetadata\"\n\n/**\n */\nclass LoadMapItem {\n entity?: ObjectLiteral\n plainEntity: ObjectLiteral\n metadata: EntityMetadata\n parentLoadMapItem?: LoadMapItem\n relation?: RelationMetadata\n\n constructor(\n plainEntity: ObjectLiteral,\n metadata: EntityMetadata,\n parentLoadMapItem?: LoadMapItem,\n relation?: RelationMetadata,\n ) {\n this.plainEntity = plainEntity\n this.metadata = metadata\n this.parentLoadMapItem = parentLoadMapItem\n this.relation = relation\n }\n\n get target(): Function | string {\n return this.metadata.target\n }\n\n get id(): any {\n return this.metadata.getEntityIdMixedMap(this.plainEntity)\n }\n}\n\nclass LoadMap {\n loadMapItems: LoadMapItem[] = []\n\n get mainLoadMapItem(): LoadMapItem | undefined {\n return this.loadMapItems.find(\n (item) => !item.relation && !item.parentLoadMapItem,\n )\n }\n\n addLoadMap(newLoadMap: LoadMapItem) {\n const item = this.loadMapItems.find(\n (item) =>\n item.target === newLoadMap.target && item.id === newLoadMap.id,\n )\n if (!item) this.loadMapItems.push(newLoadMap)\n }\n\n fillEntities(target: Function | string, entities: any[]) {\n entities.forEach((entity) => {\n const item = this.loadMapItems.find((loadMapItem) => {\n return (\n loadMapItem.target === target &&\n loadMapItem.metadata.compareEntities(\n entity,\n loadMapItem.plainEntity,\n )\n )\n })\n if (item) item.entity = entity\n })\n }\n\n groupByTargetIds(): { target: Function | string; ids: any[] }[] {\n const groups: { target: Function | string; ids: any[] }[] = []\n this.loadMapItems.forEach((loadMapItem) => {\n let group = groups.find(\n (group) => group.target === loadMapItem.target,\n )\n if (!group) {\n group = { target: loadMapItem.target, ids: [] }\n groups.push(group)\n }\n\n group.ids.push(loadMapItem.id)\n })\n return groups\n }\n}\n\n/**\n * Transforms plain old javascript object\n * Entity is constructed based on its entity metadata.\n */\nexport class PlainObjectToDatabaseEntityTransformer {\n constructor(private manager: EntityManager) {}\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n async transform(\n plainObject: ObjectLiteral,\n metadata: EntityMetadata,\n ): Promise<ObjectLiteral | undefined> {\n // if plain object does not have id then nothing to load really\n if (!metadata.hasAllPrimaryKeys(plainObject))\n return Promise.reject(\n \"Given object does not have a primary column, cannot transform it to database entity.\",\n )\n\n // create a special load map that will hold all metadata that will be used to operate with entities easily\n const loadMap = new LoadMap()\n const fillLoadMap = (\n entity: ObjectLiteral,\n entityMetadata: EntityMetadata,\n parentLoadMapItem?: LoadMapItem,\n relation?: RelationMetadata,\n ) => {\n const item = new LoadMapItem(\n entity,\n entityMetadata,\n parentLoadMapItem,\n relation,\n )\n loadMap.addLoadMap(item)\n\n entityMetadata\n .extractRelationValuesFromEntity(entity, metadata.relations)\n .filter((value) => value !== null && value !== undefined)\n .forEach(([relation, value, inverseEntityMetadata]) =>\n fillLoadMap(value, inverseEntityMetadata, item, relation),\n )\n }\n fillLoadMap(plainObject, metadata)\n // load all entities and store them in the load map\n const isMongoDb =\n this.manager.dataSource.driver.options.type === \"mongodb\"\n await Promise.all(\n loadMap.groupByTargetIds().map(async (targetWithIds) => {\n let entities: ObjectLiteral[]\n if (isMongoDb) {\n const mongoManager = this\n .manager as unknown as MongoEntityManager\n entities = await mongoManager.findByIds(\n targetWithIds.target,\n targetWithIds.ids,\n )\n } else {\n entities = await this.manager\n .getRepository<ObjectLiteral>(\n targetWithIds.target as any,\n )\n .createQueryBuilder()\n .whereInIds(targetWithIds.ids)\n .getMany()\n }\n loadMap.fillEntities(targetWithIds.target, entities)\n }),\n )\n\n // go through each item in the load map and set their entity relationship using metadata stored in load map\n loadMap.loadMapItems.forEach((loadMapItem) => {\n if (\n !loadMapItem.relation ||\n !loadMapItem.entity ||\n !loadMapItem.parentLoadMapItem?.entity\n )\n return\n\n if (\n loadMapItem.relation.isManyToMany ||\n loadMapItem.relation.isOneToMany\n ) {\n loadMapItem.parentLoadMapItem.entity[\n loadMapItem.relation.propertyName\n ] ??= []\n loadMapItem.parentLoadMapItem.entity[\n loadMapItem.relation.propertyName\n ].push(loadMapItem.entity)\n } else {\n loadMapItem.parentLoadMapItem.entity[\n loadMapItem.relation.propertyName\n ] = loadMapItem.entity\n }\n })\n\n return loadMap.mainLoadMapItem\n ? loadMap.mainLoadMapItem.entity\n : undefined\n }\n}\n"]}
|
|
@@ -9,6 +9,7 @@ export declare class PlainObjectToNewEntityTransformer {
|
|
|
9
9
|
/**
|
|
10
10
|
* Since db returns a duplicated rows of the data where accuracies of the same object can be duplicated
|
|
11
11
|
* we need to group our result and we must have some unique id (primary key in our case)
|
|
12
|
+
*
|
|
12
13
|
* @param entity
|
|
13
14
|
* @param object
|
|
14
15
|
* @param metadata
|
|
@@ -23,6 +23,7 @@ class PlainObjectToNewEntityTransformer {
|
|
|
23
23
|
/**
|
|
24
24
|
* Since db returns a duplicated rows of the data where accuracies of the same object can be duplicated
|
|
25
25
|
* we need to group our result and we must have some unique id (primary key in our case)
|
|
26
|
+
*
|
|
26
27
|
* @param entity
|
|
27
28
|
* @param object
|
|
28
29
|
* @param metadata
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlainObjectToNewEntityTransformer.js","sourceRoot":"","sources":["../../../../src/query-builder/transformer/PlainObjectToNewEntityTransformer.ts"],"names":[],"mappings":";;;AAEA,wDAAoD;AAEpD;;;GAGG;AACH,MAAa,iCAAiC;IAC1C,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E,SAAS,CACL,SAAY,EACZ,MAAqB,EACrB,QAAwB,EACxB,+BAAwC,KAAK;QAE7C,uDAAuD;QACvD,oDAAoD;QACpD,IAAI,CAAC,iBAAiB,CAClB,SAAS,EACT,MAAM,EACN,QAAQ,EACR,4BAA4B,CAC/B,CAAA;QACD,qCAAqC;QACrC,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,4EAA4E;IAC5E,kBAAkB;IAClB,4EAA4E;IAE5E
|
|
1
|
+
{"version":3,"file":"PlainObjectToNewEntityTransformer.js","sourceRoot":"","sources":["../../../../src/query-builder/transformer/PlainObjectToNewEntityTransformer.ts"],"names":[],"mappings":"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","sourcesContent":["import type { EntityMetadata } from \"../../metadata/EntityMetadata\"\nimport type { ObjectLiteral } from \"../../common/ObjectLiteral\"\nimport { ObjectUtils } from \"../../util/ObjectUtils\"\n\n/**\n * Transforms plain old javascript object\n * Entity is constructed based on its entity metadata.\n */\nexport class PlainObjectToNewEntityTransformer {\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n transform<T extends ObjectLiteral>(\n newEntity: T,\n object: ObjectLiteral,\n metadata: EntityMetadata,\n getLazyRelationsPromiseValue: boolean = false,\n ): T {\n // console.log(\"groupAndTransform entity:\", newEntity);\n // console.log(\"groupAndTransform object:\", object);\n this.groupAndTransform(\n newEntity,\n object,\n metadata,\n getLazyRelationsPromiseValue,\n )\n // console.log(\"result:\", newEntity);\n return newEntity\n }\n\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n\n /**\n * Since db returns a duplicated rows of the data where accuracies of the same object can be duplicated\n * we need to group our result and we must have some unique id (primary key in our case)\n *\n * @param entity\n * @param object\n * @param metadata\n * @param getLazyRelationsPromiseValue\n */\n private groupAndTransform(\n entity: ObjectLiteral,\n object: ObjectLiteral,\n metadata: EntityMetadata,\n getLazyRelationsPromiseValue: boolean = false,\n ): void {\n // console.log(\"groupAndTransform entity:\", entity);\n // console.log(\"groupAndTransform object:\", object);\n\n // copy regular column properties from the given object\n metadata.nonVirtualColumns.forEach((column) => {\n const objectColumnValue = column.getEntityValue(object)\n if (objectColumnValue !== undefined)\n column.setEntityValue(entity, objectColumnValue)\n })\n\n // // copy relation properties from the given object\n if (metadata.relations.length) {\n metadata.relations.forEach((relation) => {\n let entityRelatedValue = relation.getEntityValue(entity)\n const objectRelatedValue = relation.getEntityValue(\n object,\n getLazyRelationsPromiseValue,\n )\n if (objectRelatedValue === undefined) return\n\n if (relation.isOneToMany || relation.isManyToMany) {\n if (!Array.isArray(objectRelatedValue)) return\n\n if (!entityRelatedValue) {\n entityRelatedValue = []\n relation.setEntityValue(entity, entityRelatedValue)\n }\n\n objectRelatedValue.forEach((objectRelatedValueItem) => {\n // check if we have this item from the merging object in the original entity we merge into\n let objectRelatedValueEntity = (\n entityRelatedValue as any[]\n ).find((entityRelatedValueItem) => {\n return relation.inverseEntityMetadata.compareEntities(\n objectRelatedValueItem,\n entityRelatedValueItem,\n )\n })\n\n const inverseEntityMetadata =\n relation.inverseEntityMetadata.findInheritanceMetadata(\n objectRelatedValueItem,\n )\n\n // if such item already exist then merge new data into it, if its not we create a new entity and merge it into the array\n if (!objectRelatedValueEntity) {\n objectRelatedValueEntity =\n inverseEntityMetadata.create(undefined, {\n fromDeserializer: true,\n })\n entityRelatedValue.push(objectRelatedValueEntity)\n }\n\n this.groupAndTransform(\n objectRelatedValueEntity,\n objectRelatedValueItem,\n inverseEntityMetadata,\n getLazyRelationsPromiseValue,\n )\n })\n } else {\n // if related object isn't an object (direct relation id for example)\n // we just set it to the entity relation, we don't need anything more from it\n // however we do it only if original entity does not have this relation set to object\n // to prevent full overriding of objects\n if (!ObjectUtils.isObject(objectRelatedValue)) {\n if (!ObjectUtils.isObject(entityRelatedValue))\n relation.setEntityValue(entity, objectRelatedValue)\n return\n }\n\n const inverseEntityMetadata =\n relation.inverseEntityMetadata.findInheritanceMetadata(\n objectRelatedValue,\n )\n\n if (!entityRelatedValue) {\n entityRelatedValue = inverseEntityMetadata.create(\n undefined,\n {\n fromDeserializer: true,\n },\n )\n relation.setEntityValue(entity, entityRelatedValue)\n }\n\n this.groupAndTransform(\n entityRelatedValue,\n objectRelatedValue,\n inverseEntityMetadata,\n getLazyRelationsPromiseValue,\n )\n }\n })\n }\n }\n}\n"]}
|
|
@@ -27,24 +27,28 @@ export declare class RawSqlResultsToEntityTransformer {
|
|
|
27
27
|
/**
|
|
28
28
|
* Since db returns a duplicated rows of the data where accuracies of the same object can be duplicated
|
|
29
29
|
* we need to group our result and we must have some unique id (primary key in our case)
|
|
30
|
+
*
|
|
30
31
|
* @param rawResults
|
|
31
32
|
* @param alias
|
|
32
33
|
*/
|
|
33
34
|
transform(rawResults: any[], alias: Alias): any[];
|
|
34
35
|
/**
|
|
35
36
|
* Build an alias from a name and column name.
|
|
37
|
+
*
|
|
36
38
|
* @param aliasName
|
|
37
39
|
* @param columnName
|
|
38
40
|
*/
|
|
39
41
|
protected buildAlias(aliasName: string, columnName: string): string;
|
|
40
42
|
/**
|
|
41
43
|
* Groups given raw results by ids of given alias.
|
|
44
|
+
*
|
|
42
45
|
* @param rawResults
|
|
43
46
|
* @param alias
|
|
44
47
|
*/
|
|
45
48
|
protected group(rawResults: any[], alias: Alias): Map<string, any[]>;
|
|
46
49
|
/**
|
|
47
50
|
* Transforms set of data results into single entity.
|
|
51
|
+
*
|
|
48
52
|
* @param rawResults
|
|
49
53
|
* @param alias
|
|
50
54
|
*/
|
|
@@ -52,6 +56,7 @@ export declare class RawSqlResultsToEntityTransformer {
|
|
|
52
56
|
protected transformColumns(rawResults: any[], alias: Alias, entity: ObjectLiteral, metadata: EntityMetadata): boolean;
|
|
53
57
|
/**
|
|
54
58
|
* Transforms joined entities in the given raw results by a given alias and stores to the given (parent) entity
|
|
59
|
+
*
|
|
55
60
|
* @param rawResults
|
|
56
61
|
* @param entity
|
|
57
62
|
* @param alias
|
|
@@ -68,6 +73,7 @@ export declare class RawSqlResultsToEntityTransformer {
|
|
|
68
73
|
* Use a simple JSON.stringify to create a simple hash of the primary ids of an entity.
|
|
69
74
|
* As this.extractEntityPrimaryIds always creates the primary id object in the same order, if the same relation is
|
|
70
75
|
* given, a simple JSON.stringify should be enough to get a unique hash per entity!
|
|
76
|
+
*
|
|
71
77
|
* @param relation
|
|
72
78
|
* @param data
|
|
73
79
|
*/
|
|
@@ -29,6 +29,7 @@ class RawSqlResultsToEntityTransformer {
|
|
|
29
29
|
/**
|
|
30
30
|
* Since db returns a duplicated rows of the data where accuracies of the same object can be duplicated
|
|
31
31
|
* we need to group our result and we must have some unique id (primary key in our case)
|
|
32
|
+
*
|
|
32
33
|
* @param rawResults
|
|
33
34
|
* @param alias
|
|
34
35
|
*/
|
|
@@ -47,6 +48,7 @@ class RawSqlResultsToEntityTransformer {
|
|
|
47
48
|
// -------------------------------------------------------------------------
|
|
48
49
|
/**
|
|
49
50
|
* Build an alias from a name and column name.
|
|
51
|
+
*
|
|
50
52
|
* @param aliasName
|
|
51
53
|
* @param columnName
|
|
52
54
|
*/
|
|
@@ -65,6 +67,7 @@ class RawSqlResultsToEntityTransformer {
|
|
|
65
67
|
}
|
|
66
68
|
/**
|
|
67
69
|
* Groups given raw results by ids of given alias.
|
|
70
|
+
*
|
|
68
71
|
* @param rawResults
|
|
69
72
|
* @param alias
|
|
70
73
|
*/
|
|
@@ -114,6 +117,7 @@ class RawSqlResultsToEntityTransformer {
|
|
|
114
117
|
}
|
|
115
118
|
/**
|
|
116
119
|
* Transforms set of data results into single entity.
|
|
120
|
+
*
|
|
117
121
|
* @param rawResults
|
|
118
122
|
* @param alias
|
|
119
123
|
*/
|
|
@@ -166,6 +170,7 @@ class RawSqlResultsToEntityTransformer {
|
|
|
166
170
|
}
|
|
167
171
|
/**
|
|
168
172
|
* Transforms joined entities in the given raw results by a given alias and stores to the given (parent) entity
|
|
173
|
+
*
|
|
169
174
|
* @param rawResults
|
|
170
175
|
* @param entity
|
|
171
176
|
* @param alias
|
|
@@ -342,13 +347,6 @@ class RawSqlResultsToEntityTransformer {
|
|
|
342
347
|
return data;
|
|
343
348
|
}, {});
|
|
344
349
|
}
|
|
345
|
-
/*private removeVirtualColumns(entity: ObjectLiteral, alias: Alias) {
|
|
346
|
-
const virtualColumns = this.expressionMap.selects
|
|
347
|
-
.filter(select => select.virtual)
|
|
348
|
-
.map(select => select.selection.replace(alias.name + ".", ""));
|
|
349
|
-
|
|
350
|
-
virtualColumns.forEach(virtualColumn => delete entity[virtualColumn]);
|
|
351
|
-
}*/
|
|
352
350
|
/** Prepare data to run #transformRelationIds, as a lot of result independent data is needed in every call */
|
|
353
351
|
prepareDataForTransformRelationIds() {
|
|
354
352
|
// Return early if the relationIdMaps were already calculated
|
|
@@ -429,6 +427,7 @@ class RawSqlResultsToEntityTransformer {
|
|
|
429
427
|
* Use a simple JSON.stringify to create a simple hash of the primary ids of an entity.
|
|
430
428
|
* As this.extractEntityPrimaryIds always creates the primary id object in the same order, if the same relation is
|
|
431
429
|
* given, a simple JSON.stringify should be enough to get a unique hash per entity!
|
|
430
|
+
*
|
|
432
431
|
* @param relation
|
|
433
432
|
* @param data
|
|
434
433
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RawSqlResultsToEntityTransformer.js","sourceRoot":"","sources":["../../../../src/query-builder/transformer/RawSqlResultsToEntityTransformer.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ObjectLiteral } from \"../../common/ObjectLiteral\"\nimport type { Driver } from \"../../driver/Driver\"\nimport { DriverUtils } from \"../../driver/DriverUtils\"\nimport type { ColumnMetadata } from \"../../metadata/ColumnMetadata\"\nimport type { EntityMetadata } from \"../../metadata/EntityMetadata\"\nimport type { RelationMetadata } from \"../../metadata/RelationMetadata\"\nimport type { QueryRunner } from \"../../query-runner/QueryRunner\"\nimport { ObjectUtils } from \"../../util/ObjectUtils\"\nimport { isUint8Array, uint8ArrayToHex } from \"../../util/Uint8ArrayUtils\"\nimport { OrmUtils } from \"../../util/OrmUtils\"\nimport type { Alias } from \"../Alias\"\nimport type { QueryExpressionMap } from \"../QueryExpressionMap\"\nimport type { RelationIdLoadResult } from \"../relation-id/RelationIdLoadResult\"\n\n/**\n * Transforms raw sql results returned from the database into entity object.\n * Entity is constructed based on its entity metadata.\n */\nexport class RawSqlResultsToEntityTransformer {\n /**\n * Contains a hashmap for every rawRelationIdResults given.\n * In the hashmap you will find the idMaps of a result under the hash of this.hashEntityIds for the result.\n */\n private relationIdMaps: Array<{ [idHash: string]: any[] }>\n\n private pojo: boolean\n private selections: Set<string>\n private aliasCache: Map<string, Map<string, string>>\n private columnsCache: Map<\n string,\n Map<EntityMetadata, [string, ColumnMetadata][]>\n >\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(\n protected expressionMap: QueryExpressionMap,\n protected driver: Driver,\n protected rawRelationIdResults: RelationIdLoadResult[],\n protected queryRunner?: QueryRunner,\n ) {\n this.pojo = this.expressionMap.options.includes(\"create-pojo\")\n this.selections = new Set(\n this.expressionMap.selects.map((s) => s.selection),\n )\n this.aliasCache = new Map()\n this.columnsCache = new Map()\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Since db returns a duplicated rows of the data where accuracies of the same object can be duplicated\n * we need to group our result and we must have some unique id (primary key in our case)\n * @param rawResults\n * @param alias\n */\n transform(rawResults: any[], alias: Alias): any[] {\n const group = this.group(rawResults, alias)\n const entities: any[] = []\n for (const results of group.values()) {\n const entity = this.transformRawResultsGroup(results, alias)\n if (entity !== undefined) entities.push(entity)\n }\n return entities\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Build an alias from a name and column name.\n * @param aliasName\n * @param columnName\n */\n protected buildAlias(aliasName: string, columnName: string) {\n let aliases = this.aliasCache.get(aliasName)\n if (!aliases) {\n aliases = new Map()\n this.aliasCache.set(aliasName, aliases)\n }\n let columnAlias = aliases.get(columnName)\n if (!columnAlias) {\n columnAlias = DriverUtils.buildAlias(\n this.driver,\n undefined,\n aliasName,\n columnName,\n )\n aliases.set(columnName, columnAlias)\n }\n return columnAlias\n }\n\n /**\n * Groups given raw results by ids of given alias.\n * @param rawResults\n * @param alias\n */\n protected group(rawResults: any[], alias: Alias): Map<string, any[]> {\n const map = new Map()\n const keys: string[] = []\n if (alias.metadata.tableType === \"view\") {\n keys.push(\n ...alias.metadata.columns.map((column) =>\n this.buildAlias(alias.name, column.databaseName),\n ),\n )\n } else {\n keys.push(\n ...alias.metadata.primaryColumns.map((column) =>\n this.buildAlias(alias.name, column.databaseName),\n ),\n )\n }\n\n // Check if primary key columns are actually selected in the raw results\n const primaryKeysSelected = keys.some(\n (key) => key in (rawResults[0] ?? {}),\n )\n\n for (const rawResult of rawResults) {\n let id: string\n\n if (primaryKeysSelected) {\n // Use primary key based grouping when available\n id = keys\n .map((key) => {\n const keyValue = rawResult[key]\n\n if (isUint8Array(keyValue)) {\n return uint8ArrayToHex(keyValue)\n }\n\n if (ObjectUtils.isObject(keyValue)) {\n return JSON.stringify(keyValue)\n }\n\n return keyValue\n })\n .join(\"_\")\n } else {\n // Fallback: use row index when primary keys are not available\n // This ensures each row gets its own group for proper entity mapping\n const rowIndex = rawResults.indexOf(rawResult)\n id = `row_${rowIndex}`\n }\n\n const items = map.get(id)\n if (!items) {\n map.set(id, [rawResult])\n } else {\n items.push(rawResult)\n }\n }\n return map\n }\n\n /**\n * Transforms set of data results into single entity.\n * @param rawResults\n * @param alias\n */\n protected transformRawResultsGroup(\n rawResults: any[],\n alias: Alias,\n ): ObjectLiteral | undefined {\n // let hasColumns = false; // , hasEmbeddedColumns = false, hasParentColumns = false, hasParentEmbeddedColumns = false;\n let metadata = alias.metadata\n\n if (metadata.discriminatorColumn) {\n const discriminatorValues = rawResults.map(\n (result) =>\n result[\n this.buildAlias(\n alias.name,\n alias.metadata.discriminatorColumn!.databaseName,\n )\n ],\n )\n const discriminatorMetadata = metadata.childEntityMetadatas.find(\n (childEntityMetadata) => {\n return (\n typeof discriminatorValues.find(\n (value) =>\n value ===\n childEntityMetadata.discriminatorValue,\n ) !== \"undefined\"\n )\n },\n )\n if (discriminatorMetadata) metadata = discriminatorMetadata\n }\n const entity: any = metadata.create(this.queryRunner, {\n fromDeserializer: true,\n pojo: this.pojo,\n })\n\n // get value from columns selections and put them into newly created entity\n const hasColumns = this.transformColumns(\n rawResults,\n alias,\n entity,\n metadata,\n )\n const hasRelations = this.transformJoins(\n rawResults,\n entity,\n alias,\n metadata,\n )\n const hasRelationIds = this.transformRelationIds(\n rawResults,\n alias,\n entity,\n metadata,\n )\n // if we have at least one selected column then return this entity\n // since entity must have at least primary columns to be really selected and transformed into entity\n if (hasColumns) return entity\n\n // if we don't have any selected column we should not return entity,\n // except for the case when entity only contain a primary column as a relation to another entity\n // in this case its absolutely possible our entity to not have any columns except a single relation\n const hasOnlyVirtualPrimaryColumns = metadata.primaryColumns.every(\n (column) => column.isVirtual === true,\n ) // todo: create metadata.hasOnlyVirtualPrimaryColumns\n if (hasOnlyVirtualPrimaryColumns && (hasRelations || hasRelationIds))\n return entity\n\n return undefined\n }\n\n // get value from columns selections and put them into object\n protected transformColumns(\n rawResults: any[],\n alias: Alias,\n entity: ObjectLiteral,\n metadata: EntityMetadata,\n ): boolean {\n let hasData = false\n const result = rawResults[0]\n for (const [key, column] of this.getColumnsToProcess(\n alias.name,\n metadata,\n )) {\n const value = result[key]\n\n if (value === undefined) continue\n // we don't mark it as has data because if we will have all nulls in our object - we don't need such object\n else if (value !== null && !column.isVirtualProperty) hasData = true\n\n column.setEntityValue(\n entity,\n this.driver.prepareHydratedValue(value, column),\n )\n }\n return hasData\n }\n\n /**\n * Transforms joined entities in the given raw results by a given alias and stores to the given (parent) entity\n * @param rawResults\n * @param entity\n * @param alias\n * @param metadata\n */\n protected transformJoins(\n rawResults: any[],\n entity: ObjectLiteral,\n alias: Alias,\n metadata: EntityMetadata,\n ) {\n let hasData = false\n\n // let discriminatorValue: string = \"\";\n // if (metadata.discriminatorColumn)\n // discriminatorValue = rawResults[0][this.buildAlias(alias.name, alias.metadata.discriminatorColumn!.databaseName)];\n\n for (const join of this.expressionMap.joinAttributes) {\n // todo: we have problem here - when inner joins are used without selects it still create empty array\n\n // skip joins without metadata\n if (!join.metadata) continue\n\n // if simple left or inner join was performed without selection then we don't need to do anything\n if (!join.isSelected) continue\n\n // this check need to avoid setting properties than not belong to entity when single table inheritance used. (todo: check if we still need it)\n // const metadata = metadata.childEntityMetadatas.find(childEntityMetadata => discriminatorValue === childEntityMetadata.discriminatorValue);\n if (\n join.relation &&\n !metadata.relations.find(\n (relation) => relation === join.relation,\n )\n )\n continue\n\n // some checks to make sure this join is for current alias\n if (join.mapToProperty) {\n if (join.mapToPropertyParentAlias !== alias.name) continue\n } else {\n if (\n !join.relation ||\n join.parentAlias !== alias.name ||\n join.relationPropertyPath !== join.relation!.propertyPath\n )\n continue\n }\n\n // transform joined data into entities\n let result: any = this.transform(rawResults, join.alias)\n result = !join.isMany ? result[0] : result\n result = !join.isMany && result === undefined ? null : result // this is needed to make relations to return null when its joined but nothing was found in the database\n // if nothing was joined then simply continue\n if (result === undefined) continue\n\n // if join was mapped to some property then save result to that property\n if (join.mapToPropertyPropertyName) {\n entity[join.mapToPropertyPropertyName] = result // todo: fix embeds\n } else {\n // otherwise set to relation\n join.relation!.setEntityValue(entity, result)\n }\n\n hasData = true\n }\n return hasData\n }\n\n protected transformRelationIds(\n rawSqlResults: any[],\n alias: Alias,\n entity: ObjectLiteral,\n metadata: EntityMetadata,\n ): boolean {\n let hasData = false\n for (const [\n index,\n rawRelationIdResult,\n ] of this.rawRelationIdResults.entries()) {\n if (\n rawRelationIdResult.relationIdAttribute.parentAlias !==\n alias.name\n )\n continue\n\n const relation = rawRelationIdResult.relationIdAttribute.relation\n const valueMap = this.createValueMapFromJoinColumns(\n relation,\n rawRelationIdResult.relationIdAttribute.parentAlias,\n rawSqlResults,\n )\n if (valueMap === undefined || valueMap === null) {\n continue\n }\n\n // prepare common data for this call\n this.prepareDataForTransformRelationIds()\n\n // Extract idMaps from prepared data by hash\n const hash = this.hashEntityIds(relation, valueMap)\n const idMaps = this.relationIdMaps[index][hash] || []\n\n // Map data to properties\n const properties =\n rawRelationIdResult.relationIdAttribute.mapToPropertyPropertyPath.split(\n \".\",\n )\n const mapToProperty = (\n properties: string[],\n map: ObjectLiteral,\n value: any,\n ): any => {\n const property = properties.shift()\n if (property && properties.length === 0) {\n map[property] = value\n return map\n }\n if (property && properties.length > 0) {\n if (\n typeof map[property] !== \"object\" ||\n map[property] === null\n ) {\n map[property] = {}\n }\n mapToProperty(properties, map[property], value)\n } else {\n return map\n }\n }\n if (relation.isOneToOne || relation.isManyToOne) {\n if (idMaps[0] !== undefined) {\n mapToProperty(properties, entity, idMaps[0])\n hasData = true\n }\n } else {\n mapToProperty(properties, entity, idMaps)\n hasData = hasData || idMaps.length > 0\n }\n }\n\n return hasData\n }\n\n private getColumnsToProcess(aliasName: string, metadata: EntityMetadata) {\n let metadatas = this.columnsCache.get(aliasName)\n if (!metadatas) {\n metadatas = new Map()\n this.columnsCache.set(aliasName, metadatas)\n }\n let columns = metadatas.get(metadata)\n if (!columns) {\n columns = metadata.columns\n .filter(\n (column) =>\n !column.isVirtual &&\n // if user does not selected the whole entity or he used partial selection and does not select this particular column\n // then we don't add this column and its value into the entity\n (this.selections.has(aliasName) ||\n this.selections.has(\n `${aliasName}.${column.propertyPath}`,\n )) &&\n // if table inheritance is used make sure this column is not child's column\n !metadata.childEntityMetadatas.some(\n (childMetadata) =>\n childMetadata.target === column.target,\n ),\n )\n .map((column) => [\n this.buildAlias(aliasName, column.databaseName),\n column,\n ])\n metadatas.set(metadata, columns)\n }\n return columns\n }\n\n private createValueMapFromJoinColumns(\n relation: RelationMetadata,\n parentAlias: string,\n rawSqlResults: any[],\n ): ObjectLiteral {\n let columns: ColumnMetadata[]\n if (relation.isManyToOne || relation.isOneToOneOwner) {\n columns = relation.entityMetadata.primaryColumns.map(\n (joinColumn) => joinColumn,\n )\n } else if (relation.isOneToMany || relation.isOneToOneNotOwner) {\n columns = relation.inverseRelation!.joinColumns.map(\n (joinColumn) => joinColumn,\n )\n } else {\n if (relation.isOwning) {\n columns = relation.joinColumns.map((joinColumn) => joinColumn)\n } else {\n columns = relation.inverseRelation!.inverseJoinColumns.map(\n (joinColumn) => joinColumn,\n )\n }\n }\n return columns.reduce((valueMap, column) => {\n for (const rawSqlResult of rawSqlResults) {\n if (relation.isManyToOne || relation.isOneToOneOwner) {\n valueMap[column.databaseName] =\n this.driver.prepareHydratedValue(\n rawSqlResult[\n this.buildAlias(\n parentAlias,\n column.databaseName,\n )\n ],\n column,\n )\n } else {\n valueMap[column.databaseName] =\n this.driver.prepareHydratedValue(\n rawSqlResult[\n this.buildAlias(\n parentAlias,\n column.referencedColumn!.databaseName,\n )\n ],\n column.referencedColumn!,\n )\n }\n }\n return valueMap\n }, {} as ObjectLiteral)\n }\n\n private extractEntityPrimaryIds(\n relation: RelationMetadata,\n relationIdRawResult: any,\n ) {\n let columns: ColumnMetadata[]\n if (relation.isManyToOne || relation.isOneToOneOwner) {\n columns = relation.entityMetadata.primaryColumns.map(\n (joinColumn) => joinColumn,\n )\n } else if (relation.isOneToMany || relation.isOneToOneNotOwner) {\n columns = relation.inverseRelation!.joinColumns.map(\n (joinColumn) => joinColumn,\n )\n } else {\n if (relation.isOwning) {\n columns = relation.joinColumns.map((joinColumn) => joinColumn)\n } else {\n columns = relation.inverseRelation!.inverseJoinColumns.map(\n (joinColumn) => joinColumn,\n )\n }\n }\n return columns.reduce((data, column) => {\n data[column.databaseName] = relationIdRawResult[column.databaseName]\n return data\n }, {} as ObjectLiteral)\n }\n\n /*private removeVirtualColumns(entity: ObjectLiteral, alias: Alias) {\n const virtualColumns = this.expressionMap.selects\n .filter(select => select.virtual)\n .map(select => select.selection.replace(alias.name + \".\", \"\"));\n\n virtualColumns.forEach(virtualColumn => delete entity[virtualColumn]);\n }*/\n\n /** Prepare data to run #transformRelationIds, as a lot of result independent data is needed in every call */\n private prepareDataForTransformRelationIds() {\n // Return early if the relationIdMaps were already calculated\n if (this.relationIdMaps) {\n return\n }\n\n // Ensure this prepare function is only called once\n this.relationIdMaps = this.rawRelationIdResults.map(\n (rawRelationIdResult) => {\n const relation =\n rawRelationIdResult.relationIdAttribute.relation\n\n // Calculate column metadata\n let columns: ColumnMetadata[]\n if (relation.isManyToOne || relation.isOneToOneOwner) {\n columns = relation.joinColumns\n } else if (\n relation.isOneToMany ||\n relation.isOneToOneNotOwner\n ) {\n columns = relation.inverseEntityMetadata.primaryColumns\n } else {\n // ManyToMany\n if (relation.isOwning) {\n columns = relation.inverseJoinColumns\n } else {\n columns = relation.inverseRelation!.joinColumns\n }\n }\n\n // Calculate the idMaps for the rawRelationIdResult\n return rawRelationIdResult.results.reduce<{\n [idHash: string]: any[]\n }>((agg, result) => {\n let idMap = columns.reduce((idMap, column) => {\n let value = result[column.databaseName]\n if (\n relation.isOneToMany ||\n relation.isOneToOneNotOwner\n ) {\n if (\n column.isVirtual &&\n column.referencedColumn &&\n column.referencedColumn.propertyName !==\n column.propertyName\n ) {\n // if column is a relation\n value =\n column.referencedColumn.createValueMap(\n value,\n )\n }\n\n return OrmUtils.mergeDeep(\n idMap,\n column.createValueMap(value),\n )\n }\n if (\n !column.isPrimary &&\n column.referencedColumn!.referencedColumn\n ) {\n // if column is a relation\n value =\n column.referencedColumn!.referencedColumn.createValueMap(\n value,\n )\n }\n\n return OrmUtils.mergeDeep(\n idMap,\n column.referencedColumn!.createValueMap(value),\n )\n }, {} as ObjectLiteral)\n\n if (\n columns.length === 1 &&\n !rawRelationIdResult.relationIdAttribute.disableMixedMap\n ) {\n if (\n relation.isOneToMany ||\n relation.isOneToOneNotOwner\n ) {\n idMap = columns[0].getEntityValue(idMap)\n } else {\n idMap =\n columns[0].referencedColumn!.getEntityValue(\n idMap,\n )\n }\n }\n\n // If an idMap is found, set it in the aggregator under the correct hash\n if (idMap !== undefined) {\n const hash = this.hashEntityIds(relation, result)\n\n if (agg[hash]) {\n agg[hash].push(idMap)\n } else {\n agg[hash] = [idMap]\n }\n }\n\n return agg\n }, {})\n },\n )\n }\n\n /**\n * Use a simple JSON.stringify to create a simple hash of the primary ids of an entity.\n * As this.extractEntityPrimaryIds always creates the primary id object in the same order, if the same relation is\n * given, a simple JSON.stringify should be enough to get a unique hash per entity!\n * @param relation\n * @param data\n */\n private hashEntityIds(relation: RelationMetadata, data: ObjectLiteral) {\n const entityPrimaryIds = this.extractEntityPrimaryIds(relation, data)\n return JSON.stringify(entityPrimaryIds)\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"RawSqlResultsToEntityTransformer.js","sourceRoot":"","sources":["../../../../src/query-builder/transformer/RawSqlResultsToEntityTransformer.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ObjectLiteral } from \"../../common/ObjectLiteral\"\nimport type { Driver } from \"../../driver/Driver\"\nimport { DriverUtils } from \"../../driver/DriverUtils\"\nimport type { ColumnMetadata } from \"../../metadata/ColumnMetadata\"\nimport type { EntityMetadata } from \"../../metadata/EntityMetadata\"\nimport type { RelationMetadata } from \"../../metadata/RelationMetadata\"\nimport type { QueryRunner } from \"../../query-runner/QueryRunner\"\nimport { ObjectUtils } from \"../../util/ObjectUtils\"\nimport { isUint8Array, uint8ArrayToHex } from \"../../util/Uint8ArrayUtils\"\nimport { OrmUtils } from \"../../util/OrmUtils\"\nimport type { Alias } from \"../Alias\"\nimport type { QueryExpressionMap } from \"../QueryExpressionMap\"\nimport type { RelationIdLoadResult } from \"../relation-id/RelationIdLoadResult\"\n\n/**\n * Transforms raw sql results returned from the database into entity object.\n * Entity is constructed based on its entity metadata.\n */\nexport class RawSqlResultsToEntityTransformer {\n /**\n * Contains a hashmap for every rawRelationIdResults given.\n * In the hashmap you will find the idMaps of a result under the hash of this.hashEntityIds for the result.\n */\n private relationIdMaps: Array<{ [idHash: string]: any[] }>\n\n private pojo: boolean\n private selections: Set<string>\n private aliasCache: Map<string, Map<string, string>>\n private columnsCache: Map<\n string,\n Map<EntityMetadata, [string, ColumnMetadata][]>\n >\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(\n protected expressionMap: QueryExpressionMap,\n protected driver: Driver,\n protected rawRelationIdResults: RelationIdLoadResult[],\n protected queryRunner?: QueryRunner,\n ) {\n this.pojo = this.expressionMap.options.includes(\"create-pojo\")\n this.selections = new Set(\n this.expressionMap.selects.map((s) => s.selection),\n )\n this.aliasCache = new Map()\n this.columnsCache = new Map()\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Since db returns a duplicated rows of the data where accuracies of the same object can be duplicated\n * we need to group our result and we must have some unique id (primary key in our case)\n *\n * @param rawResults\n * @param alias\n */\n transform(rawResults: any[], alias: Alias): any[] {\n const group = this.group(rawResults, alias)\n const entities: any[] = []\n for (const results of group.values()) {\n const entity = this.transformRawResultsGroup(results, alias)\n if (entity !== undefined) entities.push(entity)\n }\n return entities\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Build an alias from a name and column name.\n *\n * @param aliasName\n * @param columnName\n */\n protected buildAlias(aliasName: string, columnName: string) {\n let aliases = this.aliasCache.get(aliasName)\n if (!aliases) {\n aliases = new Map()\n this.aliasCache.set(aliasName, aliases)\n }\n let columnAlias = aliases.get(columnName)\n if (!columnAlias) {\n columnAlias = DriverUtils.buildAlias(\n this.driver,\n undefined,\n aliasName,\n columnName,\n )\n aliases.set(columnName, columnAlias)\n }\n return columnAlias\n }\n\n /**\n * Groups given raw results by ids of given alias.\n *\n * @param rawResults\n * @param alias\n */\n protected group(rawResults: any[], alias: Alias): Map<string, any[]> {\n const map = new Map()\n const keys: string[] = []\n if (alias.metadata.tableType === \"view\") {\n keys.push(\n ...alias.metadata.columns.map((column) =>\n this.buildAlias(alias.name, column.databaseName),\n ),\n )\n } else {\n keys.push(\n ...alias.metadata.primaryColumns.map((column) =>\n this.buildAlias(alias.name, column.databaseName),\n ),\n )\n }\n\n // Check if primary key columns are actually selected in the raw results\n const primaryKeysSelected = keys.some(\n (key) => key in (rawResults[0] ?? {}),\n )\n\n for (const rawResult of rawResults) {\n let id: string\n\n if (primaryKeysSelected) {\n // Use primary key based grouping when available\n id = keys\n .map((key) => {\n const keyValue = rawResult[key]\n\n if (isUint8Array(keyValue)) {\n return uint8ArrayToHex(keyValue)\n }\n\n if (ObjectUtils.isObject(keyValue)) {\n return JSON.stringify(keyValue)\n }\n\n return keyValue\n })\n .join(\"_\")\n } else {\n // Fallback: use row index when primary keys are not available\n // This ensures each row gets its own group for proper entity mapping\n const rowIndex = rawResults.indexOf(rawResult)\n id = `row_${rowIndex}`\n }\n\n const items = map.get(id)\n if (!items) {\n map.set(id, [rawResult])\n } else {\n items.push(rawResult)\n }\n }\n return map\n }\n\n /**\n * Transforms set of data results into single entity.\n *\n * @param rawResults\n * @param alias\n */\n protected transformRawResultsGroup(\n rawResults: any[],\n alias: Alias,\n ): ObjectLiteral | undefined {\n // let hasColumns = false; // , hasEmbeddedColumns = false, hasParentColumns = false, hasParentEmbeddedColumns = false;\n let metadata = alias.metadata\n\n if (metadata.discriminatorColumn) {\n const discriminatorValues = rawResults.map(\n (result) =>\n result[\n this.buildAlias(\n alias.name,\n alias.metadata.discriminatorColumn!.databaseName,\n )\n ],\n )\n const discriminatorMetadata = metadata.childEntityMetadatas.find(\n (childEntityMetadata) => {\n return (\n typeof discriminatorValues.find(\n (value) =>\n value ===\n childEntityMetadata.discriminatorValue,\n ) !== \"undefined\"\n )\n },\n )\n if (discriminatorMetadata) metadata = discriminatorMetadata\n }\n const entity: any = metadata.create(this.queryRunner, {\n fromDeserializer: true,\n pojo: this.pojo,\n })\n\n // get value from columns selections and put them into newly created entity\n const hasColumns = this.transformColumns(\n rawResults,\n alias,\n entity,\n metadata,\n )\n const hasRelations = this.transformJoins(\n rawResults,\n entity,\n alias,\n metadata,\n )\n const hasRelationIds = this.transformRelationIds(\n rawResults,\n alias,\n entity,\n metadata,\n )\n // if we have at least one selected column then return this entity\n // since entity must have at least primary columns to be really selected and transformed into entity\n if (hasColumns) return entity\n\n // if we don't have any selected column we should not return entity,\n // except for the case when entity only contain a primary column as a relation to another entity\n // in this case its absolutely possible our entity to not have any columns except a single relation\n const hasOnlyVirtualPrimaryColumns = metadata.primaryColumns.every(\n (column) => column.isVirtual === true,\n ) // todo: create metadata.hasOnlyVirtualPrimaryColumns\n if (hasOnlyVirtualPrimaryColumns && (hasRelations || hasRelationIds))\n return entity\n\n return undefined\n }\n\n // get value from columns selections and put them into object\n protected transformColumns(\n rawResults: any[],\n alias: Alias,\n entity: ObjectLiteral,\n metadata: EntityMetadata,\n ): boolean {\n let hasData = false\n const result = rawResults[0]\n for (const [key, column] of this.getColumnsToProcess(\n alias.name,\n metadata,\n )) {\n const value = result[key]\n\n if (value === undefined) continue\n // we don't mark it as has data because if we will have all nulls in our object - we don't need such object\n else if (value !== null && !column.isVirtualProperty) hasData = true\n\n column.setEntityValue(\n entity,\n this.driver.prepareHydratedValue(value, column),\n )\n }\n return hasData\n }\n\n /**\n * Transforms joined entities in the given raw results by a given alias and stores to the given (parent) entity\n *\n * @param rawResults\n * @param entity\n * @param alias\n * @param metadata\n */\n protected transformJoins(\n rawResults: any[],\n entity: ObjectLiteral,\n alias: Alias,\n metadata: EntityMetadata,\n ) {\n let hasData = false\n\n // let discriminatorValue: string = \"\";\n // if (metadata.discriminatorColumn)\n // discriminatorValue = rawResults[0][this.buildAlias(alias.name, alias.metadata.discriminatorColumn!.databaseName)];\n\n for (const join of this.expressionMap.joinAttributes) {\n // todo: we have problem here - when inner joins are used without selects it still create empty array\n\n // skip joins without metadata\n if (!join.metadata) continue\n\n // if simple left or inner join was performed without selection then we don't need to do anything\n if (!join.isSelected) continue\n\n // this check need to avoid setting properties than not belong to entity when single table inheritance used. (todo: check if we still need it)\n // const metadata = metadata.childEntityMetadatas.find(childEntityMetadata => discriminatorValue === childEntityMetadata.discriminatorValue);\n if (\n join.relation &&\n !metadata.relations.find(\n (relation) => relation === join.relation,\n )\n )\n continue\n\n // some checks to make sure this join is for current alias\n if (join.mapToProperty) {\n if (join.mapToPropertyParentAlias !== alias.name) continue\n } else {\n if (\n !join.relation ||\n join.parentAlias !== alias.name ||\n join.relationPropertyPath !== join.relation!.propertyPath\n )\n continue\n }\n\n // transform joined data into entities\n let result: any = this.transform(rawResults, join.alias)\n result = !join.isMany ? result[0] : result\n result = !join.isMany && result === undefined ? null : result // this is needed to make relations to return null when its joined but nothing was found in the database\n // if nothing was joined then simply continue\n if (result === undefined) continue\n\n // if join was mapped to some property then save result to that property\n if (join.mapToPropertyPropertyName) {\n entity[join.mapToPropertyPropertyName] = result // todo: fix embeds\n } else {\n // otherwise set to relation\n join.relation!.setEntityValue(entity, result)\n }\n\n hasData = true\n }\n return hasData\n }\n\n protected transformRelationIds(\n rawSqlResults: any[],\n alias: Alias,\n entity: ObjectLiteral,\n metadata: EntityMetadata,\n ): boolean {\n let hasData = false\n for (const [\n index,\n rawRelationIdResult,\n ] of this.rawRelationIdResults.entries()) {\n if (\n rawRelationIdResult.relationIdAttribute.parentAlias !==\n alias.name\n )\n continue\n\n const relation = rawRelationIdResult.relationIdAttribute.relation\n const valueMap = this.createValueMapFromJoinColumns(\n relation,\n rawRelationIdResult.relationIdAttribute.parentAlias,\n rawSqlResults,\n )\n if (valueMap === undefined || valueMap === null) {\n continue\n }\n\n // prepare common data for this call\n this.prepareDataForTransformRelationIds()\n\n // Extract idMaps from prepared data by hash\n const hash = this.hashEntityIds(relation, valueMap)\n const idMaps = this.relationIdMaps[index][hash] || []\n\n // Map data to properties\n const properties =\n rawRelationIdResult.relationIdAttribute.mapToPropertyPropertyPath.split(\n \".\",\n )\n const mapToProperty = (\n properties: string[],\n map: ObjectLiteral,\n value: any,\n ): any => {\n const property = properties.shift()\n if (property && properties.length === 0) {\n map[property] = value\n return map\n }\n if (property && properties.length > 0) {\n if (\n typeof map[property] !== \"object\" ||\n map[property] === null\n ) {\n map[property] = {}\n }\n mapToProperty(properties, map[property], value)\n } else {\n return map\n }\n }\n if (relation.isOneToOne || relation.isManyToOne) {\n if (idMaps[0] !== undefined) {\n mapToProperty(properties, entity, idMaps[0])\n hasData = true\n }\n } else {\n mapToProperty(properties, entity, idMaps)\n hasData = hasData || idMaps.length > 0\n }\n }\n\n return hasData\n }\n\n private getColumnsToProcess(aliasName: string, metadata: EntityMetadata) {\n let metadatas = this.columnsCache.get(aliasName)\n if (!metadatas) {\n metadatas = new Map()\n this.columnsCache.set(aliasName, metadatas)\n }\n let columns = metadatas.get(metadata)\n if (!columns) {\n columns = metadata.columns\n .filter(\n (column) =>\n !column.isVirtual &&\n // if user does not selected the whole entity or he used partial selection and does not select this particular column\n // then we don't add this column and its value into the entity\n (this.selections.has(aliasName) ||\n this.selections.has(\n `${aliasName}.${column.propertyPath}`,\n )) &&\n // if table inheritance is used make sure this column is not child's column\n !metadata.childEntityMetadatas.some(\n (childMetadata) =>\n childMetadata.target === column.target,\n ),\n )\n .map((column) => [\n this.buildAlias(aliasName, column.databaseName),\n column,\n ])\n metadatas.set(metadata, columns)\n }\n return columns\n }\n\n private createValueMapFromJoinColumns(\n relation: RelationMetadata,\n parentAlias: string,\n rawSqlResults: any[],\n ): ObjectLiteral {\n let columns: ColumnMetadata[]\n if (relation.isManyToOne || relation.isOneToOneOwner) {\n columns = relation.entityMetadata.primaryColumns.map(\n (joinColumn) => joinColumn,\n )\n } else if (relation.isOneToMany || relation.isOneToOneNotOwner) {\n columns = relation.inverseRelation!.joinColumns.map(\n (joinColumn) => joinColumn,\n )\n } else {\n if (relation.isOwning) {\n columns = relation.joinColumns.map((joinColumn) => joinColumn)\n } else {\n columns = relation.inverseRelation!.inverseJoinColumns.map(\n (joinColumn) => joinColumn,\n )\n }\n }\n return columns.reduce((valueMap, column) => {\n for (const rawSqlResult of rawSqlResults) {\n if (relation.isManyToOne || relation.isOneToOneOwner) {\n valueMap[column.databaseName] =\n this.driver.prepareHydratedValue(\n rawSqlResult[\n this.buildAlias(\n parentAlias,\n column.databaseName,\n )\n ],\n column,\n )\n } else {\n valueMap[column.databaseName] =\n this.driver.prepareHydratedValue(\n rawSqlResult[\n this.buildAlias(\n parentAlias,\n column.referencedColumn!.databaseName,\n )\n ],\n column.referencedColumn!,\n )\n }\n }\n return valueMap\n }, {} as ObjectLiteral)\n }\n\n private extractEntityPrimaryIds(\n relation: RelationMetadata,\n relationIdRawResult: any,\n ) {\n let columns: ColumnMetadata[]\n if (relation.isManyToOne || relation.isOneToOneOwner) {\n columns = relation.entityMetadata.primaryColumns.map(\n (joinColumn) => joinColumn,\n )\n } else if (relation.isOneToMany || relation.isOneToOneNotOwner) {\n columns = relation.inverseRelation!.joinColumns.map(\n (joinColumn) => joinColumn,\n )\n } else {\n if (relation.isOwning) {\n columns = relation.joinColumns.map((joinColumn) => joinColumn)\n } else {\n columns = relation.inverseRelation!.inverseJoinColumns.map(\n (joinColumn) => joinColumn,\n )\n }\n }\n return columns.reduce((data, column) => {\n data[column.databaseName] = relationIdRawResult[column.databaseName]\n return data\n }, {} as ObjectLiteral)\n }\n\n /** Prepare data to run #transformRelationIds, as a lot of result independent data is needed in every call */\n private prepareDataForTransformRelationIds() {\n // Return early if the relationIdMaps were already calculated\n if (this.relationIdMaps) {\n return\n }\n\n // Ensure this prepare function is only called once\n this.relationIdMaps = this.rawRelationIdResults.map(\n (rawRelationIdResult) => {\n const relation =\n rawRelationIdResult.relationIdAttribute.relation\n\n // Calculate column metadata\n let columns: ColumnMetadata[]\n if (relation.isManyToOne || relation.isOneToOneOwner) {\n columns = relation.joinColumns\n } else if (\n relation.isOneToMany ||\n relation.isOneToOneNotOwner\n ) {\n columns = relation.inverseEntityMetadata.primaryColumns\n } else {\n // ManyToMany\n if (relation.isOwning) {\n columns = relation.inverseJoinColumns\n } else {\n columns = relation.inverseRelation!.joinColumns\n }\n }\n\n // Calculate the idMaps for the rawRelationIdResult\n return rawRelationIdResult.results.reduce<{\n [idHash: string]: any[]\n }>((agg, result) => {\n let idMap = columns.reduce((idMap, column) => {\n let value = result[column.databaseName]\n if (\n relation.isOneToMany ||\n relation.isOneToOneNotOwner\n ) {\n if (\n column.isVirtual &&\n column.referencedColumn &&\n column.referencedColumn.propertyName !==\n column.propertyName\n ) {\n // if column is a relation\n value =\n column.referencedColumn.createValueMap(\n value,\n )\n }\n\n return OrmUtils.mergeDeep(\n idMap,\n column.createValueMap(value),\n )\n }\n if (\n !column.isPrimary &&\n column.referencedColumn!.referencedColumn\n ) {\n // if column is a relation\n value =\n column.referencedColumn!.referencedColumn.createValueMap(\n value,\n )\n }\n\n return OrmUtils.mergeDeep(\n idMap,\n column.referencedColumn!.createValueMap(value),\n )\n }, {} as ObjectLiteral)\n\n if (\n columns.length === 1 &&\n !rawRelationIdResult.relationIdAttribute.disableMixedMap\n ) {\n if (\n relation.isOneToMany ||\n relation.isOneToOneNotOwner\n ) {\n idMap = columns[0].getEntityValue(idMap)\n } else {\n idMap =\n columns[0].referencedColumn!.getEntityValue(\n idMap,\n )\n }\n }\n\n // If an idMap is found, set it in the aggregator under the correct hash\n if (idMap !== undefined) {\n const hash = this.hashEntityIds(relation, result)\n\n if (agg[hash]) {\n agg[hash].push(idMap)\n } else {\n agg[hash] = [idMap]\n }\n }\n\n return agg\n }, {})\n },\n )\n }\n\n /**\n * Use a simple JSON.stringify to create a simple hash of the primary ids of an entity.\n * As this.extractEntityPrimaryIds always creates the primary id object in the same order, if the same relation is\n * given, a simple JSON.stringify should be enough to get a unique hash per entity!\n *\n * @param relation\n * @param data\n */\n private hashEntityIds(relation: RelationMetadata, data: ObjectLiteral) {\n const entityPrimaryIds = this.extractEntityPrimaryIds(relation, data)\n return JSON.stringify(entityPrimaryIds)\n }\n}\n"]}
|
|
@@ -18,6 +18,7 @@ export declare abstract class BaseQueryRunner implements AsyncDisposable {
|
|
|
18
18
|
dataSource: DataSource;
|
|
19
19
|
/**
|
|
20
20
|
* DataSource used by this query runner.
|
|
21
|
+
*
|
|
21
22
|
* @deprecated since 1.0.0. Use {@link dataSource} instance instead.
|
|
22
23
|
*/
|
|
23
24
|
get connection(): DataSource;
|
|
@@ -95,7 +96,10 @@ export declare abstract class BaseQueryRunner implements AsyncDisposable {
|
|
|
95
96
|
* Template expressions are automatically transformed into database parameters.
|
|
96
97
|
* Raw query execution is supported only by relational databases (MongoDB is not supported).
|
|
97
98
|
* Note: Don't call this as a regular function, it is meant to be used with backticks to tag a template literal.
|
|
98
|
-
*
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* queryRunner.sql`SELECT * FROM table_name WHERE id = ${id}`
|
|
102
|
+
*
|
|
99
103
|
* @param strings
|
|
100
104
|
* @param values
|
|
101
105
|
*/
|
|
@@ -112,21 +116,25 @@ export declare abstract class BaseQueryRunner implements AsyncDisposable {
|
|
|
112
116
|
afterMigration(): Promise<void>;
|
|
113
117
|
/**
|
|
114
118
|
* Loads given table's data from the database.
|
|
119
|
+
*
|
|
115
120
|
* @param tablePath
|
|
116
121
|
*/
|
|
117
122
|
getTable(tablePath: string): Promise<Table | undefined>;
|
|
118
123
|
/**
|
|
119
124
|
* Loads all tables (with given names) from the database.
|
|
125
|
+
*
|
|
120
126
|
* @param tableNames
|
|
121
127
|
*/
|
|
122
128
|
getTables(tableNames?: string[]): Promise<Table[]>;
|
|
123
129
|
/**
|
|
124
130
|
* Loads given view's data from the database.
|
|
131
|
+
*
|
|
125
132
|
* @param viewPath
|
|
126
133
|
*/
|
|
127
134
|
getView(viewPath: string): Promise<View | undefined>;
|
|
128
135
|
/**
|
|
129
136
|
* Loads given view's data from the database.
|
|
137
|
+
*
|
|
130
138
|
* @param viewPaths
|
|
131
139
|
*/
|
|
132
140
|
getViews(viewPaths?: string[]): Promise<View[]>;
|
|
@@ -162,16 +170,19 @@ export declare abstract class BaseQueryRunner implements AsyncDisposable {
|
|
|
162
170
|
getReplicationMode(): ReplicationMode;
|
|
163
171
|
/**
|
|
164
172
|
* Gets view from previously loaded views, otherwise loads it from database.
|
|
173
|
+
*
|
|
165
174
|
* @param viewName
|
|
166
175
|
*/
|
|
167
176
|
protected getCachedView(viewName: string): Promise<View>;
|
|
168
177
|
/**
|
|
169
178
|
* Gets table from previously loaded tables, otherwise loads it from database.
|
|
179
|
+
*
|
|
170
180
|
* @param tableName
|
|
171
181
|
*/
|
|
172
182
|
protected getCachedTable(tableName: string): Promise<Table>;
|
|
173
183
|
/**
|
|
174
184
|
* Replaces loaded table with given changed table.
|
|
185
|
+
*
|
|
175
186
|
* @param table
|
|
176
187
|
* @param changedTable
|
|
177
188
|
*/
|
|
@@ -180,6 +191,7 @@ export declare abstract class BaseQueryRunner implements AsyncDisposable {
|
|
|
180
191
|
protected getTypeormMetadataTableName(): string;
|
|
181
192
|
/**
|
|
182
193
|
* Generates SQL query to select record from typeorm metadata table.
|
|
194
|
+
*
|
|
183
195
|
* @param root0
|
|
184
196
|
* @param root0.database
|
|
185
197
|
* @param root0.schema
|
|
@@ -196,6 +208,7 @@ export declare abstract class BaseQueryRunner implements AsyncDisposable {
|
|
|
196
208
|
}): Query;
|
|
197
209
|
/**
|
|
198
210
|
* Generates SQL query to insert a record into typeorm metadata table.
|
|
211
|
+
*
|
|
199
212
|
* @param root0
|
|
200
213
|
* @param root0.database
|
|
201
214
|
* @param root0.schema
|
|
@@ -214,6 +227,7 @@ export declare abstract class BaseQueryRunner implements AsyncDisposable {
|
|
|
214
227
|
}): Query;
|
|
215
228
|
/**
|
|
216
229
|
* Generates SQL query to delete a record from typeorm metadata table.
|
|
230
|
+
*
|
|
217
231
|
* @param root0
|
|
218
232
|
* @param root0.database
|
|
219
233
|
* @param root0.schema
|
|
@@ -231,6 +245,7 @@ export declare abstract class BaseQueryRunner implements AsyncDisposable {
|
|
|
231
245
|
/**
|
|
232
246
|
* Checks if at least one of column properties was changed.
|
|
233
247
|
* Does not checks column type, length and autoincrement, because these properties changes separately.
|
|
248
|
+
*
|
|
234
249
|
* @param oldColumn
|
|
235
250
|
* @param newColumn
|
|
236
251
|
* @param checkDefault
|
|
@@ -241,6 +256,7 @@ export declare abstract class BaseQueryRunner implements AsyncDisposable {
|
|
|
241
256
|
protected isEnumChanged(oldColumn: TableColumn, newColumn: TableColumn): boolean;
|
|
242
257
|
/**
|
|
243
258
|
* Checks if column length is by default.
|
|
259
|
+
*
|
|
244
260
|
* @param table
|
|
245
261
|
* @param column
|
|
246
262
|
* @param length
|
|
@@ -248,6 +264,7 @@ export declare abstract class BaseQueryRunner implements AsyncDisposable {
|
|
|
248
264
|
protected isDefaultColumnLength(table: Table, column: TableColumn, length: string): boolean;
|
|
249
265
|
/**
|
|
250
266
|
* Checks if column precision is by default.
|
|
267
|
+
*
|
|
251
268
|
* @param table
|
|
252
269
|
* @param column
|
|
253
270
|
* @param precision
|
|
@@ -255,6 +272,7 @@ export declare abstract class BaseQueryRunner implements AsyncDisposable {
|
|
|
255
272
|
protected isDefaultColumnPrecision(table: Table, column: TableColumn, precision: number): boolean;
|
|
256
273
|
/**
|
|
257
274
|
* Checks if column scale is by default.
|
|
275
|
+
*
|
|
258
276
|
* @param table
|
|
259
277
|
* @param column
|
|
260
278
|
* @param scale
|
|
@@ -262,12 +280,14 @@ export declare abstract class BaseQueryRunner implements AsyncDisposable {
|
|
|
262
280
|
protected isDefaultColumnScale(table: Table, column: TableColumn, scale: number): boolean;
|
|
263
281
|
/**
|
|
264
282
|
* Executes sql used special for schema build.
|
|
283
|
+
*
|
|
265
284
|
* @param upQueries
|
|
266
285
|
* @param downQueries
|
|
267
286
|
*/
|
|
268
287
|
protected executeQueries(upQueries: Query | Query[], downQueries: Query | Query[]): Promise<void>;
|
|
269
288
|
/**
|
|
270
289
|
* Generated an index name for a table and index
|
|
290
|
+
*
|
|
271
291
|
* @param table
|
|
272
292
|
* @param index
|
|
273
293
|
*/
|