typeorm 0.3.0-rc.8 → 0.3.1-dev.941b584
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/README.md +175 -119
- package/browser/cache/DbQueryResultCache.d.ts +6 -4
- package/browser/cache/DbQueryResultCache.js +180 -187
- package/browser/cache/DbQueryResultCache.js.map +1 -1
- package/browser/cache/QueryResultCache.js +1 -1
- package/browser/cache/QueryResultCache.js.map +1 -1
- package/browser/cache/QueryResultCacheFactory.d.ts +3 -3
- package/browser/cache/QueryResultCacheFactory.js +19 -15
- package/browser/cache/QueryResultCacheFactory.js.map +1 -1
- package/browser/cache/QueryResultCacheOptions.js +1 -1
- package/browser/cache/QueryResultCacheOptions.js.map +1 -1
- package/browser/cache/RedisQueryResultCache.d.ts +3 -3
- package/browser/cache/RedisQueryResultCache.js +104 -127
- package/browser/cache/RedisQueryResultCache.js.map +1 -1
- package/browser/common/DeepPartial.d.ts +3 -3
- package/browser/common/DeepPartial.js +1 -1
- package/browser/common/DeepPartial.js.map +1 -1
- package/browser/common/EntityTarget.d.ts +9 -0
- package/browser/common/EntityTarget.js +3 -0
- package/browser/common/EntityTarget.js.map +1 -0
- package/browser/common/MixedList.d.ts +8 -0
- package/browser/common/MixedList.js +3 -0
- package/browser/common/MixedList.js.map +1 -0
- package/browser/common/NonNever.d.ts +6 -0
- package/browser/common/NonNever.js +3 -0
- package/browser/common/NonNever.js.map +1 -0
- package/browser/common/ObjectLiteral.js +1 -1
- package/browser/common/ObjectLiteral.js.map +1 -1
- package/browser/common/ObjectType.js +1 -1
- package/browser/common/ObjectType.js.map +1 -1
- package/browser/common/RelationType.d.ts +14 -0
- package/browser/common/RelationType.js +3 -0
- package/browser/common/RelationType.js.map +1 -0
- package/browser/connection/BaseConnectionOptions.d.ts +4 -144
- package/browser/connection/BaseConnectionOptions.js +1 -1
- package/browser/connection/BaseConnectionOptions.js.map +1 -1
- package/browser/connection/Connection.d.ts +4 -219
- package/browser/connection/Connection.js +5 -532
- package/browser/connection/Connection.js.map +1 -1
- package/browser/connection/ConnectionManager.d.ts +11 -5
- package/browser/connection/ConnectionManager.js +26 -26
- package/browser/connection/ConnectionManager.js.map +1 -1
- package/browser/connection/ConnectionMetadataBuilder.d.ts +6 -6
- package/browser/connection/ConnectionMetadataBuilder.js +37 -31
- package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
- package/browser/connection/ConnectionOptions.d.ts +4 -14
- package/browser/connection/ConnectionOptions.js +1 -1
- package/browser/connection/ConnectionOptions.js.map +1 -1
- package/browser/connection/ConnectionOptionsReader.d.ts +8 -8
- package/browser/connection/ConnectionOptionsReader.js +145 -169
- package/browser/connection/ConnectionOptionsReader.js.map +1 -1
- package/browser/connection/options-reader/ConnectionOptionsEnvReader.d.ts +8 -2
- package/browser/connection/options-reader/ConnectionOptionsEnvReader.js +68 -49
- package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
- package/browser/connection/options-reader/ConnectionOptionsXmlReader.d.ts +4 -2
- package/browser/connection/options-reader/ConnectionOptionsXmlReader.js +46 -42
- package/browser/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
- package/browser/connection/options-reader/ConnectionOptionsYmlReader.d.ts +4 -2
- package/browser/connection/options-reader/ConnectionOptionsYmlReader.js +14 -11
- package/browser/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
- package/browser/container.d.ts +12 -0
- package/browser/container.js +19 -11
- package/browser/container.js.map +1 -1
- package/browser/data-source/BaseDataSourceOptions.d.ts +179 -0
- package/browser/data-source/BaseDataSourceOptions.js +3 -0
- package/browser/data-source/BaseDataSourceOptions.js.map +1 -0
- package/browser/data-source/DataSource.d.ts +246 -0
- package/browser/data-source/DataSource.js +448 -0
- package/browser/data-source/DataSource.js.map +1 -0
- package/browser/data-source/DataSourceOptions.d.ts +21 -0
- package/browser/data-source/DataSourceOptions.js +3 -0
- package/browser/data-source/DataSourceOptions.js.map +1 -0
- package/browser/data-source/index.d.ts +2 -0
- package/browser/data-source/index.js +4 -0
- package/browser/data-source/index.js.map +1 -0
- package/browser/decorator/Check.d.ts +2 -2
- package/browser/decorator/Check.js +9 -6
- package/browser/decorator/Check.js.map +1 -1
- package/browser/decorator/EntityRepository.d.ts +3 -1
- package/browser/decorator/EntityRepository.js +3 -1
- package/browser/decorator/EntityRepository.js.map +1 -1
- package/browser/decorator/Exclusion.d.ts +2 -2
- package/browser/decorator/Exclusion.js +9 -6
- package/browser/decorator/Exclusion.js.map +1 -1
- package/browser/decorator/Generated.d.ts +1 -1
- package/browser/decorator/Generated.js +3 -4
- package/browser/decorator/Generated.js.map +1 -1
- package/browser/decorator/Index.d.ts +10 -10
- package/browser/decorator/Index.js +28 -8
- package/browser/decorator/Index.js.map +1 -1
- package/browser/decorator/Unique.d.ts +7 -6
- package/browser/decorator/Unique.js +36 -7
- package/browser/decorator/Unique.js.map +1 -1
- package/browser/decorator/columns/Column.d.ts +13 -13
- package/browser/decorator/columns/Column.js +24 -12
- package/browser/decorator/columns/Column.js.map +1 -1
- package/browser/decorator/columns/CreateDateColumn.d.ts +2 -2
- package/browser/decorator/columns/CreateDateColumn.js +2 -2
- package/browser/decorator/columns/CreateDateColumn.js.map +1 -1
- package/browser/decorator/columns/DeleteDateColumn.d.ts +6 -0
- package/browser/decorator/columns/DeleteDateColumn.js +17 -0
- package/browser/decorator/columns/DeleteDateColumn.js.map +1 -0
- package/browser/decorator/columns/ObjectIdColumn.d.ts +2 -2
- package/browser/decorator/columns/ObjectIdColumn.js +2 -2
- package/browser/decorator/columns/ObjectIdColumn.js.map +1 -1
- package/browser/decorator/columns/PrimaryColumn.d.ts +11 -3
- package/browser/decorator/columns/PrimaryColumn.js +9 -5
- package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
- package/browser/decorator/columns/PrimaryGeneratedColumn.d.ts +7 -5
- package/browser/decorator/columns/PrimaryGeneratedColumn.js +9 -8
- package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
- package/browser/decorator/columns/UpdateDateColumn.d.ts +2 -2
- package/browser/decorator/columns/UpdateDateColumn.js +2 -2
- package/browser/decorator/columns/UpdateDateColumn.js.map +1 -1
- package/browser/decorator/columns/VersionColumn.d.ts +2 -2
- package/browser/decorator/columns/VersionColumn.js +2 -2
- package/browser/decorator/columns/VersionColumn.js.map +1 -1
- package/browser/decorator/columns/ViewColumn.d.ts +2 -1
- package/browser/decorator/columns/ViewColumn.js +3 -3
- package/browser/decorator/columns/ViewColumn.js.map +1 -1
- package/browser/decorator/entity/ChildEntity.d.ts +1 -1
- package/browser/decorator/entity/ChildEntity.js +3 -3
- package/browser/decorator/entity/ChildEntity.js.map +1 -1
- package/browser/decorator/entity/Entity.d.ts +3 -3
- package/browser/decorator/entity/Entity.js +7 -4
- package/browser/decorator/entity/Entity.js.map +1 -1
- package/browser/decorator/entity/TableInheritance.d.ts +2 -2
- package/browser/decorator/entity/TableInheritance.js +6 -2
- package/browser/decorator/entity/TableInheritance.js.map +1 -1
- package/browser/decorator/entity-view/ViewEntity.d.ts +2 -2
- package/browser/decorator/entity-view/ViewEntity.js +10 -4
- package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
- package/browser/decorator/listeners/AfterInsert.d.ts +1 -1
- package/browser/decorator/listeners/AfterInsert.js +2 -2
- package/browser/decorator/listeners/AfterInsert.js.map +1 -1
- package/browser/decorator/listeners/AfterLoad.d.ts +1 -1
- package/browser/decorator/listeners/AfterLoad.js +2 -2
- package/browser/decorator/listeners/AfterLoad.js.map +1 -1
- package/browser/decorator/listeners/AfterRecover.d.ts +4 -0
- package/browser/decorator/listeners/AfterRecover.js +16 -0
- package/browser/decorator/listeners/AfterRecover.js.map +1 -0
- package/browser/decorator/listeners/AfterRemove.d.ts +1 -1
- package/browser/decorator/listeners/AfterRemove.js +2 -2
- package/browser/decorator/listeners/AfterRemove.js.map +1 -1
- package/browser/decorator/listeners/AfterSoftRemove.d.ts +4 -0
- package/browser/decorator/listeners/AfterSoftRemove.js +16 -0
- package/browser/decorator/listeners/AfterSoftRemove.js.map +1 -0
- package/browser/decorator/listeners/AfterUpdate.d.ts +1 -1
- package/browser/decorator/listeners/AfterUpdate.js +2 -2
- package/browser/decorator/listeners/AfterUpdate.js.map +1 -1
- package/browser/decorator/listeners/BeforeInsert.d.ts +1 -1
- package/browser/decorator/listeners/BeforeInsert.js +2 -2
- package/browser/decorator/listeners/BeforeInsert.js.map +1 -1
- package/browser/decorator/listeners/BeforeRecover.d.ts +4 -0
- package/browser/decorator/listeners/BeforeRecover.js +16 -0
- package/browser/decorator/listeners/BeforeRecover.js.map +1 -0
- package/browser/decorator/listeners/BeforeRemove.d.ts +1 -1
- package/browser/decorator/listeners/BeforeRemove.js +2 -2
- package/browser/decorator/listeners/BeforeRemove.js.map +1 -1
- package/browser/decorator/listeners/BeforeSoftRemove.d.ts +4 -0
- package/browser/decorator/listeners/BeforeSoftRemove.js +16 -0
- package/browser/decorator/listeners/BeforeSoftRemove.js.map +1 -0
- package/browser/decorator/listeners/BeforeUpdate.d.ts +1 -1
- package/browser/decorator/listeners/BeforeUpdate.js +2 -2
- package/browser/decorator/listeners/BeforeUpdate.js.map +1 -1
- package/browser/decorator/listeners/EventSubscriber.d.ts +1 -1
- package/browser/decorator/listeners/EventSubscriber.js +2 -2
- package/browser/decorator/listeners/EventSubscriber.js.map +1 -1
- package/browser/decorator/options/ColumnCommonOptions.d.ts +1 -1
- package/browser/decorator/options/ColumnCommonOptions.js +1 -1
- package/browser/decorator/options/ColumnCommonOptions.js.map +1 -1
- package/browser/decorator/options/ColumnEmbeddedOptions.d.ts +6 -0
- package/browser/decorator/options/ColumnEmbeddedOptions.js +1 -1
- package/browser/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
- package/browser/decorator/options/ColumnEnumOptions.js +1 -1
- package/browser/decorator/options/ColumnEnumOptions.js.map +1 -1
- package/browser/decorator/options/ColumnHstoreOptions.js +1 -1
- package/browser/decorator/options/ColumnHstoreOptions.js.map +1 -1
- package/browser/decorator/options/ColumnNumericOptions.js +1 -1
- package/browser/decorator/options/ColumnNumericOptions.js.map +1 -1
- package/browser/decorator/options/ColumnOptions.d.ts +5 -1
- package/browser/decorator/options/ColumnOptions.js +1 -1
- package/browser/decorator/options/ColumnOptions.js.map +1 -1
- package/browser/decorator/options/ColumnWithLengthOptions.js +1 -1
- package/browser/decorator/options/ColumnWithLengthOptions.js.map +1 -1
- package/browser/decorator/options/ColumnWithWidthOptions.js +1 -1
- package/browser/decorator/options/ColumnWithWidthOptions.js.map +1 -1
- package/browser/decorator/options/EntityOptions.js +1 -1
- package/browser/decorator/options/EntityOptions.js.map +1 -1
- package/browser/decorator/options/IndexOptions.d.ts +5 -0
- package/browser/decorator/options/IndexOptions.js +1 -1
- package/browser/decorator/options/IndexOptions.js.map +1 -1
- package/browser/decorator/options/JoinColumnOptions.js +1 -1
- package/browser/decorator/options/JoinColumnOptions.js.map +1 -1
- package/browser/decorator/options/JoinTableMultipleColumnsOptions.js +1 -1
- package/browser/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
- package/browser/decorator/options/JoinTableOptions.js +1 -1
- package/browser/decorator/options/JoinTableOptions.js.map +1 -1
- package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +22 -0
- package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +3 -0
- package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -0
- package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js +1 -1
- package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
- package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js +1 -1
- package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
- package/browser/decorator/options/RelationOptions.d.ts +12 -2
- package/browser/decorator/options/RelationOptions.js +1 -1
- package/browser/decorator/options/RelationOptions.js.map +1 -1
- package/browser/decorator/options/SpatialColumnOptions.js +1 -1
- package/browser/decorator/options/SpatialColumnOptions.js.map +1 -1
- package/browser/decorator/options/TransactionOptions.js +1 -1
- package/browser/decorator/options/TransactionOptions.js.map +1 -1
- package/browser/decorator/options/UniqueOptions.d.ts +10 -0
- package/browser/decorator/options/UniqueOptions.js +3 -0
- package/browser/decorator/options/UniqueOptions.js.map +1 -0
- package/browser/decorator/options/ValueTransformer.js +1 -1
- package/browser/decorator/options/ValueTransformer.js.map +1 -1
- package/browser/decorator/options/ViewColumnOptions.d.ts +15 -0
- package/browser/decorator/options/ViewColumnOptions.js +3 -0
- package/browser/decorator/options/ViewColumnOptions.js.map +1 -0
- package/browser/decorator/options/ViewEntityOptions.d.ts +7 -2
- package/browser/decorator/options/ViewEntityOptions.js +1 -1
- package/browser/decorator/options/ViewEntityOptions.js.map +1 -1
- package/browser/decorator/relations/JoinColumn.d.ts +4 -4
- package/browser/decorator/relations/JoinColumn.js +6 -4
- package/browser/decorator/relations/JoinColumn.js.map +1 -1
- package/browser/decorator/relations/JoinTable.d.ts +4 -4
- package/browser/decorator/relations/JoinTable.js +13 -4
- package/browser/decorator/relations/JoinTable.js.map +1 -1
- package/browser/decorator/relations/ManyToMany.d.ts +4 -3
- package/browser/decorator/relations/ManyToMany.js +12 -8
- package/browser/decorator/relations/ManyToMany.js.map +1 -1
- package/browser/decorator/relations/ManyToOne.d.ts +10 -9
- package/browser/decorator/relations/ManyToOne.js +17 -13
- package/browser/decorator/relations/ManyToOne.js.map +1 -1
- package/browser/decorator/relations/OneToMany.d.ts +6 -4
- package/browser/decorator/relations/OneToMany.js +13 -9
- package/browser/decorator/relations/OneToMany.js.map +1 -1
- package/browser/decorator/relations/OneToOne.d.ts +4 -3
- package/browser/decorator/relations/OneToOne.js +12 -8
- package/browser/decorator/relations/OneToOne.js.map +1 -1
- package/browser/decorator/relations/RelationCount.d.ts +2 -2
- package/browser/decorator/relations/RelationCount.js +2 -2
- package/browser/decorator/relations/RelationCount.js.map +1 -1
- package/browser/decorator/relations/RelationId.d.ts +2 -2
- package/browser/decorator/relations/RelationId.js +2 -2
- package/browser/decorator/relations/RelationId.js.map +1 -1
- package/browser/decorator/tree/Tree.d.ts +2 -1
- package/browser/decorator/tree/Tree.js +4 -3
- package/browser/decorator/tree/Tree.js.map +1 -1
- package/browser/decorator/tree/TreeChildren.d.ts +2 -2
- package/browser/decorator/tree/TreeChildren.js +11 -6
- package/browser/decorator/tree/TreeChildren.js.map +1 -1
- package/browser/decorator/tree/TreeLevelColumn.d.ts +1 -1
- package/browser/decorator/tree/TreeLevelColumn.js +2 -2
- package/browser/decorator/tree/TreeLevelColumn.js.map +1 -1
- package/browser/decorator/tree/TreeParent.d.ts +4 -1
- package/browser/decorator/tree/TreeParent.js +13 -6
- package/browser/decorator/tree/TreeParent.js.map +1 -1
- package/browser/driver/Driver.d.ts +39 -9
- package/browser/driver/Driver.js +1 -1
- package/browser/driver/Driver.js.map +1 -1
- package/browser/driver/DriverFactory.d.ts +2 -2
- package/browser/driver/DriverFactory.js +40 -13
- package/browser/driver/DriverFactory.js.map +1 -1
- package/browser/driver/DriverUtils.d.ts +39 -10
- package/browser/driver/DriverUtils.js +179 -55
- package/browser/driver/DriverUtils.js.map +1 -1
- package/browser/driver/Query.d.ts +1 -0
- package/browser/driver/Query.js +4 -5
- package/browser/driver/Query.js.map +1 -1
- package/browser/driver/SqlInMemory.js +3 -5
- package/browser/driver/SqlInMemory.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlConnection.d.ts +13 -0
- package/browser/driver/aurora-mysql/AuroraMysqlConnection.js +15 -0
- package/browser/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -0
- package/browser/driver/{aurora-data-api/AuroraDataApiConnectionCredentialsOptions.d.ts → aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts} +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js +3 -0
- package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -0
- package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.d.ts +34 -0
- package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.js +3 -0
- package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -0
- package/browser/driver/{aurora-data-api/AuroraDataApiDriver.d.ts → aurora-mysql/AuroraMysqlDriver.d.ts} +49 -18
- package/browser/driver/{aurora-data-api/AuroraDataApiDriver.js → aurora-mysql/AuroraMysqlDriver.js} +322 -211
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -0
- package/{driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts → browser/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts} +27 -18
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +1677 -0
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -0
- package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.d.ts +34 -0
- package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.js +3 -0
- package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -0
- package/browser/driver/aurora-postgres/AuroraPostgresDriver.d.ts +70 -0
- package/browser/driver/aurora-postgres/AuroraPostgresDriver.js +99 -0
- package/browser/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -0
- package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +48 -0
- package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js +135 -0
- package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -0
- package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +55 -0
- package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +3 -0
- package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -0
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.d.ts +59 -0
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +149 -0
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
- package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +32 -0
- package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +124 -0
- package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
- package/browser/driver/capacitor/CapacitorConnectionOptions.d.ts +30 -0
- package/browser/driver/capacitor/CapacitorConnectionOptions.js +3 -0
- package/browser/driver/capacitor/CapacitorConnectionOptions.js.map +1 -0
- package/browser/driver/capacitor/CapacitorDriver.d.ts +27 -0
- package/browser/driver/capacitor/CapacitorDriver.js +79 -0
- package/browser/driver/capacitor/CapacitorDriver.js.map +1 -0
- package/browser/driver/capacitor/CapacitorQueryRunner.d.ts +33 -0
- package/browser/driver/capacitor/CapacitorQueryRunner.js +94 -0
- package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -0
- package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js +1 -1
- package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachConnectionOptions.d.ts +12 -2
- package/browser/driver/cockroachdb/CockroachConnectionOptions.js +1 -1
- package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachDriver.d.ts +49 -8
- package/browser/driver/cockroachdb/CockroachDriver.js +321 -263
- package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +22 -18
- package/browser/driver/cockroachdb/CockroachQueryRunner.js +1576 -2026
- package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/browser/driver/cordova/CordovaConnectionOptions.d.ts +7 -2
- package/browser/driver/cordova/CordovaConnectionOptions.js +1 -1
- package/browser/driver/cordova/CordovaConnectionOptions.js.map +1 -1
- package/browser/driver/cordova/CordovaDriver.d.ts +5 -4
- package/browser/driver/cordova/CordovaDriver.js +33 -49
- package/browser/driver/cordova/CordovaDriver.js.map +1 -1
- package/browser/driver/cordova/CordovaQueryRunner.d.ts +27 -1
- package/browser/driver/cordova/CordovaQueryRunner.js +100 -53
- package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
- package/browser/driver/expo/ExpoConnectionOptions.d.ts +6 -2
- package/browser/driver/expo/ExpoConnectionOptions.js +1 -1
- package/browser/driver/expo/ExpoConnectionOptions.js.map +1 -1
- package/browser/driver/expo/ExpoDriver.d.ts +4 -7
- package/browser/driver/expo/ExpoDriver.js +32 -53
- package/browser/driver/expo/ExpoDriver.js.map +1 -1
- package/browser/driver/expo/ExpoQueryRunner.d.ts +9 -1
- package/browser/driver/expo/ExpoQueryRunner.js +123 -94
- package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
- package/browser/driver/mongodb/MongoConnectionOptions.d.ts +20 -3
- package/browser/driver/mongodb/MongoConnectionOptions.js +1 -1
- package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
- package/browser/driver/mongodb/MongoDriver.d.ts +36 -12
- package/browser/driver/mongodb/MongoDriver.js +145 -99
- package/browser/driver/mongodb/MongoDriver.js.map +1 -1
- package/browser/driver/mongodb/MongoQueryRunner.d.ts +27 -8
- package/browser/driver/mongodb/MongoQueryRunner.js +330 -748
- package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/browser/driver/mongodb/typings.d.ts +12 -11
- package/browser/driver/mongodb/typings.js.map +1 -1
- package/browser/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +4 -0
- package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js +1 -1
- package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/mysql/MysqlConnectionOptions.d.ts +8 -2
- package/browser/driver/mysql/MysqlConnectionOptions.js +1 -1
- package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
- package/browser/driver/mysql/MysqlDriver.d.ts +48 -11
- package/browser/driver/mysql/MysqlDriver.js +440 -271
- package/browser/driver/mysql/MysqlDriver.js.map +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.d.ts +25 -15
- package/browser/driver/mysql/MysqlQueryRunner.js +1552 -1751
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/browser/driver/nativescript/NativescriptConnectionOptions.d.ts +27 -2
- package/browser/driver/nativescript/NativescriptConnectionOptions.js +1 -1
- package/browser/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
- package/browser/driver/nativescript/NativescriptDriver.d.ts +5 -4
- package/browser/driver/nativescript/NativescriptDriver.js +36 -43
- package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
- package/browser/driver/nativescript/NativescriptQueryRunner.d.ts +9 -1
- package/browser/driver/nativescript/NativescriptQueryRunner.js +54 -39
- package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
- package/browser/driver/oracle/OracleConnectionCredentialsOptions.d.ts +4 -0
- package/browser/driver/oracle/OracleConnectionCredentialsOptions.js +1 -1
- package/browser/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/oracle/OracleConnectionOptions.d.ts +11 -2
- package/browser/driver/oracle/OracleConnectionOptions.js +1 -1
- package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
- package/browser/driver/oracle/OracleDriver.d.ts +31 -7
- package/browser/driver/oracle/OracleDriver.js +328 -234
- package/browser/driver/oracle/OracleDriver.js.map +1 -1
- package/browser/driver/oracle/OracleQueryRunner.d.ts +23 -9
- package/browser/driver/oracle/OracleQueryRunner.js +1346 -1670
- package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/browser/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
- package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js +1 -1
- package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/postgres/PostgresConnectionOptions.d.ts +34 -2
- package/browser/driver/postgres/PostgresConnectionOptions.js +1 -1
- package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.d.ts +81 -19
- package/browser/driver/postgres/PostgresDriver.js +618 -439
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.d.ts +48 -26
- package/browser/driver/postgres/PostgresQueryRunner.js +2128 -2286
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/react-native/ReactNativeConnectionOptions.d.ts +7 -2
- package/browser/driver/react-native/ReactNativeConnectionOptions.js +1 -1
- package/browser/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
- package/browser/driver/react-native/ReactNativeDriver.d.ts +4 -3
- package/browser/driver/react-native/ReactNativeDriver.js +31 -42
- package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
- package/browser/driver/react-native/ReactNativeQueryRunner.d.ts +9 -1
- package/browser/driver/react-native/ReactNativeQueryRunner.js +62 -53
- package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
- package/browser/driver/sap/SapConnectionCredentialsOptions.d.ts +45 -0
- package/browser/driver/sap/SapConnectionCredentialsOptions.js +3 -0
- package/browser/driver/sap/SapConnectionCredentialsOptions.js.map +1 -0
- package/browser/driver/sap/SapConnectionOptions.d.ts +59 -0
- package/browser/driver/sap/SapConnectionOptions.js +3 -0
- package/browser/driver/sap/SapConnectionOptions.js.map +1 -0
- package/browser/driver/sap/SapDriver.d.ts +214 -0
- package/browser/driver/sap/SapDriver.js +641 -0
- package/browser/driver/sap/SapDriver.js.map +1 -0
- package/browser/driver/sap/SapQueryRunner.d.ts +342 -0
- package/browser/driver/sap/SapQueryRunner.js +1987 -0
- package/browser/driver/sap/SapQueryRunner.js.map +1 -0
- package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +7 -2
- package/browser/driver/sqlite/SqliteConnectionOptions.js +1 -1
- package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
- package/browser/driver/sqlite/SqliteDriver.d.ts +18 -4
- package/browser/driver/sqlite/SqliteDriver.js +104 -83
- package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
- package/browser/driver/sqlite/SqliteQueryRunner.d.ts +9 -1
- package/browser/driver/sqlite/SqliteQueryRunner.js +83 -68
- package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +47 -10
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +254 -139
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +25 -5
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +1022 -1441
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqljs/SqljsConnectionOptions.d.ts +7 -2
- package/browser/driver/sqljs/SqljsConnectionOptions.js +1 -1
- package/browser/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
- package/browser/driver/sqljs/SqljsDriver.d.ts +4 -3
- package/browser/driver/sqljs/SqljsDriver.js +153 -227
- package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
- package/browser/driver/sqljs/SqljsQueryRunner.d.ts +15 -1
- package/browser/driver/sqljs/SqljsQueryRunner.js +84 -61
- package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/MssqlParameter.d.ts +1 -0
- package/browser/driver/sqlserver/MssqlParameter.js +4 -9
- package/browser/driver/sqlserver/MssqlParameter.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +18 -2
- package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js +1 -1
- package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +11 -6
- package/browser/driver/sqlserver/SqlServerConnectionOptions.js +1 -1
- package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerDriver.d.ts +43 -9
- package/browser/driver/sqlserver/SqlServerDriver.js +355 -253
- package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +19 -28
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +1810 -2309
- package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +10 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +3 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +20 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +3 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +16 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +3 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +17 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js +3 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.d.ts +17 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +3 -0
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -0
- package/browser/driver/sqlserver/authentication/DefaultAuthentication.d.ts +13 -0
- package/browser/driver/sqlserver/authentication/DefaultAuthentication.js +3 -0
- package/browser/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -0
- package/browser/driver/sqlserver/authentication/NtlmAuthentication.d.ts +19 -0
- package/browser/driver/sqlserver/authentication/NtlmAuthentication.js +3 -0
- package/browser/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -0
- package/browser/driver/types/ColumnTypes.d.ts +5 -5
- package/browser/driver/types/ColumnTypes.js +1 -1
- package/browser/driver/types/ColumnTypes.js.map +1 -1
- package/browser/driver/types/DataTypeDefaults.js +1 -1
- package/browser/driver/types/DataTypeDefaults.js.map +1 -1
- package/browser/driver/types/DatabaseType.d.ts +1 -1
- package/browser/driver/types/DatabaseType.js +1 -1
- package/browser/driver/types/DatabaseType.js.map +1 -1
- package/browser/driver/types/IsolationLevel.js +1 -1
- package/browser/driver/types/IsolationLevel.js.map +1 -1
- package/browser/driver/types/MappedColumnTypes.d.ts +12 -0
- package/browser/driver/types/MappedColumnTypes.js +1 -1
- package/browser/driver/types/MappedColumnTypes.js.map +1 -1
- package/browser/driver/types/MetadataTableType.d.ts +5 -0
- package/browser/driver/types/MetadataTableType.js +8 -0
- package/browser/driver/types/MetadataTableType.js.map +1 -0
- package/browser/driver/types/ReplicationMode.d.ts +1 -0
- package/browser/driver/types/ReplicationMode.js +3 -0
- package/browser/driver/types/ReplicationMode.js.map +1 -0
- package/browser/driver/types/UpsertType.d.ts +1 -0
- package/browser/driver/types/UpsertType.js +3 -0
- package/browser/driver/types/UpsertType.js.map +1 -0
- package/browser/entity-manager/EntityManager.d.ts +143 -286
- package/browser/entity-manager/EntityManager.js +531 -439
- package/browser/entity-manager/EntityManager.js.map +1 -1
- package/browser/entity-manager/EntityManagerFactory.d.ts +2 -2
- package/browser/entity-manager/EntityManagerFactory.js +6 -12
- package/browser/entity-manager/EntityManagerFactory.js.map +1 -1
- package/browser/entity-manager/MongoEntityManager.d.ts +101 -64
- package/browser/entity-manager/MongoEntityManager.js +499 -467
- package/browser/entity-manager/MongoEntityManager.js.map +1 -1
- package/browser/entity-manager/SqljsEntityManager.d.ts +3 -2
- package/browser/entity-manager/SqljsEntityManager.js +14 -36
- package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
- package/browser/entity-schema/EntitySchema.d.ts +1 -0
- package/browser/entity-schema/EntitySchema.js +4 -5
- package/browser/entity-schema/EntitySchema.js.map +1 -1
- package/browser/entity-schema/EntitySchemaCheckOptions.js +1 -1
- package/browser/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +4 -0
- package/browser/entity-schema/EntitySchemaColumnOptions.js +1 -1
- package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +18 -0
- package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js +4 -0
- package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -0
- package/browser/entity-schema/EntitySchemaEmbeddedError.d.ts +6 -0
- package/browser/entity-schema/EntitySchemaEmbeddedError.js +14 -0
- package/browser/entity-schema/EntitySchemaEmbeddedError.js.map +1 -0
- package/browser/entity-schema/EntitySchemaExclusionOptions.js +1 -1
- package/browser/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaIndexOptions.d.ts +7 -2
- package/browser/entity-schema/EntitySchemaIndexOptions.js +1 -1
- package/browser/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaOptions.d.ts +22 -10
- package/browser/entity-schema/EntitySchemaOptions.js +2 -6
- package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaRelationOptions.d.ts +15 -4
- package/browser/entity-schema/EntitySchemaRelationOptions.js +1 -1
- package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaTransformer.d.ts +1 -0
- package/browser/entity-schema/EntitySchemaTransformer.js +228 -183
- package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/browser/entity-schema/EntitySchemaUniqueOptions.d.ts +7 -2
- package/browser/entity-schema/EntitySchemaUniqueOptions.js +1 -1
- package/browser/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
- package/browser/error/AlreadyHasActiveConnectionError.d.ts +2 -2
- package/browser/error/AlreadyHasActiveConnectionError.js +6 -13
- package/browser/error/AlreadyHasActiveConnectionError.js.map +1 -1
- package/browser/error/CannotAttachTreeChildrenEntityError.d.ts +3 -3
- package/browser/error/CannotAttachTreeChildrenEntityError.js +7 -13
- package/browser/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
- package/browser/error/CannotConnectAlreadyConnectedError.d.ts +2 -2
- package/browser/error/CannotConnectAlreadyConnectedError.js +5 -12
- package/browser/error/CannotConnectAlreadyConnectedError.js.map +1 -1
- package/browser/error/CannotCreateEntityIdMapError.d.ts +2 -2
- package/browser/error/CannotCreateEntityIdMapError.js +7 -13
- package/browser/error/CannotCreateEntityIdMapError.js.map +1 -1
- package/browser/error/CannotDetermineEntityError.d.ts +2 -2
- package/browser/error/CannotDetermineEntityError.js +6 -12
- package/browser/error/CannotDetermineEntityError.js.map +1 -1
- package/browser/error/CannotExecuteNotConnectedError.d.ts +2 -2
- package/browser/error/CannotExecuteNotConnectedError.js +5 -12
- package/browser/error/CannotExecuteNotConnectedError.js.map +1 -1
- package/browser/error/CannotGetEntityManagerNotConnectedError.d.ts +2 -2
- package/browser/error/CannotGetEntityManagerNotConnectedError.js +5 -12
- package/browser/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
- package/browser/error/CannotReflectMethodParameterTypeError.d.ts +2 -2
- package/browser/error/CannotReflectMethodParameterTypeError.js +7 -14
- package/browser/error/CannotReflectMethodParameterTypeError.js.map +1 -1
- package/browser/error/CircularRelationsError.d.ts +2 -2
- package/browser/error/CircularRelationsError.js +6 -12
- package/browser/error/CircularRelationsError.js.map +1 -1
- package/browser/error/ColumnTypeUndefinedError.d.ts +2 -2
- package/browser/error/ColumnTypeUndefinedError.js +8 -15
- package/browser/error/ColumnTypeUndefinedError.js.map +1 -1
- package/browser/error/ConnectionIsNotSetError.d.ts +2 -2
- package/browser/error/ConnectionIsNotSetError.js +5 -12
- package/browser/error/ConnectionIsNotSetError.js.map +1 -1
- package/browser/error/ConnectionNotFoundError.d.ts +2 -2
- package/browser/error/ConnectionNotFoundError.js +5 -12
- package/browser/error/ConnectionNotFoundError.js.map +1 -1
- package/browser/error/CustomRepositoryCannotInheritRepositoryError.d.ts +2 -2
- package/browser/error/CustomRepositoryCannotInheritRepositoryError.js +8 -13
- package/browser/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
- package/browser/error/CustomRepositoryDoesNotHaveEntityError.d.ts +2 -2
- package/browser/error/CustomRepositoryDoesNotHaveEntityError.js +8 -13
- package/browser/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
- package/browser/error/CustomRepositoryNotFoundError.d.ts +2 -2
- package/browser/error/CustomRepositoryNotFoundError.js +8 -13
- package/browser/error/CustomRepositoryNotFoundError.js.map +1 -1
- package/browser/error/DataTypeNotSupportedError.d.ts +2 -2
- package/browser/error/DataTypeNotSupportedError.js +7 -13
- package/browser/error/DataTypeNotSupportedError.js.map +1 -1
- package/browser/error/DriverOptionNotSetError.d.ts +2 -2
- package/browser/error/DriverOptionNotSetError.js +6 -12
- package/browser/error/DriverOptionNotSetError.js.map +1 -1
- package/browser/error/DriverPackageNotInstalledError.d.ts +2 -2
- package/browser/error/DriverPackageNotInstalledError.js +6 -12
- package/browser/error/DriverPackageNotInstalledError.js.map +1 -1
- package/browser/error/EntityMetadataNotFoundError.d.ts +5 -6
- package/browser/error/EntityMetadataNotFoundError.js +17 -20
- package/browser/error/EntityMetadataNotFoundError.js.map +1 -1
- package/browser/error/EntityNotFoundError.d.ts +5 -5
- package/browser/error/EntityNotFoundError.js +21 -22
- package/browser/error/EntityNotFoundError.js.map +1 -1
- package/browser/error/EntityPropertyNotFoundError.d.ts +8 -0
- package/browser/error/EntityPropertyNotFoundError.js +13 -0
- package/browser/error/EntityPropertyNotFoundError.js.map +1 -0
- package/browser/error/FindRelationsNotFoundError.d.ts +7 -0
- package/browser/error/FindRelationsNotFoundError.js +19 -0
- package/browser/error/FindRelationsNotFoundError.js.map +1 -0
- package/browser/error/InitializedRelationError.d.ts +2 -1
- package/browser/error/InitializedRelationError.js +7 -13
- package/browser/error/InitializedRelationError.js.map +1 -1
- package/browser/error/InsertValuesMissingError.d.ts +2 -2
- package/browser/error/InsertValuesMissingError.js +6 -12
- package/browser/error/InsertValuesMissingError.js.map +1 -1
- package/browser/error/LimitOnUpdateNotSupportedError.d.ts +3 -3
- package/browser/error/LimitOnUpdateNotSupportedError.js +6 -13
- package/browser/error/LimitOnUpdateNotSupportedError.js.map +1 -1
- package/browser/error/LockNotSupportedOnGivenDriverError.d.ts +2 -2
- package/browser/error/LockNotSupportedOnGivenDriverError.js +5 -12
- package/browser/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
- package/browser/error/MetadataAlreadyExistsError.d.ts +2 -4
- package/browser/error/MetadataAlreadyExistsError.js +11 -16
- package/browser/error/MetadataAlreadyExistsError.js.map +1 -1
- package/browser/error/MetadataWithSuchNameAlreadyExistsError.d.ts +2 -4
- package/browser/error/MetadataWithSuchNameAlreadyExistsError.js +9 -15
- package/browser/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
- package/browser/error/MissingDeleteDateColumnError.d.ts +5 -0
- package/browser/error/MissingDeleteDateColumnError.js +8 -0
- package/browser/error/MissingDeleteDateColumnError.js.map +1 -0
- package/browser/error/MissingDriverError.d.ts +3 -3
- package/browser/error/MissingDriverError.js +6 -12
- package/browser/error/MissingDriverError.js.map +1 -1
- package/browser/error/MissingJoinColumnError.d.ts +2 -4
- package/browser/error/MissingJoinColumnError.js +12 -18
- package/browser/error/MissingJoinColumnError.js.map +1 -1
- package/browser/error/MissingJoinTableError.d.ts +2 -4
- package/browser/error/MissingJoinTableError.js +12 -18
- package/browser/error/MissingJoinTableError.js.map +1 -1
- package/browser/error/MissingPrimaryColumnError.d.ts +2 -4
- package/browser/error/MissingPrimaryColumnError.js +6 -15
- package/browser/error/MissingPrimaryColumnError.js.map +1 -1
- package/browser/error/MustBeEntityError.d.ts +2 -2
- package/browser/error/MustBeEntityError.js +5 -12
- package/browser/error/MustBeEntityError.js.map +1 -1
- package/browser/error/NamingStrategyNotFoundError.d.ts +2 -2
- package/browser/error/NamingStrategyNotFoundError.js +11 -14
- package/browser/error/NamingStrategyNotFoundError.js.map +1 -1
- package/browser/error/NestedSetMultipleRootError.d.ts +4 -0
- package/browser/error/NestedSetMultipleRootError.js +8 -0
- package/browser/error/NestedSetMultipleRootError.js.map +1 -0
- package/browser/error/NoConnectionForRepositoryError.d.ts +2 -2
- package/browser/error/NoConnectionForRepositoryError.js +6 -13
- package/browser/error/NoConnectionForRepositoryError.js.map +1 -1
- package/browser/error/NoConnectionOptionError.d.ts +2 -1
- package/browser/error/NoConnectionOptionError.js +6 -11
- package/browser/error/NoConnectionOptionError.js.map +1 -1
- package/browser/error/NoNeedToReleaseEntityManagerError.d.ts +2 -2
- package/browser/error/NoNeedToReleaseEntityManagerError.js +7 -14
- package/browser/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
- package/browser/error/NoVersionOrUpdateDateColumnError.d.ts +2 -2
- package/browser/error/NoVersionOrUpdateDateColumnError.js +5 -12
- package/browser/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
- package/browser/error/OffsetWithoutLimitNotSupportedError.d.ts +4 -4
- package/browser/error/OffsetWithoutLimitNotSupportedError.js +8 -13
- package/browser/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
- package/browser/error/OptimisticLockCanNotBeUsedError.d.ts +2 -2
- package/browser/error/OptimisticLockCanNotBeUsedError.js +5 -12
- package/browser/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
- package/browser/error/OptimisticLockVersionMismatchError.d.ts +2 -2
- package/browser/error/OptimisticLockVersionMismatchError.js +5 -12
- package/browser/error/OptimisticLockVersionMismatchError.js.map +1 -1
- package/browser/error/PersistedEntityNotFoundError.d.ts +2 -2
- package/browser/error/PersistedEntityNotFoundError.js +5 -12
- package/browser/error/PersistedEntityNotFoundError.js.map +1 -1
- package/browser/error/PessimisticLockTransactionRequiredError.d.ts +2 -2
- package/browser/error/PessimisticLockTransactionRequiredError.js +5 -12
- package/browser/error/PessimisticLockTransactionRequiredError.js.map +1 -1
- package/browser/error/PrimaryColumnCannotBeNullableError.d.ts +2 -2
- package/browser/error/PrimaryColumnCannotBeNullableError.js +6 -13
- package/browser/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
- package/browser/error/QueryFailedError.d.ts +6 -2
- package/browser/error/QueryFailedError.js +18 -14
- package/browser/error/QueryFailedError.js.map +1 -1
- package/browser/error/QueryRunnerAlreadyReleasedError.d.ts +2 -4
- package/browser/error/QueryRunnerAlreadyReleasedError.js +5 -14
- package/browser/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
- package/browser/error/QueryRunnerProviderAlreadyReleasedError.d.ts +2 -2
- package/browser/error/QueryRunnerProviderAlreadyReleasedError.js +6 -12
- package/browser/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
- package/browser/error/RepositoryNotFoundError.d.ts +4 -4
- package/browser/error/RepositoryNotFoundError.js +16 -16
- package/browser/error/RepositoryNotFoundError.js.map +1 -1
- package/browser/error/RepositoryNotTreeError.d.ts +4 -4
- package/browser/error/RepositoryNotTreeError.js +18 -19
- package/browser/error/RepositoryNotTreeError.js.map +1 -1
- package/browser/error/ReturningStatementNotSupportedError.d.ts +2 -2
- package/browser/error/ReturningStatementNotSupportedError.js +5 -12
- package/browser/error/ReturningStatementNotSupportedError.js.map +1 -1
- package/browser/error/SubjectRemovedAndUpdatedError.d.ts +2 -2
- package/browser/error/SubjectRemovedAndUpdatedError.js +6 -13
- package/browser/error/SubjectRemovedAndUpdatedError.js.map +1 -1
- package/browser/error/SubjectWithoutIdentifierError.d.ts +2 -2
- package/browser/error/SubjectWithoutIdentifierError.js +5 -13
- package/browser/error/SubjectWithoutIdentifierError.js.map +1 -1
- package/browser/error/TransactionAlreadyStartedError.d.ts +2 -2
- package/browser/error/TransactionAlreadyStartedError.js +5 -12
- package/browser/error/TransactionAlreadyStartedError.js.map +1 -1
- package/browser/error/TransactionNotStartedError.d.ts +2 -2
- package/browser/error/TransactionNotStartedError.js +5 -12
- package/browser/error/TransactionNotStartedError.js.map +1 -1
- package/browser/error/TreeRepositoryNotSupportedError.d.ts +2 -2
- package/browser/error/TreeRepositoryNotSupportedError.js +5 -12
- package/browser/error/TreeRepositoryNotSupportedError.js.map +1 -1
- package/browser/error/TypeORMError.d.ts +4 -0
- package/browser/error/TypeORMError.js +19 -0
- package/browser/error/TypeORMError.js.map +1 -0
- package/browser/error/UpdateValuesMissingError.d.ts +2 -5
- package/browser/error/UpdateValuesMissingError.js +5 -15
- package/browser/error/UpdateValuesMissingError.js.map +1 -1
- package/browser/error/UsingJoinColumnIsNotAllowedError.d.ts +2 -4
- package/browser/error/UsingJoinColumnIsNotAllowedError.js +6 -15
- package/browser/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
- package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.d.ts +2 -4
- package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +7 -16
- package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
- package/browser/error/UsingJoinTableIsNotAllowedError.d.ts +2 -4
- package/browser/error/UsingJoinTableIsNotAllowedError.js +7 -16
- package/browser/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
- package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.d.ts +2 -4
- package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js +7 -16
- package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
- package/browser/error/index.d.ts +62 -0
- package/browser/error/index.js +64 -0
- package/browser/error/index.js.map +1 -0
- package/browser/find-options/EqualOperator.d.ts +5 -0
- package/browser/find-options/EqualOperator.js +9 -0
- package/browser/find-options/EqualOperator.js.map +1 -0
- package/browser/find-options/FindManyOptions.d.ts +14 -0
- package/browser/find-options/FindManyOptions.js +3 -0
- package/browser/find-options/FindManyOptions.js.map +1 -0
- package/browser/find-options/FindOneOptions.d.ts +86 -0
- package/browser/find-options/FindOneOptions.js +3 -0
- package/browser/find-options/FindOneOptions.js.map +1 -0
- package/browser/find-options/FindOperator.d.ts +31 -8
- package/browser/find-options/FindOperator.js +64 -97
- package/browser/find-options/FindOperator.js.map +1 -1
- package/browser/find-options/FindOperatorType.d.ts +1 -1
- package/browser/find-options/FindOperatorType.js +1 -1
- package/browser/find-options/FindOperatorType.js.map +1 -1
- package/browser/find-options/FindOptionsOrder.d.ts +19 -0
- package/browser/find-options/FindOptionsOrder.js +3 -0
- package/browser/find-options/FindOptionsOrder.js.map +1 -0
- package/browser/find-options/FindOptionsRelations.d.ts +19 -0
- package/browser/find-options/FindOptionsRelations.js +3 -0
- package/browser/find-options/FindOptionsRelations.js.map +1 -0
- package/browser/find-options/FindOptionsSelect.d.ts +19 -0
- package/browser/find-options/FindOptionsSelect.js +3 -0
- package/browser/find-options/FindOptionsSelect.js.map +1 -0
- package/browser/find-options/FindOptionsUtils.d.ts +180 -6
- package/browser/find-options/FindOptionsUtils.js +299 -94
- package/browser/find-options/FindOptionsUtils.js.map +1 -1
- package/browser/find-options/FindOptionsWhere.d.ts +14 -0
- package/browser/find-options/FindOptionsWhere.js +3 -0
- package/browser/find-options/FindOptionsWhere.js.map +1 -0
- package/browser/find-options/FindTreeOptions.d.ts +13 -0
- package/browser/find-options/FindTreeOptions.js +3 -0
- package/browser/find-options/FindTreeOptions.js.map +1 -0
- package/browser/find-options/JoinOptions.d.ts +76 -0
- package/browser/find-options/JoinOptions.js +3 -0
- package/browser/find-options/JoinOptions.js.map +1 -0
- package/browser/find-options/OrderByCondition.js +1 -1
- package/browser/find-options/OrderByCondition.js.map +1 -1
- package/browser/find-options/mongodb/MongoFindManyOptions.d.ts +14 -0
- package/browser/find-options/mongodb/MongoFindManyOptions.js +3 -0
- package/browser/find-options/mongodb/MongoFindManyOptions.js.map +1 -0
- package/browser/find-options/mongodb/MongoFindOneOptions.d.ts +11 -0
- package/browser/find-options/mongodb/MongoFindOneOptions.js +3 -0
- package/browser/find-options/mongodb/MongoFindOneOptions.js.map +1 -0
- package/browser/find-options/operator/Any.d.ts +1 -1
- package/browser/find-options/operator/Any.js.map +1 -1
- package/browser/find-options/operator/Between.d.ts +1 -1
- package/browser/find-options/operator/Between.js.map +1 -1
- package/browser/find-options/operator/Equal.d.ts +7 -2
- package/browser/find-options/operator/Equal.js +7 -3
- package/browser/find-options/operator/Equal.js.map +1 -1
- package/browser/find-options/operator/ILike.d.ts +1 -1
- package/browser/find-options/operator/ILike.js +1 -1
- package/browser/find-options/operator/ILike.js.map +1 -1
- package/browser/find-options/operator/In.d.ts +1 -1
- package/browser/find-options/operator/In.js.map +1 -1
- package/browser/find-options/operator/IsNull.js.map +1 -1
- package/browser/find-options/operator/LessThan.js.map +1 -1
- package/browser/find-options/operator/LessThanOrEqual.js.map +1 -1
- package/browser/find-options/operator/Like.d.ts +1 -1
- package/browser/find-options/operator/Like.js +1 -1
- package/browser/find-options/operator/Like.js.map +1 -1
- package/browser/find-options/operator/MoreThan.js.map +1 -1
- package/browser/find-options/operator/MoreThanOrEqual.js.map +1 -1
- package/browser/find-options/operator/Not.d.ts +1 -1
- package/browser/find-options/operator/Not.js +1 -1
- package/browser/find-options/operator/Not.js.map +1 -1
- package/browser/find-options/operator/Raw.d.ts +14 -2
- package/browser/find-options/operator/Raw.js +5 -6
- package/browser/find-options/operator/Raw.js.map +1 -1
- package/browser/globals.d.ts +117 -0
- package/browser/globals.js +166 -0
- package/browser/globals.js.map +1 -0
- package/browser/index.d.ts +45 -114
- package/browser/index.js +57 -191
- package/browser/index.js.map +1 -1
- package/browser/logger/AdvancedConsoleLogger.d.ts +2 -1
- package/browser/logger/AdvancedConsoleLogger.js +55 -33
- package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
- package/browser/logger/DebugLogger.d.ts +1 -2
- package/browser/logger/DebugLogger.js +24 -26
- package/browser/logger/DebugLogger.js.map +1 -1
- package/browser/logger/FileLogger.d.ts +3 -1
- package/browser/logger/FileLogger.js +65 -40
- package/browser/logger/FileLogger.js.map +1 -1
- package/browser/logger/Logger.d.ts +1 -1
- package/browser/logger/Logger.js +1 -1
- package/browser/logger/Logger.js.map +1 -1
- package/browser/logger/LoggerFactory.js +6 -9
- package/browser/logger/LoggerFactory.js.map +1 -1
- package/browser/logger/LoggerOptions.d.ts +9 -0
- package/browser/logger/LoggerOptions.js +1 -1
- package/browser/logger/LoggerOptions.js.map +1 -1
- package/browser/logger/SimpleConsoleLogger.d.ts +2 -1
- package/browser/logger/SimpleConsoleLogger.js +55 -33
- package/browser/logger/SimpleConsoleLogger.js.map +1 -1
- package/browser/metadata/CheckMetadata.js +8 -8
- package/browser/metadata/CheckMetadata.js.map +1 -1
- package/browser/metadata/ColumnMetadata.d.ts +16 -7
- package/browser/metadata/ColumnMetadata.js +240 -126
- package/browser/metadata/ColumnMetadata.js.map +1 -1
- package/browser/metadata/EmbeddedMetadata.d.ts +12 -5
- package/browser/metadata/EmbeddedMetadata.js +77 -51
- package/browser/metadata/EmbeddedMetadata.js.map +1 -1
- package/browser/metadata/EntityListenerMetadata.js +21 -15
- package/browser/metadata/EntityListenerMetadata.js.map +1 -1
- package/browser/metadata/EntityMetadata.d.ts +65 -22
- package/browser/metadata/EntityMetadata.js +250 -160
- package/browser/metadata/EntityMetadata.js.map +1 -1
- package/browser/metadata/ExclusionMetadata.js +8 -8
- package/browser/metadata/ExclusionMetadata.js.map +1 -1
- package/browser/metadata/ForeignKeyMetadata.js +8 -10
- package/browser/metadata/ForeignKeyMetadata.js.map +1 -1
- package/browser/metadata/IndexMetadata.d.ts +7 -2
- package/browser/metadata/IndexMetadata.js +44 -34
- package/browser/metadata/IndexMetadata.js.map +1 -1
- package/browser/metadata/RelationCountMetadata.js +11 -10
- package/browser/metadata/RelationCountMetadata.js.map +1 -1
- package/browser/metadata/RelationIdMetadata.js +21 -19
- package/browser/metadata/RelationIdMetadata.js.map +1 -1
- package/browser/metadata/RelationMetadata.d.ts +28 -5
- package/browser/metadata/RelationMetadata.js +160 -79
- package/browser/metadata/RelationMetadata.js.map +1 -1
- package/browser/metadata/UniqueMetadata.d.ts +7 -2
- package/browser/metadata/UniqueMetadata.js +40 -32
- package/browser/metadata/UniqueMetadata.js.map +1 -1
- package/browser/metadata/types/ClosureTreeOptions.d.ts +10 -0
- package/browser/metadata/types/ClosureTreeOptions.js +3 -0
- package/browser/metadata/types/ClosureTreeOptions.js.map +1 -0
- package/browser/metadata/types/DeferrableType.js +1 -1
- package/browser/metadata/types/DeferrableType.js.map +1 -1
- package/browser/metadata/types/EventListenerTypes.d.ts +12 -8
- package/browser/metadata/types/EventListenerTypes.js +13 -13
- package/browser/metadata/types/EventListenerTypes.js.map +1 -1
- package/browser/metadata/types/OnDeleteType.js +1 -1
- package/browser/metadata/types/OnDeleteType.js.map +1 -1
- package/browser/metadata/types/OnUpdateType.js +1 -1
- package/browser/metadata/types/OnUpdateType.js.map +1 -1
- package/browser/metadata/types/PropertyTypeInFunction.js +1 -1
- package/browser/metadata/types/PropertyTypeInFunction.js.map +1 -1
- package/browser/metadata/types/RelationTypeInFunction.d.ts +2 -1
- package/browser/metadata/types/RelationTypeInFunction.js +1 -1
- package/browser/metadata/types/RelationTypeInFunction.js.map +1 -1
- package/browser/metadata/types/RelationTypes.js +1 -1
- package/browser/metadata/types/RelationTypes.js.map +1 -1
- package/browser/metadata/types/TableTypes.d.ts +1 -1
- package/browser/metadata/types/TableTypes.js +1 -1
- package/browser/metadata/types/TableTypes.js.map +1 -1
- package/browser/metadata/types/TreeTypes.js +1 -1
- package/browser/metadata/types/TreeTypes.js.map +1 -1
- package/browser/metadata-args/CheckMetadataArgs.js +1 -1
- package/browser/metadata-args/CheckMetadataArgs.js.map +1 -1
- package/browser/metadata-args/ColumnMetadataArgs.js +1 -1
- package/browser/metadata-args/ColumnMetadataArgs.js.map +1 -1
- package/browser/metadata-args/DiscriminatorValueMetadataArgs.js +1 -1
- package/browser/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
- package/browser/metadata-args/EmbeddedMetadataArgs.d.ts +2 -2
- package/browser/metadata-args/EmbeddedMetadataArgs.js +1 -1
- package/browser/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
- package/browser/metadata-args/EntityListenerMetadataArgs.js +1 -1
- package/browser/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
- package/browser/metadata-args/EntityRepositoryMetadataArgs.d.ts +2 -2
- package/browser/metadata-args/EntityRepositoryMetadataArgs.js +1 -1
- package/browser/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
- package/browser/metadata-args/EntitySubscriberMetadataArgs.js +1 -1
- package/browser/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
- package/browser/metadata-args/ExclusionMetadataArgs.js +1 -1
- package/browser/metadata-args/ExclusionMetadataArgs.js.map +1 -1
- package/browser/metadata-args/GeneratedMetadataArgs.js +1 -1
- package/browser/metadata-args/GeneratedMetadataArgs.js.map +1 -1
- package/browser/metadata-args/IndexMetadataArgs.d.ts +7 -2
- package/browser/metadata-args/IndexMetadataArgs.js +1 -1
- package/browser/metadata-args/IndexMetadataArgs.js.map +1 -1
- package/browser/metadata-args/InheritanceMetadataArgs.js +1 -1
- package/browser/metadata-args/InheritanceMetadataArgs.js.map +1 -1
- package/browser/metadata-args/JoinColumnMetadataArgs.js +1 -1
- package/browser/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
- package/browser/metadata-args/JoinTableMetadataArgs.js +1 -1
- package/browser/metadata-args/JoinTableMetadataArgs.js.map +1 -1
- package/browser/metadata-args/MetadataArgsStorage.d.ts +4 -0
- package/browser/metadata-args/MetadataArgsStorage.js +145 -95
- package/browser/metadata-args/MetadataArgsStorage.js.map +1 -1
- package/browser/metadata-args/NamingStrategyMetadataArgs.js +1 -1
- package/browser/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
- package/browser/metadata-args/RelationCountMetadataArgs.js +1 -1
- package/browser/metadata-args/RelationCountMetadataArgs.js.map +1 -1
- package/browser/metadata-args/RelationIdMetadataArgs.js +1 -1
- package/browser/metadata-args/RelationIdMetadataArgs.js.map +1 -1
- package/browser/metadata-args/RelationMetadataArgs.js +1 -1
- package/browser/metadata-args/RelationMetadataArgs.js.map +1 -1
- package/browser/metadata-args/TableMetadataArgs.d.ts +9 -5
- package/browser/metadata-args/TableMetadataArgs.js +1 -1
- package/browser/metadata-args/TableMetadataArgs.js.map +1 -1
- package/browser/metadata-args/TransactionEntityMetadataArgs.js +1 -1
- package/browser/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
- package/browser/metadata-args/TransactionRepositoryMetadataArgs.d.ts +1 -1
- package/browser/metadata-args/TransactionRepositoryMetadataArgs.js +1 -1
- package/browser/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
- package/browser/metadata-args/TreeMetadataArgs.d.ts +5 -0
- package/browser/metadata-args/TreeMetadataArgs.js +1 -1
- package/browser/metadata-args/TreeMetadataArgs.js.map +1 -1
- package/browser/metadata-args/UniqueMetadataArgs.d.ts +7 -2
- package/browser/metadata-args/UniqueMetadataArgs.js +1 -1
- package/browser/metadata-args/UniqueMetadataArgs.js.map +1 -1
- package/browser/metadata-args/types/ColumnMode.d.ts +1 -1
- package/browser/metadata-args/types/ColumnMode.js +1 -1
- package/browser/metadata-args/types/ColumnMode.js.map +1 -1
- package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +2 -2
- package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +47 -30
- package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataBuilder.d.ts +2 -2
- package/browser/metadata-builder/EntityMetadataBuilder.js +396 -267
- package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataValidator.js +78 -68
- package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.d.ts +2 -2
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +144 -92
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/MetadataUtils.js +12 -16
- package/browser/metadata-builder/MetadataUtils.js.map +1 -1
- package/browser/metadata-builder/RelationJoinColumnBuilder.d.ts +3 -2
- package/browser/metadata-builder/RelationJoinColumnBuilder.js +69 -50
- package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/browser/migration/Migration.js +3 -5
- package/browser/migration/Migration.js.map +1 -1
- package/browser/migration/MigrationExecutor.d.ts +6 -4
- package/browser/migration/MigrationExecutor.js +379 -535
- package/browser/migration/MigrationExecutor.js.map +1 -1
- package/browser/migration/MigrationInterface.js +1 -1
- package/browser/migration/MigrationInterface.js.map +1 -1
- package/browser/naming-strategy/DefaultNamingStrategy.d.ts +7 -1
- package/browser/naming-strategy/DefaultNamingStrategy.js +90 -80
- package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
- package/browser/naming-strategy/NamingStrategyInterface.d.ts +17 -1
- package/browser/naming-strategy/NamingStrategyInterface.js +1 -1
- package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
- package/browser/persistence/EntityPersistExecutor.d.ts +4 -4
- package/browser/persistence/EntityPersistExecutor.js +126 -151
- package/browser/persistence/EntityPersistExecutor.js.map +1 -1
- package/browser/persistence/Subject.d.ts +27 -3
- package/browser/persistence/Subject.js +103 -67
- package/browser/persistence/Subject.js.map +1 -1
- package/browser/persistence/SubjectChangeMap.js +1 -1
- package/browser/persistence/SubjectChangeMap.js.map +1 -1
- package/browser/persistence/SubjectChangedColumnsComputer.js +74 -52
- package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
- package/browser/persistence/SubjectDatabaseEntityLoader.d.ts +1 -1
- package/browser/persistence/SubjectDatabaseEntityLoader.js +97 -114
- package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
- package/browser/persistence/SubjectExecutor.d.ts +19 -2
- package/browser/persistence/SubjectExecutor.js +584 -419
- package/browser/persistence/SubjectExecutor.js.map +1 -1
- package/browser/persistence/SubjectTopoligicalSorter.js +63 -59
- package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
- package/browser/persistence/subject-builder/CascadesSubjectBuilder.d.ts +1 -1
- package/browser/persistence/subject-builder/CascadesSubjectBuilder.js +53 -28
- package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
- package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js +64 -59
- package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
- package/browser/persistence/subject-builder/OneToManySubjectBuilder.js +60 -43
- package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
- package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +32 -29
- package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
- package/browser/persistence/tree/ClosureSubjectExecutor.d.ts +8 -11
- package/browser/persistence/tree/ClosureSubjectExecutor.js +213 -89
- package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
- package/browser/persistence/tree/MaterializedPathSubjectExecutor.d.ts +5 -0
- package/browser/persistence/tree/MaterializedPathSubjectExecutor.js +89 -48
- package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
- package/browser/persistence/tree/NestedSetSubjectExecutor.d.ts +20 -0
- package/browser/persistence/tree/NestedSetSubjectExecutor.js +243 -62
- package/browser/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
- package/browser/platform/BrowserConnectionOptionsReaderDummy.d.ts +38 -0
- package/browser/platform/BrowserConnectionOptionsReaderDummy.js +52 -0
- package/browser/platform/BrowserConnectionOptionsReaderDummy.js.map +1 -0
- package/browser/platform/BrowserDirectoryExportedClassesLoader.d.ts +15 -0
- package/browser/platform/BrowserDirectoryExportedClassesLoader.js +20 -0
- package/browser/platform/BrowserDirectoryExportedClassesLoader.js.map +1 -0
- package/browser/platform/BrowserDisabledDriversDummy.d.ts +38 -2
- package/browser/platform/BrowserDisabledDriversDummy.js +54 -50
- package/browser/platform/BrowserDisabledDriversDummy.js.map +1 -1
- package/browser/platform/BrowserFileLoggerDummy.d.ts +33 -0
- package/browser/platform/BrowserFileLoggerDummy.js +47 -0
- package/browser/platform/BrowserFileLoggerDummy.js.map +1 -0
- package/browser/platform/BrowserPlatformTools.d.ts +74 -0
- package/browser/platform/BrowserPlatformTools.js +141 -0
- package/browser/platform/BrowserPlatformTools.js.map +1 -0
- package/browser/platform/PlatformTools.d.ts +16 -21
- package/browser/platform/PlatformTools.js +174 -117
- package/browser/platform/PlatformTools.js.map +1 -1
- package/browser/query-builder/Alias.d.ts +4 -3
- package/browser/query-builder/Alias.js +18 -31
- package/browser/query-builder/Alias.js.map +1 -1
- package/browser/query-builder/Brackets.d.ts +4 -3
- package/browser/query-builder/Brackets.js +4 -5
- package/browser/query-builder/Brackets.js.map +1 -1
- package/browser/query-builder/DeleteQueryBuilder.d.ts +13 -11
- package/browser/query-builder/DeleteQueryBuilder.js +109 -166
- package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/browser/query-builder/InsertOrUpdateOptions.d.ts +3 -0
- package/browser/query-builder/InsertOrUpdateOptions.js +3 -0
- package/browser/query-builder/InsertOrUpdateOptions.js.map +1 -0
- package/browser/query-builder/InsertQueryBuilder.d.ts +15 -5
- package/browser/query-builder/InsertQueryBuilder.js +453 -293
- package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
- package/browser/query-builder/JoinAttribute.d.ts +12 -12
- package/browser/query-builder/JoinAttribute.js +140 -189
- package/browser/query-builder/JoinAttribute.js.map +1 -1
- package/browser/query-builder/JoinOptions.js +1 -1
- package/browser/query-builder/JoinOptions.js.map +1 -1
- package/browser/query-builder/NotBrackets.d.ts +8 -0
- package/browser/query-builder/NotBrackets.js +13 -0
- package/browser/query-builder/NotBrackets.js.map +1 -0
- package/browser/query-builder/QueryBuilder.d.ts +55 -32
- package/browser/query-builder/QueryBuilder.js +698 -375
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryBuilderUtils.d.ts +0 -1
- package/browser/query-builder/QueryBuilderUtils.js +5 -16
- package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
- package/browser/query-builder/QueryExpressionMap.d.ts +51 -29
- package/browser/query-builder/QueryExpressionMap.js +92 -85
- package/browser/query-builder/QueryExpressionMap.js.map +1 -1
- package/browser/query-builder/QueryPartialEntity.d.ts +1 -1
- package/browser/query-builder/QueryPartialEntity.js +1 -1
- package/browser/query-builder/QueryPartialEntity.js.map +1 -1
- package/browser/query-builder/RelationIdLoader.d.ts +10 -12
- package/browser/query-builder/RelationIdLoader.js +306 -185
- package/browser/query-builder/RelationIdLoader.js.map +1 -1
- package/browser/query-builder/RelationLoader.d.ts +6 -3
- package/browser/query-builder/RelationLoader.js +181 -146
- package/browser/query-builder/RelationLoader.js.map +1 -1
- package/browser/query-builder/RelationQueryBuilder.d.ts +2 -1
- package/browser/query-builder/RelationQueryBuilder.js +81 -112
- package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
- package/browser/query-builder/RelationRemover.js +119 -84
- package/browser/query-builder/RelationRemover.js.map +1 -1
- package/browser/query-builder/RelationUpdater.js +128 -128
- package/browser/query-builder/RelationUpdater.js.map +1 -1
- package/browser/query-builder/ReturningResultsEntityUpdator.d.ts +4 -4
- package/browser/query-builder/ReturningResultsEntityUpdator.js +135 -155
- package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
- package/browser/query-builder/SelectQuery.js +1 -1
- package/browser/query-builder/SelectQuery.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.d.ts +65 -50
- package/browser/query-builder/SelectQueryBuilder.js +1642 -1291
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilderOption.js +1 -1
- package/browser/query-builder/SelectQueryBuilderOption.js.map +1 -1
- package/browser/query-builder/SoftDeleteQueryBuilder.d.ts +138 -0
- package/browser/query-builder/SoftDeleteQueryBuilder.js +363 -0
- package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -0
- package/browser/query-builder/UpdateQueryBuilder.d.ts +11 -8
- package/browser/query-builder/UpdateQueryBuilder.js +276 -299
- package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/browser/query-builder/WhereClause.d.ts +16 -0
- package/browser/query-builder/WhereClause.js +3 -0
- package/browser/query-builder/WhereClause.js.map +1 -0
- package/browser/query-builder/{WhereExpression.d.ts → WhereExpressionBuilder.d.ts} +51 -3
- package/browser/query-builder/WhereExpressionBuilder.js +3 -0
- package/browser/query-builder/WhereExpressionBuilder.js.map +1 -0
- package/browser/query-builder/relation-count/RelationCountAttribute.d.ts +7 -7
- package/browser/query-builder/relation-count/RelationCountAttribute.js +66 -96
- package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
- package/browser/query-builder/relation-count/RelationCountLoadResult.js +1 -1
- package/browser/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
- package/browser/query-builder/relation-count/RelationCountLoader.d.ts +3 -3
- package/browser/query-builder/relation-count/RelationCountLoader.js +150 -101
- package/browser/query-builder/relation-count/RelationCountLoader.js.map +1 -1
- package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js +15 -18
- package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdAttribute.d.ts +8 -8
- package/browser/query-builder/relation-id/RelationIdAttribute.js +67 -101
- package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdLoadResult.js +1 -1
- package/browser/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdLoader.d.ts +3 -3
- package/browser/query-builder/relation-id/RelationIdLoader.js +255 -148
- package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js +15 -18
- package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
- package/browser/query-builder/result/DeleteResult.d.ts +3 -1
- package/browser/query-builder/result/DeleteResult.js +7 -5
- package/browser/query-builder/result/DeleteResult.js.map +1 -1
- package/browser/query-builder/result/InsertResult.d.ts +2 -0
- package/browser/query-builder/result/InsertResult.js +8 -5
- package/browser/query-builder/result/InsertResult.js.map +1 -1
- package/browser/query-builder/result/UpdateResult.d.ts +2 -0
- package/browser/query-builder/result/UpdateResult.js +9 -5
- package/browser/query-builder/result/UpdateResult.js.map +1 -1
- package/browser/query-builder/transformer/DocumentToEntityTransformer.d.ts +1 -2
- package/browser/query-builder/transformer/DocumentToEntityTransformer.js +48 -35
- package/browser/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
- package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +74 -101
- package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
- package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js +25 -27
- package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +13 -0
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +228 -159
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/browser/query-runner/BaseQueryRunner.d.ts +49 -12
- package/browser/query-runner/BaseQueryRunner.js +240 -247
- package/browser/query-runner/BaseQueryRunner.js.map +1 -1
- package/browser/query-runner/QueryLock.d.ts +4 -0
- package/browser/query-runner/QueryLock.js +24 -0
- package/browser/query-runner/QueryLock.js.map +1 -0
- package/browser/query-runner/QueryResult.d.ts +17 -0
- package/browser/query-runner/QueryResult.js +13 -0
- package/browser/query-runner/QueryResult.js.map +1 -0
- package/browser/query-runner/QueryRunner.d.ts +37 -8
- package/browser/query-runner/QueryRunner.js +1 -1
- package/browser/query-runner/QueryRunner.js.map +1 -1
- package/browser/repository/AbstractRepository.d.ts +5 -5
- package/browser/repository/AbstractRepository.js +47 -54
- package/browser/repository/AbstractRepository.js.map +1 -1
- package/browser/repository/BaseEntity.d.ts +69 -81
- package/browser/repository/BaseEntity.js +169 -131
- package/browser/repository/BaseEntity.js.map +1 -1
- package/browser/repository/EntityId.js +1 -1
- package/browser/repository/EntityId.js.map +1 -1
- package/browser/repository/FindTreesOptions.d.ts +9 -0
- package/browser/repository/FindTreesOptions.js +3 -0
- package/browser/repository/FindTreesOptions.js.map +1 -0
- package/browser/repository/MongoRepository.d.ts +55 -9
- package/browser/repository/MongoRepository.js +330 -1
- package/browser/repository/MongoRepository.js.map +1 -1
- package/browser/repository/RemoveOptions.js +1 -1
- package/browser/repository/RemoveOptions.js.map +1 -1
- package/browser/repository/Repository.d.ts +133 -96
- package/browser/repository/Repository.js +288 -1
- package/browser/repository/Repository.js.map +1 -1
- package/browser/repository/SaveOptions.d.ts +1 -1
- package/browser/repository/SaveOptions.js +1 -1
- package/browser/repository/SaveOptions.js.map +1 -1
- package/browser/repository/TreeRepository.d.ts +14 -9
- package/browser/repository/TreeRepository.js +263 -1
- package/browser/repository/TreeRepository.js.map +1 -1
- package/browser/repository/UpsertOptions.d.ts +10 -0
- package/browser/repository/UpsertOptions.js +3 -0
- package/browser/repository/UpsertOptions.js.map +1 -0
- package/browser/schema-builder/MongoSchemaBuilder.d.ts +3 -3
- package/browser/schema-builder/MongoSchemaBuilder.js +28 -42
- package/browser/schema-builder/MongoSchemaBuilder.js.map +1 -1
- package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +14 -6
- package/browser/schema-builder/RdbmsSchemaBuilder.js +693 -1057
- package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/browser/schema-builder/SchemaBuilder.js +1 -1
- package/browser/schema-builder/SchemaBuilder.js.map +1 -1
- package/browser/schema-builder/options/TableCheckOptions.js +1 -1
- package/browser/schema-builder/options/TableCheckOptions.js.map +1 -1
- package/browser/schema-builder/options/TableColumnOptions.d.ts +6 -2
- package/browser/schema-builder/options/TableColumnOptions.js +1 -1
- package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
- package/browser/schema-builder/options/TableExclusionOptions.js +1 -1
- package/browser/schema-builder/options/TableExclusionOptions.js.map +1 -1
- package/browser/schema-builder/options/TableForeignKeyOptions.d.ts +8 -0
- package/browser/schema-builder/options/TableForeignKeyOptions.js +1 -1
- package/browser/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
- package/browser/schema-builder/options/TableIndexOptions.d.ts +6 -1
- package/browser/schema-builder/options/TableIndexOptions.js +1 -1
- package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
- package/browser/schema-builder/options/TableOptions.d.ts +8 -0
- package/browser/schema-builder/options/TableOptions.js +1 -1
- package/browser/schema-builder/options/TableOptions.js.map +1 -1
- package/browser/schema-builder/options/TableUniqueOptions.d.ts +5 -0
- package/browser/schema-builder/options/TableUniqueOptions.js +1 -1
- package/browser/schema-builder/options/TableUniqueOptions.js.map +1 -1
- package/browser/schema-builder/options/ViewOptions.d.ts +10 -2
- package/browser/schema-builder/options/ViewOptions.js +1 -1
- package/browser/schema-builder/options/ViewOptions.js.map +1 -1
- package/browser/schema-builder/table/Table.d.ts +13 -3
- package/browser/schema-builder/table/Table.js +109 -97
- 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 +10 -12
- package/browser/schema-builder/table/TableCheck.js.map +1 -1
- package/browser/schema-builder/table/TableColumn.d.ts +7 -2
- package/browser/schema-builder/table/TableColumn.js +10 -9
- 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 +9 -10
- package/browser/schema-builder/table/TableExclusion.js.map +1 -1
- package/browser/schema-builder/table/TableForeignKey.d.ts +11 -1
- package/browser/schema-builder/table/TableForeignKey.js +16 -12
- package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
- package/browser/schema-builder/table/TableIndex.d.ts +6 -0
- package/browser/schema-builder/table/TableIndex.js +15 -14
- package/browser/schema-builder/table/TableIndex.js.map +1 -1
- package/browser/schema-builder/table/TableUnique.d.ts +6 -0
- package/browser/schema-builder/table/TableUnique.js +13 -12
- package/browser/schema-builder/table/TableUnique.js.map +1 -1
- package/browser/schema-builder/util/TableUtils.js +10 -11
- package/browser/schema-builder/util/TableUtils.js.map +1 -1
- package/browser/schema-builder/util/ViewUtils.d.ts +7 -0
- package/browser/schema-builder/util/ViewUtils.js +23 -0
- package/browser/schema-builder/util/ViewUtils.js.map +1 -0
- package/browser/schema-builder/view/View.d.ts +12 -5
- package/browser/schema-builder/view/View.js +16 -11
- package/browser/schema-builder/view/View.js.map +1 -1
- package/browser/subscriber/Broadcaster.d.ts +87 -2
- package/browser/subscriber/Broadcaster.js +412 -119
- package/browser/subscriber/Broadcaster.js.map +1 -1
- package/browser/subscriber/BroadcasterResult.d.ts +4 -0
- package/browser/subscriber/BroadcasterResult.js +12 -5
- package/browser/subscriber/BroadcasterResult.js.map +1 -1
- package/browser/subscriber/EntitySubscriberInterface.d.ts +45 -0
- package/browser/subscriber/EntitySubscriberInterface.js +1 -1
- package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
- package/browser/subscriber/event/InsertEvent.d.ts +7 -7
- package/browser/subscriber/event/InsertEvent.js +1 -1
- package/browser/subscriber/event/InsertEvent.js.map +1 -1
- package/browser/subscriber/event/LoadEvent.d.ts +2 -2
- package/browser/subscriber/event/LoadEvent.js +1 -1
- package/browser/subscriber/event/LoadEvent.js.map +1 -1
- package/browser/subscriber/event/RecoverEvent.d.ts +6 -0
- package/browser/subscriber/event/RecoverEvent.js +3 -0
- package/browser/subscriber/event/RecoverEvent.js.map +1 -0
- package/browser/subscriber/event/RemoveEvent.d.ts +7 -7
- package/browser/subscriber/event/RemoveEvent.js +1 -1
- package/browser/subscriber/event/RemoveEvent.js.map +1 -1
- package/browser/subscriber/event/SoftRemoveEvent.d.ts +6 -0
- package/browser/subscriber/event/SoftRemoveEvent.js +3 -0
- package/browser/subscriber/event/SoftRemoveEvent.js.map +1 -0
- package/browser/subscriber/event/TransactionCommitEvent.d.ts +22 -0
- package/browser/subscriber/event/TransactionCommitEvent.js +3 -0
- package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -0
- package/browser/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
- package/browser/subscriber/event/TransactionRollbackEvent.js +3 -0
- package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -0
- package/browser/subscriber/event/TransactionStartEvent.d.ts +22 -0
- package/browser/subscriber/event/TransactionStartEvent.js +3 -0
- package/browser/subscriber/event/TransactionStartEvent.js.map +1 -0
- package/browser/subscriber/event/UpdateEvent.d.ts +5 -4
- package/browser/subscriber/event/UpdateEvent.js +1 -1
- package/browser/subscriber/event/UpdateEvent.js.map +1 -1
- package/browser/util/ApplyValueTransformers.js +13 -29
- package/browser/util/ApplyValueTransformers.js.map +1 -1
- package/browser/util/DateUtils.d.ts +2 -2
- package/browser/util/DateUtils.js +110 -83
- package/browser/util/DateUtils.js.map +1 -1
- package/browser/util/DepGraph.js +50 -50
- package/browser/util/DepGraph.js.map +1 -1
- package/browser/util/DirectoryExportedClassesLoader.d.ts +1 -1
- package/browser/util/DirectoryExportedClassesLoader.js +32 -25
- package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
- package/browser/util/ImportUtils.d.ts +1 -0
- package/browser/util/ImportUtils.js +74 -0
- package/browser/util/ImportUtils.js.map +1 -0
- package/browser/util/InstanceChecker.d.ts +61 -0
- package/browser/util/InstanceChecker.js +103 -0
- package/browser/util/InstanceChecker.js.map +1 -0
- package/browser/util/ObjectUtils.d.ts +17 -6
- package/browser/util/ObjectUtils.js +26 -36
- package/browser/util/ObjectUtils.js.map +1 -1
- package/browser/util/OrmUtils.d.ts +16 -8
- package/browser/util/OrmUtils.js +198 -98
- package/browser/util/OrmUtils.js.map +1 -1
- package/browser/util/PathUtils.d.ts +10 -0
- package/browser/util/PathUtils.js +28 -0
- package/browser/util/PathUtils.js.map +1 -0
- package/browser/util/RandomGenerator.d.ts +0 -4
- package/browser/util/RandomGenerator.js +61 -52
- package/browser/util/RandomGenerator.js.map +1 -1
- package/browser/util/StringUtils.d.ts +13 -3
- package/browser/util/StringUtils.js +42 -19
- package/browser/util/StringUtils.js.map +1 -1
- package/browser/util/TreeRepositoryUtils.d.ts +23 -0
- package/browser/util/TreeRepositoryUtils.js +56 -0
- package/browser/util/TreeRepositoryUtils.js.map +1 -0
- package/browser/util/VersionUtils.js +11 -16
- package/browser/util/VersionUtils.js.map +1 -1
- package/cache/DbQueryResultCache.d.ts +6 -4
- package/cache/DbQueryResultCache.js +182 -187
- package/cache/DbQueryResultCache.js.map +1 -1
- package/cache/QueryResultCache.js.map +1 -1
- package/cache/QueryResultCacheFactory.d.ts +3 -3
- package/cache/QueryResultCacheFactory.js +22 -16
- package/cache/QueryResultCacheFactory.js.map +1 -1
- package/cache/QueryResultCacheOptions.js.map +1 -1
- package/cache/RedisQueryResultCache.d.ts +3 -3
- package/cache/RedisQueryResultCache.js +106 -127
- package/cache/RedisQueryResultCache.js.map +1 -1
- package/cli.js +18 -23
- package/cli.js.map +1 -1
- package/commands/CacheClearCommand.d.ts +1 -3
- package/commands/CacheClearCommand.js +42 -77
- package/commands/CacheClearCommand.js.map +1 -1
- package/commands/CommandUtils.d.ts +7 -1
- package/commands/CommandUtils.js +63 -42
- package/commands/CommandUtils.js.map +1 -1
- package/commands/EntityCreateCommand.d.ts +0 -9
- package/commands/EntityCreateCommand.js +38 -84
- package/commands/EntityCreateCommand.js.map +1 -1
- package/commands/InitCommand.d.ts +12 -9
- package/commands/InitCommand.js +463 -233
- package/commands/InitCommand.js.map +1 -1
- package/commands/MigrationCreateCommand.d.ts +6 -7
- package/commands/MigrationCreateCommand.js +72 -83
- package/commands/MigrationCreateCommand.js.map +1 -1
- package/commands/MigrationGenerateCommand.d.ts +20 -5
- package/commands/MigrationGenerateCommand.js +187 -142
- package/commands/MigrationGenerateCommand.js.map +1 -1
- package/commands/MigrationRevertCommand.d.ts +1 -4
- package/commands/MigrationRevertCommand.js +55 -91
- package/commands/MigrationRevertCommand.js.map +1 -1
- package/commands/MigrationRunCommand.d.ts +1 -4
- package/commands/MigrationRunCommand.js +57 -94
- package/commands/MigrationRunCommand.js.map +1 -1
- package/commands/MigrationShowCommand.d.ts +2 -4
- package/commands/MigrationShowCommand.js +38 -74
- package/commands/MigrationShowCommand.js.map +1 -1
- package/commands/QueryCommand.d.ts +3 -3
- package/commands/QueryCommand.js +58 -86
- package/commands/QueryCommand.js.map +1 -1
- package/commands/SchemaDropCommand.d.ts +2 -4
- package/commands/SchemaDropCommand.js +39 -72
- package/commands/SchemaDropCommand.js.map +1 -1
- package/commands/SchemaLogCommand.d.ts +1 -3
- package/commands/SchemaLogCommand.js +62 -81
- package/commands/SchemaLogCommand.js.map +1 -1
- package/commands/SchemaSyncCommand.d.ts +1 -3
- package/commands/SchemaSyncCommand.js +37 -70
- package/commands/SchemaSyncCommand.js.map +1 -1
- package/commands/SubscriberCreateCommand.d.ts +0 -9
- package/commands/SubscriberCreateCommand.js +38 -78
- package/commands/SubscriberCreateCommand.js.map +1 -1
- package/commands/VersionCommand.js +39 -46
- package/commands/VersionCommand.js.map +1 -1
- package/common/DeepPartial.d.ts +3 -3
- package/common/DeepPartial.js.map +1 -1
- package/common/EntityTarget.d.ts +9 -0
- package/{query-builder/WhereExpression.js → common/EntityTarget.js} +1 -1
- package/common/EntityTarget.js.map +1 -0
- package/common/MixedList.d.ts +8 -0
- package/{find-options/FindOptions.js → common/MixedList.js} +1 -1
- package/common/MixedList.js.map +1 -0
- package/common/NonNever.d.ts +6 -0
- package/{entity-factory/EntityFactoryInterface.js → common/NonNever.js} +1 -1
- package/common/NonNever.js.map +1 -0
- package/common/ObjectLiteral.js.map +1 -1
- package/common/ObjectType.js.map +1 -1
- package/common/RelationType.d.ts +14 -0
- package/{driver/aurora-data-api/AuroraDataApiConnectionOptions.js → common/RelationType.js} +1 -1
- package/common/RelationType.js.map +1 -0
- package/connection/BaseConnectionOptions.d.ts +4 -144
- package/connection/BaseConnectionOptions.js.map +1 -1
- package/connection/Connection.d.ts +4 -219
- package/connection/Connection.js +6 -531
- package/connection/Connection.js.map +1 -1
- package/connection/ConnectionManager.d.ts +11 -5
- package/connection/ConnectionManager.js +29 -27
- package/connection/ConnectionManager.js.map +1 -1
- package/connection/ConnectionMetadataBuilder.d.ts +6 -6
- package/connection/ConnectionMetadataBuilder.js +44 -36
- package/connection/ConnectionMetadataBuilder.js.map +1 -1
- package/connection/ConnectionOptions.d.ts +4 -14
- package/connection/ConnectionOptions.js.map +1 -1
- package/connection/ConnectionOptionsReader.d.ts +8 -8
- package/connection/ConnectionOptionsReader.js +151 -172
- package/connection/ConnectionOptionsReader.js.map +1 -1
- package/connection/options-reader/ConnectionOptionsEnvReader.d.ts +8 -2
- package/connection/options-reader/ConnectionOptionsEnvReader.js +71 -50
- package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
- package/connection/options-reader/ConnectionOptionsXmlReader.d.ts +4 -2
- package/connection/options-reader/ConnectionOptionsXmlReader.js +48 -42
- package/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
- package/connection/options-reader/ConnectionOptionsYmlReader.d.ts +4 -2
- package/connection/options-reader/ConnectionOptionsYmlReader.js +17 -11
- package/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
- package/container.d.ts +12 -0
- package/container.js +20 -11
- package/container.js.map +1 -1
- package/data-source/BaseDataSourceOptions.d.ts +179 -0
- package/data-source/BaseDataSourceOptions.js +4 -0
- package/data-source/BaseDataSourceOptions.js.map +1 -0
- package/data-source/DataSource.d.ts +246 -0
- package/data-source/DataSource.js +452 -0
- package/data-source/DataSource.js.map +1 -0
- package/data-source/DataSourceOptions.d.ts +21 -0
- package/data-source/DataSourceOptions.js +4 -0
- package/data-source/DataSourceOptions.js.map +1 -0
- package/data-source/index.d.ts +2 -0
- package/data-source/index.js +7 -0
- package/data-source/index.js.map +1 -0
- package/decorator/Check.d.ts +2 -2
- package/decorator/Check.js +11 -7
- package/decorator/Check.js.map +1 -1
- package/decorator/EntityRepository.d.ts +3 -1
- package/decorator/EntityRepository.js +5 -2
- package/decorator/EntityRepository.js.map +1 -1
- package/decorator/Exclusion.d.ts +2 -2
- package/decorator/Exclusion.js +11 -7
- package/decorator/Exclusion.js.map +1 -1
- package/decorator/Generated.d.ts +1 -1
- package/decorator/Generated.js +5 -5
- package/decorator/Generated.js.map +1 -1
- package/decorator/Index.d.ts +10 -10
- package/decorator/Index.js +30 -9
- package/decorator/Index.js.map +1 -1
- package/decorator/Unique.d.ts +7 -6
- package/decorator/Unique.js +38 -8
- package/decorator/Unique.js.map +1 -1
- package/decorator/columns/Column.d.ts +13 -13
- package/decorator/columns/Column.js +29 -16
- package/decorator/columns/Column.js.map +1 -1
- package/decorator/columns/CreateDateColumn.d.ts +2 -2
- package/decorator/columns/CreateDateColumn.js +4 -3
- package/decorator/columns/CreateDateColumn.js.map +1 -1
- package/decorator/columns/DeleteDateColumn.d.ts +6 -0
- package/decorator/columns/DeleteDateColumn.js +21 -0
- package/decorator/columns/DeleteDateColumn.js.map +1 -0
- package/decorator/columns/ObjectIdColumn.d.ts +2 -2
- package/decorator/columns/ObjectIdColumn.js +4 -3
- package/decorator/columns/ObjectIdColumn.js.map +1 -1
- package/decorator/columns/PrimaryColumn.d.ts +11 -3
- package/decorator/columns/PrimaryColumn.js +14 -9
- package/decorator/columns/PrimaryColumn.js.map +1 -1
- package/decorator/columns/PrimaryGeneratedColumn.d.ts +7 -5
- package/decorator/columns/PrimaryGeneratedColumn.js +12 -10
- package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
- package/decorator/columns/UpdateDateColumn.d.ts +2 -2
- package/decorator/columns/UpdateDateColumn.js +4 -3
- package/decorator/columns/UpdateDateColumn.js.map +1 -1
- package/decorator/columns/VersionColumn.d.ts +2 -2
- package/decorator/columns/VersionColumn.js +4 -3
- package/decorator/columns/VersionColumn.js.map +1 -1
- package/decorator/columns/ViewColumn.d.ts +2 -1
- package/decorator/columns/ViewColumn.js +5 -4
- package/decorator/columns/ViewColumn.js.map +1 -1
- package/decorator/entity/ChildEntity.d.ts +1 -1
- package/decorator/entity/ChildEntity.js +6 -5
- package/decorator/entity/ChildEntity.js.map +1 -1
- package/decorator/entity/Entity.d.ts +3 -3
- package/decorator/entity/Entity.js +9 -5
- package/decorator/entity/Entity.js.map +1 -1
- package/decorator/entity/TableInheritance.d.ts +2 -2
- package/decorator/entity/TableInheritance.js +8 -3
- package/decorator/entity/TableInheritance.js.map +1 -1
- package/decorator/entity-view/ViewEntity.d.ts +2 -2
- package/decorator/entity-view/ViewEntity.js +12 -5
- package/decorator/entity-view/ViewEntity.js.map +1 -1
- package/decorator/listeners/AfterInsert.d.ts +1 -1
- package/decorator/listeners/AfterInsert.js +5 -4
- package/decorator/listeners/AfterInsert.js.map +1 -1
- package/decorator/listeners/AfterLoad.d.ts +1 -1
- package/decorator/listeners/AfterLoad.js +5 -4
- package/decorator/listeners/AfterLoad.js.map +1 -1
- package/decorator/listeners/AfterRecover.d.ts +4 -0
- package/decorator/listeners/AfterRecover.js +20 -0
- package/decorator/listeners/AfterRecover.js.map +1 -0
- package/decorator/listeners/AfterRemove.d.ts +1 -1
- package/decorator/listeners/AfterRemove.js +5 -4
- package/decorator/listeners/AfterRemove.js.map +1 -1
- package/decorator/listeners/AfterSoftRemove.d.ts +4 -0
- package/decorator/listeners/AfterSoftRemove.js +20 -0
- package/decorator/listeners/AfterSoftRemove.js.map +1 -0
- package/decorator/listeners/AfterUpdate.d.ts +1 -1
- package/decorator/listeners/AfterUpdate.js +5 -4
- package/decorator/listeners/AfterUpdate.js.map +1 -1
- package/decorator/listeners/BeforeInsert.d.ts +1 -1
- package/decorator/listeners/BeforeInsert.js +5 -4
- package/decorator/listeners/BeforeInsert.js.map +1 -1
- package/decorator/listeners/BeforeRecover.d.ts +4 -0
- package/decorator/listeners/BeforeRecover.js +20 -0
- package/decorator/listeners/BeforeRecover.js.map +1 -0
- package/decorator/listeners/BeforeRemove.d.ts +1 -1
- package/decorator/listeners/BeforeRemove.js +5 -4
- package/decorator/listeners/BeforeRemove.js.map +1 -1
- package/decorator/listeners/BeforeSoftRemove.d.ts +4 -0
- package/decorator/listeners/BeforeSoftRemove.js +20 -0
- package/decorator/listeners/BeforeSoftRemove.js.map +1 -0
- package/decorator/listeners/BeforeUpdate.d.ts +1 -1
- package/decorator/listeners/BeforeUpdate.js +5 -4
- package/decorator/listeners/BeforeUpdate.js.map +1 -1
- package/decorator/listeners/EventSubscriber.d.ts +1 -1
- package/decorator/listeners/EventSubscriber.js +4 -3
- package/decorator/listeners/EventSubscriber.js.map +1 -1
- package/decorator/options/ColumnCommonOptions.d.ts +1 -1
- package/decorator/options/ColumnCommonOptions.js.map +1 -1
- package/decorator/options/ColumnEmbeddedOptions.d.ts +6 -0
- package/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
- package/decorator/options/ColumnEnumOptions.js.map +1 -1
- package/decorator/options/ColumnHstoreOptions.js.map +1 -1
- package/decorator/options/ColumnNumericOptions.js.map +1 -1
- package/decorator/options/ColumnOptions.d.ts +5 -1
- package/decorator/options/ColumnOptions.js.map +1 -1
- package/decorator/options/ColumnWithLengthOptions.js.map +1 -1
- package/decorator/options/ColumnWithWidthOptions.js.map +1 -1
- package/decorator/options/EntityOptions.js.map +1 -1
- package/decorator/options/IndexOptions.d.ts +5 -0
- package/decorator/options/IndexOptions.js.map +1 -1
- package/decorator/options/JoinColumnOptions.js.map +1 -1
- package/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
- package/decorator/options/JoinTableOptions.js.map +1 -1
- package/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +22 -0
- package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +4 -0
- package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -0
- package/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
- package/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
- package/decorator/options/RelationOptions.d.ts +12 -2
- package/decorator/options/RelationOptions.js.map +1 -1
- package/decorator/options/SpatialColumnOptions.js.map +1 -1
- package/decorator/options/TransactionOptions.js.map +1 -1
- package/decorator/options/UniqueOptions.d.ts +10 -0
- package/decorator/options/UniqueOptions.js +4 -0
- package/decorator/options/UniqueOptions.js.map +1 -0
- package/decorator/options/ValueTransformer.js.map +1 -1
- package/decorator/options/ViewColumnOptions.d.ts +15 -0
- package/decorator/options/ViewColumnOptions.js +4 -0
- package/decorator/options/ViewColumnOptions.js.map +1 -0
- package/decorator/options/ViewEntityOptions.d.ts +7 -2
- package/decorator/options/ViewEntityOptions.js.map +1 -1
- package/decorator/relations/JoinColumn.d.ts +4 -4
- package/decorator/relations/JoinColumn.js +8 -5
- package/decorator/relations/JoinColumn.js.map +1 -1
- package/decorator/relations/JoinTable.d.ts +4 -4
- package/decorator/relations/JoinTable.js +15 -5
- package/decorator/relations/JoinTable.js.map +1 -1
- package/decorator/relations/ManyToMany.d.ts +4 -3
- package/decorator/relations/ManyToMany.js +14 -9
- package/decorator/relations/ManyToMany.js.map +1 -1
- package/decorator/relations/ManyToOne.d.ts +10 -9
- package/decorator/relations/ManyToOne.js +19 -14
- package/decorator/relations/ManyToOne.js.map +1 -1
- package/decorator/relations/OneToMany.d.ts +6 -4
- package/decorator/relations/OneToMany.js +15 -10
- package/decorator/relations/OneToMany.js.map +1 -1
- package/decorator/relations/OneToOne.d.ts +4 -3
- package/decorator/relations/OneToOne.js +14 -9
- package/decorator/relations/OneToOne.js.map +1 -1
- package/decorator/relations/RelationCount.d.ts +2 -2
- package/decorator/relations/RelationCount.js +4 -3
- package/decorator/relations/RelationCount.js.map +1 -1
- package/decorator/relations/RelationId.d.ts +2 -2
- package/decorator/relations/RelationId.js +4 -3
- package/decorator/relations/RelationId.js.map +1 -1
- package/decorator/tree/Tree.d.ts +2 -1
- package/decorator/tree/Tree.js +6 -4
- package/decorator/tree/Tree.js.map +1 -1
- package/decorator/tree/TreeChildren.d.ts +2 -2
- package/decorator/tree/TreeChildren.js +13 -7
- package/decorator/tree/TreeChildren.js.map +1 -1
- package/decorator/tree/TreeLevelColumn.d.ts +1 -1
- package/decorator/tree/TreeLevelColumn.js +4 -3
- package/decorator/tree/TreeLevelColumn.js.map +1 -1
- package/decorator/tree/TreeParent.d.ts +4 -1
- package/decorator/tree/TreeParent.js +15 -7
- package/decorator/tree/TreeParent.js.map +1 -1
- package/driver/Driver.d.ts +39 -9
- package/driver/Driver.js.map +1 -1
- package/driver/DriverFactory.d.ts +2 -2
- package/driver/DriverFactory.js +54 -25
- package/driver/DriverFactory.js.map +1 -1
- package/driver/DriverUtils.d.ts +39 -10
- package/driver/DriverUtils.js +180 -54
- package/driver/DriverUtils.js.map +1 -1
- package/driver/Query.d.ts +1 -0
- package/driver/Query.js +5 -4
- package/driver/Query.js.map +1 -1
- package/driver/SqlInMemory.js +4 -4
- package/driver/SqlInMemory.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlConnection.d.ts +13 -0
- package/driver/aurora-mysql/AuroraMysqlConnection.js +19 -0
- package/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -0
- package/driver/{aurora-data-api/AuroraDataApiConnectionCredentialsOptions.d.ts → aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts} +1 -1
- package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js +4 -0
- package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -0
- package/driver/aurora-mysql/AuroraMysqlConnectionOptions.d.ts +34 -0
- package/driver/aurora-mysql/AuroraMysqlConnectionOptions.js +4 -0
- package/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -0
- package/driver/{aurora-data-api/AuroraDataApiDriver.d.ts → aurora-mysql/AuroraMysqlDriver.d.ts} +49 -18
- package/driver/{aurora-data-api/AuroraDataApiDriver.js → aurora-mysql/AuroraMysqlDriver.js} +330 -217
- package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -0
- package/{browser/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts → driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts} +28 -18
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +1681 -0
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -0
- package/driver/aurora-postgres/AuroraPostgresConnectionOptions.d.ts +34 -0
- package/driver/aurora-postgres/AuroraPostgresConnectionOptions.js +4 -0
- package/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -0
- package/driver/aurora-postgres/AuroraPostgresDriver.d.ts +70 -0
- package/driver/aurora-postgres/AuroraPostgresDriver.js +103 -0
- package/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -0
- package/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +48 -0
- package/driver/aurora-postgres/AuroraPostgresQueryRunner.js +139 -0
- package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -0
- package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +55 -0
- package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +4 -0
- package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -0
- package/driver/better-sqlite3/BetterSqlite3Driver.d.ts +59 -0
- package/driver/better-sqlite3/BetterSqlite3Driver.js +154 -0
- package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
- package/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +32 -0
- package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +128 -0
- package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
- package/driver/capacitor/CapacitorConnectionOptions.d.ts +30 -0
- package/driver/capacitor/CapacitorConnectionOptions.js +4 -0
- package/driver/capacitor/CapacitorConnectionOptions.js.map +1 -0
- package/driver/capacitor/CapacitorDriver.d.ts +27 -0
- package/driver/capacitor/CapacitorDriver.js +83 -0
- package/driver/capacitor/CapacitorDriver.js.map +1 -0
- package/driver/capacitor/CapacitorQueryRunner.d.ts +33 -0
- package/driver/capacitor/CapacitorQueryRunner.js +98 -0
- package/driver/capacitor/CapacitorQueryRunner.js.map +1 -0
- package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
- package/driver/cockroachdb/CockroachConnectionOptions.d.ts +12 -2
- package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
- package/driver/cockroachdb/CockroachDriver.d.ts +49 -8
- package/driver/cockroachdb/CockroachDriver.js +331 -271
- package/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.d.ts +21 -18
- package/driver/cockroachdb/CockroachQueryRunner.js +1592 -2040
- package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/driver/cordova/CordovaConnectionOptions.d.ts +7 -2
- package/driver/cordova/CordovaConnectionOptions.js.map +1 -1
- package/driver/cordova/CordovaDriver.d.ts +5 -4
- package/driver/cordova/CordovaDriver.js +38 -52
- package/driver/cordova/CordovaDriver.js.map +1 -1
- package/driver/cordova/CordovaQueryRunner.d.ts +27 -1
- package/driver/cordova/CordovaQueryRunner.js +105 -56
- package/driver/cordova/CordovaQueryRunner.js.map +1 -1
- package/driver/expo/ExpoConnectionOptions.d.ts +6 -2
- package/driver/expo/ExpoConnectionOptions.js.map +1 -1
- package/driver/expo/ExpoDriver.d.ts +4 -7
- package/driver/expo/ExpoDriver.js +36 -55
- package/driver/expo/ExpoDriver.js.map +1 -1
- package/driver/expo/ExpoQueryRunner.d.ts +9 -1
- package/driver/expo/ExpoQueryRunner.js +129 -98
- package/driver/expo/ExpoQueryRunner.js.map +1 -1
- package/driver/mongodb/MongoConnectionOptions.d.ts +20 -3
- package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
- package/driver/mongodb/MongoDriver.d.ts +36 -12
- package/driver/mongodb/MongoDriver.js +153 -105
- package/driver/mongodb/MongoDriver.js.map +1 -1
- package/driver/mongodb/MongoQueryRunner.d.ts +26 -8
- package/driver/mongodb/MongoQueryRunner.js +332 -748
- package/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/driver/mongodb/typings.d.ts +12 -11
- package/driver/mongodb/typings.js +1 -1
- package/driver/mongodb/typings.js.map +1 -1
- package/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +4 -0
- package/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
- package/driver/mysql/MysqlConnectionOptions.d.ts +8 -2
- package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
- package/driver/mysql/MysqlDriver.d.ts +48 -11
- package/driver/mysql/MysqlDriver.js +450 -279
- package/driver/mysql/MysqlDriver.js.map +1 -1
- package/driver/mysql/MysqlQueryRunner.d.ts +24 -15
- package/driver/mysql/MysqlQueryRunner.js +1567 -1764
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/driver/nativescript/NativescriptConnectionOptions.d.ts +27 -2
- package/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
- package/driver/nativescript/NativescriptDriver.d.ts +5 -4
- package/driver/nativescript/NativescriptDriver.js +41 -46
- package/driver/nativescript/NativescriptDriver.js.map +1 -1
- package/driver/nativescript/NativescriptQueryRunner.d.ts +9 -1
- package/driver/nativescript/NativescriptQueryRunner.js +59 -42
- package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
- package/driver/oracle/OracleConnectionCredentialsOptions.d.ts +4 -0
- package/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
- package/driver/oracle/OracleConnectionOptions.d.ts +11 -2
- package/driver/oracle/OracleConnectionOptions.js.map +1 -1
- package/driver/oracle/OracleDriver.d.ts +31 -7
- package/driver/oracle/OracleDriver.js +338 -242
- package/driver/oracle/OracleDriver.js.map +1 -1
- package/driver/oracle/OracleQueryRunner.d.ts +22 -9
- package/driver/oracle/OracleQueryRunner.js +1361 -1683
- package/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
- package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
- package/driver/postgres/PostgresConnectionOptions.d.ts +34 -2
- package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
- package/driver/postgres/PostgresDriver.d.ts +81 -19
- package/driver/postgres/PostgresDriver.js +624 -443
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.d.ts +47 -26
- package/driver/postgres/PostgresQueryRunner.js +2144 -2300
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/react-native/ReactNativeConnectionOptions.d.ts +7 -2
- package/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
- package/driver/react-native/ReactNativeDriver.d.ts +4 -3
- package/driver/react-native/ReactNativeDriver.js +36 -45
- package/driver/react-native/ReactNativeDriver.js.map +1 -1
- package/driver/react-native/ReactNativeQueryRunner.d.ts +9 -1
- package/driver/react-native/ReactNativeQueryRunner.js +67 -56
- package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
- package/driver/sap/SapConnectionCredentialsOptions.d.ts +45 -0
- package/driver/sap/SapConnectionCredentialsOptions.js +4 -0
- package/driver/sap/SapConnectionCredentialsOptions.js.map +1 -0
- package/driver/sap/SapConnectionOptions.d.ts +59 -0
- package/driver/sap/SapConnectionOptions.js +4 -0
- package/driver/sap/SapConnectionOptions.js.map +1 -0
- package/driver/sap/SapDriver.d.ts +214 -0
- package/driver/sap/SapDriver.js +645 -0
- package/driver/sap/SapDriver.js.map +1 -0
- package/driver/sap/SapQueryRunner.d.ts +342 -0
- package/driver/sap/SapQueryRunner.js +1991 -0
- package/driver/sap/SapQueryRunner.js.map +1 -0
- package/driver/sqlite/SqliteConnectionOptions.d.ts +7 -2
- package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
- package/driver/sqlite/SqliteDriver.d.ts +18 -4
- package/driver/sqlite/SqliteDriver.js +111 -87
- package/driver/sqlite/SqliteDriver.js.map +1 -1
- package/driver/sqlite/SqliteQueryRunner.d.ts +9 -1
- package/driver/sqlite/SqliteQueryRunner.js +88 -71
- package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +47 -10
- package/driver/sqlite-abstract/AbstractSqliteDriver.js +259 -142
- package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +24 -5
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +1034 -1451
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/driver/sqljs/SqljsConnectionOptions.d.ts +7 -2
- package/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
- package/driver/sqljs/SqljsDriver.d.ts +4 -3
- package/driver/sqljs/SqljsDriver.js +160 -232
- package/driver/sqljs/SqljsDriver.js.map +1 -1
- package/driver/sqljs/SqljsQueryRunner.d.ts +15 -1
- package/driver/sqljs/SqljsQueryRunner.js +89 -64
- package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
- package/driver/sqlserver/MssqlParameter.d.ts +1 -0
- package/driver/sqlserver/MssqlParameter.js +5 -8
- package/driver/sqlserver/MssqlParameter.js.map +1 -1
- package/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +18 -2
- package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
- package/driver/sqlserver/SqlServerConnectionOptions.d.ts +11 -6
- package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
- package/driver/sqlserver/SqlServerDriver.d.ts +43 -9
- package/driver/sqlserver/SqlServerDriver.js +366 -262
- package/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.d.ts +18 -28
- package/driver/sqlserver/SqlServerQueryRunner.js +1825 -2322
- package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +10 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +4 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +20 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +4 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +16 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +4 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +17 -0
- package/driver/{aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js → sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js} +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.d.ts +17 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +4 -0
- package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -0
- package/driver/sqlserver/authentication/DefaultAuthentication.d.ts +13 -0
- package/driver/sqlserver/authentication/DefaultAuthentication.js +4 -0
- package/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -0
- package/driver/sqlserver/authentication/NtlmAuthentication.d.ts +19 -0
- package/driver/sqlserver/authentication/NtlmAuthentication.js +4 -0
- package/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -0
- package/driver/types/ColumnTypes.d.ts +5 -5
- package/driver/types/ColumnTypes.js.map +1 -1
- package/driver/types/DataTypeDefaults.js.map +1 -1
- package/driver/types/DatabaseType.d.ts +1 -1
- package/driver/types/DatabaseType.js.map +1 -1
- package/driver/types/IsolationLevel.js.map +1 -1
- package/driver/types/MappedColumnTypes.d.ts +12 -0
- package/driver/types/MappedColumnTypes.js.map +1 -1
- package/driver/types/MetadataTableType.d.ts +5 -0
- package/driver/types/MetadataTableType.js +11 -0
- package/driver/types/MetadataTableType.js.map +1 -0
- package/driver/types/ReplicationMode.d.ts +1 -0
- package/driver/types/ReplicationMode.js +4 -0
- package/driver/types/ReplicationMode.js.map +1 -0
- package/driver/types/UpsertType.d.ts +1 -0
- package/driver/types/UpsertType.js +4 -0
- package/driver/types/UpsertType.js.map +1 -0
- package/entity-manager/EntityManager.d.ts +143 -286
- package/entity-manager/EntityManager.js +541 -447
- package/entity-manager/EntityManager.js.map +1 -1
- package/entity-manager/EntityManagerFactory.d.ts +2 -2
- package/entity-manager/EntityManagerFactory.js +10 -14
- package/entity-manager/EntityManagerFactory.js.map +1 -1
- package/entity-manager/MongoEntityManager.d.ts +101 -64
- package/entity-manager/MongoEntityManager.js +507 -473
- package/entity-manager/MongoEntityManager.js.map +1 -1
- package/entity-manager/SqljsEntityManager.d.ts +3 -2
- package/entity-manager/SqljsEntityManager.js +16 -36
- package/entity-manager/SqljsEntityManager.js.map +1 -1
- package/entity-schema/EntitySchema.d.ts +1 -0
- package/entity-schema/EntitySchema.js +5 -4
- package/entity-schema/EntitySchema.js.map +1 -1
- package/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
- package/entity-schema/EntitySchemaColumnOptions.d.ts +4 -0
- package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
- package/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +18 -0
- package/entity-schema/EntitySchemaEmbeddedColumnOptions.js +8 -0
- package/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -0
- package/entity-schema/EntitySchemaEmbeddedError.d.ts +6 -0
- package/entity-schema/EntitySchemaEmbeddedError.js +18 -0
- package/entity-schema/EntitySchemaEmbeddedError.js.map +1 -0
- package/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
- package/entity-schema/EntitySchemaIndexOptions.d.ts +7 -2
- package/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
- package/entity-schema/EntitySchemaOptions.d.ts +22 -10
- package/entity-schema/EntitySchemaOptions.js +3 -5
- package/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/entity-schema/EntitySchemaRelationOptions.d.ts +15 -4
- package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
- package/entity-schema/EntitySchemaTransformer.d.ts +1 -0
- package/entity-schema/EntitySchemaTransformer.js +230 -183
- package/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/entity-schema/EntitySchemaUniqueOptions.d.ts +7 -2
- package/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
- package/error/AlreadyHasActiveConnectionError.d.ts +2 -2
- package/error/AlreadyHasActiveConnectionError.js +7 -12
- package/error/AlreadyHasActiveConnectionError.js.map +1 -1
- package/error/CannotAttachTreeChildrenEntityError.d.ts +3 -3
- package/error/CannotAttachTreeChildrenEntityError.js +8 -12
- package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
- package/error/CannotConnectAlreadyConnectedError.d.ts +2 -2
- package/error/CannotConnectAlreadyConnectedError.js +6 -11
- package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
- package/error/CannotCreateEntityIdMapError.d.ts +2 -2
- package/error/CannotCreateEntityIdMapError.js +8 -12
- package/error/CannotCreateEntityIdMapError.js.map +1 -1
- package/error/CannotDetermineEntityError.d.ts +2 -2
- package/error/CannotDetermineEntityError.js +7 -11
- package/error/CannotDetermineEntityError.js.map +1 -1
- package/error/CannotExecuteNotConnectedError.d.ts +2 -2
- package/error/CannotExecuteNotConnectedError.js +6 -11
- package/error/CannotExecuteNotConnectedError.js.map +1 -1
- package/error/CannotGetEntityManagerNotConnectedError.d.ts +2 -2
- package/error/CannotGetEntityManagerNotConnectedError.js +6 -11
- package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
- package/error/CannotReflectMethodParameterTypeError.d.ts +2 -2
- package/error/CannotReflectMethodParameterTypeError.js +8 -13
- package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
- package/error/CircularRelationsError.d.ts +2 -2
- package/error/CircularRelationsError.js +7 -11
- package/error/CircularRelationsError.js.map +1 -1
- package/error/ColumnTypeUndefinedError.d.ts +2 -2
- package/error/ColumnTypeUndefinedError.js +9 -14
- package/error/ColumnTypeUndefinedError.js.map +1 -1
- package/error/ConnectionIsNotSetError.d.ts +2 -2
- package/error/ConnectionIsNotSetError.js +6 -11
- package/error/ConnectionIsNotSetError.js.map +1 -1
- package/error/ConnectionNotFoundError.d.ts +2 -2
- package/error/ConnectionNotFoundError.js +6 -11
- package/error/ConnectionNotFoundError.js.map +1 -1
- package/error/CustomRepositoryCannotInheritRepositoryError.d.ts +2 -2
- package/error/CustomRepositoryCannotInheritRepositoryError.js +9 -12
- package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
- package/error/CustomRepositoryDoesNotHaveEntityError.d.ts +2 -2
- package/error/CustomRepositoryDoesNotHaveEntityError.js +9 -12
- package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
- package/error/CustomRepositoryNotFoundError.d.ts +2 -2
- package/error/CustomRepositoryNotFoundError.js +9 -12
- package/error/CustomRepositoryNotFoundError.js.map +1 -1
- package/error/DataTypeNotSupportedError.d.ts +2 -2
- package/error/DataTypeNotSupportedError.js +8 -12
- package/error/DataTypeNotSupportedError.js.map +1 -1
- package/error/DriverOptionNotSetError.d.ts +2 -2
- package/error/DriverOptionNotSetError.js +7 -11
- package/error/DriverOptionNotSetError.js.map +1 -1
- package/error/DriverPackageNotInstalledError.d.ts +2 -2
- package/error/DriverPackageNotInstalledError.js +7 -11
- package/error/DriverPackageNotInstalledError.js.map +1 -1
- package/error/EntityMetadataNotFoundError.d.ts +5 -6
- package/error/EntityMetadataNotFoundError.js +18 -19
- package/error/EntityMetadataNotFoundError.js.map +1 -1
- package/error/EntityNotFoundError.d.ts +5 -5
- package/error/EntityNotFoundError.js +22 -21
- package/error/EntityNotFoundError.js.map +1 -1
- package/error/EntityPropertyNotFoundError.d.ts +8 -0
- package/error/EntityPropertyNotFoundError.js +17 -0
- package/error/EntityPropertyNotFoundError.js.map +1 -0
- package/error/FindRelationsNotFoundError.d.ts +7 -0
- package/error/FindRelationsNotFoundError.js +23 -0
- package/error/FindRelationsNotFoundError.js.map +1 -0
- package/error/InitializedRelationError.d.ts +2 -1
- package/error/InitializedRelationError.js +8 -12
- package/error/InitializedRelationError.js.map +1 -1
- package/error/InsertValuesMissingError.d.ts +2 -2
- package/error/InsertValuesMissingError.js +7 -11
- package/error/InsertValuesMissingError.js.map +1 -1
- package/error/LimitOnUpdateNotSupportedError.d.ts +3 -3
- package/error/LimitOnUpdateNotSupportedError.js +7 -12
- package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
- package/error/LockNotSupportedOnGivenDriverError.d.ts +2 -2
- package/error/LockNotSupportedOnGivenDriverError.js +6 -11
- package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
- package/error/MetadataAlreadyExistsError.d.ts +2 -4
- package/error/MetadataAlreadyExistsError.js +12 -15
- package/error/MetadataAlreadyExistsError.js.map +1 -1
- package/error/MetadataWithSuchNameAlreadyExistsError.d.ts +2 -4
- package/error/MetadataWithSuchNameAlreadyExistsError.js +10 -14
- package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
- package/error/MissingDeleteDateColumnError.d.ts +5 -0
- package/error/MissingDeleteDateColumnError.js +12 -0
- package/error/MissingDeleteDateColumnError.js.map +1 -0
- package/error/MissingDriverError.d.ts +3 -3
- package/error/MissingDriverError.js +7 -11
- package/error/MissingDriverError.js.map +1 -1
- package/error/MissingJoinColumnError.d.ts +2 -4
- package/error/MissingJoinColumnError.js +13 -17
- package/error/MissingJoinColumnError.js.map +1 -1
- package/error/MissingJoinTableError.d.ts +2 -4
- package/error/MissingJoinTableError.js +13 -17
- package/error/MissingJoinTableError.js.map +1 -1
- package/error/MissingPrimaryColumnError.d.ts +2 -4
- package/error/MissingPrimaryColumnError.js +7 -14
- package/error/MissingPrimaryColumnError.js.map +1 -1
- package/error/MustBeEntityError.d.ts +2 -2
- package/error/MustBeEntityError.js +6 -11
- package/error/MustBeEntityError.js.map +1 -1
- package/error/NamingStrategyNotFoundError.d.ts +2 -2
- package/error/NamingStrategyNotFoundError.js +12 -13
- package/error/NamingStrategyNotFoundError.js.map +1 -1
- package/error/NestedSetMultipleRootError.d.ts +4 -0
- package/error/NestedSetMultipleRootError.js +12 -0
- package/error/NestedSetMultipleRootError.js.map +1 -0
- package/error/NoConnectionForRepositoryError.d.ts +2 -2
- package/error/NoConnectionForRepositoryError.js +7 -12
- package/error/NoConnectionForRepositoryError.js.map +1 -1
- package/error/NoConnectionOptionError.d.ts +2 -1
- package/error/NoConnectionOptionError.js +7 -10
- package/error/NoConnectionOptionError.js.map +1 -1
- package/error/NoNeedToReleaseEntityManagerError.d.ts +2 -2
- package/error/NoNeedToReleaseEntityManagerError.js +8 -13
- package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
- package/error/NoVersionOrUpdateDateColumnError.d.ts +2 -2
- package/error/NoVersionOrUpdateDateColumnError.js +6 -11
- package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
- package/error/OffsetWithoutLimitNotSupportedError.d.ts +4 -4
- package/error/OffsetWithoutLimitNotSupportedError.js +9 -12
- package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
- package/error/OptimisticLockCanNotBeUsedError.d.ts +2 -2
- package/error/OptimisticLockCanNotBeUsedError.js +6 -11
- package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
- package/error/OptimisticLockVersionMismatchError.d.ts +2 -2
- package/error/OptimisticLockVersionMismatchError.js +6 -11
- package/error/OptimisticLockVersionMismatchError.js.map +1 -1
- package/error/PersistedEntityNotFoundError.d.ts +2 -2
- package/error/PersistedEntityNotFoundError.js +6 -11
- package/error/PersistedEntityNotFoundError.js.map +1 -1
- package/error/PessimisticLockTransactionRequiredError.d.ts +2 -2
- package/error/PessimisticLockTransactionRequiredError.js +6 -11
- package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
- package/error/PrimaryColumnCannotBeNullableError.d.ts +2 -2
- package/error/PrimaryColumnCannotBeNullableError.js +7 -12
- package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
- package/error/QueryFailedError.d.ts +6 -2
- package/error/QueryFailedError.js +20 -14
- package/error/QueryFailedError.js.map +1 -1
- package/error/QueryRunnerAlreadyReleasedError.d.ts +2 -4
- package/error/QueryRunnerAlreadyReleasedError.js +6 -13
- package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
- package/error/QueryRunnerProviderAlreadyReleasedError.d.ts +2 -2
- package/error/QueryRunnerProviderAlreadyReleasedError.js +7 -11
- package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
- package/error/RepositoryNotFoundError.d.ts +4 -4
- package/error/RepositoryNotFoundError.js +17 -15
- package/error/RepositoryNotFoundError.js.map +1 -1
- package/error/RepositoryNotTreeError.d.ts +4 -4
- package/error/RepositoryNotTreeError.js +19 -18
- package/error/RepositoryNotTreeError.js.map +1 -1
- package/error/ReturningStatementNotSupportedError.d.ts +2 -2
- package/error/ReturningStatementNotSupportedError.js +6 -11
- package/error/ReturningStatementNotSupportedError.js.map +1 -1
- package/error/SubjectRemovedAndUpdatedError.d.ts +2 -2
- package/error/SubjectRemovedAndUpdatedError.js +7 -12
- package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
- package/error/SubjectWithoutIdentifierError.d.ts +2 -2
- package/error/SubjectWithoutIdentifierError.js +6 -12
- package/error/SubjectWithoutIdentifierError.js.map +1 -1
- package/error/TransactionAlreadyStartedError.d.ts +2 -2
- package/error/TransactionAlreadyStartedError.js +6 -11
- package/error/TransactionAlreadyStartedError.js.map +1 -1
- package/error/TransactionNotStartedError.d.ts +2 -2
- package/error/TransactionNotStartedError.js +6 -11
- package/error/TransactionNotStartedError.js.map +1 -1
- package/error/TreeRepositoryNotSupportedError.d.ts +2 -2
- package/error/TreeRepositoryNotSupportedError.js +6 -11
- package/error/TreeRepositoryNotSupportedError.js.map +1 -1
- package/error/TypeORMError.d.ts +4 -0
- package/error/TypeORMError.js +23 -0
- package/error/TypeORMError.js.map +1 -0
- package/error/UpdateValuesMissingError.d.ts +2 -5
- package/error/UpdateValuesMissingError.js +6 -14
- package/error/UpdateValuesMissingError.js.map +1 -1
- package/error/UsingJoinColumnIsNotAllowedError.d.ts +2 -4
- package/error/UsingJoinColumnIsNotAllowedError.js +7 -14
- package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
- package/error/UsingJoinColumnOnlyOnOneSideAllowedError.d.ts +2 -4
- package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +8 -15
- package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
- package/error/UsingJoinTableIsNotAllowedError.d.ts +2 -4
- package/error/UsingJoinTableIsNotAllowedError.js +8 -15
- package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
- package/error/UsingJoinTableOnlyOnOneSideAllowedError.d.ts +2 -4
- package/error/UsingJoinTableOnlyOnOneSideAllowedError.js +8 -15
- package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
- package/error/index.d.ts +62 -0
- package/error/index.js +67 -0
- package/error/index.js.map +1 -0
- package/find-options/EqualOperator.d.ts +5 -0
- package/find-options/EqualOperator.js +13 -0
- package/find-options/EqualOperator.js.map +1 -0
- package/find-options/FindManyOptions.d.ts +14 -0
- package/find-options/FindManyOptions.js +4 -0
- package/find-options/FindManyOptions.js.map +1 -0
- package/find-options/FindOneOptions.d.ts +86 -0
- package/find-options/FindOneOptions.js +4 -0
- package/find-options/FindOneOptions.js.map +1 -0
- package/find-options/FindOperator.d.ts +31 -8
- package/find-options/FindOperator.js +65 -96
- package/find-options/FindOperator.js.map +1 -1
- package/find-options/FindOperatorType.d.ts +1 -1
- package/find-options/FindOperatorType.js.map +1 -1
- package/find-options/FindOptionsOrder.d.ts +19 -0
- package/find-options/FindOptionsOrder.js +4 -0
- package/find-options/FindOptionsOrder.js.map +1 -0
- package/find-options/FindOptionsRelations.d.ts +19 -0
- package/find-options/FindOptionsRelations.js +4 -0
- package/find-options/FindOptionsRelations.js.map +1 -0
- package/find-options/FindOptionsSelect.d.ts +19 -0
- package/find-options/FindOptionsSelect.js +4 -0
- package/find-options/FindOptionsSelect.js.map +1 -0
- package/find-options/FindOptionsUtils.d.ts +180 -6
- package/find-options/FindOptionsUtils.js +301 -95
- package/find-options/FindOptionsUtils.js.map +1 -1
- package/find-options/FindOptionsWhere.d.ts +14 -0
- package/find-options/FindOptionsWhere.js +4 -0
- package/find-options/FindOptionsWhere.js.map +1 -0
- package/find-options/FindTreeOptions.d.ts +13 -0
- package/find-options/FindTreeOptions.js +4 -0
- package/find-options/FindTreeOptions.js.map +1 -0
- package/find-options/JoinOptions.d.ts +76 -0
- package/find-options/JoinOptions.js +4 -0
- package/find-options/JoinOptions.js.map +1 -0
- package/find-options/OrderByCondition.js.map +1 -1
- package/find-options/mongodb/MongoFindManyOptions.d.ts +14 -0
- package/find-options/mongodb/MongoFindManyOptions.js +4 -0
- package/find-options/mongodb/MongoFindManyOptions.js.map +1 -0
- package/find-options/mongodb/MongoFindOneOptions.d.ts +11 -0
- package/find-options/mongodb/MongoFindOneOptions.js +4 -0
- package/find-options/mongodb/MongoFindOneOptions.js.map +1 -0
- package/find-options/operator/Any.d.ts +1 -1
- package/find-options/operator/Any.js +2 -1
- package/find-options/operator/Any.js.map +1 -1
- package/find-options/operator/Between.d.ts +1 -1
- package/find-options/operator/Between.js +2 -1
- package/find-options/operator/Between.js.map +1 -1
- package/find-options/operator/Equal.d.ts +7 -2
- package/find-options/operator/Equal.js +8 -3
- package/find-options/operator/Equal.js.map +1 -1
- package/find-options/operator/ILike.d.ts +1 -1
- package/find-options/operator/ILike.js +3 -2
- package/find-options/operator/ILike.js.map +1 -1
- package/find-options/operator/In.d.ts +1 -1
- package/find-options/operator/In.js +2 -1
- package/find-options/operator/In.js.map +1 -1
- package/find-options/operator/IsNull.js +2 -1
- package/find-options/operator/IsNull.js.map +1 -1
- package/find-options/operator/LessThan.js +2 -1
- package/find-options/operator/LessThan.js.map +1 -1
- package/find-options/operator/LessThanOrEqual.js +2 -1
- package/find-options/operator/LessThanOrEqual.js.map +1 -1
- package/find-options/operator/Like.d.ts +1 -1
- package/find-options/operator/Like.js +3 -2
- package/find-options/operator/Like.js.map +1 -1
- package/find-options/operator/MoreThan.js +2 -1
- package/find-options/operator/MoreThan.js.map +1 -1
- package/find-options/operator/MoreThanOrEqual.js +2 -1
- package/find-options/operator/MoreThanOrEqual.js.map +1 -1
- package/find-options/operator/Not.d.ts +1 -1
- package/find-options/operator/Not.js +3 -2
- package/find-options/operator/Not.js.map +1 -1
- package/find-options/operator/Raw.d.ts +14 -2
- package/find-options/operator/Raw.js +7 -7
- package/find-options/operator/Raw.js.map +1 -1
- package/globals.d.ts +117 -0
- package/globals.js +183 -0
- package/globals.js.map +1 -0
- package/index.d.ts +45 -114
- package/index.js +86 -230
- package/index.js.map +1 -1
- package/index.mjs +366 -0
- package/logger/AdvancedConsoleLogger.d.ts +2 -1
- package/logger/AdvancedConsoleLogger.js +57 -33
- package/logger/AdvancedConsoleLogger.js.map +1 -1
- package/logger/DebugLogger.d.ts +1 -2
- package/logger/DebugLogger.js +27 -26
- package/logger/DebugLogger.js.map +1 -1
- package/logger/FileLogger.d.ts +3 -1
- package/logger/FileLogger.js +68 -40
- package/logger/FileLogger.js.map +1 -1
- package/logger/Logger.d.ts +1 -1
- package/logger/Logger.js.map +1 -1
- package/logger/LoggerFactory.js +11 -12
- package/logger/LoggerFactory.js.map +1 -1
- package/logger/LoggerOptions.d.ts +9 -0
- package/logger/LoggerOptions.js.map +1 -1
- package/logger/SimpleConsoleLogger.d.ts +2 -1
- package/logger/SimpleConsoleLogger.js +56 -32
- package/logger/SimpleConsoleLogger.js.map +1 -1
- package/metadata/CheckMetadata.js +9 -7
- package/metadata/CheckMetadata.js.map +1 -1
- package/metadata/ColumnMetadata.d.ts +16 -7
- package/metadata/ColumnMetadata.js +243 -127
- package/metadata/ColumnMetadata.js.map +1 -1
- package/metadata/EmbeddedMetadata.d.ts +12 -5
- package/metadata/EmbeddedMetadata.js +78 -50
- package/metadata/EmbeddedMetadata.js.map +1 -1
- package/metadata/EntityListenerMetadata.js +22 -14
- package/metadata/EntityListenerMetadata.js.map +1 -1
- package/metadata/EntityMetadata.d.ts +65 -22
- package/metadata/EntityMetadata.js +255 -163
- package/metadata/EntityMetadata.js.map +1 -1
- package/metadata/ExclusionMetadata.js +9 -7
- package/metadata/ExclusionMetadata.js.map +1 -1
- package/metadata/ForeignKeyMetadata.js +9 -9
- package/metadata/ForeignKeyMetadata.js.map +1 -1
- package/metadata/IndexMetadata.d.ts +7 -2
- package/metadata/IndexMetadata.js +45 -33
- package/metadata/IndexMetadata.js.map +1 -1
- package/metadata/RelationCountMetadata.js +12 -9
- package/metadata/RelationCountMetadata.js.map +1 -1
- package/metadata/RelationIdMetadata.js +22 -18
- package/metadata/RelationIdMetadata.js.map +1 -1
- package/metadata/RelationMetadata.d.ts +28 -5
- package/metadata/RelationMetadata.js +162 -79
- package/metadata/RelationMetadata.js.map +1 -1
- package/metadata/UniqueMetadata.d.ts +7 -2
- package/metadata/UniqueMetadata.js +41 -31
- package/metadata/UniqueMetadata.js.map +1 -1
- package/metadata/types/ClosureTreeOptions.d.ts +10 -0
- package/metadata/types/ClosureTreeOptions.js +4 -0
- package/metadata/types/ClosureTreeOptions.js.map +1 -0
- package/metadata/types/DeferrableType.js.map +1 -1
- package/metadata/types/EventListenerTypes.d.ts +12 -8
- package/metadata/types/EventListenerTypes.js +14 -12
- package/metadata/types/EventListenerTypes.js.map +1 -1
- package/metadata/types/OnDeleteType.js.map +1 -1
- package/metadata/types/OnUpdateType.js.map +1 -1
- package/metadata/types/PropertyTypeInFunction.js.map +1 -1
- package/metadata/types/RelationTypeInFunction.d.ts +2 -1
- package/metadata/types/RelationTypeInFunction.js.map +1 -1
- package/metadata/types/RelationTypes.js.map +1 -1
- package/metadata/types/TableTypes.d.ts +1 -1
- package/metadata/types/TableTypes.js.map +1 -1
- package/metadata/types/TreeTypes.js.map +1 -1
- package/metadata-args/CheckMetadataArgs.js.map +1 -1
- package/metadata-args/ColumnMetadataArgs.js.map +1 -1
- package/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
- package/metadata-args/EmbeddedMetadataArgs.d.ts +2 -2
- package/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
- package/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
- package/metadata-args/EntityRepositoryMetadataArgs.d.ts +2 -2
- package/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
- package/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
- package/metadata-args/ExclusionMetadataArgs.js.map +1 -1
- package/metadata-args/GeneratedMetadataArgs.js.map +1 -1
- package/metadata-args/IndexMetadataArgs.d.ts +7 -2
- package/metadata-args/IndexMetadataArgs.js.map +1 -1
- package/metadata-args/InheritanceMetadataArgs.js.map +1 -1
- package/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
- package/metadata-args/JoinTableMetadataArgs.js.map +1 -1
- package/metadata-args/MetadataArgsStorage.d.ts +4 -0
- package/metadata-args/MetadataArgsStorage.js +147 -95
- package/metadata-args/MetadataArgsStorage.js.map +1 -1
- package/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
- package/metadata-args/RelationCountMetadataArgs.js.map +1 -1
- package/metadata-args/RelationIdMetadataArgs.js.map +1 -1
- package/metadata-args/RelationMetadataArgs.js.map +1 -1
- package/metadata-args/TableMetadataArgs.d.ts +9 -5
- package/metadata-args/TableMetadataArgs.js.map +1 -1
- package/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
- package/metadata-args/TransactionRepositoryMetadataArgs.d.ts +1 -1
- package/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
- package/metadata-args/TreeMetadataArgs.d.ts +5 -0
- package/metadata-args/TreeMetadataArgs.js.map +1 -1
- package/metadata-args/UniqueMetadataArgs.d.ts +7 -2
- package/metadata-args/UniqueMetadataArgs.js.map +1 -1
- package/metadata-args/types/ColumnMode.d.ts +1 -1
- package/metadata-args/types/ColumnMode.js.map +1 -1
- package/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +2 -2
- package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +52 -33
- package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/EntityMetadataBuilder.d.ts +2 -2
- package/metadata-builder/EntityMetadataBuilder.js +412 -281
- package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/EntityMetadataValidator.js +85 -73
- package/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/metadata-builder/JunctionEntityMetadataBuilder.d.ts +2 -2
- package/metadata-builder/JunctionEntityMetadataBuilder.js +149 -95
- package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/MetadataUtils.js +13 -15
- package/metadata-builder/MetadataUtils.js.map +1 -1
- package/metadata-builder/RelationJoinColumnBuilder.d.ts +3 -2
- package/metadata-builder/RelationJoinColumnBuilder.js +73 -52
- package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/migration/Migration.js +4 -4
- package/migration/Migration.js.map +1 -1
- package/migration/MigrationExecutor.d.ts +6 -4
- package/migration/MigrationExecutor.js +383 -537
- package/migration/MigrationExecutor.js.map +1 -1
- package/migration/MigrationInterface.js.map +1 -1
- package/naming-strategy/DefaultNamingStrategy.d.ts +7 -1
- package/naming-strategy/DefaultNamingStrategy.js +96 -84
- package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
- package/naming-strategy/NamingStrategyInterface.d.ts +17 -1
- package/naming-strategy/NamingStrategyInterface.js.map +1 -1
- package/package.json +1 -151
- package/persistence/EntityPersistExecutor.d.ts +4 -4
- package/persistence/EntityPersistExecutor.js +137 -160
- package/persistence/EntityPersistExecutor.js.map +1 -1
- package/persistence/Subject.d.ts +27 -3
- package/persistence/Subject.js +105 -67
- package/persistence/Subject.js.map +1 -1
- package/persistence/SubjectChangeMap.js.map +1 -1
- package/persistence/SubjectChangedColumnsComputer.js +77 -53
- package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
- package/persistence/SubjectDatabaseEntityLoader.d.ts +1 -1
- package/persistence/SubjectDatabaseEntityLoader.js +98 -113
- package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
- package/persistence/SubjectExecutor.d.ts +19 -2
- package/persistence/SubjectExecutor.js +594 -427
- package/persistence/SubjectExecutor.js.map +1 -1
- package/persistence/SubjectTopoligicalSorter.js +64 -58
- package/persistence/SubjectTopoligicalSorter.js.map +1 -1
- package/persistence/subject-builder/CascadesSubjectBuilder.d.ts +1 -1
- package/persistence/subject-builder/CascadesSubjectBuilder.js +55 -28
- package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/ManyToManySubjectBuilder.js +67 -60
- package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/OneToManySubjectBuilder.js +64 -45
- package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +35 -30
- package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
- package/persistence/tree/ClosureSubjectExecutor.d.ts +8 -11
- package/persistence/tree/ClosureSubjectExecutor.js +215 -89
- package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
- package/persistence/tree/MaterializedPathSubjectExecutor.d.ts +5 -0
- package/persistence/tree/MaterializedPathSubjectExecutor.js +90 -47
- package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
- package/persistence/tree/NestedSetSubjectExecutor.d.ts +20 -0
- package/persistence/tree/NestedSetSubjectExecutor.js +245 -62
- package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
- package/platform/PlatformTools.d.ts +8 -1
- package/platform/PlatformTools.js +123 -118
- package/platform/PlatformTools.js.map +1 -1
- package/query-builder/Alias.d.ts +4 -3
- package/query-builder/Alias.js +20 -31
- package/query-builder/Alias.js.map +1 -1
- package/query-builder/Brackets.d.ts +4 -3
- package/query-builder/Brackets.js +5 -4
- package/query-builder/Brackets.js.map +1 -1
- package/query-builder/DeleteQueryBuilder.d.ts +13 -11
- package/query-builder/DeleteQueryBuilder.js +113 -168
- package/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/query-builder/InsertOrUpdateOptions.d.ts +3 -0
- package/query-builder/InsertOrUpdateOptions.js +4 -0
- package/query-builder/InsertOrUpdateOptions.js.map +1 -0
- package/query-builder/InsertQueryBuilder.d.ts +15 -5
- package/query-builder/InsertQueryBuilder.js +460 -298
- package/query-builder/InsertQueryBuilder.js.map +1 -1
- package/query-builder/JoinAttribute.d.ts +12 -12
- package/query-builder/JoinAttribute.js +143 -190
- package/query-builder/JoinAttribute.js.map +1 -1
- package/query-builder/JoinOptions.js.map +1 -1
- package/query-builder/NotBrackets.d.ts +8 -0
- package/query-builder/NotBrackets.js +17 -0
- package/query-builder/NotBrackets.js.map +1 -0
- package/query-builder/QueryBuilder.d.ts +55 -32
- package/query-builder/QueryBuilder.js +703 -378
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/QueryBuilderUtils.d.ts +0 -1
- package/query-builder/QueryBuilderUtils.js +6 -15
- package/query-builder/QueryBuilderUtils.js.map +1 -1
- package/query-builder/QueryExpressionMap.d.ts +51 -29
- package/query-builder/QueryExpressionMap.js +97 -88
- package/query-builder/QueryExpressionMap.js.map +1 -1
- package/query-builder/QueryPartialEntity.d.ts +1 -1
- package/query-builder/QueryPartialEntity.js.map +1 -1
- package/query-builder/RelationIdLoader.d.ts +10 -12
- package/query-builder/RelationIdLoader.js +307 -184
- package/query-builder/RelationIdLoader.js.map +1 -1
- package/query-builder/RelationLoader.d.ts +6 -3
- package/query-builder/RelationLoader.js +182 -145
- package/query-builder/RelationLoader.js.map +1 -1
- package/query-builder/RelationQueryBuilder.d.ts +2 -1
- package/query-builder/RelationQueryBuilder.js +85 -114
- package/query-builder/RelationQueryBuilder.js.map +1 -1
- package/query-builder/RelationRemover.js +120 -83
- package/query-builder/RelationRemover.js.map +1 -1
- package/query-builder/RelationUpdater.js +129 -127
- package/query-builder/RelationUpdater.js.map +1 -1
- package/query-builder/ReturningResultsEntityUpdator.d.ts +4 -4
- package/query-builder/ReturningResultsEntityUpdator.js +136 -154
- package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
- package/query-builder/SelectQuery.js.map +1 -1
- package/query-builder/SelectQueryBuilder.d.ts +64 -50
- package/query-builder/SelectQueryBuilder.js +1661 -1308
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-builder/SelectQueryBuilderOption.js.map +1 -1
- package/query-builder/SoftDeleteQueryBuilder.d.ts +138 -0
- package/query-builder/SoftDeleteQueryBuilder.js +367 -0
- package/query-builder/SoftDeleteQueryBuilder.js.map +1 -0
- package/query-builder/UpdateQueryBuilder.d.ts +11 -8
- package/query-builder/UpdateQueryBuilder.js +283 -304
- package/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/query-builder/WhereClause.d.ts +16 -0
- package/query-builder/WhereClause.js +4 -0
- package/query-builder/WhereClause.js.map +1 -0
- package/query-builder/{WhereExpression.d.ts → WhereExpressionBuilder.d.ts} +51 -3
- package/query-builder/WhereExpressionBuilder.js +4 -0
- package/query-builder/WhereExpressionBuilder.js.map +1 -0
- package/query-builder/relation-count/RelationCountAttribute.d.ts +7 -7
- package/query-builder/relation-count/RelationCountAttribute.js +69 -97
- package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
- package/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
- package/query-builder/relation-count/RelationCountLoader.d.ts +3 -3
- package/query-builder/relation-count/RelationCountLoader.js +151 -100
- package/query-builder/relation-count/RelationCountLoader.js.map +1 -1
- package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js +17 -18
- package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
- package/query-builder/relation-id/RelationIdAttribute.d.ts +8 -8
- package/query-builder/relation-id/RelationIdAttribute.js +70 -102
- package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
- package/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
- package/query-builder/relation-id/RelationIdLoader.d.ts +3 -3
- package/query-builder/relation-id/RelationIdLoader.js +257 -148
- package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
- package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js +17 -18
- package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
- package/query-builder/result/DeleteResult.d.ts +3 -1
- package/query-builder/result/DeleteResult.js +8 -4
- package/query-builder/result/DeleteResult.js.map +1 -1
- package/query-builder/result/InsertResult.d.ts +2 -0
- package/query-builder/result/InsertResult.js +9 -4
- package/query-builder/result/InsertResult.js.map +1 -1
- package/query-builder/result/UpdateResult.d.ts +2 -0
- package/query-builder/result/UpdateResult.js +10 -4
- package/query-builder/result/UpdateResult.js.map +1 -1
- package/query-builder/transformer/DocumentToEntityTransformer.d.ts +1 -2
- package/query-builder/transformer/DocumentToEntityTransformer.js +49 -34
- package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
- package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +75 -100
- package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
- package/query-builder/transformer/PlainObjectToNewEntityTransformer.js +26 -26
- package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +13 -0
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +231 -160
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/query-runner/BaseQueryRunner.d.ts +49 -12
- package/query-runner/BaseQueryRunner.js +243 -248
- package/query-runner/BaseQueryRunner.js.map +1 -1
- package/query-runner/QueryLock.d.ts +4 -0
- package/query-runner/QueryLock.js +28 -0
- package/query-runner/QueryLock.js.map +1 -0
- package/query-runner/QueryResult.d.ts +17 -0
- package/query-runner/QueryResult.js +17 -0
- package/query-runner/QueryResult.js.map +1 -0
- package/query-runner/QueryRunner.d.ts +36 -8
- package/query-runner/QueryRunner.js.map +1 -1
- package/repository/AbstractRepository.d.ts +5 -5
- package/repository/AbstractRepository.js +50 -55
- package/repository/AbstractRepository.js.map +1 -1
- package/repository/BaseEntity.d.ts +69 -81
- package/repository/BaseEntity.js +171 -131
- package/repository/BaseEntity.js.map +1 -1
- package/repository/EntityId.js.map +1 -1
- package/repository/FindTreesOptions.d.ts +9 -0
- package/repository/FindTreesOptions.js +4 -0
- package/repository/FindTreesOptions.js.map +1 -0
- package/repository/MongoRepository.d.ts +55 -9
- package/repository/MongoRepository.js +332 -0
- package/repository/MongoRepository.js.map +1 -1
- package/repository/RemoveOptions.js.map +1 -1
- package/repository/Repository.d.ts +133 -96
- package/repository/Repository.js +290 -0
- package/repository/Repository.js.map +1 -1
- package/repository/SaveOptions.d.ts +1 -1
- package/repository/SaveOptions.js.map +1 -1
- package/repository/TreeRepository.d.ts +14 -9
- package/repository/TreeRepository.js +265 -0
- package/repository/TreeRepository.js.map +1 -1
- package/repository/UpsertOptions.d.ts +10 -0
- package/repository/UpsertOptions.js +4 -0
- package/repository/UpsertOptions.js.map +1 -0
- package/schema-builder/MongoSchemaBuilder.d.ts +3 -3
- package/schema-builder/MongoSchemaBuilder.js +30 -42
- package/schema-builder/MongoSchemaBuilder.js.map +1 -1
- package/schema-builder/RdbmsSchemaBuilder.d.ts +14 -6
- package/schema-builder/RdbmsSchemaBuilder.js +703 -1065
- package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/schema-builder/SchemaBuilder.js.map +1 -1
- package/schema-builder/options/TableCheckOptions.js.map +1 -1
- package/schema-builder/options/TableColumnOptions.d.ts +6 -2
- package/schema-builder/options/TableColumnOptions.js.map +1 -1
- package/schema-builder/options/TableExclusionOptions.js.map +1 -1
- package/schema-builder/options/TableForeignKeyOptions.d.ts +8 -0
- package/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
- package/schema-builder/options/TableIndexOptions.d.ts +6 -1
- package/schema-builder/options/TableIndexOptions.js.map +1 -1
- package/schema-builder/options/TableOptions.d.ts +8 -0
- package/schema-builder/options/TableOptions.js.map +1 -1
- package/schema-builder/options/TableUniqueOptions.d.ts +5 -0
- package/schema-builder/options/TableUniqueOptions.js.map +1 -1
- package/schema-builder/options/ViewOptions.d.ts +10 -2
- package/schema-builder/options/ViewOptions.js.map +1 -1
- package/schema-builder/table/Table.d.ts +13 -3
- package/schema-builder/table/Table.js +117 -103
- package/schema-builder/table/Table.js.map +1 -1
- package/schema-builder/table/TableCheck.d.ts +1 -0
- package/schema-builder/table/TableCheck.js +11 -11
- package/schema-builder/table/TableCheck.js.map +1 -1
- package/schema-builder/table/TableColumn.d.ts +7 -2
- package/schema-builder/table/TableColumn.js +11 -8
- package/schema-builder/table/TableColumn.js.map +1 -1
- package/schema-builder/table/TableExclusion.d.ts +1 -0
- package/schema-builder/table/TableExclusion.js +10 -9
- package/schema-builder/table/TableExclusion.js.map +1 -1
- package/schema-builder/table/TableForeignKey.d.ts +11 -1
- package/schema-builder/table/TableForeignKey.js +17 -11
- package/schema-builder/table/TableForeignKey.js.map +1 -1
- package/schema-builder/table/TableIndex.d.ts +6 -0
- package/schema-builder/table/TableIndex.js +16 -13
- package/schema-builder/table/TableIndex.js.map +1 -1
- package/schema-builder/table/TableUnique.d.ts +6 -0
- package/schema-builder/table/TableUnique.js +14 -11
- package/schema-builder/table/TableUnique.js.map +1 -1
- package/schema-builder/util/TableUtils.js +11 -10
- package/schema-builder/util/TableUtils.js.map +1 -1
- package/schema-builder/util/ViewUtils.d.ts +7 -0
- package/schema-builder/util/ViewUtils.js +27 -0
- package/schema-builder/util/ViewUtils.js.map +1 -0
- package/schema-builder/view/View.d.ts +12 -5
- package/schema-builder/view/View.js +17 -10
- package/schema-builder/view/View.js.map +1 -1
- package/subscriber/Broadcaster.d.ts +87 -2
- package/subscriber/Broadcaster.js +413 -118
- package/subscriber/Broadcaster.js.map +1 -1
- package/subscriber/BroadcasterResult.d.ts +4 -0
- package/subscriber/BroadcasterResult.js +13 -4
- package/subscriber/BroadcasterResult.js.map +1 -1
- package/subscriber/EntitySubscriberInterface.d.ts +45 -0
- package/subscriber/EntitySubscriberInterface.js.map +1 -1
- package/subscriber/event/InsertEvent.d.ts +7 -7
- package/subscriber/event/InsertEvent.js.map +1 -1
- package/subscriber/event/LoadEvent.d.ts +2 -2
- package/subscriber/event/LoadEvent.js.map +1 -1
- package/subscriber/event/RecoverEvent.d.ts +6 -0
- package/subscriber/event/RecoverEvent.js +4 -0
- package/subscriber/event/RecoverEvent.js.map +1 -0
- package/subscriber/event/RemoveEvent.d.ts +7 -7
- package/subscriber/event/RemoveEvent.js.map +1 -1
- package/subscriber/event/SoftRemoveEvent.d.ts +6 -0
- package/subscriber/event/SoftRemoveEvent.js +4 -0
- package/subscriber/event/SoftRemoveEvent.js.map +1 -0
- package/subscriber/event/TransactionCommitEvent.d.ts +22 -0
- package/subscriber/event/TransactionCommitEvent.js +4 -0
- package/subscriber/event/TransactionCommitEvent.js.map +1 -0
- package/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
- package/subscriber/event/TransactionRollbackEvent.js +4 -0
- package/subscriber/event/TransactionRollbackEvent.js.map +1 -0
- package/subscriber/event/TransactionStartEvent.d.ts +22 -0
- package/subscriber/event/TransactionStartEvent.js +4 -0
- package/subscriber/event/TransactionStartEvent.js.map +1 -0
- package/subscriber/event/UpdateEvent.d.ts +5 -4
- package/subscriber/event/UpdateEvent.js.map +1 -1
- package/typeorm-class-transformer-shim.js +41 -7
- package/typeorm-model-shim.js +166 -111
- package/util/ApplyValueTransformers.js +14 -28
- package/util/ApplyValueTransformers.js.map +1 -1
- package/util/DateUtils.d.ts +2 -2
- package/util/DateUtils.js +111 -82
- package/util/DateUtils.js.map +1 -1
- package/util/DepGraph.js +51 -49
- package/util/DepGraph.js.map +1 -1
- package/util/DirectoryExportedClassesLoader.d.ts +1 -1
- package/util/DirectoryExportedClassesLoader.js +35 -26
- package/util/DirectoryExportedClassesLoader.js.map +1 -1
- package/util/ImportUtils.d.ts +1 -0
- package/util/ImportUtils.js +79 -0
- package/util/ImportUtils.js.map +1 -0
- package/util/InstanceChecker.d.ts +61 -0
- package/util/InstanceChecker.js +107 -0
- package/util/InstanceChecker.js.map +1 -0
- package/util/ObjectUtils.d.ts +17 -6
- package/util/ObjectUtils.js +27 -35
- package/util/ObjectUtils.js.map +1 -1
- package/util/OrmUtils.d.ts +16 -8
- package/util/OrmUtils.js +199 -97
- package/util/OrmUtils.js.map +1 -1
- package/util/PathUtils.d.ts +10 -0
- package/util/PathUtils.js +34 -0
- package/util/PathUtils.js.map +1 -0
- package/util/RandomGenerator.d.ts +0 -4
- package/util/RandomGenerator.js +62 -51
- package/util/RandomGenerator.js.map +1 -1
- package/util/StringUtils.d.ts +13 -3
- package/util/StringUtils.js +45 -19
- package/util/StringUtils.js.map +1 -1
- package/util/TreeRepositoryUtils.d.ts +23 -0
- package/util/TreeRepositoryUtils.js +60 -0
- package/util/TreeRepositoryUtils.js.map +1 -0
- package/util/VersionUtils.js +12 -15
- package/util/VersionUtils.js.map +1 -1
- package/browser/decorator/transaction/Transaction.d.ts +0 -16
- package/browser/decorator/transaction/Transaction.js +0 -85
- package/browser/decorator/transaction/Transaction.js.map +0 -1
- package/browser/decorator/transaction/TransactionManager.d.ts +0 -4
- package/browser/decorator/transaction/TransactionManager.js +0 -15
- package/browser/decorator/transaction/TransactionManager.js.map +0 -1
- package/browser/decorator/transaction/TransactionRepository.d.ts +0 -6
- package/browser/decorator/transaction/TransactionRepository.js +0 -28
- package/browser/decorator/transaction/TransactionRepository.js.map +0 -1
- package/browser/driver/aurora-data-api/AuroraDataApiConnection.d.ts +0 -11
- package/browser/driver/aurora-data-api/AuroraDataApiConnection.js +0 -21
- package/browser/driver/aurora-data-api/AuroraDataApiConnection.js.map +0 -1
- package/browser/driver/aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js +0 -3
- package/browser/driver/aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js.map +0 -1
- package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +0 -22
- package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js +0 -3
- package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +0 -1
- package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +0 -1
- package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +0 -2015
- package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +0 -1
- package/browser/entity-factory/DefaultEntityFactory.d.ts +0 -7
- package/browser/entity-factory/DefaultEntityFactory.js +0 -16
- package/browser/entity-factory/DefaultEntityFactory.js.map +0 -1
- package/browser/entity-factory/EntityFactoryInterface.d.ts +0 -11
- package/browser/entity-factory/EntityFactoryInterface.js +0 -3
- package/browser/entity-factory/EntityFactoryInterface.js.map +0 -1
- package/browser/entity-factory/OldEntityFactory.d.ts +0 -7
- package/browser/entity-factory/OldEntityFactory.js +0 -14
- package/browser/entity-factory/OldEntityFactory.js.map +0 -1
- package/browser/error/EntityColumnNotFound.d.ts +0 -7
- package/browser/error/EntityColumnNotFound.js +0 -18
- package/browser/error/EntityColumnNotFound.js.map +0 -1
- package/browser/error/FindCriteriaNotFoundError.d.ts +0 -7
- package/browser/error/FindCriteriaNotFoundError.js +0 -17
- package/browser/error/FindCriteriaNotFoundError.js.map +0 -1
- package/browser/find-options/FindOptions.d.ts +0 -171
- package/browser/find-options/FindOptions.js +0 -3
- package/browser/find-options/FindOptions.js.map +0 -1
- package/browser/find-options/operator/If.d.ts +0 -8
- package/browser/find-options/operator/If.js +0 -21
- package/browser/find-options/operator/If.js.map +0 -1
- package/browser/find-options/operator/Switch.d.ts +0 -16
- package/browser/find-options/operator/Switch.js +0 -17
- package/browser/find-options/operator/Switch.js.map +0 -1
- package/browser/observer/ObserverExecutor.d.ts +0 -18
- package/browser/observer/ObserverExecutor.js +0 -404
- package/browser/observer/ObserverExecutor.js.map +0 -1
- package/browser/observer/QueryObserver.d.ts +0 -28
- package/browser/observer/QueryObserver.js +0 -120
- package/browser/observer/QueryObserver.js.map +0 -1
- package/browser/query-builder/WhereExpression.js +0 -3
- package/browser/query-builder/WhereExpression.js.map +0 -1
- package/browser/repository/LiteralMongoRepository.d.ts +0 -11
- package/browser/repository/LiteralMongoRepository.js +0 -138
- package/browser/repository/LiteralMongoRepository.js.map +0 -1
- package/browser/repository/LiteralRepository.d.ts +0 -12
- package/browser/repository/LiteralRepository.js +0 -201
- package/browser/repository/LiteralRepository.js.map +0 -1
- package/browser/repository/LiteralTreeRepository.d.ts +0 -9
- package/browser/repository/LiteralTreeRepository.js +0 -224
- package/browser/repository/LiteralTreeRepository.js.map +0 -1
- package/browser/repository/RepositoryFactory.d.ts +0 -13
- package/browser/repository/RepositoryFactory.js +0 -50
- package/browser/repository/RepositoryFactory.js.map +0 -1
- package/browser/util/PromiseUtils.d.ts +0 -24
- package/browser/util/PromiseUtils.js +0 -62
- package/browser/util/PromiseUtils.js.map +0 -1
- package/decorator/transaction/Transaction.d.ts +0 -16
- package/decorator/transaction/Transaction.js +0 -88
- package/decorator/transaction/Transaction.js.map +0 -1
- package/decorator/transaction/TransactionManager.d.ts +0 -4
- package/decorator/transaction/TransactionManager.js +0 -18
- package/decorator/transaction/TransactionManager.js.map +0 -1
- package/decorator/transaction/TransactionRepository.d.ts +0 -6
- package/decorator/transaction/TransactionRepository.js +0 -31
- package/decorator/transaction/TransactionRepository.js.map +0 -1
- package/driver/aurora-data-api/AuroraDataApiConnection.d.ts +0 -11
- package/driver/aurora-data-api/AuroraDataApiConnection.js +0 -23
- package/driver/aurora-data-api/AuroraDataApiConnection.js.map +0 -1
- package/driver/aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js.map +0 -1
- package/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +0 -22
- package/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +0 -1
- package/driver/aurora-data-api/AuroraDataApiDriver.js.map +0 -1
- package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +0 -2017
- package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +0 -1
- package/entity-factory/DefaultEntityFactory.d.ts +0 -7
- package/entity-factory/DefaultEntityFactory.js +0 -18
- package/entity-factory/DefaultEntityFactory.js.map +0 -1
- package/entity-factory/EntityFactoryInterface.d.ts +0 -11
- package/entity-factory/EntityFactoryInterface.js.map +0 -1
- package/entity-factory/OldEntityFactory.d.ts +0 -7
- package/entity-factory/OldEntityFactory.js +0 -16
- package/entity-factory/OldEntityFactory.js.map +0 -1
- package/error/EntityColumnNotFound.d.ts +0 -7
- package/error/EntityColumnNotFound.js +0 -20
- package/error/EntityColumnNotFound.js.map +0 -1
- package/error/FindCriteriaNotFoundError.d.ts +0 -7
- package/error/FindCriteriaNotFoundError.js +0 -19
- package/error/FindCriteriaNotFoundError.js.map +0 -1
- package/find-options/FindOptions.d.ts +0 -171
- package/find-options/FindOptions.js.map +0 -1
- package/find-options/operator/If.d.ts +0 -8
- package/find-options/operator/If.js +0 -24
- package/find-options/operator/If.js.map +0 -1
- package/find-options/operator/Switch.d.ts +0 -16
- package/find-options/operator/Switch.js +0 -20
- package/find-options/operator/Switch.js.map +0 -1
- package/observer/ObserverExecutor.d.ts +0 -18
- package/observer/ObserverExecutor.js +0 -406
- package/observer/ObserverExecutor.js.map +0 -1
- package/observer/QueryObserver.d.ts +0 -28
- package/observer/QueryObserver.js +0 -122
- package/observer/QueryObserver.js.map +0 -1
- package/query-builder/WhereExpression.js.map +0 -1
- package/repository/LiteralMongoRepository.d.ts +0 -11
- package/repository/LiteralMongoRepository.js +0 -141
- package/repository/LiteralMongoRepository.js.map +0 -1
- package/repository/LiteralRepository.d.ts +0 -12
- package/repository/LiteralRepository.js +0 -204
- package/repository/LiteralRepository.js.map +0 -1
- package/repository/LiteralTreeRepository.d.ts +0 -9
- package/repository/LiteralTreeRepository.js +0 -227
- package/repository/LiteralTreeRepository.js.map +0 -1
- package/repository/RepositoryFactory.d.ts +0 -13
- package/repository/RepositoryFactory.js +0 -52
- package/repository/RepositoryFactory.js.map +0 -1
- package/util/PromiseUtils.d.ts +0 -24
- package/util/PromiseUtils.js +0 -64
- package/util/PromiseUtils.js.map +0 -1
|
@@ -1,72 +1,53 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
var BroadcasterResult_1 = require("../subscriber/BroadcasterResult");
|
|
29
|
-
var FindCriteriaNotFoundError_1 = require("../error/FindCriteriaNotFoundError");
|
|
30
|
-
var FindOperator_1 = require("../find-options/FindOperator");
|
|
31
|
-
var OrmUtils_1 = require("../util/OrmUtils");
|
|
32
|
-
var ObjectUtils_1 = require("../util/ObjectUtils");
|
|
33
|
-
var DriverUtils_1 = require("../driver/DriverUtils");
|
|
34
|
-
var AuroraDataApiDriver_1 = require("../driver/aurora-data-api/AuroraDataApiDriver");
|
|
35
|
-
var ApplyValueTransformers_1 = require("../util/ApplyValueTransformers");
|
|
3
|
+
exports.SelectQueryBuilder = void 0;
|
|
4
|
+
const RawSqlResultsToEntityTransformer_1 = require("./transformer/RawSqlResultsToEntityTransformer");
|
|
5
|
+
const PessimisticLockTransactionRequiredError_1 = require("../error/PessimisticLockTransactionRequiredError");
|
|
6
|
+
const NoVersionOrUpdateDateColumnError_1 = require("../error/NoVersionOrUpdateDateColumnError");
|
|
7
|
+
const OptimisticLockVersionMismatchError_1 = require("../error/OptimisticLockVersionMismatchError");
|
|
8
|
+
const OptimisticLockCanNotBeUsedError_1 = require("../error/OptimisticLockCanNotBeUsedError");
|
|
9
|
+
const JoinAttribute_1 = require("./JoinAttribute");
|
|
10
|
+
const RelationIdAttribute_1 = require("./relation-id/RelationIdAttribute");
|
|
11
|
+
const RelationCountAttribute_1 = require("./relation-count/RelationCountAttribute");
|
|
12
|
+
const RelationIdLoader_1 = require("./relation-id/RelationIdLoader");
|
|
13
|
+
const RelationIdMetadataToAttributeTransformer_1 = require("./relation-id/RelationIdMetadataToAttributeTransformer");
|
|
14
|
+
const RelationCountLoader_1 = require("./relation-count/RelationCountLoader");
|
|
15
|
+
const RelationCountMetadataToAttributeTransformer_1 = require("./relation-count/RelationCountMetadataToAttributeTransformer");
|
|
16
|
+
const QueryBuilder_1 = require("./QueryBuilder");
|
|
17
|
+
const LockNotSupportedOnGivenDriverError_1 = require("../error/LockNotSupportedOnGivenDriverError");
|
|
18
|
+
const OffsetWithoutLimitNotSupportedError_1 = require("../error/OffsetWithoutLimitNotSupportedError");
|
|
19
|
+
const ObjectUtils_1 = require("../util/ObjectUtils");
|
|
20
|
+
const DriverUtils_1 = require("../driver/DriverUtils");
|
|
21
|
+
const EntityNotFoundError_1 = require("../error/EntityNotFoundError");
|
|
22
|
+
const error_1 = require("../error");
|
|
23
|
+
const FindOptionsUtils_1 = require("../find-options/FindOptionsUtils");
|
|
24
|
+
const ApplyValueTransformers_1 = require("../util/ApplyValueTransformers");
|
|
25
|
+
const OrmUtils_1 = require("../util/OrmUtils");
|
|
26
|
+
const EntityPropertyNotFoundError_1 = require("../error/EntityPropertyNotFoundError");
|
|
27
|
+
const InstanceChecker_1 = require("../util/InstanceChecker");
|
|
36
28
|
/**
|
|
37
29
|
* Allows to build complex sql queries in a fashion way and execute those queries.
|
|
38
30
|
*/
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
// TODO: Proper clone of findOptions field(deep, no as any)
|
|
50
|
-
_super.call(this, connectionOrQueryBuilder, queryRunner) || this;
|
|
51
|
-
_this.findOptions = {};
|
|
52
|
-
_this.selects = [];
|
|
53
|
-
_this.joins = [];
|
|
54
|
-
_this.conditions = "";
|
|
55
|
-
_this.orderBys = [];
|
|
56
|
-
_this.relationMetadatas = [];
|
|
57
|
-
if (connectionOrQueryBuilder instanceof QueryBuilder_1.QueryBuilder) {
|
|
58
|
-
_this.findOptions = connectionOrQueryBuilder.findOptions;
|
|
59
|
-
}
|
|
60
|
-
return _this;
|
|
31
|
+
class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
32
|
+
constructor() {
|
|
33
|
+
super(...arguments);
|
|
34
|
+
this["@instanceof"] = Symbol.for("SelectQueryBuilder");
|
|
35
|
+
this.findOptions = {};
|
|
36
|
+
this.selects = [];
|
|
37
|
+
this.joins = [];
|
|
38
|
+
this.conditions = "";
|
|
39
|
+
this.orderBys = [];
|
|
40
|
+
this.relationMetadatas = [];
|
|
61
41
|
}
|
|
62
42
|
// -------------------------------------------------------------------------
|
|
63
43
|
// Public Implemented Methods
|
|
64
44
|
// -------------------------------------------------------------------------
|
|
65
45
|
/**
|
|
66
|
-
* Gets generated
|
|
46
|
+
* Gets generated SQL query without parameters being replaced.
|
|
67
47
|
*/
|
|
68
|
-
|
|
69
|
-
|
|
48
|
+
getQuery() {
|
|
49
|
+
let sql = this.createComment();
|
|
50
|
+
sql += this.createSelectExpression();
|
|
70
51
|
sql += this.createJoinExpression();
|
|
71
52
|
sql += this.createWhereExpression();
|
|
72
53
|
sql += this.createGroupByExpression();
|
|
@@ -78,155 +59,155 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
78
59
|
if (this.expressionMap.subQuery)
|
|
79
60
|
sql = "(" + sql + ")";
|
|
80
61
|
return sql;
|
|
81
|
-
}
|
|
62
|
+
}
|
|
82
63
|
// -------------------------------------------------------------------------
|
|
83
64
|
// Public Methods
|
|
84
65
|
// -------------------------------------------------------------------------
|
|
66
|
+
setFindOptions(findOptions) {
|
|
67
|
+
this.findOptions = findOptions;
|
|
68
|
+
this.applyFindOptions();
|
|
69
|
+
return this;
|
|
70
|
+
}
|
|
85
71
|
/**
|
|
86
72
|
* Creates a subquery - query that can be used inside other queries.
|
|
87
73
|
*/
|
|
88
|
-
|
|
89
|
-
|
|
74
|
+
subQuery() {
|
|
75
|
+
const qb = this.createQueryBuilder();
|
|
90
76
|
qb.expressionMap.subQuery = true;
|
|
91
|
-
qb.
|
|
77
|
+
qb.parentQueryBuilder = this;
|
|
92
78
|
return qb;
|
|
93
|
-
}
|
|
94
|
-
SelectQueryBuilder.prototype.setFindOptions = function (findOptions) {
|
|
95
|
-
var normalizedFindOptions = FindOptionsUtils_1.normalizeFindOptions(findOptions);
|
|
96
|
-
this.findOptions = {
|
|
97
|
-
select: normalizedFindOptions.select,
|
|
98
|
-
where: normalizedFindOptions.where,
|
|
99
|
-
relations: normalizedFindOptions.relations,
|
|
100
|
-
order: normalizedFindOptions.order,
|
|
101
|
-
skip: normalizedFindOptions.skip,
|
|
102
|
-
take: normalizedFindOptions.take,
|
|
103
|
-
pagination: normalizedFindOptions.options && normalizedFindOptions.options.pagination,
|
|
104
|
-
loadRelationIds: normalizedFindOptions.options && normalizedFindOptions.options.loadRelationIds
|
|
105
|
-
};
|
|
106
|
-
this.applyFindOptionsOrmOptions(normalizedFindOptions);
|
|
107
|
-
return this;
|
|
108
|
-
};
|
|
79
|
+
}
|
|
109
80
|
/**
|
|
110
81
|
* Creates SELECT query and selects given data.
|
|
111
82
|
* Replaces all previous selections if they exist.
|
|
112
83
|
*/
|
|
113
|
-
|
|
84
|
+
select(selection, selectionAliasName) {
|
|
114
85
|
this.expressionMap.queryType = "select";
|
|
115
|
-
if (selection
|
|
116
|
-
this.expressionMap.selects = selection.map(
|
|
86
|
+
if (Array.isArray(selection)) {
|
|
87
|
+
this.expressionMap.selects = selection.map((selection) => ({
|
|
88
|
+
selection: selection,
|
|
89
|
+
}));
|
|
117
90
|
}
|
|
118
|
-
else if (selection
|
|
119
|
-
|
|
91
|
+
else if (typeof selection === "function") {
|
|
92
|
+
const subQueryBuilder = selection(this.subQuery());
|
|
120
93
|
this.setParameters(subQueryBuilder.getParameters());
|
|
121
|
-
this.expressionMap.selects.push({
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
94
|
+
this.expressionMap.selects.push({
|
|
95
|
+
selection: subQueryBuilder.getQuery(),
|
|
96
|
+
aliasName: selectionAliasName,
|
|
97
|
+
});
|
|
125
98
|
}
|
|
126
99
|
else if (selection) {
|
|
127
|
-
this.expressionMap.selects = [
|
|
100
|
+
this.expressionMap.selects = [
|
|
101
|
+
{ selection: selection, aliasName: selectionAliasName },
|
|
102
|
+
];
|
|
128
103
|
}
|
|
129
104
|
return this;
|
|
130
|
-
}
|
|
105
|
+
}
|
|
131
106
|
/**
|
|
132
107
|
* Adds new selection to the SELECT query.
|
|
133
108
|
*/
|
|
134
|
-
|
|
109
|
+
addSelect(selection, selectionAliasName) {
|
|
135
110
|
if (!selection)
|
|
136
111
|
return this;
|
|
137
|
-
if (selection
|
|
138
|
-
this.expressionMap.selects = this.expressionMap.selects.concat(selection.map(
|
|
112
|
+
if (Array.isArray(selection)) {
|
|
113
|
+
this.expressionMap.selects = this.expressionMap.selects.concat(selection.map((selection) => ({ selection: selection })));
|
|
139
114
|
}
|
|
140
|
-
else if (selection
|
|
141
|
-
|
|
115
|
+
else if (typeof selection === "function") {
|
|
116
|
+
const subQueryBuilder = selection(this.subQuery());
|
|
142
117
|
this.setParameters(subQueryBuilder.getParameters());
|
|
143
|
-
this.expressionMap.selects.push({
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
118
|
+
this.expressionMap.selects.push({
|
|
119
|
+
selection: subQueryBuilder.getQuery(),
|
|
120
|
+
aliasName: selectionAliasName,
|
|
121
|
+
});
|
|
147
122
|
}
|
|
148
123
|
else if (selection) {
|
|
149
|
-
this.expressionMap.selects.push({
|
|
124
|
+
this.expressionMap.selects.push({
|
|
125
|
+
selection: selection,
|
|
126
|
+
aliasName: selectionAliasName,
|
|
127
|
+
});
|
|
150
128
|
}
|
|
151
129
|
return this;
|
|
152
|
-
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Set max execution time.
|
|
133
|
+
* @param milliseconds
|
|
134
|
+
*/
|
|
135
|
+
maxExecutionTime(milliseconds) {
|
|
136
|
+
this.expressionMap.maxExecutionTime = milliseconds;
|
|
137
|
+
return this;
|
|
138
|
+
}
|
|
153
139
|
/**
|
|
154
140
|
* Sets whether the selection is DISTINCT.
|
|
155
141
|
*/
|
|
156
|
-
|
|
157
|
-
if (distinct === void 0) { distinct = true; }
|
|
142
|
+
distinct(distinct = true) {
|
|
158
143
|
this.expressionMap.selectDistinct = distinct;
|
|
159
144
|
return this;
|
|
160
|
-
}
|
|
145
|
+
}
|
|
161
146
|
/**
|
|
162
147
|
* Sets the distinct on clause for Postgres.
|
|
163
148
|
*/
|
|
164
|
-
|
|
149
|
+
distinctOn(distinctOn) {
|
|
165
150
|
this.expressionMap.selectDistinctOn = distinctOn;
|
|
166
151
|
return this;
|
|
167
|
-
}
|
|
152
|
+
}
|
|
168
153
|
/**
|
|
169
154
|
* Specifies FROM which entity's table select/update/delete will be executed.
|
|
170
155
|
* Also sets a main string alias of the selection data.
|
|
171
156
|
* Removes all previously set from-s.
|
|
172
157
|
*/
|
|
173
|
-
|
|
174
|
-
|
|
158
|
+
from(entityTarget, aliasName) {
|
|
159
|
+
const mainAlias = this.createFromAlias(entityTarget, aliasName);
|
|
175
160
|
this.expressionMap.setMainAlias(mainAlias);
|
|
176
161
|
return this;
|
|
177
|
-
}
|
|
162
|
+
}
|
|
178
163
|
/**
|
|
179
164
|
* Specifies FROM which entity's table select/update/delete will be executed.
|
|
180
165
|
* Also sets a main string alias of the selection data.
|
|
181
166
|
*/
|
|
182
|
-
|
|
183
|
-
|
|
167
|
+
addFrom(entityTarget, aliasName) {
|
|
168
|
+
const alias = this.createFromAlias(entityTarget, aliasName);
|
|
184
169
|
if (!this.expressionMap.mainAlias)
|
|
185
170
|
this.expressionMap.setMainAlias(alias);
|
|
186
171
|
return this;
|
|
187
|
-
}
|
|
172
|
+
}
|
|
188
173
|
/**
|
|
189
174
|
* INNER JOINs (without selection).
|
|
190
175
|
* You also need to specify an alias of the joined data.
|
|
191
176
|
* Optionally, you can add condition and parameters used in condition.
|
|
192
177
|
*/
|
|
193
|
-
|
|
194
|
-
if (condition === void 0) { condition = ""; }
|
|
178
|
+
innerJoin(entityOrProperty, alias, condition, parameters) {
|
|
195
179
|
this.join("INNER", entityOrProperty, alias, condition, parameters);
|
|
196
180
|
return this;
|
|
197
|
-
}
|
|
181
|
+
}
|
|
198
182
|
/**
|
|
199
183
|
* LEFT JOINs (without selection).
|
|
200
184
|
* You also need to specify an alias of the joined data.
|
|
201
185
|
* Optionally, you can add condition and parameters used in condition.
|
|
202
186
|
*/
|
|
203
|
-
|
|
204
|
-
if (condition === void 0) { condition = ""; }
|
|
187
|
+
leftJoin(entityOrProperty, alias, condition, parameters) {
|
|
205
188
|
this.join("LEFT", entityOrProperty, alias, condition, parameters);
|
|
206
189
|
return this;
|
|
207
|
-
}
|
|
190
|
+
}
|
|
208
191
|
/**
|
|
209
192
|
* INNER JOINs and adds all selection properties to SELECT.
|
|
210
193
|
* You also need to specify an alias of the joined data.
|
|
211
194
|
* Optionally, you can add condition and parameters used in condition.
|
|
212
195
|
*/
|
|
213
|
-
|
|
214
|
-
if (condition === void 0) { condition = ""; }
|
|
196
|
+
innerJoinAndSelect(entityOrProperty, alias, condition, parameters) {
|
|
215
197
|
this.addSelect(alias);
|
|
216
198
|
this.innerJoin(entityOrProperty, alias, condition, parameters);
|
|
217
199
|
return this;
|
|
218
|
-
}
|
|
200
|
+
}
|
|
219
201
|
/**
|
|
220
202
|
* LEFT JOINs and adds all selection properties to SELECT.
|
|
221
203
|
* You also need to specify an alias of the joined data.
|
|
222
204
|
* Optionally, you can add condition and parameters used in condition.
|
|
223
205
|
*/
|
|
224
|
-
|
|
225
|
-
if (condition === void 0) { condition = ""; }
|
|
206
|
+
leftJoinAndSelect(entityOrProperty, alias, condition, parameters) {
|
|
226
207
|
this.addSelect(alias);
|
|
227
208
|
this.leftJoin(entityOrProperty, alias, condition, parameters);
|
|
228
209
|
return this;
|
|
229
|
-
}
|
|
210
|
+
}
|
|
230
211
|
/**
|
|
231
212
|
* INNER JOINs, SELECTs the data returned by a join and MAPs all that data to some entity's property.
|
|
232
213
|
* This is extremely useful when you want to select some data and map it to some virtual property.
|
|
@@ -234,12 +215,11 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
234
215
|
* You also need to specify an alias of the joined data.
|
|
235
216
|
* Optionally, you can add condition and parameters used in condition.
|
|
236
217
|
*/
|
|
237
|
-
|
|
238
|
-
if (condition === void 0) { condition = ""; }
|
|
218
|
+
innerJoinAndMapMany(mapToProperty, entityOrProperty, alias, condition, parameters) {
|
|
239
219
|
this.addSelect(alias);
|
|
240
220
|
this.join("INNER", entityOrProperty, alias, condition, parameters, mapToProperty, true);
|
|
241
221
|
return this;
|
|
242
|
-
}
|
|
222
|
+
}
|
|
243
223
|
/**
|
|
244
224
|
* INNER JOINs, SELECTs the data returned by a join and MAPs all that data to some entity's property.
|
|
245
225
|
* This is extremely useful when you want to select some data and map it to some virtual property.
|
|
@@ -247,12 +227,11 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
247
227
|
* You also need to specify an alias of the joined data.
|
|
248
228
|
* Optionally, you can add condition and parameters used in condition.
|
|
249
229
|
*/
|
|
250
|
-
|
|
251
|
-
if (condition === void 0) { condition = ""; }
|
|
230
|
+
innerJoinAndMapOne(mapToProperty, entityOrProperty, alias, condition, parameters) {
|
|
252
231
|
this.addSelect(alias);
|
|
253
232
|
this.join("INNER", entityOrProperty, alias, condition, parameters, mapToProperty, false);
|
|
254
233
|
return this;
|
|
255
|
-
}
|
|
234
|
+
}
|
|
256
235
|
/**
|
|
257
236
|
* LEFT JOINs, SELECTs the data returned by a join and MAPs all that data to some entity's property.
|
|
258
237
|
* This is extremely useful when you want to select some data and map it to some virtual property.
|
|
@@ -260,12 +239,11 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
260
239
|
* You also need to specify an alias of the joined data.
|
|
261
240
|
* Optionally, you can add condition and parameters used in condition.
|
|
262
241
|
*/
|
|
263
|
-
|
|
264
|
-
if (condition === void 0) { condition = ""; }
|
|
242
|
+
leftJoinAndMapMany(mapToProperty, entityOrProperty, alias, condition, parameters) {
|
|
265
243
|
this.addSelect(alias);
|
|
266
244
|
this.join("LEFT", entityOrProperty, alias, condition, parameters, mapToProperty, true);
|
|
267
245
|
return this;
|
|
268
|
-
}
|
|
246
|
+
}
|
|
269
247
|
/**
|
|
270
248
|
* LEFT JOINs, SELECTs the data returned by a join and MAPs all that data to some entity's property.
|
|
271
249
|
* This is extremely useful when you want to select some data and map it to some virtual property.
|
|
@@ -273,23 +251,23 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
273
251
|
* You also need to specify an alias of the joined data.
|
|
274
252
|
* Optionally, you can add condition and parameters used in condition.
|
|
275
253
|
*/
|
|
276
|
-
|
|
277
|
-
if (condition === void 0) { condition = ""; }
|
|
254
|
+
leftJoinAndMapOne(mapToProperty, entityOrProperty, alias, condition, parameters) {
|
|
278
255
|
this.addSelect(alias);
|
|
279
256
|
this.join("LEFT", entityOrProperty, alias, condition, parameters, mapToProperty, false);
|
|
280
257
|
return this;
|
|
281
|
-
}
|
|
258
|
+
}
|
|
282
259
|
/**
|
|
283
260
|
* LEFT JOINs relation id and maps it into some entity's property.
|
|
284
261
|
* Optionally, you can add condition and parameters used in condition.
|
|
285
262
|
*/
|
|
286
|
-
|
|
287
|
-
|
|
263
|
+
loadRelationIdAndMap(mapToProperty, relationName, aliasNameOrOptions, queryBuilderFactory) {
|
|
264
|
+
const relationIdAttribute = new RelationIdAttribute_1.RelationIdAttribute(this.expressionMap);
|
|
288
265
|
relationIdAttribute.mapToProperty = mapToProperty;
|
|
289
266
|
relationIdAttribute.relationName = relationName;
|
|
290
267
|
if (typeof aliasNameOrOptions === "string")
|
|
291
268
|
relationIdAttribute.alias = aliasNameOrOptions;
|
|
292
|
-
if (aliasNameOrOptions
|
|
269
|
+
if (typeof aliasNameOrOptions === "object" &&
|
|
270
|
+
aliasNameOrOptions.disableMixedMap)
|
|
293
271
|
relationIdAttribute.disableMixedMap = true;
|
|
294
272
|
relationIdAttribute.queryBuilderFactory = queryBuilderFactory;
|
|
295
273
|
this.expressionMap.relationIdAttributes.push(relationIdAttribute);
|
|
@@ -297,17 +275,17 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
297
275
|
this.expressionMap.createAlias({
|
|
298
276
|
type: "other",
|
|
299
277
|
name: relationIdAttribute.junctionAlias,
|
|
300
|
-
metadata: relationIdAttribute.relation.junctionEntityMetadata
|
|
278
|
+
metadata: relationIdAttribute.relation.junctionEntityMetadata,
|
|
301
279
|
});
|
|
302
280
|
}
|
|
303
281
|
return this;
|
|
304
|
-
}
|
|
282
|
+
}
|
|
305
283
|
/**
|
|
306
284
|
* Counts number of entities of entity's relation and maps the value into some entity's property.
|
|
307
285
|
* Optionally, you can add condition and parameters used in condition.
|
|
308
286
|
*/
|
|
309
|
-
|
|
310
|
-
|
|
287
|
+
loadRelationCountAndMap(mapToProperty, relationName, aliasName, queryBuilderFactory) {
|
|
288
|
+
const relationCountAttribute = new RelationCountAttribute_1.RelationCountAttribute(this.expressionMap);
|
|
311
289
|
relationCountAttribute.mapToProperty = mapToProperty;
|
|
312
290
|
relationCountAttribute.relationName = relationName;
|
|
313
291
|
relationCountAttribute.alias = aliasName;
|
|
@@ -315,81 +293,80 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
315
293
|
this.expressionMap.relationCountAttributes.push(relationCountAttribute);
|
|
316
294
|
this.expressionMap.createAlias({
|
|
317
295
|
type: "other",
|
|
318
|
-
name: relationCountAttribute.junctionAlias
|
|
296
|
+
name: relationCountAttribute.junctionAlias,
|
|
319
297
|
});
|
|
320
298
|
if (relationCountAttribute.relation.junctionEntityMetadata) {
|
|
321
299
|
this.expressionMap.createAlias({
|
|
322
300
|
type: "other",
|
|
323
301
|
name: relationCountAttribute.junctionAlias,
|
|
324
|
-
metadata: relationCountAttribute.relation.junctionEntityMetadata
|
|
302
|
+
metadata: relationCountAttribute.relation.junctionEntityMetadata,
|
|
325
303
|
});
|
|
326
304
|
}
|
|
327
305
|
return this;
|
|
328
|
-
}
|
|
306
|
+
}
|
|
329
307
|
/**
|
|
330
308
|
* Loads all relation ids for all relations of the selected entity.
|
|
331
309
|
* All relation ids will be mapped to relation property themself.
|
|
332
310
|
* If array of strings is given then loads only relation ids of the given properties.
|
|
333
311
|
*/
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
this.expressionMap.mainAlias.metadata.relations.forEach(
|
|
337
|
-
if (options !== undefined &&
|
|
312
|
+
loadAllRelationIds(options) {
|
|
313
|
+
// todo: add skip relations
|
|
314
|
+
this.expressionMap.mainAlias.metadata.relations.forEach((relation) => {
|
|
315
|
+
if (options !== undefined &&
|
|
316
|
+
options.relations !== undefined &&
|
|
317
|
+
options.relations.indexOf(relation.propertyPath) === -1)
|
|
338
318
|
return;
|
|
339
|
-
|
|
319
|
+
this.loadRelationIdAndMap(this.expressionMap.mainAlias.name +
|
|
320
|
+
"." +
|
|
321
|
+
relation.propertyPath, this.expressionMap.mainAlias.name +
|
|
322
|
+
"." +
|
|
323
|
+
relation.propertyPath, options);
|
|
340
324
|
});
|
|
341
325
|
return this;
|
|
342
|
-
}
|
|
326
|
+
}
|
|
343
327
|
/**
|
|
344
328
|
* Sets WHERE condition in the query builder.
|
|
345
329
|
* If you had previously WHERE expression defined,
|
|
346
330
|
* calling this function will override previously set WHERE conditions.
|
|
347
331
|
* Additionally you can add parameters used in where expression.
|
|
348
332
|
*/
|
|
349
|
-
|
|
333
|
+
where(where, parameters) {
|
|
350
334
|
this.expressionMap.wheres = []; // don't move this block below since computeWhereParameter can add where expressions
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
if (condition)
|
|
357
|
-
this.expressionMap.wheres = [{ type: "simple", condition: condition }];
|
|
358
|
-
}
|
|
335
|
+
const condition = this.getWhereCondition(where);
|
|
336
|
+
if (condition)
|
|
337
|
+
this.expressionMap.wheres = [
|
|
338
|
+
{ type: "simple", condition: condition },
|
|
339
|
+
];
|
|
359
340
|
if (parameters)
|
|
360
341
|
this.setParameters(parameters);
|
|
361
342
|
return this;
|
|
362
|
-
}
|
|
343
|
+
}
|
|
363
344
|
/**
|
|
364
345
|
* Adds new AND WHERE condition in the query builder.
|
|
365
346
|
* Additionally you can add parameters used in where expression.
|
|
366
347
|
*/
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
this.expressionMap.wheres.push({ type: "and", condition: this.computeWhereParameter(where) });
|
|
373
|
-
}
|
|
348
|
+
andWhere(where, parameters) {
|
|
349
|
+
this.expressionMap.wheres.push({
|
|
350
|
+
type: "and",
|
|
351
|
+
condition: this.getWhereCondition(where),
|
|
352
|
+
});
|
|
374
353
|
if (parameters)
|
|
375
354
|
this.setParameters(parameters);
|
|
376
355
|
return this;
|
|
377
|
-
}
|
|
356
|
+
}
|
|
378
357
|
/**
|
|
379
358
|
* Adds new OR WHERE condition in the query builder.
|
|
380
359
|
* Additionally you can add parameters used in where expression.
|
|
381
360
|
*/
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
this.expressionMap.wheres.push({ type: "or", condition: this.computeWhereParameter(where) });
|
|
388
|
-
}
|
|
361
|
+
orWhere(where, parameters) {
|
|
362
|
+
this.expressionMap.wheres.push({
|
|
363
|
+
type: "or",
|
|
364
|
+
condition: this.getWhereCondition(where),
|
|
365
|
+
});
|
|
389
366
|
if (parameters)
|
|
390
367
|
this.setParameters(parameters);
|
|
391
368
|
return this;
|
|
392
|
-
}
|
|
369
|
+
}
|
|
393
370
|
/**
|
|
394
371
|
* Adds new AND WHERE with conditions for the given ids.
|
|
395
372
|
*
|
|
@@ -398,9 +375,9 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
398
375
|
* If you have multiple primary keys you need to pass object with property names and values specified,
|
|
399
376
|
* for example [{ firstId: 1, secondId: 2 }, { firstId: 2, secondId: 3 }, ...]
|
|
400
377
|
*/
|
|
401
|
-
|
|
402
|
-
return this.where(this.
|
|
403
|
-
}
|
|
378
|
+
whereInIds(ids) {
|
|
379
|
+
return this.where(this.getWhereInIdsCondition(ids));
|
|
380
|
+
}
|
|
404
381
|
/**
|
|
405
382
|
* Adds new AND WHERE with conditions for the given ids.
|
|
406
383
|
*
|
|
@@ -409,9 +386,9 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
409
386
|
* If you have multiple primary keys you need to pass object with property names and values specified,
|
|
410
387
|
* for example [{ firstId: 1, secondId: 2 }, { firstId: 2, secondId: 3 }, ...]
|
|
411
388
|
*/
|
|
412
|
-
|
|
413
|
-
return this.andWhere(this.
|
|
414
|
-
}
|
|
389
|
+
andWhereInIds(ids) {
|
|
390
|
+
return this.andWhere(this.getWhereInIdsCondition(ids));
|
|
391
|
+
}
|
|
415
392
|
/**
|
|
416
393
|
* Adds new OR WHERE with conditions for the given ids.
|
|
417
394
|
*
|
|
@@ -420,47 +397,47 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
420
397
|
* If you have multiple primary keys you need to pass object with property names and values specified,
|
|
421
398
|
* for example [{ firstId: 1, secondId: 2 }, { firstId: 2, secondId: 3 }, ...]
|
|
422
399
|
*/
|
|
423
|
-
|
|
424
|
-
return this.orWhere(this.
|
|
425
|
-
}
|
|
400
|
+
orWhereInIds(ids) {
|
|
401
|
+
return this.orWhere(this.getWhereInIdsCondition(ids));
|
|
402
|
+
}
|
|
426
403
|
/**
|
|
427
404
|
* Sets HAVING condition in the query builder.
|
|
428
405
|
* If you had previously HAVING expression defined,
|
|
429
406
|
* calling this function will override previously set HAVING conditions.
|
|
430
407
|
* Additionally you can add parameters used in where expression.
|
|
431
408
|
*/
|
|
432
|
-
|
|
409
|
+
having(having, parameters) {
|
|
433
410
|
this.expressionMap.havings.push({ type: "simple", condition: having });
|
|
434
411
|
if (parameters)
|
|
435
412
|
this.setParameters(parameters);
|
|
436
413
|
return this;
|
|
437
|
-
}
|
|
414
|
+
}
|
|
438
415
|
/**
|
|
439
416
|
* Adds new AND HAVING condition in the query builder.
|
|
440
417
|
* Additionally you can add parameters used in where expression.
|
|
441
418
|
*/
|
|
442
|
-
|
|
419
|
+
andHaving(having, parameters) {
|
|
443
420
|
this.expressionMap.havings.push({ type: "and", condition: having });
|
|
444
421
|
if (parameters)
|
|
445
422
|
this.setParameters(parameters);
|
|
446
423
|
return this;
|
|
447
|
-
}
|
|
424
|
+
}
|
|
448
425
|
/**
|
|
449
426
|
* Adds new OR HAVING condition in the query builder.
|
|
450
427
|
* Additionally you can add parameters used in where expression.
|
|
451
428
|
*/
|
|
452
|
-
|
|
429
|
+
orHaving(having, parameters) {
|
|
453
430
|
this.expressionMap.havings.push({ type: "or", condition: having });
|
|
454
431
|
if (parameters)
|
|
455
432
|
this.setParameters(parameters);
|
|
456
433
|
return this;
|
|
457
|
-
}
|
|
434
|
+
}
|
|
458
435
|
/**
|
|
459
436
|
* Sets GROUP BY condition in the query builder.
|
|
460
437
|
* If you had previously GROUP BY expression defined,
|
|
461
438
|
* calling this function will override previously set GROUP BY conditions.
|
|
462
439
|
*/
|
|
463
|
-
|
|
440
|
+
groupBy(groupBy) {
|
|
464
441
|
if (groupBy) {
|
|
465
442
|
this.expressionMap.groupBys = [groupBy];
|
|
466
443
|
}
|
|
@@ -468,36 +445,38 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
468
445
|
this.expressionMap.groupBys = [];
|
|
469
446
|
}
|
|
470
447
|
return this;
|
|
471
|
-
}
|
|
448
|
+
}
|
|
472
449
|
/**
|
|
473
450
|
* Adds GROUP BY condition in the query builder.
|
|
474
451
|
*/
|
|
475
|
-
|
|
452
|
+
addGroupBy(groupBy) {
|
|
476
453
|
this.expressionMap.groupBys.push(groupBy);
|
|
477
454
|
return this;
|
|
478
|
-
}
|
|
455
|
+
}
|
|
479
456
|
/**
|
|
480
457
|
* Sets ORDER BY condition in the query builder.
|
|
481
458
|
* If you had previously ORDER BY expression defined,
|
|
482
459
|
* calling this function will override previously set ORDER BY conditions.
|
|
483
460
|
*/
|
|
484
|
-
|
|
485
|
-
if (order === void 0) { order = "ASC"; }
|
|
486
|
-
var _a, _b;
|
|
461
|
+
orderBy(sort, order = "ASC", nulls) {
|
|
487
462
|
if (order !== undefined && order !== "ASC" && order !== "DESC")
|
|
488
|
-
throw new
|
|
489
|
-
if (nulls !== undefined &&
|
|
490
|
-
|
|
463
|
+
throw new error_1.TypeORMError(`SelectQueryBuilder.addOrderBy "order" can accept only "ASC" and "DESC" values.`);
|
|
464
|
+
if (nulls !== undefined &&
|
|
465
|
+
nulls !== "NULLS FIRST" &&
|
|
466
|
+
nulls !== "NULLS LAST")
|
|
467
|
+
throw new error_1.TypeORMError(`SelectQueryBuilder.addOrderBy "nulls" can accept only "NULLS FIRST" and "NULLS LAST" values.`);
|
|
491
468
|
if (sort) {
|
|
492
|
-
if (sort
|
|
469
|
+
if (typeof sort === "object") {
|
|
493
470
|
this.expressionMap.orderBys = sort;
|
|
494
471
|
}
|
|
495
472
|
else {
|
|
496
473
|
if (nulls) {
|
|
497
|
-
this.expressionMap.orderBys =
|
|
474
|
+
this.expressionMap.orderBys = {
|
|
475
|
+
[sort]: { order, nulls },
|
|
476
|
+
};
|
|
498
477
|
}
|
|
499
478
|
else {
|
|
500
|
-
this.expressionMap.orderBys =
|
|
479
|
+
this.expressionMap.orderBys = { [sort]: order };
|
|
501
480
|
}
|
|
502
481
|
}
|
|
503
482
|
}
|
|
@@ -505,467 +484,355 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
505
484
|
this.expressionMap.orderBys = {};
|
|
506
485
|
}
|
|
507
486
|
return this;
|
|
508
|
-
}
|
|
487
|
+
}
|
|
509
488
|
/**
|
|
510
489
|
* Adds ORDER BY condition in the query builder.
|
|
511
490
|
*/
|
|
512
|
-
|
|
513
|
-
if (order === void 0) { order = "ASC"; }
|
|
491
|
+
addOrderBy(sort, order = "ASC", nulls) {
|
|
514
492
|
if (order !== undefined && order !== "ASC" && order !== "DESC")
|
|
515
|
-
throw new
|
|
516
|
-
if (nulls !== undefined &&
|
|
517
|
-
|
|
493
|
+
throw new error_1.TypeORMError(`SelectQueryBuilder.addOrderBy "order" can accept only "ASC" and "DESC" values.`);
|
|
494
|
+
if (nulls !== undefined &&
|
|
495
|
+
nulls !== "NULLS FIRST" &&
|
|
496
|
+
nulls !== "NULLS LAST")
|
|
497
|
+
throw new error_1.TypeORMError(`SelectQueryBuilder.addOrderBy "nulls" can accept only "NULLS FIRST" and "NULLS LAST" values.`);
|
|
518
498
|
if (nulls) {
|
|
519
|
-
this.expressionMap.orderBys[sort] = { order
|
|
499
|
+
this.expressionMap.orderBys[sort] = { order, nulls };
|
|
520
500
|
}
|
|
521
501
|
else {
|
|
522
502
|
this.expressionMap.orderBys[sort] = order;
|
|
523
503
|
}
|
|
524
504
|
return this;
|
|
525
|
-
}
|
|
505
|
+
}
|
|
526
506
|
/**
|
|
527
507
|
* Set's LIMIT - maximum number of rows to be selected.
|
|
528
508
|
* NOTE that it may not work as you expect if you are using joins.
|
|
529
509
|
* If you want to implement pagination, and you are having join in your query,
|
|
530
510
|
* then use instead take method instead.
|
|
531
511
|
*/
|
|
532
|
-
|
|
512
|
+
limit(limit) {
|
|
533
513
|
this.expressionMap.limit = this.normalizeNumber(limit);
|
|
534
|
-
if (this.expressionMap.limit !== undefined &&
|
|
535
|
-
|
|
514
|
+
if (this.expressionMap.limit !== undefined &&
|
|
515
|
+
isNaN(this.expressionMap.limit))
|
|
516
|
+
throw new error_1.TypeORMError(`Provided "limit" value is not a number. Please provide a numeric value.`);
|
|
536
517
|
return this;
|
|
537
|
-
}
|
|
518
|
+
}
|
|
538
519
|
/**
|
|
539
520
|
* Set's OFFSET - selection offset.
|
|
540
521
|
* NOTE that it may not work as you expect if you are using joins.
|
|
541
522
|
* If you want to implement pagination, and you are having join in your query,
|
|
542
523
|
* then use instead skip method instead.
|
|
543
524
|
*/
|
|
544
|
-
|
|
525
|
+
offset(offset) {
|
|
545
526
|
this.expressionMap.offset = this.normalizeNumber(offset);
|
|
546
|
-
if (this.expressionMap.offset !== undefined &&
|
|
547
|
-
|
|
527
|
+
if (this.expressionMap.offset !== undefined &&
|
|
528
|
+
isNaN(this.expressionMap.offset))
|
|
529
|
+
throw new error_1.TypeORMError(`Provided "offset" value is not a number. Please provide a numeric value.`);
|
|
548
530
|
return this;
|
|
549
|
-
}
|
|
531
|
+
}
|
|
550
532
|
/**
|
|
551
533
|
* Sets maximal number of entities to take.
|
|
552
534
|
*/
|
|
553
|
-
|
|
535
|
+
take(take) {
|
|
554
536
|
this.expressionMap.take = this.normalizeNumber(take);
|
|
555
|
-
if (this.expressionMap.take !== undefined &&
|
|
556
|
-
|
|
537
|
+
if (this.expressionMap.take !== undefined &&
|
|
538
|
+
isNaN(this.expressionMap.take))
|
|
539
|
+
throw new error_1.TypeORMError(`Provided "take" value is not a number. Please provide a numeric value.`);
|
|
557
540
|
return this;
|
|
558
|
-
}
|
|
541
|
+
}
|
|
559
542
|
/**
|
|
560
543
|
* Sets number of entities to skip.
|
|
561
544
|
*/
|
|
562
|
-
|
|
545
|
+
skip(skip) {
|
|
563
546
|
this.expressionMap.skip = this.normalizeNumber(skip);
|
|
564
|
-
if (this.expressionMap.skip !== undefined &&
|
|
565
|
-
|
|
547
|
+
if (this.expressionMap.skip !== undefined &&
|
|
548
|
+
isNaN(this.expressionMap.skip))
|
|
549
|
+
throw new error_1.TypeORMError(`Provided "skip" value is not a number. Please provide a numeric value.`);
|
|
550
|
+
return this;
|
|
551
|
+
}
|
|
552
|
+
/**
|
|
553
|
+
* Set certain index to be used by the query.
|
|
554
|
+
*
|
|
555
|
+
* @param index Name of index to be used.
|
|
556
|
+
*/
|
|
557
|
+
useIndex(index) {
|
|
558
|
+
this.expressionMap.useIndex = index;
|
|
566
559
|
return this;
|
|
567
|
-
}
|
|
560
|
+
}
|
|
568
561
|
/**
|
|
569
562
|
* Sets locking mode.
|
|
570
563
|
*/
|
|
571
|
-
|
|
564
|
+
setLock(lockMode, lockVersion, lockTables) {
|
|
572
565
|
this.expressionMap.lockMode = lockMode;
|
|
573
566
|
this.expressionMap.lockVersion = lockVersion;
|
|
567
|
+
this.expressionMap.lockTables = lockTables;
|
|
574
568
|
return this;
|
|
575
|
-
}
|
|
569
|
+
}
|
|
570
|
+
/**
|
|
571
|
+
* Disables the global condition of "non-deleted" for the entity with delete date columns.
|
|
572
|
+
*/
|
|
573
|
+
withDeleted() {
|
|
574
|
+
this.expressionMap.withDeleted = true;
|
|
575
|
+
return this;
|
|
576
|
+
}
|
|
576
577
|
/**
|
|
577
578
|
* Gets first raw result returned by execution of generated query builder sql.
|
|
578
579
|
*/
|
|
579
|
-
|
|
580
|
-
return
|
|
581
|
-
|
|
582
|
-
switch (_a.label) {
|
|
583
|
-
case 0: return [4 /*yield*/, this.getRawMany()];
|
|
584
|
-
case 1: return [2 /*return*/, (_a.sent())[0]];
|
|
585
|
-
}
|
|
586
|
-
});
|
|
587
|
-
});
|
|
588
|
-
};
|
|
580
|
+
async getRawOne() {
|
|
581
|
+
return (await this.getRawMany())[0];
|
|
582
|
+
}
|
|
589
583
|
/**
|
|
590
584
|
* Gets all raw results returned by execution of generated query builder sql.
|
|
591
585
|
*/
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
if (!transactionStartedByUs) return [3 /*break*/, 7];
|
|
618
|
-
return [4 /*yield*/, queryRunner.commitTransaction()];
|
|
619
|
-
case 5:
|
|
620
|
-
_a.sent();
|
|
621
|
-
if (!this.expressionMap.callObservers) return [3 /*break*/, 7];
|
|
622
|
-
return [4 /*yield*/, new ObserverExecutor_1.ObserverExecutor(this.connection.observers).execute()];
|
|
623
|
-
case 6:
|
|
624
|
-
_a.sent();
|
|
625
|
-
_a.label = 7;
|
|
626
|
-
case 7: return [2 /*return*/, results];
|
|
627
|
-
case 8:
|
|
628
|
-
error_1 = _a.sent();
|
|
629
|
-
if (!transactionStartedByUs) return [3 /*break*/, 12];
|
|
630
|
-
_a.label = 9;
|
|
631
|
-
case 9:
|
|
632
|
-
_a.trys.push([9, 11, , 12]);
|
|
633
|
-
return [4 /*yield*/, queryRunner.rollbackTransaction()];
|
|
634
|
-
case 10:
|
|
635
|
-
_a.sent();
|
|
636
|
-
return [3 /*break*/, 12];
|
|
637
|
-
case 11:
|
|
638
|
-
rollbackError_1 = _a.sent();
|
|
639
|
-
return [3 /*break*/, 12];
|
|
640
|
-
case 12: throw error_1;
|
|
641
|
-
case 13:
|
|
642
|
-
if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 15];
|
|
643
|
-
return [4 /*yield*/, queryRunner.release()];
|
|
644
|
-
case 14:
|
|
645
|
-
_a.sent();
|
|
646
|
-
_a.label = 15;
|
|
647
|
-
case 15: return [7 /*endfinally*/];
|
|
648
|
-
case 16: return [2 /*return*/];
|
|
586
|
+
async getRawMany() {
|
|
587
|
+
if (this.expressionMap.lockMode === "optimistic")
|
|
588
|
+
throw new OptimisticLockCanNotBeUsedError_1.OptimisticLockCanNotBeUsedError();
|
|
589
|
+
this.expressionMap.queryEntity = false;
|
|
590
|
+
const queryRunner = this.obtainQueryRunner();
|
|
591
|
+
let transactionStartedByUs = false;
|
|
592
|
+
try {
|
|
593
|
+
// start transaction if it was enabled
|
|
594
|
+
if (this.expressionMap.useTransaction === true &&
|
|
595
|
+
queryRunner.isTransactionActive === false) {
|
|
596
|
+
await queryRunner.startTransaction();
|
|
597
|
+
transactionStartedByUs = true;
|
|
598
|
+
}
|
|
599
|
+
const results = await this.loadRawResults(queryRunner);
|
|
600
|
+
// close transaction if we started it
|
|
601
|
+
if (transactionStartedByUs) {
|
|
602
|
+
await queryRunner.commitTransaction();
|
|
603
|
+
}
|
|
604
|
+
return results;
|
|
605
|
+
}
|
|
606
|
+
catch (error) {
|
|
607
|
+
// rollback transaction if we started it
|
|
608
|
+
if (transactionStartedByUs) {
|
|
609
|
+
try {
|
|
610
|
+
await queryRunner.rollbackTransaction();
|
|
649
611
|
}
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
612
|
+
catch (rollbackError) { }
|
|
613
|
+
}
|
|
614
|
+
throw error;
|
|
615
|
+
}
|
|
616
|
+
finally {
|
|
617
|
+
if (queryRunner !== this.queryRunner) {
|
|
618
|
+
// means we created our own query runner
|
|
619
|
+
await queryRunner.release();
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
}
|
|
653
623
|
/**
|
|
654
624
|
* Executes sql generated by query builder and returns object with raw results and entities created from them.
|
|
655
625
|
*/
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
if (!transactionStartedByUs) return [3 /*break*/, 7];
|
|
680
|
-
return [4 /*yield*/, queryRunner.commitTransaction()];
|
|
681
|
-
case 5:
|
|
682
|
-
_a.sent();
|
|
683
|
-
if (!this.expressionMap.callObservers) return [3 /*break*/, 7];
|
|
684
|
-
return [4 /*yield*/, new ObserverExecutor_1.ObserverExecutor(this.connection.observers).execute()];
|
|
685
|
-
case 6:
|
|
686
|
-
_a.sent();
|
|
687
|
-
_a.label = 7;
|
|
688
|
-
case 7: return [2 /*return*/, results];
|
|
689
|
-
case 8:
|
|
690
|
-
error_2 = _a.sent();
|
|
691
|
-
if (!transactionStartedByUs) return [3 /*break*/, 12];
|
|
692
|
-
_a.label = 9;
|
|
693
|
-
case 9:
|
|
694
|
-
_a.trys.push([9, 11, , 12]);
|
|
695
|
-
return [4 /*yield*/, queryRunner.rollbackTransaction()];
|
|
696
|
-
case 10:
|
|
697
|
-
_a.sent();
|
|
698
|
-
return [3 /*break*/, 12];
|
|
699
|
-
case 11:
|
|
700
|
-
rollbackError_2 = _a.sent();
|
|
701
|
-
return [3 /*break*/, 12];
|
|
702
|
-
case 12: throw error_2;
|
|
703
|
-
case 13:
|
|
704
|
-
if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 15];
|
|
705
|
-
return [4 /*yield*/, queryRunner.release()];
|
|
706
|
-
case 14:
|
|
707
|
-
_a.sent();
|
|
708
|
-
_a.label = 15;
|
|
709
|
-
case 15: return [7 /*endfinally*/];
|
|
710
|
-
case 16: return [2 /*return*/];
|
|
626
|
+
async getRawAndEntities() {
|
|
627
|
+
const queryRunner = this.obtainQueryRunner();
|
|
628
|
+
let transactionStartedByUs = false;
|
|
629
|
+
try {
|
|
630
|
+
// start transaction if it was enabled
|
|
631
|
+
if (this.expressionMap.useTransaction === true &&
|
|
632
|
+
queryRunner.isTransactionActive === false) {
|
|
633
|
+
await queryRunner.startTransaction();
|
|
634
|
+
transactionStartedByUs = true;
|
|
635
|
+
}
|
|
636
|
+
this.expressionMap.queryEntity = true;
|
|
637
|
+
const results = await this.executeEntitiesAndRawResults(queryRunner);
|
|
638
|
+
// close transaction if we started it
|
|
639
|
+
if (transactionStartedByUs) {
|
|
640
|
+
await queryRunner.commitTransaction();
|
|
641
|
+
}
|
|
642
|
+
return results;
|
|
643
|
+
}
|
|
644
|
+
catch (error) {
|
|
645
|
+
// rollback transaction if we started it
|
|
646
|
+
if (transactionStartedByUs) {
|
|
647
|
+
try {
|
|
648
|
+
await queryRunner.rollbackTransaction();
|
|
711
649
|
}
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
650
|
+
catch (rollbackError) { }
|
|
651
|
+
}
|
|
652
|
+
throw error;
|
|
653
|
+
}
|
|
654
|
+
finally {
|
|
655
|
+
if (queryRunner !== this.queryRunner)
|
|
656
|
+
// means we created our own query runner
|
|
657
|
+
await queryRunner.release();
|
|
658
|
+
}
|
|
659
|
+
}
|
|
715
660
|
/**
|
|
716
661
|
* Gets single entity returned by execution of generated query builder sql.
|
|
717
662
|
*/
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
663
|
+
async getOne() {
|
|
664
|
+
const results = await this.getRawAndEntities();
|
|
665
|
+
const result = results.entities[0];
|
|
666
|
+
if (result &&
|
|
667
|
+
this.expressionMap.lockMode === "optimistic" &&
|
|
668
|
+
this.expressionMap.lockVersion) {
|
|
669
|
+
const metadata = this.expressionMap.mainAlias.metadata;
|
|
670
|
+
if (this.expressionMap.lockVersion instanceof Date) {
|
|
671
|
+
const actualVersion = metadata.updateDateColumn.getEntityValue(result); // what if columns arent set?
|
|
672
|
+
if (actualVersion.getTime() !==
|
|
673
|
+
this.expressionMap.lockVersion.getTime())
|
|
674
|
+
throw new OptimisticLockVersionMismatchError_1.OptimisticLockVersionMismatchError(metadata.name, this.expressionMap.lockVersion, actualVersion);
|
|
675
|
+
}
|
|
676
|
+
else {
|
|
677
|
+
const actualVersion = metadata.versionColumn.getEntityValue(result); // what if columns arent set?
|
|
678
|
+
if (actualVersion !== this.expressionMap.lockVersion)
|
|
679
|
+
throw new OptimisticLockVersionMismatchError_1.OptimisticLockVersionMismatchError(metadata.name, this.expressionMap.lockVersion, actualVersion);
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
if (result === undefined) {
|
|
683
|
+
return null;
|
|
684
|
+
}
|
|
685
|
+
return result;
|
|
686
|
+
}
|
|
687
|
+
/**
|
|
688
|
+
* Gets the first entity returned by execution of generated query builder sql or rejects the returned promise on error.
|
|
689
|
+
*/
|
|
690
|
+
async getOneOrFail() {
|
|
691
|
+
const entity = await this.getOne();
|
|
692
|
+
if (!entity) {
|
|
693
|
+
throw new EntityNotFoundError_1.EntityNotFoundError(this.expressionMap.mainAlias.target, this);
|
|
694
|
+
}
|
|
695
|
+
return entity;
|
|
696
|
+
}
|
|
745
697
|
/**
|
|
746
698
|
* Gets entities returned by execution of generated query builder sql.
|
|
747
699
|
*/
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
if (this.expressionMap.lockMode === "optimistic")
|
|
755
|
-
throw new OptimisticLockCanNotBeUsedError_1.OptimisticLockCanNotBeUsedError();
|
|
756
|
-
return [4 /*yield*/, this.getRawAndEntities()];
|
|
757
|
-
case 1:
|
|
758
|
-
results = _a.sent();
|
|
759
|
-
return [2 /*return*/, results.entities];
|
|
760
|
-
}
|
|
761
|
-
});
|
|
762
|
-
});
|
|
763
|
-
};
|
|
700
|
+
async getMany() {
|
|
701
|
+
if (this.expressionMap.lockMode === "optimistic")
|
|
702
|
+
throw new OptimisticLockCanNotBeUsedError_1.OptimisticLockCanNotBeUsedError();
|
|
703
|
+
const results = await this.getRawAndEntities();
|
|
704
|
+
return results.entities;
|
|
705
|
+
}
|
|
764
706
|
/**
|
|
765
707
|
* Gets count - number of entities selected by sql generated by this query builder.
|
|
766
708
|
* Count excludes all limitations set by setFirstResult and setMaxResults methods call.
|
|
767
709
|
*/
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
if (!transactionStartedByUs) return [3 /*break*/, 7];
|
|
794
|
-
return [4 /*yield*/, queryRunner.commitTransaction()];
|
|
795
|
-
case 5:
|
|
796
|
-
_a.sent();
|
|
797
|
-
if (!this.expressionMap.callObservers) return [3 /*break*/, 7];
|
|
798
|
-
return [4 /*yield*/, new ObserverExecutor_1.ObserverExecutor(this.connection.observers).execute()];
|
|
799
|
-
case 6:
|
|
800
|
-
_a.sent();
|
|
801
|
-
_a.label = 7;
|
|
802
|
-
case 7: return [2 /*return*/, results];
|
|
803
|
-
case 8:
|
|
804
|
-
error_3 = _a.sent();
|
|
805
|
-
if (!transactionStartedByUs) return [3 /*break*/, 12];
|
|
806
|
-
_a.label = 9;
|
|
807
|
-
case 9:
|
|
808
|
-
_a.trys.push([9, 11, , 12]);
|
|
809
|
-
return [4 /*yield*/, queryRunner.rollbackTransaction()];
|
|
810
|
-
case 10:
|
|
811
|
-
_a.sent();
|
|
812
|
-
return [3 /*break*/, 12];
|
|
813
|
-
case 11:
|
|
814
|
-
rollbackError_3 = _a.sent();
|
|
815
|
-
return [3 /*break*/, 12];
|
|
816
|
-
case 12: throw error_3;
|
|
817
|
-
case 13:
|
|
818
|
-
if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 15];
|
|
819
|
-
return [4 /*yield*/, queryRunner.release()];
|
|
820
|
-
case 14:
|
|
821
|
-
_a.sent();
|
|
822
|
-
_a.label = 15;
|
|
823
|
-
case 15: return [7 /*endfinally*/];
|
|
824
|
-
case 16: return [2 /*return*/];
|
|
710
|
+
async getCount() {
|
|
711
|
+
if (this.expressionMap.lockMode === "optimistic")
|
|
712
|
+
throw new OptimisticLockCanNotBeUsedError_1.OptimisticLockCanNotBeUsedError();
|
|
713
|
+
const queryRunner = this.obtainQueryRunner();
|
|
714
|
+
let transactionStartedByUs = false;
|
|
715
|
+
try {
|
|
716
|
+
// start transaction if it was enabled
|
|
717
|
+
if (this.expressionMap.useTransaction === true &&
|
|
718
|
+
queryRunner.isTransactionActive === false) {
|
|
719
|
+
await queryRunner.startTransaction();
|
|
720
|
+
transactionStartedByUs = true;
|
|
721
|
+
}
|
|
722
|
+
this.expressionMap.queryEntity = false;
|
|
723
|
+
const results = await this.executeCountQuery(queryRunner);
|
|
724
|
+
// close transaction if we started it
|
|
725
|
+
if (transactionStartedByUs) {
|
|
726
|
+
await queryRunner.commitTransaction();
|
|
727
|
+
}
|
|
728
|
+
return results;
|
|
729
|
+
}
|
|
730
|
+
catch (error) {
|
|
731
|
+
// rollback transaction if we started it
|
|
732
|
+
if (transactionStartedByUs) {
|
|
733
|
+
try {
|
|
734
|
+
await queryRunner.rollbackTransaction();
|
|
825
735
|
}
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
736
|
+
catch (rollbackError) { }
|
|
737
|
+
}
|
|
738
|
+
throw error;
|
|
739
|
+
}
|
|
740
|
+
finally {
|
|
741
|
+
if (queryRunner !== this.queryRunner)
|
|
742
|
+
// means we created our own query runner
|
|
743
|
+
await queryRunner.release();
|
|
744
|
+
}
|
|
745
|
+
}
|
|
829
746
|
/**
|
|
830
747
|
* Executes built SQL query and returns entities and overall entities count (without limitation).
|
|
831
748
|
* This method is useful to build pagination.
|
|
832
749
|
*/
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
case 6:
|
|
866
|
-
_a.sent();
|
|
867
|
-
if (!this.expressionMap.callObservers) return [3 /*break*/, 8];
|
|
868
|
-
return [4 /*yield*/, new ObserverExecutor_1.ObserverExecutor(this.connection.observers).execute()];
|
|
869
|
-
case 7:
|
|
870
|
-
_a.sent();
|
|
871
|
-
_a.label = 8;
|
|
872
|
-
case 8: return [2 /*return*/, results];
|
|
873
|
-
case 9:
|
|
874
|
-
error_4 = _a.sent();
|
|
875
|
-
if (!transactionStartedByUs) return [3 /*break*/, 13];
|
|
876
|
-
_a.label = 10;
|
|
877
|
-
case 10:
|
|
878
|
-
_a.trys.push([10, 12, , 13]);
|
|
879
|
-
return [4 /*yield*/, queryRunner.rollbackTransaction()];
|
|
880
|
-
case 11:
|
|
881
|
-
_a.sent();
|
|
882
|
-
return [3 /*break*/, 13];
|
|
883
|
-
case 12:
|
|
884
|
-
rollbackError_4 = _a.sent();
|
|
885
|
-
return [3 /*break*/, 13];
|
|
886
|
-
case 13: throw error_4;
|
|
887
|
-
case 14:
|
|
888
|
-
if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 16];
|
|
889
|
-
return [4 /*yield*/, queryRunner.release()];
|
|
890
|
-
case 15:
|
|
891
|
-
_a.sent();
|
|
892
|
-
_a.label = 16;
|
|
893
|
-
case 16: return [7 /*endfinally*/];
|
|
894
|
-
case 17: return [2 /*return*/];
|
|
750
|
+
async getManyAndCount() {
|
|
751
|
+
if (this.expressionMap.lockMode === "optimistic")
|
|
752
|
+
throw new OptimisticLockCanNotBeUsedError_1.OptimisticLockCanNotBeUsedError();
|
|
753
|
+
const queryRunner = this.obtainQueryRunner();
|
|
754
|
+
let transactionStartedByUs = false;
|
|
755
|
+
try {
|
|
756
|
+
// start transaction if it was enabled
|
|
757
|
+
if (this.expressionMap.useTransaction === true &&
|
|
758
|
+
queryRunner.isTransactionActive === false) {
|
|
759
|
+
await queryRunner.startTransaction();
|
|
760
|
+
transactionStartedByUs = true;
|
|
761
|
+
}
|
|
762
|
+
this.expressionMap.queryEntity = true;
|
|
763
|
+
const entitiesAndRaw = await this.executeEntitiesAndRawResults(queryRunner);
|
|
764
|
+
this.expressionMap.queryEntity = false;
|
|
765
|
+
const cacheId = this.expressionMap.cacheId;
|
|
766
|
+
// Creates a new cacheId for the count query, or it will retreive the above query results
|
|
767
|
+
// and count will return 0.
|
|
768
|
+
this.expressionMap.cacheId = cacheId ? `${cacheId}-count` : cacheId;
|
|
769
|
+
const count = await this.executeCountQuery(queryRunner);
|
|
770
|
+
const results = [entitiesAndRaw.entities, count];
|
|
771
|
+
// close transaction if we started it
|
|
772
|
+
if (transactionStartedByUs) {
|
|
773
|
+
await queryRunner.commitTransaction();
|
|
774
|
+
}
|
|
775
|
+
return results;
|
|
776
|
+
}
|
|
777
|
+
catch (error) {
|
|
778
|
+
// rollback transaction if we started it
|
|
779
|
+
if (transactionStartedByUs) {
|
|
780
|
+
try {
|
|
781
|
+
await queryRunner.rollbackTransaction();
|
|
895
782
|
}
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
783
|
+
catch (rollbackError) { }
|
|
784
|
+
}
|
|
785
|
+
throw error;
|
|
786
|
+
}
|
|
787
|
+
finally {
|
|
788
|
+
if (queryRunner !== this.queryRunner)
|
|
789
|
+
// means we created our own query runner
|
|
790
|
+
await queryRunner.release();
|
|
791
|
+
}
|
|
792
|
+
}
|
|
899
793
|
/**
|
|
900
794
|
* Executes built SQL query and returns raw data stream.
|
|
901
795
|
*/
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
_b.sent();
|
|
933
|
-
if (!this.expressionMap.callObservers) return [3 /*break*/, 6];
|
|
934
|
-
return [4 /*yield*/, new ObserverExecutor_1.ObserverExecutor(this.connection.observers).execute()];
|
|
935
|
-
case 5:
|
|
936
|
-
_b.sent();
|
|
937
|
-
_b.label = 6;
|
|
938
|
-
case 6: return [2 /*return*/, results];
|
|
939
|
-
case 7:
|
|
940
|
-
error_5 = _b.sent();
|
|
941
|
-
if (!transactionStartedByUs) return [3 /*break*/, 11];
|
|
942
|
-
_b.label = 8;
|
|
943
|
-
case 8:
|
|
944
|
-
_b.trys.push([8, 10, , 11]);
|
|
945
|
-
return [4 /*yield*/, queryRunner.rollbackTransaction()];
|
|
946
|
-
case 9:
|
|
947
|
-
_b.sent();
|
|
948
|
-
return [3 /*break*/, 11];
|
|
949
|
-
case 10:
|
|
950
|
-
rollbackError_5 = _b.sent();
|
|
951
|
-
return [3 /*break*/, 11];
|
|
952
|
-
case 11: throw error_5;
|
|
953
|
-
case 12:
|
|
954
|
-
if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 14];
|
|
955
|
-
return [4 /*yield*/, queryRunner.release()];
|
|
956
|
-
case 13:
|
|
957
|
-
_b.sent();
|
|
958
|
-
_b.label = 14;
|
|
959
|
-
case 14: return [7 /*endfinally*/];
|
|
960
|
-
case 15: return [2 /*return*/];
|
|
796
|
+
async stream() {
|
|
797
|
+
this.expressionMap.queryEntity = false;
|
|
798
|
+
const [sql, parameters] = this.getQueryAndParameters();
|
|
799
|
+
const queryRunner = this.obtainQueryRunner();
|
|
800
|
+
let transactionStartedByUs = false;
|
|
801
|
+
try {
|
|
802
|
+
// start transaction if it was enabled
|
|
803
|
+
if (this.expressionMap.useTransaction === true &&
|
|
804
|
+
queryRunner.isTransactionActive === false) {
|
|
805
|
+
await queryRunner.startTransaction();
|
|
806
|
+
transactionStartedByUs = true;
|
|
807
|
+
}
|
|
808
|
+
const releaseFn = () => {
|
|
809
|
+
if (queryRunner !== this.queryRunner)
|
|
810
|
+
// means we created our own query runner
|
|
811
|
+
return queryRunner.release();
|
|
812
|
+
return;
|
|
813
|
+
};
|
|
814
|
+
const results = queryRunner.stream(sql, parameters, releaseFn, releaseFn);
|
|
815
|
+
// close transaction if we started it
|
|
816
|
+
if (transactionStartedByUs) {
|
|
817
|
+
await queryRunner.commitTransaction();
|
|
818
|
+
}
|
|
819
|
+
return results;
|
|
820
|
+
}
|
|
821
|
+
catch (error) {
|
|
822
|
+
// rollback transaction if we started it
|
|
823
|
+
if (transactionStartedByUs) {
|
|
824
|
+
try {
|
|
825
|
+
await queryRunner.rollbackTransaction();
|
|
961
826
|
}
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
827
|
+
catch (rollbackError) { }
|
|
828
|
+
}
|
|
829
|
+
throw error;
|
|
830
|
+
}
|
|
831
|
+
}
|
|
965
832
|
/**
|
|
966
833
|
* Enables or disables query result caching.
|
|
967
834
|
*/
|
|
968
|
-
|
|
835
|
+
cache(enabledOrMillisecondsOrId, maybeMilliseconds) {
|
|
969
836
|
if (typeof enabledOrMillisecondsOrId === "boolean") {
|
|
970
837
|
this.expressionMap.cache = enabledOrMillisecondsOrId;
|
|
971
838
|
}
|
|
@@ -973,7 +840,8 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
973
840
|
this.expressionMap.cache = true;
|
|
974
841
|
this.expressionMap.cacheDuration = enabledOrMillisecondsOrId;
|
|
975
842
|
}
|
|
976
|
-
else if (typeof enabledOrMillisecondsOrId === "string" ||
|
|
843
|
+
else if (typeof enabledOrMillisecondsOrId === "string" ||
|
|
844
|
+
typeof enabledOrMillisecondsOrId === "number") {
|
|
977
845
|
this.expressionMap.cache = true;
|
|
978
846
|
this.expressionMap.cacheId = enabledOrMillisecondsOrId;
|
|
979
847
|
}
|
|
@@ -981,154 +849,173 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
981
849
|
this.expressionMap.cacheDuration = maybeMilliseconds;
|
|
982
850
|
}
|
|
983
851
|
return this;
|
|
984
|
-
}
|
|
852
|
+
}
|
|
985
853
|
/**
|
|
986
854
|
* Sets extra options that can be used to configure how query builder works.
|
|
987
855
|
*/
|
|
988
|
-
|
|
856
|
+
setOption(option) {
|
|
989
857
|
this.expressionMap.options.push(option);
|
|
990
858
|
return this;
|
|
991
|
-
}
|
|
992
|
-
/**
|
|
993
|
-
* Disables eager relations.
|
|
994
|
-
*/
|
|
995
|
-
SelectQueryBuilder.prototype.disableEagerRelations = function (disabled) {
|
|
996
|
-
if (disabled === void 0) { disabled = true; }
|
|
997
|
-
this.expressionMap.eagerRelations = disabled === true ? false : true;
|
|
998
|
-
return this;
|
|
999
|
-
};
|
|
859
|
+
}
|
|
1000
860
|
// -------------------------------------------------------------------------
|
|
1001
861
|
// Protected Methods
|
|
1002
862
|
// -------------------------------------------------------------------------
|
|
1003
|
-
|
|
863
|
+
join(direction, entityOrProperty, aliasName, condition, parameters, mapToProperty, isMappingMany) {
|
|
1004
864
|
this.setParameters(parameters || {});
|
|
1005
|
-
|
|
865
|
+
const joinAttribute = new JoinAttribute_1.JoinAttribute(this.connection, this.expressionMap);
|
|
1006
866
|
joinAttribute.direction = direction;
|
|
1007
867
|
joinAttribute.mapToProperty = mapToProperty;
|
|
1008
868
|
joinAttribute.isMappingMany = isMappingMany;
|
|
1009
869
|
joinAttribute.entityOrProperty = entityOrProperty; // relationName
|
|
1010
|
-
joinAttribute.condition = condition; // joinInverseSideCondition
|
|
870
|
+
joinAttribute.condition = condition ? condition : undefined; // joinInverseSideCondition
|
|
1011
871
|
// joinAttribute.junctionAlias = joinAttribute.relation.isOwning ? parentAlias + "_" + destinationTableAlias : destinationTableAlias + "_" + parentAlias;
|
|
1012
872
|
this.expressionMap.joinAttributes.push(joinAttribute);
|
|
1013
873
|
if (joinAttribute.metadata) {
|
|
874
|
+
if (joinAttribute.metadata.deleteDateColumn &&
|
|
875
|
+
!this.expressionMap.withDeleted) {
|
|
876
|
+
const conditionDeleteColumn = `${aliasName}.${joinAttribute.metadata.deleteDateColumn.propertyName} IS NULL`;
|
|
877
|
+
joinAttribute.condition = joinAttribute.condition
|
|
878
|
+
? ` ${joinAttribute.condition} AND ${conditionDeleteColumn}`
|
|
879
|
+
: `${conditionDeleteColumn}`;
|
|
880
|
+
}
|
|
1014
881
|
// todo: find and set metadata right there?
|
|
1015
882
|
joinAttribute.alias = this.expressionMap.createAlias({
|
|
1016
883
|
type: "join",
|
|
1017
884
|
name: aliasName,
|
|
1018
|
-
metadata: joinAttribute.metadata
|
|
885
|
+
metadata: joinAttribute.metadata,
|
|
1019
886
|
});
|
|
1020
|
-
if (joinAttribute.relation &&
|
|
887
|
+
if (joinAttribute.relation &&
|
|
888
|
+
joinAttribute.relation.junctionEntityMetadata) {
|
|
1021
889
|
this.expressionMap.createAlias({
|
|
1022
890
|
type: "join",
|
|
1023
891
|
name: joinAttribute.junctionAlias,
|
|
1024
|
-
metadata: joinAttribute.relation.junctionEntityMetadata
|
|
892
|
+
metadata: joinAttribute.relation.junctionEntityMetadata,
|
|
1025
893
|
});
|
|
1026
894
|
}
|
|
1027
895
|
}
|
|
1028
896
|
else {
|
|
1029
|
-
|
|
1030
|
-
if (entityOrProperty
|
|
1031
|
-
|
|
897
|
+
let subQuery = "";
|
|
898
|
+
if (typeof entityOrProperty === "function") {
|
|
899
|
+
const subQueryBuilder = entityOrProperty(this.subQuery());
|
|
1032
900
|
this.setParameters(subQueryBuilder.getParameters());
|
|
1033
901
|
subQuery = subQueryBuilder.getQuery();
|
|
1034
902
|
}
|
|
1035
903
|
else {
|
|
1036
904
|
subQuery = entityOrProperty;
|
|
1037
905
|
}
|
|
1038
|
-
|
|
906
|
+
const isSubQuery = typeof entityOrProperty === "function" ||
|
|
907
|
+
(entityOrProperty.substr(0, 1) === "(" &&
|
|
908
|
+
entityOrProperty.substr(-1) === ")");
|
|
1039
909
|
joinAttribute.alias = this.expressionMap.createAlias({
|
|
1040
910
|
type: "join",
|
|
1041
911
|
name: aliasName,
|
|
1042
|
-
tablePath: isSubQuery === false
|
|
912
|
+
tablePath: isSubQuery === false
|
|
913
|
+
? entityOrProperty
|
|
914
|
+
: undefined,
|
|
1043
915
|
subQuery: isSubQuery === true ? subQuery : undefined,
|
|
1044
916
|
});
|
|
1045
917
|
}
|
|
1046
|
-
}
|
|
918
|
+
}
|
|
1047
919
|
/**
|
|
1048
920
|
* Creates "SELECT FROM" part of SQL query.
|
|
1049
921
|
*/
|
|
1050
|
-
|
|
1051
|
-
var _this = this;
|
|
922
|
+
createSelectExpression() {
|
|
1052
923
|
if (!this.expressionMap.mainAlias)
|
|
1053
|
-
throw new
|
|
924
|
+
throw new error_1.TypeORMError("Cannot build query because main alias is not set (call qb#from method)");
|
|
1054
925
|
// todo throw exception if selects or from is missing
|
|
1055
|
-
|
|
1056
|
-
|
|
926
|
+
const allSelects = [];
|
|
927
|
+
const excludedSelects = [];
|
|
1057
928
|
if (this.expressionMap.mainAlias.hasMetadata) {
|
|
1058
|
-
|
|
1059
|
-
allSelects.push
|
|
1060
|
-
excludedSelects.push
|
|
929
|
+
const metadata = this.expressionMap.mainAlias.metadata;
|
|
930
|
+
allSelects.push(...this.buildEscapedEntityColumnSelects(this.expressionMap.mainAlias.name, metadata));
|
|
931
|
+
excludedSelects.push(...this.findEntityColumnSelects(this.expressionMap.mainAlias.name, metadata));
|
|
1061
932
|
}
|
|
1062
933
|
// add selects from joins
|
|
1063
|
-
this.expressionMap.joinAttributes
|
|
1064
|
-
.forEach(function (join) {
|
|
934
|
+
this.expressionMap.joinAttributes.forEach((join) => {
|
|
1065
935
|
if (join.metadata) {
|
|
1066
|
-
allSelects.push
|
|
1067
|
-
excludedSelects.push
|
|
936
|
+
allSelects.push(...this.buildEscapedEntityColumnSelects(join.alias.name, join.metadata));
|
|
937
|
+
excludedSelects.push(...this.findEntityColumnSelects(join.alias.name, join.metadata));
|
|
1068
938
|
}
|
|
1069
939
|
else {
|
|
1070
|
-
|
|
940
|
+
const hasMainAlias = this.expressionMap.selects.some((select) => select.selection === join.alias.name);
|
|
1071
941
|
if (hasMainAlias) {
|
|
1072
|
-
allSelects.push({
|
|
1073
|
-
|
|
942
|
+
allSelects.push({
|
|
943
|
+
selection: this.escape(join.alias.name) + ".*",
|
|
944
|
+
});
|
|
945
|
+
const excludedSelect = this.expressionMap.selects.find((select) => select.selection === join.alias.name);
|
|
1074
946
|
excludedSelects.push(excludedSelect);
|
|
1075
947
|
}
|
|
1076
948
|
}
|
|
1077
949
|
});
|
|
1078
950
|
// add all other selects
|
|
1079
951
|
this.expressionMap.selects
|
|
1080
|
-
.filter(
|
|
1081
|
-
.forEach(
|
|
952
|
+
.filter((select) => excludedSelects.indexOf(select) === -1)
|
|
953
|
+
.forEach((select) => allSelects.push({
|
|
954
|
+
selection: this.replacePropertyNames(select.selection),
|
|
955
|
+
aliasName: select.aliasName,
|
|
956
|
+
}));
|
|
1082
957
|
// if still selection is empty, then simply set it to all (*)
|
|
1083
958
|
if (allSelects.length === 0)
|
|
1084
959
|
allSelects.push({ selection: "*" });
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
break;
|
|
1091
|
-
case "pessimistic_write":
|
|
1092
|
-
lock = " WITH (UPDLOCK, ROWLOCK)";
|
|
1093
|
-
break;
|
|
1094
|
-
case "dirty_read":
|
|
1095
|
-
lock = " WITH (NOLOCK)";
|
|
1096
|
-
break;
|
|
960
|
+
// Use certain index
|
|
961
|
+
let useIndex = "";
|
|
962
|
+
if (this.expressionMap.useIndex) {
|
|
963
|
+
if (DriverUtils_1.DriverUtils.isMySQLFamily(this.connection.driver)) {
|
|
964
|
+
useIndex = ` USE INDEX (${this.expressionMap.useIndex})`;
|
|
1097
965
|
}
|
|
1098
966
|
}
|
|
1099
967
|
// create a selection query
|
|
1100
|
-
|
|
1101
|
-
.filter(
|
|
1102
|
-
.
|
|
968
|
+
const froms = this.expressionMap.aliases
|
|
969
|
+
.filter((alias) => alias.type === "from" &&
|
|
970
|
+
(alias.tablePath || alias.subQuery))
|
|
971
|
+
.map((alias) => {
|
|
1103
972
|
if (alias.subQuery)
|
|
1104
|
-
return alias.subQuery + " " +
|
|
1105
|
-
return
|
|
973
|
+
return alias.subQuery + " " + this.escape(alias.name);
|
|
974
|
+
return (this.getTableName(alias.tablePath) +
|
|
975
|
+
" " +
|
|
976
|
+
this.escape(alias.name));
|
|
1106
977
|
});
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
978
|
+
const select = this.createSelectDistinctExpression();
|
|
979
|
+
const selection = allSelects
|
|
980
|
+
.map((select) => select.selection +
|
|
981
|
+
(select.aliasName
|
|
982
|
+
? " AS " + this.escape(select.aliasName)
|
|
983
|
+
: ""))
|
|
984
|
+
.join(", ");
|
|
985
|
+
return (select +
|
|
986
|
+
selection +
|
|
987
|
+
" FROM " +
|
|
988
|
+
froms.join(", ") +
|
|
989
|
+
this.createTableLockExpression() +
|
|
990
|
+
useIndex);
|
|
991
|
+
}
|
|
1111
992
|
/**
|
|
1112
993
|
* Creates select | select distinct part of SQL query.
|
|
1113
994
|
*/
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
995
|
+
createSelectDistinctExpression() {
|
|
996
|
+
const { selectDistinct, selectDistinctOn, maxExecutionTime } = this.expressionMap;
|
|
997
|
+
const { driver } = this.connection;
|
|
998
|
+
let select = "SELECT ";
|
|
999
|
+
if (maxExecutionTime > 0) {
|
|
1000
|
+
if (DriverUtils_1.DriverUtils.isMySQLFamily(driver)) {
|
|
1001
|
+
select += `/*+ MAX_EXECUTION_TIME(${this.expressionMap.maxExecutionTime}) */ `;
|
|
1002
|
+
}
|
|
1003
|
+
}
|
|
1004
|
+
if (driver.options.type === "postgres" && selectDistinctOn.length > 0) {
|
|
1005
|
+
const selectDistinctOnMap = selectDistinctOn
|
|
1006
|
+
.map((on) => this.replacePropertyNames(on))
|
|
1007
|
+
.join(", ");
|
|
1008
|
+
select = `SELECT DISTINCT ON (${selectDistinctOnMap}) `;
|
|
1122
1009
|
}
|
|
1123
1010
|
else if (selectDistinct) {
|
|
1124
1011
|
select = "SELECT DISTINCT ";
|
|
1125
1012
|
}
|
|
1126
1013
|
return select;
|
|
1127
|
-
}
|
|
1014
|
+
}
|
|
1128
1015
|
/**
|
|
1129
1016
|
* Creates "JOIN" part of SQL query.
|
|
1130
1017
|
*/
|
|
1131
|
-
|
|
1018
|
+
createJoinExpression() {
|
|
1132
1019
|
// examples:
|
|
1133
1020
|
// select from owning side
|
|
1134
1021
|
// qb.select("post")
|
|
@@ -1136,131 +1023,256 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
1136
1023
|
// select from non-owning side
|
|
1137
1024
|
// qb.select("category")
|
|
1138
1025
|
// .leftJoinAndSelect("category.post", "post");
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1026
|
+
const joins = this.expressionMap.joinAttributes.map((joinAttr) => {
|
|
1027
|
+
const relation = joinAttr.relation;
|
|
1028
|
+
const destinationTableName = joinAttr.tablePath;
|
|
1029
|
+
const destinationTableAlias = joinAttr.alias.name;
|
|
1030
|
+
let appendedCondition = joinAttr.condition
|
|
1031
|
+
? " AND (" + joinAttr.condition + ")"
|
|
1032
|
+
: "";
|
|
1033
|
+
const parentAlias = joinAttr.parentAlias;
|
|
1146
1034
|
// if join was build without relation (e.g. without "post.category") then it means that we have direct
|
|
1147
1035
|
// table to join, without junction table involved. This means we simply join direct table.
|
|
1148
1036
|
if (!parentAlias || !relation) {
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1037
|
+
const destinationJoin = joinAttr.alias.subQuery
|
|
1038
|
+
? joinAttr.alias.subQuery
|
|
1039
|
+
: this.getTableName(destinationTableName);
|
|
1040
|
+
return (" " +
|
|
1041
|
+
joinAttr.direction +
|
|
1042
|
+
" JOIN " +
|
|
1043
|
+
destinationJoin +
|
|
1044
|
+
" " +
|
|
1045
|
+
this.escape(destinationTableAlias) +
|
|
1046
|
+
this.createTableLockExpression() +
|
|
1047
|
+
(joinAttr.condition
|
|
1048
|
+
? " ON " + this.replacePropertyNames(joinAttr.condition)
|
|
1049
|
+
: ""));
|
|
1152
1050
|
}
|
|
1153
1051
|
// if real entity relation is involved
|
|
1154
1052
|
if (relation.isManyToOne || relation.isOneToOneOwner) {
|
|
1155
1053
|
// JOIN `category` `category` ON `category`.`id` = `post`.`categoryId`
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1054
|
+
const condition = relation.joinColumns
|
|
1055
|
+
.map((joinColumn) => {
|
|
1056
|
+
return (destinationTableAlias +
|
|
1057
|
+
"." +
|
|
1058
|
+
joinColumn.referencedColumn.propertyPath +
|
|
1059
|
+
"=" +
|
|
1060
|
+
parentAlias +
|
|
1061
|
+
"." +
|
|
1062
|
+
relation.propertyPath +
|
|
1063
|
+
"." +
|
|
1064
|
+
joinColumn.referencedColumn.propertyPath);
|
|
1065
|
+
})
|
|
1066
|
+
.join(" AND ");
|
|
1067
|
+
return (" " +
|
|
1068
|
+
joinAttr.direction +
|
|
1069
|
+
" JOIN " +
|
|
1070
|
+
this.getTableName(destinationTableName) +
|
|
1071
|
+
" " +
|
|
1072
|
+
this.escape(destinationTableAlias) +
|
|
1073
|
+
this.createTableLockExpression() +
|
|
1074
|
+
" ON " +
|
|
1075
|
+
this.replacePropertyNames(condition + appendedCondition));
|
|
1161
1076
|
}
|
|
1162
1077
|
else if (relation.isOneToMany || relation.isOneToOneNotOwner) {
|
|
1163
1078
|
// JOIN `post` `post` ON `post`.`categoryId` = `category`.`id`
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1079
|
+
const condition = relation
|
|
1080
|
+
.inverseRelation.joinColumns.map((joinColumn) => {
|
|
1081
|
+
if (relation.inverseEntityMetadata.tableType ===
|
|
1082
|
+
"entity-child" &&
|
|
1083
|
+
relation.inverseEntityMetadata.discriminatorColumn) {
|
|
1084
|
+
appendedCondition +=
|
|
1085
|
+
" AND " +
|
|
1086
|
+
destinationTableAlias +
|
|
1087
|
+
"." +
|
|
1088
|
+
relation.inverseEntityMetadata
|
|
1089
|
+
.discriminatorColumn.databaseName +
|
|
1090
|
+
"='" +
|
|
1091
|
+
relation.inverseEntityMetadata
|
|
1092
|
+
.discriminatorValue +
|
|
1093
|
+
"'";
|
|
1094
|
+
}
|
|
1095
|
+
return (destinationTableAlias +
|
|
1096
|
+
"." +
|
|
1097
|
+
relation.inverseRelation.propertyPath +
|
|
1098
|
+
"." +
|
|
1099
|
+
joinColumn.referencedColumn.propertyPath +
|
|
1100
|
+
"=" +
|
|
1101
|
+
parentAlias +
|
|
1102
|
+
"." +
|
|
1103
|
+
joinColumn.referencedColumn.propertyPath);
|
|
1104
|
+
})
|
|
1105
|
+
.join(" AND ");
|
|
1106
|
+
return (" " +
|
|
1107
|
+
joinAttr.direction +
|
|
1108
|
+
" JOIN " +
|
|
1109
|
+
this.getTableName(destinationTableName) +
|
|
1110
|
+
" " +
|
|
1111
|
+
this.escape(destinationTableAlias) +
|
|
1112
|
+
this.createTableLockExpression() +
|
|
1113
|
+
" ON " +
|
|
1114
|
+
this.replacePropertyNames(condition + appendedCondition));
|
|
1115
|
+
}
|
|
1116
|
+
else {
|
|
1117
|
+
// means many-to-many
|
|
1118
|
+
const junctionTableName = relation.junctionEntityMetadata.tablePath;
|
|
1119
|
+
const junctionAlias = joinAttr.junctionAlias;
|
|
1120
|
+
let junctionCondition = "", destinationCondition = "";
|
|
1174
1121
|
if (relation.isOwning) {
|
|
1175
|
-
junctionCondition = relation.joinColumns
|
|
1122
|
+
junctionCondition = relation.joinColumns
|
|
1123
|
+
.map((joinColumn) => {
|
|
1176
1124
|
// `post_category`.`postId` = `post`.`id`
|
|
1177
|
-
return
|
|
1178
|
-
|
|
1179
|
-
|
|
1125
|
+
return (junctionAlias +
|
|
1126
|
+
"." +
|
|
1127
|
+
joinColumn.propertyPath +
|
|
1128
|
+
"=" +
|
|
1129
|
+
parentAlias +
|
|
1130
|
+
"." +
|
|
1131
|
+
joinColumn.referencedColumn.propertyPath);
|
|
1132
|
+
})
|
|
1133
|
+
.join(" AND ");
|
|
1134
|
+
destinationCondition = relation.inverseJoinColumns
|
|
1135
|
+
.map((joinColumn) => {
|
|
1180
1136
|
// `category`.`id` = `post_category`.`categoryId`
|
|
1181
|
-
return destinationTableAlias +
|
|
1182
|
-
|
|
1137
|
+
return (destinationTableAlias +
|
|
1138
|
+
"." +
|
|
1139
|
+
joinColumn.referencedColumn.propertyPath +
|
|
1140
|
+
"=" +
|
|
1141
|
+
junctionAlias +
|
|
1142
|
+
"." +
|
|
1143
|
+
joinColumn.propertyPath);
|
|
1144
|
+
})
|
|
1145
|
+
.join(" AND ");
|
|
1183
1146
|
}
|
|
1184
1147
|
else {
|
|
1185
|
-
junctionCondition = relation
|
|
1148
|
+
junctionCondition = relation
|
|
1149
|
+
.inverseRelation.inverseJoinColumns.map((joinColumn) => {
|
|
1186
1150
|
// `post_category`.`categoryId` = `category`.`id`
|
|
1187
|
-
return
|
|
1188
|
-
|
|
1189
|
-
|
|
1151
|
+
return (junctionAlias +
|
|
1152
|
+
"." +
|
|
1153
|
+
joinColumn.propertyPath +
|
|
1154
|
+
"=" +
|
|
1155
|
+
parentAlias +
|
|
1156
|
+
"." +
|
|
1157
|
+
joinColumn.referencedColumn.propertyPath);
|
|
1158
|
+
})
|
|
1159
|
+
.join(" AND ");
|
|
1160
|
+
destinationCondition = relation
|
|
1161
|
+
.inverseRelation.joinColumns.map((joinColumn) => {
|
|
1190
1162
|
// `post`.`id` = `post_category`.`postId`
|
|
1191
|
-
return destinationTableAlias +
|
|
1192
|
-
|
|
1163
|
+
return (destinationTableAlias +
|
|
1164
|
+
"." +
|
|
1165
|
+
joinColumn.referencedColumn.propertyPath +
|
|
1166
|
+
"=" +
|
|
1167
|
+
junctionAlias +
|
|
1168
|
+
"." +
|
|
1169
|
+
joinColumn.propertyPath);
|
|
1170
|
+
})
|
|
1171
|
+
.join(" AND ");
|
|
1193
1172
|
}
|
|
1194
|
-
return
|
|
1195
|
-
|
|
1173
|
+
return (" " +
|
|
1174
|
+
joinAttr.direction +
|
|
1175
|
+
" JOIN " +
|
|
1176
|
+
this.getTableName(junctionTableName) +
|
|
1177
|
+
" " +
|
|
1178
|
+
this.escape(junctionAlias) +
|
|
1179
|
+
this.createTableLockExpression() +
|
|
1180
|
+
" ON " +
|
|
1181
|
+
this.replacePropertyNames(junctionCondition) +
|
|
1182
|
+
" " +
|
|
1183
|
+
joinAttr.direction +
|
|
1184
|
+
" JOIN " +
|
|
1185
|
+
this.getTableName(destinationTableName) +
|
|
1186
|
+
" " +
|
|
1187
|
+
this.escape(destinationTableAlias) +
|
|
1188
|
+
this.createTableLockExpression() +
|
|
1189
|
+
" ON " +
|
|
1190
|
+
this.replacePropertyNames(destinationCondition + appendedCondition));
|
|
1196
1191
|
}
|
|
1197
1192
|
});
|
|
1198
1193
|
return joins.join(" ");
|
|
1199
|
-
}
|
|
1194
|
+
}
|
|
1200
1195
|
/**
|
|
1201
1196
|
* Creates "GROUP BY" part of SQL query.
|
|
1202
1197
|
*/
|
|
1203
|
-
|
|
1198
|
+
createGroupByExpression() {
|
|
1204
1199
|
if (!this.expressionMap.groupBys || !this.expressionMap.groupBys.length)
|
|
1205
1200
|
return "";
|
|
1206
|
-
return " GROUP BY " +
|
|
1207
|
-
|
|
1201
|
+
return (" GROUP BY " +
|
|
1202
|
+
this.replacePropertyNames(this.expressionMap.groupBys.join(", ")));
|
|
1203
|
+
}
|
|
1208
1204
|
/**
|
|
1209
1205
|
* Creates "ORDER BY" part of SQL query.
|
|
1210
1206
|
*/
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
var orderBys = this.expressionMap.allOrderBys;
|
|
1207
|
+
createOrderByExpression() {
|
|
1208
|
+
const orderBys = this.expressionMap.allOrderBys;
|
|
1214
1209
|
if (Object.keys(orderBys).length > 0)
|
|
1215
|
-
return " ORDER BY " +
|
|
1216
|
-
.
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1210
|
+
return (" ORDER BY " +
|
|
1211
|
+
Object.keys(orderBys)
|
|
1212
|
+
.map((columnName) => {
|
|
1213
|
+
if (typeof orderBys[columnName] === "string") {
|
|
1214
|
+
return (this.replacePropertyNames(columnName) +
|
|
1215
|
+
" " +
|
|
1216
|
+
orderBys[columnName]);
|
|
1217
|
+
}
|
|
1218
|
+
else {
|
|
1219
|
+
return (this.replacePropertyNames(columnName) +
|
|
1220
|
+
" " +
|
|
1221
|
+
orderBys[columnName].order +
|
|
1222
|
+
" " +
|
|
1223
|
+
orderBys[columnName].nulls);
|
|
1224
|
+
}
|
|
1225
|
+
})
|
|
1226
|
+
.join(", "));
|
|
1225
1227
|
return "";
|
|
1226
|
-
}
|
|
1228
|
+
}
|
|
1227
1229
|
/**
|
|
1228
1230
|
* Creates "LIMIT" and "OFFSET" parts of SQL query.
|
|
1229
1231
|
*/
|
|
1230
|
-
|
|
1232
|
+
createLimitOffsetExpression() {
|
|
1231
1233
|
// in the case if nothing is joined in the query builder we don't need to make two requests to get paginated results
|
|
1232
1234
|
// we can use regular limit / offset, that's why we add offset and limit construction here based on skip and take values
|
|
1233
|
-
|
|
1234
|
-
if (!offset &&
|
|
1235
|
+
let offset = this.expressionMap.offset, limit = this.expressionMap.limit;
|
|
1236
|
+
if (!offset &&
|
|
1237
|
+
!limit &&
|
|
1238
|
+
this.expressionMap.joinAttributes.length === 0) {
|
|
1235
1239
|
offset = this.expressionMap.skip;
|
|
1236
1240
|
limit = this.expressionMap.take;
|
|
1237
1241
|
}
|
|
1238
|
-
if (this.connection.driver
|
|
1242
|
+
if (this.connection.driver.options.type === "mssql") {
|
|
1239
1243
|
// Due to a limitation in SQL Server's parser implementation it does not support using
|
|
1240
1244
|
// OFFSET or FETCH NEXT without an ORDER BY clause being provided. In cases where the
|
|
1241
1245
|
// user does not request one we insert a dummy ORDER BY that does nothing and should
|
|
1242
1246
|
// have no effect on the query planner or on the order of the results returned.
|
|
1243
1247
|
// https://dba.stackexchange.com/a/193799
|
|
1244
|
-
|
|
1245
|
-
if ((limit || offset) &&
|
|
1248
|
+
let prefix = "";
|
|
1249
|
+
if ((limit || offset) &&
|
|
1250
|
+
Object.keys(this.expressionMap.allOrderBys).length <= 0) {
|
|
1246
1251
|
prefix = " ORDER BY (SELECT NULL)";
|
|
1247
1252
|
}
|
|
1248
1253
|
if (limit && offset)
|
|
1249
|
-
return prefix +
|
|
1254
|
+
return (prefix +
|
|
1255
|
+
" OFFSET " +
|
|
1256
|
+
offset +
|
|
1257
|
+
" ROWS FETCH NEXT " +
|
|
1258
|
+
limit +
|
|
1259
|
+
" ROWS ONLY");
|
|
1250
1260
|
if (limit)
|
|
1251
|
-
return prefix + " OFFSET 0 ROWS FETCH NEXT " + limit + " ROWS ONLY";
|
|
1261
|
+
return (prefix + " OFFSET 0 ROWS FETCH NEXT " + limit + " ROWS ONLY");
|
|
1252
1262
|
if (offset)
|
|
1253
1263
|
return prefix + " OFFSET " + offset + " ROWS";
|
|
1254
1264
|
}
|
|
1255
|
-
else if (
|
|
1265
|
+
else if (DriverUtils_1.DriverUtils.isMySQLFamily(this.connection.driver) ||
|
|
1266
|
+
this.connection.driver.options.type === "aurora-mysql" ||
|
|
1267
|
+
this.connection.driver.options.type === "sap") {
|
|
1256
1268
|
if (limit && offset)
|
|
1257
1269
|
return " LIMIT " + limit + " OFFSET " + offset;
|
|
1258
1270
|
if (limit)
|
|
1259
1271
|
return " LIMIT " + limit;
|
|
1260
1272
|
if (offset)
|
|
1261
|
-
throw new OffsetWithoutLimitNotSupportedError_1.OffsetWithoutLimitNotSupportedError(
|
|
1273
|
+
throw new OffsetWithoutLimitNotSupportedError_1.OffsetWithoutLimitNotSupportedError();
|
|
1262
1274
|
}
|
|
1263
|
-
else if (this.connection.driver
|
|
1275
|
+
else if (DriverUtils_1.DriverUtils.isSQLiteFamily(this.connection.driver)) {
|
|
1264
1276
|
if (limit && offset)
|
|
1265
1277
|
return " LIMIT " + limit + " OFFSET " + offset;
|
|
1266
1278
|
if (limit)
|
|
@@ -1268,9 +1280,13 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
1268
1280
|
if (offset)
|
|
1269
1281
|
return " LIMIT -1 OFFSET " + offset;
|
|
1270
1282
|
}
|
|
1271
|
-
else if (this.connection.driver
|
|
1283
|
+
else if (this.connection.driver.options.type === "oracle") {
|
|
1272
1284
|
if (limit && offset)
|
|
1273
|
-
return " OFFSET " +
|
|
1285
|
+
return (" OFFSET " +
|
|
1286
|
+
offset +
|
|
1287
|
+
" ROWS FETCH NEXT " +
|
|
1288
|
+
limit +
|
|
1289
|
+
" ROWS ONLY");
|
|
1274
1290
|
if (limit)
|
|
1275
1291
|
return " FETCH NEXT " + limit + " ROWS ONLY";
|
|
1276
1292
|
if (offset)
|
|
@@ -1285,465 +1301,667 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
1285
1301
|
return " OFFSET " + offset;
|
|
1286
1302
|
}
|
|
1287
1303
|
return "";
|
|
1288
|
-
}
|
|
1304
|
+
}
|
|
1305
|
+
/**
|
|
1306
|
+
* Creates "LOCK" part of SELECT Query after table Clause
|
|
1307
|
+
* ex.
|
|
1308
|
+
* SELECT 1
|
|
1309
|
+
* FROM USER U WITH (NOLOCK)
|
|
1310
|
+
* JOIN ORDER O WITH (NOLOCK)
|
|
1311
|
+
* ON U.ID=O.OrderID
|
|
1312
|
+
*/
|
|
1313
|
+
createTableLockExpression() {
|
|
1314
|
+
if (this.connection.driver.options.type === "mssql") {
|
|
1315
|
+
switch (this.expressionMap.lockMode) {
|
|
1316
|
+
case "pessimistic_read":
|
|
1317
|
+
return " WITH (HOLDLOCK, ROWLOCK)";
|
|
1318
|
+
case "pessimistic_write":
|
|
1319
|
+
return " WITH (UPDLOCK, ROWLOCK)";
|
|
1320
|
+
case "dirty_read":
|
|
1321
|
+
return " WITH (NOLOCK)";
|
|
1322
|
+
}
|
|
1323
|
+
}
|
|
1324
|
+
return "";
|
|
1325
|
+
}
|
|
1289
1326
|
/**
|
|
1290
1327
|
* Creates "LOCK" part of SQL query.
|
|
1291
1328
|
*/
|
|
1292
|
-
|
|
1293
|
-
|
|
1329
|
+
createLockExpression() {
|
|
1330
|
+
const driver = this.connection.driver;
|
|
1331
|
+
let lockTablesClause = "";
|
|
1332
|
+
if (this.expressionMap.lockTables) {
|
|
1333
|
+
if (!(driver.options.type === "postgres" ||
|
|
1334
|
+
driver.options.type === "cockroachdb")) {
|
|
1335
|
+
throw new error_1.TypeORMError("Lock tables not supported in selected driver");
|
|
1336
|
+
}
|
|
1337
|
+
if (this.expressionMap.lockTables.length < 1) {
|
|
1338
|
+
throw new error_1.TypeORMError("lockTables cannot be an empty array");
|
|
1339
|
+
}
|
|
1340
|
+
lockTablesClause = " OF " + this.expressionMap.lockTables.join(", ");
|
|
1341
|
+
}
|
|
1294
1342
|
switch (this.expressionMap.lockMode) {
|
|
1295
1343
|
case "pessimistic_read":
|
|
1296
|
-
if (
|
|
1344
|
+
if (DriverUtils_1.DriverUtils.isMySQLFamily(driver) ||
|
|
1345
|
+
driver.options.type === "aurora-mysql") {
|
|
1297
1346
|
return " LOCK IN SHARE MODE";
|
|
1298
1347
|
}
|
|
1299
|
-
else if (driver
|
|
1300
|
-
return " FOR SHARE";
|
|
1348
|
+
else if (driver.options.type === "postgres") {
|
|
1349
|
+
return " FOR SHARE" + lockTablesClause;
|
|
1301
1350
|
}
|
|
1302
|
-
else if (driver
|
|
1351
|
+
else if (driver.options.type === "oracle") {
|
|
1303
1352
|
return " FOR UPDATE";
|
|
1304
1353
|
}
|
|
1305
|
-
else if (driver
|
|
1354
|
+
else if (driver.options.type === "mssql") {
|
|
1306
1355
|
return "";
|
|
1307
1356
|
}
|
|
1308
1357
|
else {
|
|
1309
1358
|
throw new LockNotSupportedOnGivenDriverError_1.LockNotSupportedOnGivenDriverError();
|
|
1310
1359
|
}
|
|
1311
1360
|
case "pessimistic_write":
|
|
1312
|
-
if (
|
|
1361
|
+
if (DriverUtils_1.DriverUtils.isMySQLFamily(driver) ||
|
|
1362
|
+
driver.options.type === "aurora-mysql" ||
|
|
1363
|
+
driver.options.type === "oracle") {
|
|
1313
1364
|
return " FOR UPDATE";
|
|
1314
1365
|
}
|
|
1315
|
-
else if (driver
|
|
1366
|
+
else if (driver.options.type === "postgres" ||
|
|
1367
|
+
driver.options.type === "cockroachdb") {
|
|
1368
|
+
return " FOR UPDATE" + lockTablesClause;
|
|
1369
|
+
}
|
|
1370
|
+
else if (driver.options.type === "mssql") {
|
|
1316
1371
|
return "";
|
|
1317
1372
|
}
|
|
1318
1373
|
else {
|
|
1319
1374
|
throw new LockNotSupportedOnGivenDriverError_1.LockNotSupportedOnGivenDriverError();
|
|
1320
1375
|
}
|
|
1376
|
+
case "pessimistic_partial_write":
|
|
1377
|
+
if (driver.options.type === "postgres") {
|
|
1378
|
+
return " FOR UPDATE" + lockTablesClause + " SKIP LOCKED";
|
|
1379
|
+
}
|
|
1380
|
+
else if (DriverUtils_1.DriverUtils.isMySQLFamily(driver)) {
|
|
1381
|
+
return " FOR UPDATE SKIP LOCKED";
|
|
1382
|
+
}
|
|
1383
|
+
else {
|
|
1384
|
+
throw new LockNotSupportedOnGivenDriverError_1.LockNotSupportedOnGivenDriverError();
|
|
1385
|
+
}
|
|
1386
|
+
case "pessimistic_write_or_fail":
|
|
1387
|
+
if (driver.options.type === "postgres" ||
|
|
1388
|
+
driver.options.type === "cockroachdb") {
|
|
1389
|
+
return " FOR UPDATE" + lockTablesClause + " NOWAIT";
|
|
1390
|
+
}
|
|
1391
|
+
else if (DriverUtils_1.DriverUtils.isMySQLFamily(driver)) {
|
|
1392
|
+
return " FOR UPDATE NOWAIT";
|
|
1393
|
+
}
|
|
1394
|
+
else {
|
|
1395
|
+
throw new LockNotSupportedOnGivenDriverError_1.LockNotSupportedOnGivenDriverError();
|
|
1396
|
+
}
|
|
1397
|
+
case "for_no_key_update":
|
|
1398
|
+
if (driver.options.type === "postgres" ||
|
|
1399
|
+
driver.options.type === "cockroachdb") {
|
|
1400
|
+
return " FOR NO KEY UPDATE" + lockTablesClause;
|
|
1401
|
+
}
|
|
1402
|
+
else {
|
|
1403
|
+
throw new LockNotSupportedOnGivenDriverError_1.LockNotSupportedOnGivenDriverError();
|
|
1404
|
+
}
|
|
1321
1405
|
default:
|
|
1322
1406
|
return "";
|
|
1323
1407
|
}
|
|
1324
|
-
}
|
|
1408
|
+
}
|
|
1325
1409
|
/**
|
|
1326
1410
|
* Creates "HAVING" part of SQL query.
|
|
1327
1411
|
*/
|
|
1328
|
-
|
|
1329
|
-
var _this = this;
|
|
1412
|
+
createHavingExpression() {
|
|
1330
1413
|
if (!this.expressionMap.havings || !this.expressionMap.havings.length)
|
|
1331
1414
|
return "";
|
|
1332
|
-
|
|
1415
|
+
const conditions = this.expressionMap.havings
|
|
1416
|
+
.map((having, index) => {
|
|
1333
1417
|
switch (having.type) {
|
|
1334
1418
|
case "and":
|
|
1335
|
-
return (index > 0 ? "AND " : "") +
|
|
1419
|
+
return ((index > 0 ? "AND " : "") +
|
|
1420
|
+
this.replacePropertyNames(having.condition));
|
|
1336
1421
|
case "or":
|
|
1337
|
-
return (index > 0 ? "OR " : "") +
|
|
1422
|
+
return ((index > 0 ? "OR " : "") +
|
|
1423
|
+
this.replacePropertyNames(having.condition));
|
|
1338
1424
|
default:
|
|
1339
|
-
return
|
|
1425
|
+
return this.replacePropertyNames(having.condition);
|
|
1340
1426
|
}
|
|
1341
|
-
})
|
|
1427
|
+
})
|
|
1428
|
+
.join(" ");
|
|
1342
1429
|
if (!conditions.length)
|
|
1343
1430
|
return "";
|
|
1344
1431
|
return " HAVING " + conditions;
|
|
1345
|
-
}
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
var columns = [];
|
|
1432
|
+
}
|
|
1433
|
+
buildEscapedEntityColumnSelects(aliasName, metadata) {
|
|
1434
|
+
const hasMainAlias = this.expressionMap.selects.some((select) => select.selection === aliasName);
|
|
1435
|
+
const columns = [];
|
|
1350
1436
|
if (hasMainAlias) {
|
|
1351
|
-
columns.push
|
|
1437
|
+
columns.push(...metadata.columns.filter((column) => column.isSelect === true));
|
|
1352
1438
|
}
|
|
1353
|
-
columns.push
|
|
1354
|
-
return
|
|
1355
|
-
|
|
1439
|
+
columns.push(...metadata.columns.filter((column) => {
|
|
1440
|
+
return this.expressionMap.selects.some((select) => select.selection ===
|
|
1441
|
+
aliasName + "." + column.propertyPath);
|
|
1442
|
+
}));
|
|
1356
1443
|
// if user used partial selection and did not select some primary columns which are required to be selected
|
|
1357
1444
|
// we select those primary columns and mark them as "virtual". Later virtual column values will be removed from final entity
|
|
1358
1445
|
// to make entity contain exactly what user selected
|
|
1359
|
-
if (columns.length === 0)
|
|
1446
|
+
if (columns.length === 0)
|
|
1447
|
+
// however not in the case when nothing (even partial) was selected from this target (for example joins without selection)
|
|
1360
1448
|
return [];
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1449
|
+
const nonSelectedPrimaryColumns = this.expressionMap.queryEntity
|
|
1450
|
+
? metadata.primaryColumns.filter((primaryColumn) => columns.indexOf(primaryColumn) === -1)
|
|
1451
|
+
: [];
|
|
1452
|
+
const allColumns = [...columns, ...nonSelectedPrimaryColumns];
|
|
1453
|
+
const finalSelects = [];
|
|
1454
|
+
allColumns.forEach((column) => {
|
|
1455
|
+
let selectionPath = this.escape(aliasName) + "." + this.escape(column.databaseName);
|
|
1456
|
+
if (this.connection.driver.spatialTypes.indexOf(column.type) !== -1) {
|
|
1457
|
+
if (DriverUtils_1.DriverUtils.isMySQLFamily(this.connection.driver) ||
|
|
1458
|
+
this.connection.driver.options.type === "aurora-mysql") {
|
|
1459
|
+
const useLegacy = this.connection.driver.options.legacySpatialSupport;
|
|
1460
|
+
const asText = useLegacy ? "AsText" : "ST_AsText";
|
|
1461
|
+
selectionPath = `${asText}(${selectionPath})`;
|
|
1371
1462
|
}
|
|
1372
|
-
if (
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1463
|
+
if (this.connection.driver.options.type === "postgres")
|
|
1464
|
+
if (column.precision) {
|
|
1465
|
+
// cast to JSON to trigger parsing in the driver
|
|
1466
|
+
selectionPath = `ST_AsGeoJSON(${selectionPath}, ${column.precision})::json`;
|
|
1467
|
+
}
|
|
1468
|
+
else {
|
|
1469
|
+
selectionPath = `ST_AsGeoJSON(${selectionPath})::json`;
|
|
1470
|
+
}
|
|
1471
|
+
if (this.connection.driver.options.type === "mssql")
|
|
1472
|
+
selectionPath = `${selectionPath}.ToString()`;
|
|
1473
|
+
}
|
|
1474
|
+
const selections = this.expressionMap.selects.filter((select) => select.selection === aliasName + "." + column.propertyPath);
|
|
1475
|
+
if (selections.length) {
|
|
1476
|
+
selections.forEach((selection) => {
|
|
1477
|
+
finalSelects.push({
|
|
1478
|
+
selection: selectionPath,
|
|
1479
|
+
aliasName: selection.aliasName
|
|
1480
|
+
? selection.aliasName
|
|
1481
|
+
: DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, aliasName, column.databaseName),
|
|
1482
|
+
// todo: need to keep in mind that custom selection.aliasName breaks hydrator. fix it later!
|
|
1483
|
+
virtual: selection.virtual,
|
|
1484
|
+
});
|
|
1485
|
+
});
|
|
1486
|
+
}
|
|
1487
|
+
else {
|
|
1488
|
+
finalSelects.push({
|
|
1489
|
+
selection: selectionPath,
|
|
1490
|
+
aliasName: DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, aliasName, column.databaseName),
|
|
1491
|
+
// todo: need to keep in mind that custom selection.aliasName breaks hydrator. fix it later!
|
|
1492
|
+
virtual: hasMainAlias,
|
|
1493
|
+
});
|
|
1494
|
+
}
|
|
1384
1495
|
});
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1496
|
+
return finalSelects;
|
|
1497
|
+
}
|
|
1498
|
+
findEntityColumnSelects(aliasName, metadata) {
|
|
1499
|
+
const mainSelect = this.expressionMap.selects.find((select) => select.selection === aliasName);
|
|
1388
1500
|
if (mainSelect)
|
|
1389
1501
|
return [mainSelect];
|
|
1390
|
-
return this.expressionMap.selects.filter(
|
|
1391
|
-
return metadata.columns.some(
|
|
1502
|
+
return this.expressionMap.selects.filter((select) => {
|
|
1503
|
+
return metadata.columns.some((column) => select.selection === aliasName + "." + column.propertyPath);
|
|
1392
1504
|
});
|
|
1393
|
-
}
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1505
|
+
}
|
|
1506
|
+
computeCountExpression() {
|
|
1507
|
+
const mainAlias = this.expressionMap.mainAlias.name; // todo: will this work with "fromTableName"?
|
|
1508
|
+
const metadata = this.expressionMap.mainAlias.metadata;
|
|
1509
|
+
const primaryColumns = metadata.primaryColumns;
|
|
1510
|
+
const distinctAlias = this.escape(mainAlias);
|
|
1511
|
+
// If we aren't doing anything that will create a join, we can use a simpler `COUNT` instead
|
|
1512
|
+
// so we prevent poor query patterns in the most likely cases
|
|
1513
|
+
if (this.expressionMap.joinAttributes.length === 0 &&
|
|
1514
|
+
this.expressionMap.relationIdAttributes.length === 0 &&
|
|
1515
|
+
this.expressionMap.relationCountAttributes.length === 0) {
|
|
1516
|
+
return "COUNT(1)";
|
|
1517
|
+
}
|
|
1518
|
+
// For everything else, we'll need to do some hackery to get the correct count values.
|
|
1519
|
+
if (this.connection.driver.options.type === "cockroachdb" ||
|
|
1520
|
+
this.connection.driver.options.type === "postgres") {
|
|
1521
|
+
// Postgres and CockroachDB can pass multiple parameters to the `DISTINCT` function
|
|
1522
|
+
// https://www.postgresql.org/docs/9.5/sql-select.html#SQL-DISTINCT
|
|
1523
|
+
return ("COUNT(DISTINCT(" +
|
|
1524
|
+
primaryColumns
|
|
1525
|
+
.map((c) => `${distinctAlias}.${this.escape(c.databaseName)}`)
|
|
1526
|
+
.join(", ") +
|
|
1527
|
+
"))");
|
|
1528
|
+
}
|
|
1529
|
+
if (DriverUtils_1.DriverUtils.isMySQLFamily(this.connection.driver)) {
|
|
1530
|
+
// MySQL & MariaDB can pass multiple parameters to the `DISTINCT` language construct
|
|
1531
|
+
// https://mariadb.com/kb/en/count-distinct/
|
|
1532
|
+
return ("COUNT(DISTINCT " +
|
|
1533
|
+
primaryColumns
|
|
1534
|
+
.map((c) => `${distinctAlias}.${this.escape(c.databaseName)}`)
|
|
1535
|
+
.join(", ") +
|
|
1536
|
+
")");
|
|
1537
|
+
}
|
|
1538
|
+
if (this.connection.driver.options.type === "mssql") {
|
|
1539
|
+
// SQL Server has gotta be different from everyone else. They don't support
|
|
1540
|
+
// distinct counting multiple columns & they don't have the same operator
|
|
1541
|
+
// characteristic for concatenating, so we gotta use the `CONCAT` function.
|
|
1542
|
+
// However, If it's exactly 1 column we can omit the `CONCAT` for better performance.
|
|
1543
|
+
const columnsExpression = primaryColumns
|
|
1544
|
+
.map((primaryColumn) => `${distinctAlias}.${this.escape(primaryColumn.databaseName)}`)
|
|
1545
|
+
.join(", '|;|', ");
|
|
1546
|
+
if (primaryColumns.length === 1) {
|
|
1547
|
+
return `COUNT(DISTINCT(${columnsExpression}))`;
|
|
1548
|
+
}
|
|
1549
|
+
return `COUNT(DISTINCT(CONCAT(${columnsExpression})))`;
|
|
1550
|
+
}
|
|
1551
|
+
// If all else fails, fall back to a `COUNT` and `DISTINCT` across all the primary columns concatenated.
|
|
1552
|
+
// Per the SQL spec, this is the canonical string concatenation mechanism which is most
|
|
1553
|
+
// likely to work across servers implementing the SQL standard.
|
|
1554
|
+
// Please note, if there is only one primary column that the concatenation does not occur in this
|
|
1555
|
+
// query and the query is a standard `COUNT DISTINCT` in that case.
|
|
1556
|
+
return (`COUNT(DISTINCT(` +
|
|
1557
|
+
primaryColumns
|
|
1558
|
+
.map((c) => `${distinctAlias}.${this.escape(c.databaseName)}`)
|
|
1559
|
+
.join(" || '|;|' || ") +
|
|
1560
|
+
"))");
|
|
1561
|
+
}
|
|
1562
|
+
async executeCountQuery(queryRunner) {
|
|
1563
|
+
const countSql = this.computeCountExpression();
|
|
1564
|
+
const results = await this.clone()
|
|
1565
|
+
.orderBy()
|
|
1566
|
+
.groupBy()
|
|
1567
|
+
.offset(undefined)
|
|
1568
|
+
.limit(undefined)
|
|
1569
|
+
.skip(undefined)
|
|
1570
|
+
.take(undefined)
|
|
1571
|
+
.select(countSql, "cnt")
|
|
1572
|
+
.setOption("disable-global-order")
|
|
1573
|
+
.loadRawResults(queryRunner);
|
|
1574
|
+
if (!results || !results[0] || !results[0]["cnt"])
|
|
1575
|
+
return 0;
|
|
1576
|
+
return parseInt(results[0]["cnt"]);
|
|
1577
|
+
}
|
|
1578
|
+
applyFindOptions() {
|
|
1579
|
+
// todo: convert relations: string[] to object map to simplify code
|
|
1580
|
+
// todo: same with selects
|
|
1581
|
+
if (this.expressionMap.mainAlias.metadata) {
|
|
1582
|
+
if (this.findOptions.relationLoadStrategy) {
|
|
1583
|
+
this.expressionMap.relationLoadStrategy =
|
|
1584
|
+
this.findOptions.relationLoadStrategy;
|
|
1585
|
+
}
|
|
1586
|
+
if (this.findOptions.comment) {
|
|
1587
|
+
this.comment(this.findOptions.comment);
|
|
1588
|
+
}
|
|
1589
|
+
if (this.findOptions.withDeleted) {
|
|
1590
|
+
this.withDeleted();
|
|
1591
|
+
}
|
|
1592
|
+
if (this.findOptions.select) {
|
|
1593
|
+
const select = Array.isArray(this.findOptions.select)
|
|
1594
|
+
? OrmUtils_1.OrmUtils.propertyPathsToTruthyObject(this.findOptions.select)
|
|
1595
|
+
: this.findOptions.select;
|
|
1596
|
+
this.buildSelect(select, this.expressionMap.mainAlias.metadata, this.expressionMap.mainAlias.name);
|
|
1597
|
+
}
|
|
1598
|
+
if (this.selects.length) {
|
|
1599
|
+
this.select(this.selects);
|
|
1600
|
+
}
|
|
1601
|
+
this.selects = [];
|
|
1602
|
+
if (this.findOptions.relations) {
|
|
1603
|
+
const relations = Array.isArray(this.findOptions.relations)
|
|
1604
|
+
? OrmUtils_1.OrmUtils.propertyPathsToTruthyObject(this.findOptions.relations)
|
|
1605
|
+
: this.findOptions.relations;
|
|
1606
|
+
this.buildRelations(relations, typeof this.findOptions.select === "object"
|
|
1607
|
+
? this.findOptions.select
|
|
1608
|
+
: undefined, this.expressionMap.mainAlias.metadata, this.expressionMap.mainAlias.name);
|
|
1609
|
+
if (this.findOptions.loadEagerRelations !== false &&
|
|
1610
|
+
this.expressionMap.relationLoadStrategy === "join") {
|
|
1611
|
+
this.buildEagerRelations(relations, typeof this.findOptions.select === "object"
|
|
1612
|
+
? this.findOptions
|
|
1613
|
+
.select
|
|
1614
|
+
: undefined, this.expressionMap.mainAlias.metadata, this.expressionMap.mainAlias.name);
|
|
1615
|
+
}
|
|
1616
|
+
}
|
|
1617
|
+
if (this.selects.length) {
|
|
1618
|
+
console.log("adding following selects: ", this.selects);
|
|
1619
|
+
this.addSelect(this.selects);
|
|
1620
|
+
}
|
|
1621
|
+
if (this.findOptions.where) {
|
|
1400
1622
|
this.conditions = this.buildWhere(this.findOptions.where, this.expressionMap.mainAlias.metadata, this.expressionMap.mainAlias.name);
|
|
1401
|
-
|
|
1623
|
+
if (this.conditions.length)
|
|
1624
|
+
this.andWhere(this.conditions.substr(0, 1) !== "("
|
|
1625
|
+
? "(" + this.conditions + ")"
|
|
1626
|
+
: this.conditions); // temporary and where and braces
|
|
1627
|
+
}
|
|
1628
|
+
if (this.findOptions.order) {
|
|
1402
1629
|
this.buildOrder(this.findOptions.order, this.expressionMap.mainAlias.metadata, this.expressionMap.mainAlias.name);
|
|
1403
|
-
|
|
1404
|
-
this.buildRelations(this.findOptions.relations, this.expressionMap.mainAlias.metadata);
|
|
1405
|
-
if (this.selects.length)
|
|
1406
|
-
this.select(this.selects);
|
|
1630
|
+
}
|
|
1407
1631
|
// apply joins
|
|
1408
1632
|
if (this.joins.length) {
|
|
1409
|
-
this.joins.forEach(
|
|
1410
|
-
if (join.select) {
|
|
1633
|
+
this.joins.forEach((join) => {
|
|
1634
|
+
if (join.select && !join.selection) {
|
|
1635
|
+
// if (join.selection) {
|
|
1636
|
+
//
|
|
1637
|
+
// } else {
|
|
1411
1638
|
if (join.type === "inner") {
|
|
1412
|
-
|
|
1639
|
+
this.innerJoinAndSelect(`${join.parentAlias}.${join.relationMetadata.propertyPath}`, join.alias);
|
|
1413
1640
|
}
|
|
1414
1641
|
else {
|
|
1415
|
-
|
|
1642
|
+
this.leftJoinAndSelect(`${join.parentAlias}.${join.relationMetadata.propertyPath}`, join.alias);
|
|
1416
1643
|
}
|
|
1644
|
+
// }
|
|
1417
1645
|
}
|
|
1418
1646
|
else {
|
|
1419
1647
|
if (join.type === "inner") {
|
|
1420
|
-
|
|
1648
|
+
this.innerJoin(`${join.parentAlias}.${join.relationMetadata.propertyPath}`, join.alias);
|
|
1421
1649
|
}
|
|
1422
1650
|
else {
|
|
1423
|
-
|
|
1651
|
+
this.leftJoin(`${join.parentAlias}.${join.relationMetadata.propertyPath}`, join.alias);
|
|
1424
1652
|
}
|
|
1425
1653
|
}
|
|
1654
|
+
// if (join.select) {
|
|
1655
|
+
// if (this.findOptions.loadEagerRelations !== false) {
|
|
1656
|
+
// FindOptionsUtils.joinEagerRelations(
|
|
1657
|
+
// this,
|
|
1658
|
+
// join.alias,
|
|
1659
|
+
// join.relationMetadata.inverseEntityMetadata
|
|
1660
|
+
// );
|
|
1661
|
+
// }
|
|
1662
|
+
// }
|
|
1426
1663
|
});
|
|
1427
1664
|
}
|
|
1428
|
-
if (this.conditions.length)
|
|
1429
|
-
|
|
1665
|
+
// if (this.conditions.length) {
|
|
1666
|
+
// this.where(this.conditions.join(" AND "));
|
|
1667
|
+
// }
|
|
1430
1668
|
// apply offset
|
|
1431
1669
|
if (this.findOptions.skip !== undefined) {
|
|
1432
|
-
if (this.findOptions.pagination === false) {
|
|
1433
|
-
|
|
1434
|
-
}
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
}
|
|
1670
|
+
// if (this.findOptions.options && this.findOptions.options.pagination === false) {
|
|
1671
|
+
// this.offset(this.findOptions.skip);
|
|
1672
|
+
// } else {
|
|
1673
|
+
this.skip(this.findOptions.skip);
|
|
1674
|
+
// }
|
|
1438
1675
|
}
|
|
1439
1676
|
// apply limit
|
|
1440
1677
|
if (this.findOptions.take !== undefined) {
|
|
1441
|
-
if (this.findOptions.pagination === false) {
|
|
1442
|
-
|
|
1443
|
-
}
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
}
|
|
1678
|
+
// if (this.findOptions.options && this.findOptions.options.pagination === false) {
|
|
1679
|
+
// this.limit(this.findOptions.take);
|
|
1680
|
+
// } else {
|
|
1681
|
+
this.take(this.findOptions.take);
|
|
1682
|
+
// }
|
|
1447
1683
|
}
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
});
|
|
1684
|
+
// apply caching options
|
|
1685
|
+
if (typeof this.findOptions.cache === "number") {
|
|
1686
|
+
this.cache(this.findOptions.cache);
|
|
1452
1687
|
}
|
|
1453
|
-
if (this.
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1688
|
+
else if (typeof this.findOptions.cache === "boolean") {
|
|
1689
|
+
this.cache(this.findOptions.cache);
|
|
1690
|
+
}
|
|
1691
|
+
else if (typeof this.findOptions.cache === "object") {
|
|
1692
|
+
this.cache(this.findOptions.cache.id, this.findOptions.cache.milliseconds);
|
|
1693
|
+
}
|
|
1694
|
+
if (this.findOptions.join) {
|
|
1695
|
+
if (this.findOptions.join.leftJoin)
|
|
1696
|
+
Object.keys(this.findOptions.join.leftJoin).forEach((key) => {
|
|
1697
|
+
this.leftJoin(this.findOptions.join.leftJoin[key], key);
|
|
1698
|
+
});
|
|
1699
|
+
if (this.findOptions.join.innerJoin)
|
|
1700
|
+
Object.keys(this.findOptions.join.innerJoin).forEach((key) => {
|
|
1701
|
+
this.innerJoin(this.findOptions.join.innerJoin[key], key);
|
|
1702
|
+
});
|
|
1703
|
+
if (this.findOptions.join.leftJoinAndSelect)
|
|
1704
|
+
Object.keys(this.findOptions.join.leftJoinAndSelect).forEach((key) => {
|
|
1705
|
+
this.leftJoinAndSelect(this.findOptions.join.leftJoinAndSelect[key], key);
|
|
1706
|
+
});
|
|
1707
|
+
if (this.findOptions.join.innerJoinAndSelect)
|
|
1708
|
+
Object.keys(this.findOptions.join.innerJoinAndSelect).forEach((key) => {
|
|
1709
|
+
this.innerJoinAndSelect(this.findOptions.join.innerJoinAndSelect[key], key);
|
|
1466
1710
|
});
|
|
1467
|
-
|
|
1468
|
-
|
|
1711
|
+
}
|
|
1712
|
+
if (this.findOptions.lock) {
|
|
1713
|
+
if (this.findOptions.lock.mode === "optimistic") {
|
|
1714
|
+
this.setLock(this.findOptions.lock.mode, this.findOptions.lock.version);
|
|
1715
|
+
}
|
|
1716
|
+
else if (this.findOptions.lock.mode === "pessimistic_read" ||
|
|
1717
|
+
this.findOptions.lock.mode === "pessimistic_write" ||
|
|
1718
|
+
this.findOptions.lock.mode === "dirty_read" ||
|
|
1719
|
+
this.findOptions.lock.mode ===
|
|
1720
|
+
"pessimistic_partial_write" ||
|
|
1721
|
+
this.findOptions.lock.mode ===
|
|
1722
|
+
"pessimistic_write_or_fail" ||
|
|
1723
|
+
this.findOptions.lock.mode === "for_no_key_update") {
|
|
1724
|
+
const tableNames = this.findOptions.lock.tables
|
|
1725
|
+
? this.findOptions.lock.tables.map((table) => {
|
|
1726
|
+
const tableAlias = this.expressionMap.aliases.find((alias) => {
|
|
1727
|
+
return (alias.metadata
|
|
1728
|
+
.tableNameWithoutPrefix === table);
|
|
1729
|
+
});
|
|
1730
|
+
if (!tableAlias) {
|
|
1731
|
+
throw new error_1.TypeORMError(`"${table}" is not part of this query`);
|
|
1732
|
+
}
|
|
1733
|
+
return this.escape(tableAlias.name);
|
|
1734
|
+
})
|
|
1735
|
+
: undefined;
|
|
1736
|
+
this.setLock(this.findOptions.lock.mode, undefined, tableNames);
|
|
1737
|
+
}
|
|
1469
1738
|
}
|
|
1470
1739
|
if (this.findOptions.loadRelationIds === true) {
|
|
1471
1740
|
this.loadAllRelationIds();
|
|
1472
1741
|
}
|
|
1473
|
-
else if (this.findOptions.loadRelationIds
|
|
1742
|
+
else if (typeof this.findOptions.loadRelationIds === "object") {
|
|
1474
1743
|
this.loadAllRelationIds(this.findOptions.loadRelationIds);
|
|
1475
1744
|
}
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
SelectQueryBuilder.prototype.applyFindOptionsOrmOptions = function (findOptions) {
|
|
1479
|
-
if (this.expressionMap.mainAlias.metadata) {
|
|
1480
|
-
// apply caching options
|
|
1481
|
-
if (typeof findOptions.cache === "number") {
|
|
1482
|
-
this.cache(findOptions.cache);
|
|
1483
|
-
}
|
|
1484
|
-
else if (typeof findOptions.cache === "boolean") {
|
|
1485
|
-
this.cache(findOptions.cache);
|
|
1745
|
+
if (this.findOptions.loadEagerRelations !== false) {
|
|
1746
|
+
FindOptionsUtils_1.FindOptionsUtils.joinEagerRelations(this, this.expressionMap.mainAlias.name, this.expressionMap.mainAlias.metadata);
|
|
1486
1747
|
}
|
|
1487
|
-
|
|
1488
|
-
this.
|
|
1748
|
+
if (this.findOptions.transaction === true) {
|
|
1749
|
+
this.expressionMap.useTransaction = true;
|
|
1489
1750
|
}
|
|
1490
|
-
if (
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
if (
|
|
1497
|
-
|
|
1498
|
-
|
|
1751
|
+
// if (this.orderBys.length) {
|
|
1752
|
+
// this.orderBys.forEach(orderBy => {
|
|
1753
|
+
// this.addOrderBy(orderBy.alias, orderBy.direction, orderBy.nulls);
|
|
1754
|
+
// });
|
|
1755
|
+
// }
|
|
1756
|
+
// todo
|
|
1757
|
+
// if (this.options.options && this.options.options.eagerRelations) {
|
|
1758
|
+
// this.queryBuilder
|
|
1759
|
+
// }
|
|
1760
|
+
// todo
|
|
1761
|
+
// if (this.findOptions.options && this.findOptions.listeners === false) {
|
|
1762
|
+
// this.callListeners(false);
|
|
1763
|
+
// }
|
|
1764
|
+
}
|
|
1765
|
+
}
|
|
1766
|
+
/**
|
|
1767
|
+
* Executes sql generated by query builder and returns object with raw results and entities created from them.
|
|
1768
|
+
*/
|
|
1769
|
+
async executeEntitiesAndRawResults(queryRunner) {
|
|
1770
|
+
if (!this.expressionMap.mainAlias)
|
|
1771
|
+
throw new error_1.TypeORMError(`Alias is not set. Use "from" method to set an alias.`);
|
|
1772
|
+
if ((this.expressionMap.lockMode === "pessimistic_read" ||
|
|
1773
|
+
this.expressionMap.lockMode === "pessimistic_write" ||
|
|
1774
|
+
this.expressionMap.lockMode === "pessimistic_partial_write" ||
|
|
1775
|
+
this.expressionMap.lockMode === "pessimistic_write_or_fail" ||
|
|
1776
|
+
this.expressionMap.lockMode === "for_no_key_update") &&
|
|
1777
|
+
!queryRunner.isTransactionActive)
|
|
1778
|
+
throw new PessimisticLockTransactionRequiredError_1.PessimisticLockTransactionRequiredError();
|
|
1779
|
+
if (this.expressionMap.lockMode === "optimistic") {
|
|
1780
|
+
const metadata = this.expressionMap.mainAlias.metadata;
|
|
1781
|
+
if (!metadata.versionColumn && !metadata.updateDateColumn)
|
|
1782
|
+
throw new NoVersionOrUpdateDateColumnError_1.NoVersionOrUpdateDateColumnError(metadata.name);
|
|
1783
|
+
}
|
|
1784
|
+
const relationIdLoader = new RelationIdLoader_1.RelationIdLoader(this.connection, queryRunner, this.expressionMap.relationIdAttributes);
|
|
1785
|
+
const relationCountLoader = new RelationCountLoader_1.RelationCountLoader(this.connection, queryRunner, this.expressionMap.relationCountAttributes);
|
|
1786
|
+
const relationIdMetadataTransformer = new RelationIdMetadataToAttributeTransformer_1.RelationIdMetadataToAttributeTransformer(this.expressionMap);
|
|
1787
|
+
relationIdMetadataTransformer.transform();
|
|
1788
|
+
const relationCountMetadataTransformer = new RelationCountMetadataToAttributeTransformer_1.RelationCountMetadataToAttributeTransformer(this.expressionMap);
|
|
1789
|
+
relationCountMetadataTransformer.transform();
|
|
1790
|
+
let rawResults = [], entities = [];
|
|
1791
|
+
// for pagination enabled (e.g. skip and take) its much more complicated - its a special process
|
|
1792
|
+
// where we make two queries to find the data we need
|
|
1793
|
+
// first query find ids in skip and take range
|
|
1794
|
+
// and second query loads the actual data in given ids range
|
|
1795
|
+
if ((this.expressionMap.skip || this.expressionMap.take) &&
|
|
1796
|
+
this.expressionMap.joinAttributes.length > 0) {
|
|
1797
|
+
// we are skipping order by here because its not working in subqueries anyway
|
|
1798
|
+
// to make order by working we need to apply it on a distinct query
|
|
1799
|
+
const [selects, orderBys] = this.createOrderByCombinedWithSelectExpression("distinctAlias");
|
|
1800
|
+
const metadata = this.expressionMap.mainAlias.metadata;
|
|
1801
|
+
const mainAliasName = this.expressionMap.mainAlias.name;
|
|
1802
|
+
const querySelects = metadata.primaryColumns.map((primaryColumn) => {
|
|
1803
|
+
const distinctAlias = this.escape("distinctAlias");
|
|
1804
|
+
const columnAlias = this.escape(DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, mainAliasName, primaryColumn.databaseName));
|
|
1805
|
+
if (!orderBys[columnAlias])
|
|
1806
|
+
// make sure we aren't overriding user-defined order in inverse direction
|
|
1807
|
+
orderBys[columnAlias] = "ASC";
|
|
1808
|
+
const alias = DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, "ids_" + mainAliasName, primaryColumn.databaseName);
|
|
1809
|
+
return `${distinctAlias}.${columnAlias} as "${alias}"`;
|
|
1810
|
+
});
|
|
1811
|
+
rawResults = await new SelectQueryBuilder(this.connection, queryRunner)
|
|
1812
|
+
.select(`DISTINCT ${querySelects.join(", ")}`)
|
|
1813
|
+
.addSelect(selects)
|
|
1814
|
+
.from(`(${this.clone().orderBy().getQuery()})`, "distinctAlias")
|
|
1815
|
+
.offset(this.expressionMap.skip)
|
|
1816
|
+
.limit(this.expressionMap.take)
|
|
1817
|
+
.orderBy(orderBys)
|
|
1818
|
+
.cache(this.expressionMap.cache
|
|
1819
|
+
? this.expressionMap.cache
|
|
1820
|
+
: this.expressionMap.cacheId, this.expressionMap.cacheDuration)
|
|
1821
|
+
.setParameters(this.getParameters())
|
|
1822
|
+
.setNativeParameters(this.expressionMap.nativeParameters)
|
|
1823
|
+
.getRawMany();
|
|
1824
|
+
if (rawResults.length > 0) {
|
|
1825
|
+
let condition = "";
|
|
1826
|
+
const parameters = {};
|
|
1827
|
+
if (metadata.hasMultiplePrimaryKeys) {
|
|
1828
|
+
condition = rawResults
|
|
1829
|
+
.map((result, index) => {
|
|
1830
|
+
return metadata.primaryColumns
|
|
1831
|
+
.map((primaryColumn) => {
|
|
1832
|
+
const paramKey = `orm_distinct_ids_${index}_${primaryColumn.databaseName}`;
|
|
1833
|
+
parameters[paramKey] =
|
|
1834
|
+
result[`ids_${mainAliasName}_${primaryColumn.databaseName}`];
|
|
1835
|
+
return `${mainAliasName}.${primaryColumn.propertyPath}=:${paramKey}`;
|
|
1836
|
+
})
|
|
1837
|
+
.join(" AND ");
|
|
1838
|
+
})
|
|
1839
|
+
.join(" OR ");
|
|
1499
1840
|
}
|
|
1500
1841
|
else {
|
|
1501
|
-
|
|
1842
|
+
const alias = DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, "ids_" + mainAliasName, metadata.primaryColumns[0].databaseName);
|
|
1843
|
+
const ids = rawResults.map((result) => result[alias]);
|
|
1844
|
+
const areAllNumbers = ids.every((id) => typeof id === "number");
|
|
1845
|
+
if (areAllNumbers) {
|
|
1846
|
+
// fixes #190. if all numbers then its safe to perform query without parameter
|
|
1847
|
+
condition = `${mainAliasName}.${metadata.primaryColumns[0].propertyPath} IN (${ids.join(", ")})`;
|
|
1848
|
+
}
|
|
1849
|
+
else {
|
|
1850
|
+
parameters["orm_distinct_ids"] = ids;
|
|
1851
|
+
condition =
|
|
1852
|
+
mainAliasName +
|
|
1853
|
+
"." +
|
|
1854
|
+
metadata.primaryColumns[0].propertyPath +
|
|
1855
|
+
" IN (:...orm_distinct_ids)";
|
|
1856
|
+
}
|
|
1502
1857
|
}
|
|
1858
|
+
rawResults = await this.clone()
|
|
1859
|
+
.mergeExpressionMap({
|
|
1860
|
+
extraAppendedAndWhereCondition: condition,
|
|
1861
|
+
})
|
|
1862
|
+
.setParameters(parameters)
|
|
1863
|
+
.loadRawResults(queryRunner);
|
|
1503
1864
|
}
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
}
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
return [2 /*return*/, parseInt(results[0]["cnt"])];
|
|
1556
|
-
}
|
|
1557
|
-
});
|
|
1558
|
-
});
|
|
1559
|
-
};
|
|
1560
|
-
/**
|
|
1561
|
-
* Executes sql generated by query builder and returns object with raw results and entities created from them.
|
|
1562
|
-
*/
|
|
1563
|
-
SelectQueryBuilder.prototype.executeEntitiesAndRawResults = function (queryRunner) {
|
|
1564
|
-
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
1565
|
-
var cloneQb1, cloneQb2, metadata, relationIdLoader, relationCountLoader, relationIdMetadataTransformer, relationCountMetadataTransformer, rawResults, entities, _a, selects, orderBys_1, metadata_1, mainAliasName_1, querySelects, clonnedQb, condition, parameters_1, ids, areAllNumbers, rawRelationIdResults, rawRelationCountResults, transformer, broadcastResult;
|
|
1566
|
-
var _this = this;
|
|
1567
|
-
return tslib_1.__generator(this, function (_b) {
|
|
1568
|
-
switch (_b.label) {
|
|
1569
|
-
case 0:
|
|
1570
|
-
if (!this.expressionMap.mainAlias)
|
|
1571
|
-
throw new Error("Alias is not set. Use \"from\" method to set an alias.");
|
|
1572
|
-
cloneQb1 = this.clone();
|
|
1573
|
-
cloneQb2 = this.clone();
|
|
1574
|
-
if ((this.expressionMap.lockMode === "pessimistic_read" || this.expressionMap.lockMode === "pessimistic_write") && !queryRunner.isTransactionActive)
|
|
1575
|
-
throw new PessimisticLockTransactionRequiredError_1.PessimisticLockTransactionRequiredError();
|
|
1576
|
-
if (this.expressionMap.lockMode === "optimistic") {
|
|
1577
|
-
metadata = this.expressionMap.mainAlias.metadata;
|
|
1578
|
-
if (!metadata.versionColumn && !metadata.updateDateColumn)
|
|
1579
|
-
throw new NoVersionOrUpdateDateColumnError_1.NoVersionOrUpdateDateColumnError(metadata.name);
|
|
1580
|
-
}
|
|
1581
|
-
relationIdLoader = new RelationIdLoader_1.RelationIdLoader(this.connection, queryRunner, this.expressionMap.relationIdAttributes);
|
|
1582
|
-
relationCountLoader = new RelationCountLoader_1.RelationCountLoader(this.connection, queryRunner, this.expressionMap.relationCountAttributes);
|
|
1583
|
-
relationIdMetadataTransformer = new RelationIdMetadataToAttributeTransformer_1.RelationIdMetadataToAttributeTransformer(this.expressionMap);
|
|
1584
|
-
relationIdMetadataTransformer.transform();
|
|
1585
|
-
relationCountMetadataTransformer = new RelationCountMetadataToAttributeTransformer_1.RelationCountMetadataToAttributeTransformer(this.expressionMap);
|
|
1586
|
-
relationCountMetadataTransformer.transform();
|
|
1587
|
-
rawResults = [], entities = [];
|
|
1588
|
-
if (!((this.expressionMap.skip || this.expressionMap.take) && this.expressionMap.joinAttributes.length > 0)) return [3 /*break*/, 4];
|
|
1589
|
-
_a = tslib_1.__read(this.createOrderByCombinedWithSelectExpression("distinctAlias"), 2), selects = _a[0], orderBys_1 = _a[1];
|
|
1590
|
-
metadata_1 = this.expressionMap.mainAlias.metadata;
|
|
1591
|
-
mainAliasName_1 = this.expressionMap.mainAlias.name;
|
|
1592
|
-
querySelects = metadata_1.primaryColumns.map(function (primaryColumn) {
|
|
1593
|
-
var distinctAlias = _this.escape("distinctAlias");
|
|
1594
|
-
var columnAlias = _this.escape(DriverUtils_1.DriverUtils.buildColumnAlias(_this.connection.driver, mainAliasName_1, primaryColumn.databaseName));
|
|
1595
|
-
if (!orderBys_1[columnAlias]) // make sure we aren't overriding user-defined order in inverse direction
|
|
1596
|
-
orderBys_1[columnAlias] = "ASC";
|
|
1597
|
-
return distinctAlias + "." + columnAlias + " as \"ids_" + DriverUtils_1.DriverUtils.buildColumnAlias(_this.connection.driver, mainAliasName_1, primaryColumn.databaseName) + "\"";
|
|
1598
|
-
});
|
|
1599
|
-
clonnedQb = cloneQb1
|
|
1600
|
-
// .setFindOptions({
|
|
1601
|
-
// select: this.findOptions.select,
|
|
1602
|
-
// relations: this.findOptions.relations,
|
|
1603
|
-
// options: this.findOptions.options,
|
|
1604
|
-
// where: this.findOptions.where
|
|
1605
|
-
// })
|
|
1606
|
-
.orderBy();
|
|
1607
|
-
return [4 /*yield*/, new SelectQueryBuilder(this.connection, queryRunner)
|
|
1608
|
-
.select("DISTINCT " + querySelects.join(", "))
|
|
1609
|
-
.addSelect(selects)
|
|
1610
|
-
.from("(" + clonnedQb.getQuery() + ")", "distinctAlias")
|
|
1611
|
-
.offset(this.expressionMap.skip)
|
|
1612
|
-
.limit(this.expressionMap.take)
|
|
1613
|
-
.orderBy(orderBys_1)
|
|
1614
|
-
.cache(this.expressionMap.cache ? this.expressionMap.cache : this.expressionMap.cacheId, this.expressionMap.cacheDuration)
|
|
1615
|
-
.setParameters(this.getParameters())
|
|
1616
|
-
.setNativeParameters(this.expressionMap.nativeParameters)
|
|
1617
|
-
.getRawMany()];
|
|
1618
|
-
case 1:
|
|
1619
|
-
rawResults = _b.sent();
|
|
1620
|
-
if (!(rawResults.length > 0)) return [3 /*break*/, 3];
|
|
1621
|
-
condition = "";
|
|
1622
|
-
parameters_1 = {};
|
|
1623
|
-
if (metadata_1.hasMultiplePrimaryKeys) {
|
|
1624
|
-
condition = rawResults.map(function (result, index) {
|
|
1625
|
-
return metadata_1.primaryColumns.map(function (primaryColumn) {
|
|
1626
|
-
parameters_1["ids_" + index + "_" + primaryColumn.databaseName] = result["ids_" + mainAliasName_1 + "_" + primaryColumn.databaseName];
|
|
1627
|
-
return mainAliasName_1 + "." + primaryColumn.propertyPath + "=:ids_" + index + "_" + primaryColumn.databaseName;
|
|
1628
|
-
}).join(" AND ");
|
|
1629
|
-
}).join(" OR ");
|
|
1630
|
-
}
|
|
1631
|
-
else {
|
|
1632
|
-
ids = rawResults.map(function (result) { return result["ids_" + DriverUtils_1.DriverUtils.buildColumnAlias(_this.connection.driver, mainAliasName_1, metadata_1.primaryColumns[0].databaseName)]; });
|
|
1633
|
-
areAllNumbers = ids.every(function (id) { return typeof id === "number"; });
|
|
1634
|
-
if (areAllNumbers) {
|
|
1635
|
-
// fixes #190. if all numbers then its safe to perform query without parameter
|
|
1636
|
-
condition = mainAliasName_1 + "." + metadata_1.primaryColumns[0].propertyPath + " IN (" + ids.join(", ") + ")";
|
|
1637
|
-
}
|
|
1638
|
-
else {
|
|
1639
|
-
parameters_1["ids"] = ids;
|
|
1640
|
-
condition = mainAliasName_1 + "." + metadata_1.primaryColumns[0].propertyPath + " IN (:...ids)";
|
|
1641
|
-
}
|
|
1865
|
+
}
|
|
1866
|
+
else {
|
|
1867
|
+
rawResults = await this.loadRawResults(queryRunner);
|
|
1868
|
+
}
|
|
1869
|
+
if (rawResults.length > 0) {
|
|
1870
|
+
// transform raw results into entities
|
|
1871
|
+
const rawRelationIdResults = await relationIdLoader.load(rawResults);
|
|
1872
|
+
const rawRelationCountResults = await relationCountLoader.load(rawResults);
|
|
1873
|
+
const transformer = new RawSqlResultsToEntityTransformer_1.RawSqlResultsToEntityTransformer(this.expressionMap, this.connection.driver, rawRelationIdResults, rawRelationCountResults, this.queryRunner);
|
|
1874
|
+
entities = transformer.transform(rawResults, this.expressionMap.mainAlias);
|
|
1875
|
+
// broadcast all "after load" events
|
|
1876
|
+
if (this.expressionMap.callListeners === true &&
|
|
1877
|
+
this.expressionMap.mainAlias.hasMetadata) {
|
|
1878
|
+
await queryRunner.broadcaster.broadcast("Load", this.expressionMap.mainAlias.metadata, entities);
|
|
1879
|
+
}
|
|
1880
|
+
}
|
|
1881
|
+
if (this.expressionMap.relationLoadStrategy === "query") {
|
|
1882
|
+
await Promise.all(this.relationMetadatas.map(async (relation) => {
|
|
1883
|
+
const relationTarget = relation.inverseEntityMetadata.target;
|
|
1884
|
+
const relationAlias = relation.inverseEntityMetadata.targetName;
|
|
1885
|
+
const select = Array.isArray(this.findOptions.select)
|
|
1886
|
+
? OrmUtils_1.OrmUtils.propertyPathsToTruthyObject(this.findOptions.select)
|
|
1887
|
+
: this.findOptions.select;
|
|
1888
|
+
const relations = Array.isArray(this.findOptions.relations)
|
|
1889
|
+
? OrmUtils_1.OrmUtils.propertyPathsToTruthyObject(this.findOptions.relations)
|
|
1890
|
+
: this.findOptions.relations;
|
|
1891
|
+
const queryBuilder = this.createQueryBuilder()
|
|
1892
|
+
.select(relationAlias)
|
|
1893
|
+
.from(relationTarget, relationAlias)
|
|
1894
|
+
.setFindOptions({
|
|
1895
|
+
select: select
|
|
1896
|
+
? OrmUtils_1.OrmUtils.deepValue(select, relation.propertyPath)
|
|
1897
|
+
: undefined,
|
|
1898
|
+
order: this.findOptions.order
|
|
1899
|
+
? OrmUtils_1.OrmUtils.deepValue(this.findOptions.order, relation.propertyPath)
|
|
1900
|
+
: undefined,
|
|
1901
|
+
relations: relations
|
|
1902
|
+
? OrmUtils_1.OrmUtils.deepValue(relations, relation.propertyPath)
|
|
1903
|
+
: undefined,
|
|
1904
|
+
withDeleted: this.findOptions.withDeleted,
|
|
1905
|
+
relationLoadStrategy: this.findOptions.relationLoadStrategy,
|
|
1906
|
+
});
|
|
1907
|
+
if (entities.length > 0) {
|
|
1908
|
+
const relatedEntityGroups = await this.connection.relationIdLoader.loadManyToManyRelationIdsAndGroup(relation, entities, undefined, queryBuilder);
|
|
1909
|
+
entities.forEach((entity) => {
|
|
1910
|
+
const relatedEntityGroup = relatedEntityGroups.find((group) => group.entity === entity);
|
|
1911
|
+
if (relatedEntityGroup) {
|
|
1912
|
+
const value = relatedEntityGroup.related === undefined
|
|
1913
|
+
? null
|
|
1914
|
+
: relatedEntityGroup.related;
|
|
1915
|
+
relation.setEntityValue(entity, value);
|
|
1642
1916
|
}
|
|
1643
|
-
|
|
1644
|
-
// .setFindOptions(this.findOptions)
|
|
1645
|
-
.mergeExpressionMap({ extraAppendedAndWhereCondition: condition })
|
|
1646
|
-
.setParameters(parameters_1)
|
|
1647
|
-
.loadRawResults(queryRunner)];
|
|
1648
|
-
case 2:
|
|
1649
|
-
rawResults = _b.sent();
|
|
1650
|
-
_b.label = 3;
|
|
1651
|
-
case 3: return [3 /*break*/, 6];
|
|
1652
|
-
case 4: return [4 /*yield*/, this.loadRawResults(queryRunner)];
|
|
1653
|
-
case 5:
|
|
1654
|
-
// console.time("load raw results");
|
|
1655
|
-
rawResults = _b.sent();
|
|
1656
|
-
_b.label = 6;
|
|
1657
|
-
case 6:
|
|
1658
|
-
if (!(rawResults.length > 0)) return [3 /*break*/, 10];
|
|
1659
|
-
return [4 /*yield*/, relationIdLoader.load(rawResults)];
|
|
1660
|
-
case 7:
|
|
1661
|
-
rawRelationIdResults = _b.sent();
|
|
1662
|
-
return [4 /*yield*/, relationCountLoader.load(rawResults)];
|
|
1663
|
-
case 8:
|
|
1664
|
-
rawRelationCountResults = _b.sent();
|
|
1665
|
-
transformer = new RawSqlResultsToEntityTransformer_1.RawSqlResultsToEntityTransformer(this.expressionMap, this.connection.driver, rawRelationIdResults, rawRelationCountResults, this.queryRunner);
|
|
1666
|
-
// console.time("transforming entities");
|
|
1667
|
-
entities = transformer.transform(rawResults, this.expressionMap.mainAlias);
|
|
1668
|
-
if (!(this.expressionMap.callListeners === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 10];
|
|
1669
|
-
broadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
1670
|
-
queryRunner.broadcaster.broadcastLoadEventsForAll(broadcastResult, this.expressionMap.mainAlias.metadata, entities);
|
|
1671
|
-
if (!(broadcastResult.promises.length > 0)) return [3 /*break*/, 10];
|
|
1672
|
-
return [4 /*yield*/, Promise.all(broadcastResult.promises)];
|
|
1673
|
-
case 9:
|
|
1674
|
-
_b.sent();
|
|
1675
|
-
_b.label = 10;
|
|
1676
|
-
case 10: return [4 /*yield*/, Promise.all(this.relationMetadatas.map(function (relation) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
1677
|
-
var relationTarget, relationAlias, queryBuilder, relatedEntityGroups_1;
|
|
1678
|
-
return tslib_1.__generator(this, function (_a) {
|
|
1679
|
-
switch (_a.label) {
|
|
1680
|
-
case 0:
|
|
1681
|
-
relationTarget = relation.inverseEntityMetadata.target;
|
|
1682
|
-
relationAlias = relation.inverseEntityMetadata.targetName;
|
|
1683
|
-
queryBuilder = this.createQueryBuilder()
|
|
1684
|
-
.select(relationAlias)
|
|
1685
|
-
.from(relationTarget, relationAlias)
|
|
1686
|
-
.setFindOptions({
|
|
1687
|
-
select: this.findOptions.select && typeof this.findOptions.select === "object" ? OrmUtils_1.OrmUtils.deepValue(this.findOptions.select, relation.propertyPath) : undefined,
|
|
1688
|
-
order: this.findOptions.order ? OrmUtils_1.OrmUtils.deepValue(this.findOptions.order, relation.propertyPath) : undefined,
|
|
1689
|
-
relations: this.findOptions.relations && typeof this.findOptions.relations === "object" ? OrmUtils_1.OrmUtils.deepValue(this.findOptions.relations, relation.propertyPath) : undefined,
|
|
1690
|
-
});
|
|
1691
|
-
if (!(entities.length > 0)) return [3 /*break*/, 2];
|
|
1692
|
-
return [4 /*yield*/, this.connection.relationIdLoader.loadManyToManyRelationIdsAndGroup(relation, entities, undefined, queryBuilder)];
|
|
1693
|
-
case 1:
|
|
1694
|
-
relatedEntityGroups_1 = _a.sent();
|
|
1695
|
-
entities.forEach(function (entity) {
|
|
1696
|
-
var relatedEntityGroup = relatedEntityGroups_1.find(function (group) { return group.entity === entity; });
|
|
1697
|
-
if (relatedEntityGroup) {
|
|
1698
|
-
var value = relatedEntityGroup.related === undefined ? null : relatedEntityGroup.related;
|
|
1699
|
-
relation.setEntityValue(entity, value);
|
|
1700
|
-
}
|
|
1701
|
-
});
|
|
1702
|
-
_a.label = 2;
|
|
1703
|
-
case 2: return [2 /*return*/];
|
|
1704
|
-
}
|
|
1705
|
-
});
|
|
1706
|
-
}); }))];
|
|
1707
|
-
case 11:
|
|
1708
|
-
_b.sent();
|
|
1709
|
-
return [2 /*return*/, {
|
|
1710
|
-
raw: rawResults,
|
|
1711
|
-
entities: entities,
|
|
1712
|
-
}];
|
|
1917
|
+
});
|
|
1713
1918
|
}
|
|
1714
|
-
});
|
|
1715
|
-
}
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1919
|
+
}));
|
|
1920
|
+
}
|
|
1921
|
+
return {
|
|
1922
|
+
raw: rawResults,
|
|
1923
|
+
entities: entities,
|
|
1924
|
+
};
|
|
1925
|
+
}
|
|
1926
|
+
createOrderByCombinedWithSelectExpression(parentAlias) {
|
|
1719
1927
|
// if table has a default order then apply it
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
.map(
|
|
1928
|
+
const orderBys = this.expressionMap.allOrderBys;
|
|
1929
|
+
const selectString = Object.keys(orderBys)
|
|
1930
|
+
.map((orderCriteria) => {
|
|
1723
1931
|
if (orderCriteria.indexOf(".") !== -1) {
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1932
|
+
const criteriaParts = orderCriteria.split(".");
|
|
1933
|
+
const aliasName = criteriaParts[0];
|
|
1934
|
+
const propertyPath = criteriaParts.slice(1).join(".");
|
|
1935
|
+
const alias = this.expressionMap.findAliasByName(aliasName);
|
|
1936
|
+
const column = alias.metadata.findColumnWithPropertyPath(propertyPath);
|
|
1937
|
+
return (this.escape(parentAlias) +
|
|
1938
|
+
"." +
|
|
1939
|
+
this.escape(DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, aliasName, column.databaseName)));
|
|
1728
1940
|
}
|
|
1729
1941
|
else {
|
|
1730
|
-
if (
|
|
1731
|
-
|
|
1942
|
+
if (this.expressionMap.selects.find((select) => select.selection === orderCriteria ||
|
|
1943
|
+
select.aliasName === orderCriteria))
|
|
1944
|
+
return this.escape(parentAlias) + "." + orderCriteria;
|
|
1732
1945
|
return "";
|
|
1733
1946
|
}
|
|
1734
1947
|
})
|
|
1735
1948
|
.join(", ");
|
|
1736
|
-
|
|
1737
|
-
Object.keys(orderBys).forEach(
|
|
1949
|
+
const orderByObject = {};
|
|
1950
|
+
Object.keys(orderBys).forEach((orderCriteria) => {
|
|
1738
1951
|
if (orderCriteria.indexOf(".") !== -1) {
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1952
|
+
const criteriaParts = orderCriteria.split(".");
|
|
1953
|
+
const aliasName = criteriaParts[0];
|
|
1954
|
+
const propertyPath = criteriaParts.slice(1).join(".");
|
|
1955
|
+
const alias = this.expressionMap.findAliasByName(aliasName);
|
|
1956
|
+
const column = alias.metadata.findColumnWithPropertyPath(propertyPath);
|
|
1957
|
+
orderByObject[this.escape(parentAlias) +
|
|
1958
|
+
"." +
|
|
1959
|
+
this.escape(DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, aliasName, column.databaseName))] = orderBys[orderCriteria];
|
|
1743
1960
|
}
|
|
1744
1961
|
else {
|
|
1745
|
-
if (
|
|
1746
|
-
|
|
1962
|
+
if (this.expressionMap.selects.find((select) => select.selection === orderCriteria ||
|
|
1963
|
+
select.aliasName === orderCriteria)) {
|
|
1964
|
+
orderByObject[this.escape(parentAlias) + "." + orderCriteria] = orderBys[orderCriteria];
|
|
1747
1965
|
}
|
|
1748
1966
|
else {
|
|
1749
1967
|
orderByObject[orderCriteria] = orderBys[orderCriteria];
|
|
@@ -1751,317 +1969,452 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
1751
1969
|
}
|
|
1752
1970
|
});
|
|
1753
1971
|
return [selectString, orderByObject];
|
|
1754
|
-
}
|
|
1972
|
+
}
|
|
1755
1973
|
/**
|
|
1756
1974
|
* Loads raw results from the database.
|
|
1757
1975
|
*/
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
case 3:
|
|
1781
|
-
results = _b.sent();
|
|
1782
|
-
if (!(this.connection.queryResultCache && (this.expressionMap.cache || cacheOptions.alwaysEnabled))) return [3 /*break*/, 5];
|
|
1783
|
-
return [4 /*yield*/, this.connection.queryResultCache.storeInCache({
|
|
1784
|
-
identifier: this.expressionMap.cacheId,
|
|
1785
|
-
query: queryId,
|
|
1786
|
-
time: new Date().getTime(),
|
|
1787
|
-
duration: this.expressionMap.cacheDuration || cacheOptions.duration || 1000,
|
|
1788
|
-
result: JSON.stringify(results)
|
|
1789
|
-
}, savedQueryResultCacheOptions, queryRunner)];
|
|
1790
|
-
case 4:
|
|
1791
|
-
_b.sent();
|
|
1792
|
-
_b.label = 5;
|
|
1793
|
-
case 5: return [2 /*return*/, results];
|
|
1976
|
+
async loadRawResults(queryRunner) {
|
|
1977
|
+
const [sql, parameters] = this.getQueryAndParameters();
|
|
1978
|
+
const queryId = sql + " -- PARAMETERS: " + JSON.stringify(parameters);
|
|
1979
|
+
const cacheOptions = typeof this.connection.options.cache === "object"
|
|
1980
|
+
? this.connection.options.cache
|
|
1981
|
+
: {};
|
|
1982
|
+
let savedQueryResultCacheOptions = undefined;
|
|
1983
|
+
let cacheError = false;
|
|
1984
|
+
if (this.connection.queryResultCache &&
|
|
1985
|
+
(this.expressionMap.cache || cacheOptions.alwaysEnabled)) {
|
|
1986
|
+
try {
|
|
1987
|
+
savedQueryResultCacheOptions =
|
|
1988
|
+
await this.connection.queryResultCache.getFromCache({
|
|
1989
|
+
identifier: this.expressionMap.cacheId,
|
|
1990
|
+
query: queryId,
|
|
1991
|
+
duration: this.expressionMap.cacheDuration ||
|
|
1992
|
+
cacheOptions.duration ||
|
|
1993
|
+
1000,
|
|
1994
|
+
}, queryRunner);
|
|
1995
|
+
if (savedQueryResultCacheOptions &&
|
|
1996
|
+
!this.connection.queryResultCache.isExpired(savedQueryResultCacheOptions)) {
|
|
1997
|
+
return JSON.parse(savedQueryResultCacheOptions.result);
|
|
1794
1998
|
}
|
|
1795
|
-
}
|
|
1796
|
-
|
|
1797
|
-
|
|
1999
|
+
}
|
|
2000
|
+
catch (error) {
|
|
2001
|
+
if (!cacheOptions.ignoreErrors) {
|
|
2002
|
+
throw error;
|
|
2003
|
+
}
|
|
2004
|
+
cacheError = true;
|
|
2005
|
+
}
|
|
2006
|
+
}
|
|
2007
|
+
const results = await queryRunner.query(sql, parameters, true);
|
|
2008
|
+
if (!cacheError &&
|
|
2009
|
+
this.connection.queryResultCache &&
|
|
2010
|
+
(this.expressionMap.cache || cacheOptions.alwaysEnabled)) {
|
|
2011
|
+
try {
|
|
2012
|
+
await this.connection.queryResultCache.storeInCache({
|
|
2013
|
+
identifier: this.expressionMap.cacheId,
|
|
2014
|
+
query: queryId,
|
|
2015
|
+
time: new Date().getTime(),
|
|
2016
|
+
duration: this.expressionMap.cacheDuration ||
|
|
2017
|
+
cacheOptions.duration ||
|
|
2018
|
+
1000,
|
|
2019
|
+
result: JSON.stringify(results.records),
|
|
2020
|
+
}, savedQueryResultCacheOptions, queryRunner);
|
|
2021
|
+
}
|
|
2022
|
+
catch (error) {
|
|
2023
|
+
if (!cacheOptions.ignoreErrors) {
|
|
2024
|
+
throw error;
|
|
2025
|
+
}
|
|
2026
|
+
}
|
|
2027
|
+
}
|
|
2028
|
+
return results.records;
|
|
2029
|
+
}
|
|
1798
2030
|
/**
|
|
1799
2031
|
* Merges into expression map given expression map properties.
|
|
1800
2032
|
*/
|
|
1801
|
-
|
|
2033
|
+
mergeExpressionMap(expressionMap) {
|
|
1802
2034
|
ObjectUtils_1.ObjectUtils.assign(this.expressionMap, expressionMap);
|
|
1803
2035
|
return this;
|
|
1804
|
-
}
|
|
2036
|
+
}
|
|
1805
2037
|
/**
|
|
1806
2038
|
* Normalizes a give number - converts to int if possible.
|
|
1807
2039
|
*/
|
|
1808
|
-
|
|
2040
|
+
normalizeNumber(num) {
|
|
1809
2041
|
if (typeof num === "number" || num === undefined || num === null)
|
|
1810
2042
|
return num;
|
|
1811
2043
|
return Number(num);
|
|
1812
|
-
}
|
|
2044
|
+
}
|
|
1813
2045
|
/**
|
|
1814
2046
|
* Creates a query builder used to execute sql queries inside this query builder.
|
|
1815
2047
|
*/
|
|
1816
|
-
|
|
2048
|
+
obtainQueryRunner() {
|
|
1817
2049
|
return this.queryRunner || this.connection.createQueryRunner("slave");
|
|
1818
|
-
}
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
// alias: joinAlias,
|
|
1849
|
-
// parentAlias: alias,
|
|
1850
|
-
// relationMetadata: relation
|
|
1851
|
-
// });
|
|
1852
|
-
// }
|
|
1853
|
-
// this.buildOrder(select[key] as FindOptionsOrder<any>, relation.inverseEntityMetadata, joinAlias);
|
|
1854
|
-
}
|
|
2050
|
+
}
|
|
2051
|
+
buildSelect(select, metadata, alias, embedPrefix) {
|
|
2052
|
+
for (let key in select) {
|
|
2053
|
+
if (select[key] === undefined)
|
|
2054
|
+
continue;
|
|
2055
|
+
const propertyPath = embedPrefix ? embedPrefix + "." + key : key;
|
|
2056
|
+
const column = metadata.findColumnWithPropertyPathStrict(propertyPath);
|
|
2057
|
+
const embed = metadata.findEmbeddedWithPropertyPath(propertyPath);
|
|
2058
|
+
const relation = metadata.findRelationWithPropertyPath(propertyPath);
|
|
2059
|
+
if (!embed && !column && !relation)
|
|
2060
|
+
throw new EntityPropertyNotFoundError_1.EntityPropertyNotFoundError(propertyPath, metadata);
|
|
2061
|
+
if (column) {
|
|
2062
|
+
this.selects.push(alias + "." + propertyPath);
|
|
2063
|
+
// this.addSelect(alias + "." + propertyPath);
|
|
2064
|
+
}
|
|
2065
|
+
else if (embed) {
|
|
2066
|
+
this.buildSelect(select[key], metadata, alias, key);
|
|
2067
|
+
// } else if (relation) {
|
|
2068
|
+
// const joinAlias = alias + "_" + relation.propertyName;
|
|
2069
|
+
// const existJoin = this.joins.find(join => join.alias === joinAlias);
|
|
2070
|
+
// if (!existJoin) {
|
|
2071
|
+
// this.joins.push({
|
|
2072
|
+
// type: "left",
|
|
2073
|
+
// select: false,
|
|
2074
|
+
// alias: joinAlias,
|
|
2075
|
+
// parentAlias: alias,
|
|
2076
|
+
// relationMetadata: relation
|
|
2077
|
+
// });
|
|
2078
|
+
// }
|
|
2079
|
+
// this.buildOrder(select[key] as FindOptionsOrder<any>, relation.inverseEntityMetadata, joinAlias);
|
|
1855
2080
|
}
|
|
1856
2081
|
}
|
|
1857
|
-
}
|
|
1858
|
-
|
|
1859
|
-
var _this = this;
|
|
2082
|
+
}
|
|
2083
|
+
buildRelations(relations, selection, metadata, alias, embedPrefix) {
|
|
1860
2084
|
if (!relations)
|
|
1861
2085
|
return;
|
|
1862
|
-
|
|
1863
|
-
relations
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
2086
|
+
Object.keys(relations).forEach((relationName) => {
|
|
2087
|
+
const relationValue = relations[relationName];
|
|
2088
|
+
const propertyPath = embedPrefix
|
|
2089
|
+
? embedPrefix + "." + relationName
|
|
2090
|
+
: relationName;
|
|
2091
|
+
const embed = metadata.findEmbeddedWithPropertyPath(propertyPath);
|
|
2092
|
+
const relation = metadata.findRelationWithPropertyPath(propertyPath);
|
|
2093
|
+
if (!embed && !relation)
|
|
2094
|
+
throw new EntityPropertyNotFoundError_1.EntityPropertyNotFoundError(propertyPath, metadata);
|
|
2095
|
+
if (embed) {
|
|
2096
|
+
this.buildRelations(relationValue, typeof selection === "object"
|
|
2097
|
+
? OrmUtils_1.OrmUtils.deepValue(selection, embed.propertyPath)
|
|
2098
|
+
: undefined, metadata, alias, propertyPath);
|
|
2099
|
+
}
|
|
2100
|
+
else if (relation) {
|
|
2101
|
+
let joinAlias = alias + "_" + propertyPath.replace(".", "_");
|
|
2102
|
+
joinAlias = DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, { joiner: "__" }, alias, joinAlias);
|
|
2103
|
+
if (relationValue === true ||
|
|
2104
|
+
typeof relationValue === "object") {
|
|
2105
|
+
if (this.expressionMap.relationLoadStrategy === "query") {
|
|
2106
|
+
this.relationMetadatas.push(relation);
|
|
1882
2107
|
}
|
|
1883
2108
|
else {
|
|
1884
|
-
|
|
2109
|
+
// join
|
|
2110
|
+
this.joins.push({
|
|
2111
|
+
type: "left",
|
|
2112
|
+
select: true,
|
|
2113
|
+
selection: selection &&
|
|
2114
|
+
typeof selection[relationName] === "object"
|
|
2115
|
+
? selection[relationName]
|
|
2116
|
+
: undefined,
|
|
2117
|
+
alias: joinAlias,
|
|
2118
|
+
parentAlias: alias,
|
|
2119
|
+
relationMetadata: relation,
|
|
2120
|
+
});
|
|
2121
|
+
if (selection &&
|
|
2122
|
+
typeof selection[relationName] === "object") {
|
|
2123
|
+
console.log("sub selection", relationName);
|
|
2124
|
+
this.buildSelect(selection[relationName], relation.inverseEntityMetadata, joinAlias);
|
|
2125
|
+
}
|
|
1885
2126
|
}
|
|
1886
2127
|
}
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
2128
|
+
if (typeof relationValue === "object" &&
|
|
2129
|
+
this.expressionMap.relationLoadStrategy === "join") {
|
|
2130
|
+
this.buildRelations(relationValue, typeof selection === "object"
|
|
2131
|
+
? OrmUtils_1.OrmUtils.deepValue(selection, relation.propertyPath)
|
|
2132
|
+
: undefined, relation.inverseEntityMetadata, joinAlias, undefined);
|
|
2133
|
+
}
|
|
2134
|
+
}
|
|
2135
|
+
});
|
|
2136
|
+
}
|
|
2137
|
+
buildEagerRelations(relations, selection, metadata, alias, embedPrefix) {
|
|
2138
|
+
if (!relations)
|
|
2139
|
+
return;
|
|
2140
|
+
Object.keys(relations).forEach((relationName) => {
|
|
2141
|
+
const relationValue = relations[relationName];
|
|
2142
|
+
const propertyPath = embedPrefix
|
|
2143
|
+
? embedPrefix + "." + relationName
|
|
2144
|
+
: relationName;
|
|
2145
|
+
const embed = metadata.findEmbeddedWithPropertyPath(propertyPath);
|
|
2146
|
+
const relation = metadata.findRelationWithPropertyPath(propertyPath);
|
|
2147
|
+
if (!embed && !relation)
|
|
2148
|
+
throw new EntityPropertyNotFoundError_1.EntityPropertyNotFoundError(propertyPath, metadata);
|
|
2149
|
+
if (embed) {
|
|
2150
|
+
this.buildEagerRelations(relationValue, typeof selection === "object"
|
|
2151
|
+
? OrmUtils_1.OrmUtils.deepValue(selection, embed.propertyPath)
|
|
2152
|
+
: undefined, metadata, alias, propertyPath);
|
|
2153
|
+
}
|
|
2154
|
+
else if (relation) {
|
|
2155
|
+
let joinAlias = alias + "_" + propertyPath.replace(".", "_");
|
|
2156
|
+
joinAlias = DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, { joiner: "__" }, alias, joinAlias);
|
|
2157
|
+
if (relationValue === true ||
|
|
2158
|
+
typeof relationValue === "object") {
|
|
2159
|
+
relation.inverseEntityMetadata.eagerRelations.forEach((eagerRelation) => {
|
|
2160
|
+
let eagerRelationJoinAlias = joinAlias +
|
|
2161
|
+
"_" +
|
|
2162
|
+
eagerRelation.propertyPath.replace(".", "_");
|
|
2163
|
+
eagerRelationJoinAlias = DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, { joiner: "__" }, joinAlias, eagerRelationJoinAlias);
|
|
2164
|
+
const existJoin = this.joins.find((join) => join.alias === eagerRelationJoinAlias);
|
|
2165
|
+
if (!existJoin) {
|
|
2166
|
+
this.joins.push({
|
|
2167
|
+
type: "left",
|
|
2168
|
+
select: true,
|
|
2169
|
+
alias: eagerRelationJoinAlias,
|
|
2170
|
+
parentAlias: joinAlias,
|
|
2171
|
+
selection: undefined,
|
|
2172
|
+
relationMetadata: eagerRelation,
|
|
2173
|
+
});
|
|
2174
|
+
}
|
|
2175
|
+
if (selection &&
|
|
2176
|
+
typeof selection[relationName] === "object") {
|
|
2177
|
+
this.buildSelect(selection[relationName], relation.inverseEntityMetadata, joinAlias);
|
|
2178
|
+
}
|
|
2179
|
+
});
|
|
2180
|
+
}
|
|
2181
|
+
if (typeof relationValue === "object") {
|
|
2182
|
+
this.buildEagerRelations(relationValue, typeof selection === "object"
|
|
2183
|
+
? OrmUtils_1.OrmUtils.deepValue(selection, relation.propertyPath)
|
|
2184
|
+
: undefined, relation.inverseEntityMetadata, joinAlias, undefined);
|
|
2185
|
+
}
|
|
2186
|
+
}
|
|
2187
|
+
});
|
|
2188
|
+
}
|
|
2189
|
+
buildOrder(order, metadata, alias, embedPrefix) {
|
|
2190
|
+
for (let key in order) {
|
|
1892
2191
|
if (order[key] === undefined)
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
2192
|
+
continue;
|
|
2193
|
+
const propertyPath = embedPrefix ? embedPrefix + "." + key : key;
|
|
2194
|
+
const column = metadata.findColumnWithPropertyPathStrict(propertyPath);
|
|
2195
|
+
const embed = metadata.findEmbeddedWithPropertyPath(propertyPath);
|
|
2196
|
+
const relation = metadata.findRelationWithPropertyPath(propertyPath);
|
|
1898
2197
|
if (!embed && !column && !relation)
|
|
1899
|
-
throw new
|
|
2198
|
+
throw new EntityPropertyNotFoundError_1.EntityPropertyNotFoundError(propertyPath, metadata);
|
|
1900
2199
|
if (column) {
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
2200
|
+
let direction = typeof order[key] === "object"
|
|
2201
|
+
? order[key].direction
|
|
2202
|
+
: order[key];
|
|
2203
|
+
direction =
|
|
2204
|
+
direction === "DESC" ||
|
|
2205
|
+
direction === "desc" ||
|
|
2206
|
+
direction === -1
|
|
2207
|
+
? "DESC"
|
|
2208
|
+
: "ASC";
|
|
2209
|
+
let nulls = typeof order[key] === "object"
|
|
2210
|
+
? order[key].nulls
|
|
2211
|
+
: undefined;
|
|
2212
|
+
nulls =
|
|
2213
|
+
nulls === "first"
|
|
2214
|
+
? "NULLS FIRST"
|
|
2215
|
+
: nulls === "last"
|
|
2216
|
+
? "NULLS LAST"
|
|
2217
|
+
: undefined;
|
|
2218
|
+
this.addOrderBy(`${alias}.${propertyPath}`, direction, nulls);
|
|
2219
|
+
// this.orderBys.push({ alias: alias + "." + propertyPath, direction, nulls });
|
|
1906
2220
|
}
|
|
1907
2221
|
else if (embed) {
|
|
1908
|
-
|
|
2222
|
+
this.buildOrder(order[key], metadata, alias, propertyPath);
|
|
1909
2223
|
}
|
|
1910
2224
|
else if (relation) {
|
|
1911
|
-
|
|
1912
|
-
|
|
2225
|
+
let joinAlias = alias + "_" + propertyPath.replace(".", "_");
|
|
2226
|
+
joinAlias = DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, { joiner: "__" }, alias, joinAlias);
|
|
2227
|
+
// console.log("joinAlias", joinAlias, joinAlias.length, this.connection.driver.maxAliasLength)
|
|
2228
|
+
// todo: use expressionMap.joinAttributes, and create a new one using
|
|
2229
|
+
// const joinAttribute = new JoinAttribute(this.connection, this.expressionMap);
|
|
2230
|
+
const existJoin = this.joins.find((join) => join.alias === joinAlias);
|
|
1913
2231
|
if (!existJoin) {
|
|
1914
|
-
|
|
2232
|
+
this.joins.push({
|
|
1915
2233
|
type: "left",
|
|
1916
2234
|
select: false,
|
|
1917
|
-
alias:
|
|
2235
|
+
alias: joinAlias,
|
|
1918
2236
|
parentAlias: alias,
|
|
1919
|
-
|
|
2237
|
+
selection: undefined,
|
|
2238
|
+
relationMetadata: relation,
|
|
1920
2239
|
});
|
|
1921
2240
|
}
|
|
1922
|
-
|
|
2241
|
+
this.buildOrder(order[key], relation.inverseEntityMetadata, joinAlias);
|
|
1923
2242
|
}
|
|
1924
|
-
}
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
2243
|
+
}
|
|
2244
|
+
}
|
|
2245
|
+
buildWhere(where, metadata, alias, embedPrefix) {
|
|
2246
|
+
let condition = "";
|
|
2247
|
+
// let parameterIndex = Object.keys(this.expressionMap.nativeParameters).length;
|
|
2248
|
+
if (Array.isArray(where)) {
|
|
2249
|
+
condition =
|
|
2250
|
+
"(" +
|
|
2251
|
+
where
|
|
2252
|
+
.map((whereItem) => {
|
|
2253
|
+
return this.buildWhere(whereItem, metadata, alias, embedPrefix);
|
|
2254
|
+
})
|
|
2255
|
+
.filter((condition) => !!condition)
|
|
2256
|
+
.map((condition) => "(" + condition + ")")
|
|
2257
|
+
.join(" OR ") +
|
|
2258
|
+
")";
|
|
1938
2259
|
}
|
|
1939
2260
|
else {
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
if (where[key] === undefined)
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
2261
|
+
let andConditions = [];
|
|
2262
|
+
for (let key in where) {
|
|
2263
|
+
if (where[key] === undefined || where[key] === null)
|
|
2264
|
+
continue;
|
|
2265
|
+
const propertyPath = embedPrefix ? embedPrefix + "." + key : key;
|
|
2266
|
+
const column = metadata.findColumnWithPropertyPathStrict(propertyPath);
|
|
2267
|
+
const embed = metadata.findEmbeddedWithPropertyPath(propertyPath);
|
|
2268
|
+
const relation = metadata.findRelationWithPropertyPath(propertyPath);
|
|
1948
2269
|
if (!embed && !column && !relation)
|
|
1949
|
-
throw new
|
|
2270
|
+
throw new EntityPropertyNotFoundError_1.EntityPropertyNotFoundError(propertyPath, metadata);
|
|
1950
2271
|
if (column) {
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
2272
|
+
const aliasPath = `${alias}.${propertyPath}`;
|
|
2273
|
+
// const parameterName = alias + "_" + propertyPath.split(".").join("_") + "_" + parameterIndex;
|
|
2274
|
+
// todo: we need to handle other operators as well?
|
|
2275
|
+
let parameterValue = where[key];
|
|
2276
|
+
if (InstanceChecker_1.InstanceChecker.isEqualOperator(where[key])) {
|
|
2277
|
+
parameterValue = where[key].value;
|
|
1956
2278
|
}
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
if (parameterValue.useParameter) {
|
|
1960
|
-
var realParameterValues = parameterValue.multipleParameters ? parameterValue.value : [parameterValue.value];
|
|
1961
|
-
realParameterValues.forEach(function (realParameterValue, realParameterValueIndex) {
|
|
1962
|
-
// don't create parameters for number to prevent max number of variables issues as much as possible
|
|
1963
|
-
if (typeof realParameterValue === "number") {
|
|
1964
|
-
parameters_2.push(realParameterValue);
|
|
1965
|
-
}
|
|
1966
|
-
else {
|
|
1967
|
-
_this.expressionMap.nativeParameters[parameterName_1 + realParameterValueIndex] = realParameterValue;
|
|
1968
|
-
parameterIndex++;
|
|
1969
|
-
parameters_2.push(_this.connection.driver.createParameter(parameterName_1 + realParameterValueIndex, parameterIndex - 1));
|
|
1970
|
-
}
|
|
1971
|
-
});
|
|
1972
|
-
}
|
|
1973
|
-
andConditions.push(parameterValue.toSql(this_2.connection, aliasPath, parameters_2));
|
|
1974
|
-
}
|
|
1975
|
-
else {
|
|
1976
|
-
this_2.expressionMap.nativeParameters[parameterName_1] = parameterValue;
|
|
1977
|
-
parameterIndex++;
|
|
1978
|
-
var parameter = this_2.connection.driver.createParameter(parameterName_1, parameterIndex - 1);
|
|
1979
|
-
andConditions.push(aliasPath + " = " + parameter);
|
|
2279
|
+
if (column.transformer) {
|
|
2280
|
+
parameterValue = ApplyValueTransformers_1.ApplyValueTransformers.transformTo(column.transformer, parameterValue);
|
|
1980
2281
|
}
|
|
2282
|
+
// if (parameterValue === null) {
|
|
2283
|
+
// andConditions.push(`${aliasPath} IS NULL`);
|
|
2284
|
+
//
|
|
2285
|
+
// } else if (parameterValue instanceof FindOperator) {
|
|
2286
|
+
// // let parameters: any[] = [];
|
|
2287
|
+
// // if (parameterValue.useParameter) {
|
|
2288
|
+
// // const realParameterValues: any[] = parameterValue.multipleParameters ? parameterValue.value : [parameterValue.value];
|
|
2289
|
+
// // realParameterValues.forEach((realParameterValue, realParameterValueIndex) => {
|
|
2290
|
+
// //
|
|
2291
|
+
// // // don't create parameters for number to prevent max number of variables issues as much as possible
|
|
2292
|
+
// // if (typeof realParameterValue === "number") {
|
|
2293
|
+
// // parameters.push(realParameterValue);
|
|
2294
|
+
// //
|
|
2295
|
+
// // } else {
|
|
2296
|
+
// // this.expressionMap.nativeParameters[parameterName + realParameterValueIndex] = realParameterValue;
|
|
2297
|
+
// // parameterIndex++;
|
|
2298
|
+
// // parameters.push(this.connection.driver.createParameter(parameterName + realParameterValueIndex, parameterIndex - 1));
|
|
2299
|
+
// // }
|
|
2300
|
+
// // });
|
|
2301
|
+
// // }
|
|
2302
|
+
// andConditions.push(
|
|
2303
|
+
// this.createWhereConditionExpression(this.getWherePredicateCondition(aliasPath, parameterValue))
|
|
2304
|
+
// // parameterValue.toSql(this.connection, aliasPath, parameters));
|
|
2305
|
+
// )
|
|
2306
|
+
//
|
|
2307
|
+
// } else {
|
|
2308
|
+
// this.expressionMap.nativeParameters[parameterName] = parameterValue;
|
|
2309
|
+
// parameterIndex++;
|
|
2310
|
+
// const parameter = this.connection.driver.createParameter(parameterName, parameterIndex - 1);
|
|
2311
|
+
// andConditions.push(`${aliasPath} = ${parameter}`);
|
|
2312
|
+
// }
|
|
2313
|
+
andConditions.push(this.createWhereConditionExpression(this.getWherePredicateCondition(aliasPath, parameterValue)));
|
|
1981
2314
|
// this.conditions.push(`${alias}.${propertyPath} = :${paramName}`);
|
|
1982
2315
|
// this.expressionMap.parameters[paramName] = where[key]; // todo: handle functions and other edge cases
|
|
1983
2316
|
}
|
|
1984
2317
|
else if (embed) {
|
|
1985
|
-
|
|
1986
|
-
if (
|
|
1987
|
-
andConditions.push(
|
|
2318
|
+
const condition = this.buildWhere(where[key], metadata, alias, propertyPath);
|
|
2319
|
+
if (condition)
|
|
2320
|
+
andConditions.push(condition);
|
|
1988
2321
|
}
|
|
1989
2322
|
else if (relation) {
|
|
1990
2323
|
// if all properties of where are undefined we don't need to join anything
|
|
1991
2324
|
// this can happen when user defines map with conditional queries inside
|
|
1992
|
-
if (where[key]
|
|
1993
|
-
|
|
2325
|
+
if (typeof where[key] === "object") {
|
|
2326
|
+
const allAllUndefined = Object.keys(where[key]).every((k) => where[key][k] === undefined);
|
|
1994
2327
|
if (allAllUndefined) {
|
|
1995
|
-
|
|
2328
|
+
continue;
|
|
1996
2329
|
}
|
|
1997
2330
|
}
|
|
1998
|
-
if (where[key]
|
|
1999
|
-
if (where[key].type === "moreThan" ||
|
|
2000
|
-
|
|
2331
|
+
if (InstanceChecker_1.InstanceChecker.isFindOperator(where[key])) {
|
|
2332
|
+
if (where[key].type === "moreThan" ||
|
|
2333
|
+
where[key].type === "lessThan") {
|
|
2334
|
+
const sqlOperator = where[key].type === "moreThan" ? ">" : "<";
|
|
2001
2335
|
// basically relation count functionality
|
|
2002
|
-
|
|
2336
|
+
const qb = this.subQuery();
|
|
2003
2337
|
if (relation.isManyToManyOwner) {
|
|
2004
2338
|
qb.select("COUNT(*)")
|
|
2005
2339
|
.from(relation.joinTableName, relation.joinTableName)
|
|
2006
|
-
.where(relation.joinColumns
|
|
2007
|
-
|
|
2008
|
-
|
|
2340
|
+
.where(relation.joinColumns
|
|
2341
|
+
.map((column) => {
|
|
2342
|
+
return `${relation.joinTableName}.${column.propertyName} = ${alias}.${column.referencedColumn
|
|
2343
|
+
.propertyName}`;
|
|
2344
|
+
})
|
|
2345
|
+
.join(" AND "));
|
|
2009
2346
|
}
|
|
2010
2347
|
else if (relation.isManyToManyNotOwner) {
|
|
2011
2348
|
qb.select("COUNT(*)")
|
|
2012
2349
|
.from(relation.inverseRelation.joinTableName, relation.inverseRelation.joinTableName)
|
|
2013
|
-
.where(relation
|
|
2014
|
-
|
|
2015
|
-
|
|
2350
|
+
.where(relation
|
|
2351
|
+
.inverseRelation.inverseJoinColumns.map((column) => {
|
|
2352
|
+
return `${relation.inverseRelation
|
|
2353
|
+
.joinTableName}.${column.propertyName} = ${alias}.${column.referencedColumn
|
|
2354
|
+
.propertyName}`;
|
|
2355
|
+
})
|
|
2356
|
+
.join(" AND "));
|
|
2016
2357
|
}
|
|
2017
2358
|
else if (relation.isOneToMany) {
|
|
2018
2359
|
qb.select("COUNT(*)")
|
|
2019
|
-
.from(relation.inverseEntityMetadata.target, relation.inverseEntityMetadata
|
|
2020
|
-
.
|
|
2021
|
-
|
|
2022
|
-
|
|
2360
|
+
.from(relation.inverseEntityMetadata.target, relation.inverseEntityMetadata
|
|
2361
|
+
.tableName)
|
|
2362
|
+
.where(relation
|
|
2363
|
+
.inverseRelation.joinColumns.map((column) => {
|
|
2364
|
+
return `${relation
|
|
2365
|
+
.inverseEntityMetadata
|
|
2366
|
+
.tableName}.${column.propertyName} = ${alias}.${column.referencedColumn
|
|
2367
|
+
.propertyName}`;
|
|
2368
|
+
})
|
|
2369
|
+
.join(" AND "));
|
|
2023
2370
|
}
|
|
2024
2371
|
else {
|
|
2025
|
-
throw new Error(
|
|
2372
|
+
throw new Error(`This relation isn't supported by given find operator`);
|
|
2026
2373
|
}
|
|
2027
2374
|
// this
|
|
2028
2375
|
// .addSelect(qb.getSql(), relation.propertyAliasName + "_cnt")
|
|
2029
2376
|
// .andWhere(this.escape(relation.propertyAliasName + "_cnt") + " " + sqlOperator + " " + parseInt(where[key].value));
|
|
2030
|
-
|
|
2377
|
+
this.andWhere(qb.getSql() +
|
|
2378
|
+
" " +
|
|
2379
|
+
sqlOperator +
|
|
2380
|
+
" " +
|
|
2381
|
+
parseInt(where[key].value));
|
|
2031
2382
|
}
|
|
2032
2383
|
}
|
|
2033
2384
|
else {
|
|
2034
|
-
|
|
2035
|
-
|
|
2385
|
+
// const joinAlias = alias + "_" + relation.propertyName;
|
|
2386
|
+
let joinAlias = alias +
|
|
2387
|
+
"_" +
|
|
2388
|
+
relation.propertyPath.replace(".", "_");
|
|
2389
|
+
joinAlias = DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, { joiner: "__" }, alias, joinAlias);
|
|
2390
|
+
const existJoin = this.joins.find((join) => join.alias === joinAlias);
|
|
2036
2391
|
if (!existJoin) {
|
|
2037
|
-
|
|
2392
|
+
this.joins.push({
|
|
2038
2393
|
type: "inner",
|
|
2039
2394
|
select: false,
|
|
2040
|
-
|
|
2395
|
+
selection: undefined,
|
|
2396
|
+
alias: joinAlias,
|
|
2041
2397
|
parentAlias: alias,
|
|
2042
|
-
relationMetadata: relation
|
|
2398
|
+
relationMetadata: relation,
|
|
2043
2399
|
});
|
|
2044
2400
|
}
|
|
2045
2401
|
else {
|
|
2046
2402
|
if (existJoin.type === "left")
|
|
2047
2403
|
existJoin.type = "inner";
|
|
2048
2404
|
}
|
|
2049
|
-
|
|
2050
|
-
if (
|
|
2051
|
-
andConditions.push(
|
|
2405
|
+
const condition = this.buildWhere(where[key], relation.inverseEntityMetadata, joinAlias);
|
|
2406
|
+
if (condition) {
|
|
2407
|
+
andConditions.push(condition);
|
|
2408
|
+
// parameterIndex = Object.keys(this.expressionMap.nativeParameters).length;
|
|
2409
|
+
}
|
|
2052
2410
|
}
|
|
2053
2411
|
}
|
|
2054
|
-
};
|
|
2055
|
-
var this_2 = this;
|
|
2056
|
-
for (var key in where) {
|
|
2057
|
-
_loop_2(key);
|
|
2058
2412
|
}
|
|
2059
2413
|
condition = andConditions.join(" AND ");
|
|
2060
2414
|
}
|
|
2061
2415
|
return condition;
|
|
2062
|
-
}
|
|
2063
|
-
|
|
2064
|
-
}(QueryBuilder_1.QueryBuilder));
|
|
2416
|
+
}
|
|
2417
|
+
}
|
|
2065
2418
|
exports.SelectQueryBuilder = SelectQueryBuilder;
|
|
2066
2419
|
|
|
2067
2420
|
//# sourceMappingURL=SelectQueryBuilder.js.map
|