typeorm 0.3.21 → 0.3.22-dev.04ca83a
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 +1315 -1315
- package/browser/cache/DbQueryResultCache.js.map +1 -1
- package/browser/cache/QueryResultCache.js.map +1 -1
- package/browser/cache/QueryResultCacheFactory.js.map +1 -1
- package/browser/cache/QueryResultCacheOptions.js.map +1 -1
- package/browser/cache/RedisQueryResultCache.js.map +1 -1
- package/browser/cli-ts-node-commonjs.js.map +1 -1
- package/browser/cli-ts-node-esm.js.map +1 -1
- package/browser/common/DeepPartial.js.map +1 -1
- package/browser/common/EntityTarget.js.map +1 -1
- package/browser/common/MixedList.js.map +1 -1
- package/browser/common/NonNever.js.map +1 -1
- package/browser/common/ObjectLiteral.js.map +1 -1
- package/browser/common/ObjectType.js.map +1 -1
- package/browser/common/PickKeysByType.js.map +1 -1
- package/browser/common/RelationType.js.map +1 -1
- package/browser/connection/BaseConnectionOptions.js.map +1 -1
- package/browser/connection/Connection.js.map +1 -1
- package/browser/connection/ConnectionManager.js.map +1 -1
- package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
- package/browser/connection/ConnectionOptions.js.map +1 -1
- package/browser/connection/ConnectionOptionsReader.js.map +1 -1
- package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
- package/browser/container.js.map +1 -1
- package/browser/data-source/BaseDataSourceOptions.js.map +1 -1
- package/browser/data-source/DataSource.js.map +1 -1
- package/browser/data-source/DataSourceOptions.js.map +1 -1
- package/browser/data-source/index.js.map +1 -1
- package/browser/decorator/Check.js.map +1 -1
- package/browser/decorator/EntityRepository.js.map +1 -1
- package/browser/decorator/Exclusion.js.map +1 -1
- package/browser/decorator/Generated.js.map +1 -1
- package/browser/decorator/Index.js.map +1 -1
- package/browser/decorator/Unique.js.map +1 -1
- package/browser/decorator/columns/Column.js.map +1 -1
- package/browser/decorator/columns/CreateDateColumn.js.map +1 -1
- package/browser/decorator/columns/DeleteDateColumn.js.map +1 -1
- package/browser/decorator/columns/ObjectIdColumn.js.map +1 -1
- package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
- package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
- package/browser/decorator/columns/UpdateDateColumn.js.map +1 -1
- package/browser/decorator/columns/VersionColumn.js.map +1 -1
- package/browser/decorator/columns/ViewColumn.js.map +1 -1
- package/browser/decorator/columns/VirtualColumn.js.map +1 -1
- package/browser/decorator/entity/ChildEntity.js.map +1 -1
- package/browser/decorator/entity/Entity.js.map +1 -1
- package/browser/decorator/entity/TableInheritance.js.map +1 -1
- package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
- package/browser/decorator/listeners/AfterInsert.js.map +1 -1
- package/browser/decorator/listeners/AfterLoad.js.map +1 -1
- package/browser/decorator/listeners/AfterRecover.js.map +1 -1
- package/browser/decorator/listeners/AfterRemove.js.map +1 -1
- package/browser/decorator/listeners/AfterSoftRemove.js.map +1 -1
- package/browser/decorator/listeners/AfterUpdate.js.map +1 -1
- package/browser/decorator/listeners/BeforeInsert.js.map +1 -1
- package/browser/decorator/listeners/BeforeRecover.js.map +1 -1
- package/browser/decorator/listeners/BeforeRemove.js.map +1 -1
- package/browser/decorator/listeners/BeforeSoftRemove.js.map +1 -1
- package/browser/decorator/listeners/BeforeUpdate.js.map +1 -1
- package/browser/decorator/listeners/EventSubscriber.js.map +1 -1
- package/browser/decorator/options/ColumnCommonOptions.js.map +1 -1
- package/browser/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
- package/browser/decorator/options/ColumnEnumOptions.js.map +1 -1
- package/browser/decorator/options/ColumnHstoreOptions.js.map +1 -1
- package/browser/decorator/options/ColumnNumericOptions.js.map +1 -1
- package/browser/decorator/options/ColumnOptions.js.map +1 -1
- package/browser/decorator/options/ColumnWithLengthOptions.js.map +1 -1
- package/browser/decorator/options/ColumnWithWidthOptions.js.map +1 -1
- package/browser/decorator/options/EntityOptions.js.map +1 -1
- package/browser/decorator/options/IndexOptions.js.map +1 -1
- package/browser/decorator/options/JoinColumnOptions.js.map +1 -1
- package/browser/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
- package/browser/decorator/options/JoinTableOptions.js.map +1 -1
- package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
- package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
- package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
- package/browser/decorator/options/RelationOptions.js.map +1 -1
- package/browser/decorator/options/SpatialColumnOptions.js.map +1 -1
- package/browser/decorator/options/TransactionOptions.js.map +1 -1
- package/browser/decorator/options/UniqueOptions.js.map +1 -1
- package/browser/decorator/options/ValueTransformer.js.map +1 -1
- package/browser/decorator/options/ViewColumnOptions.js.map +1 -1
- package/browser/decorator/options/ViewEntityOptions.js.map +1 -1
- package/browser/decorator/options/VirtualColumnOptions.js.map +1 -1
- package/browser/decorator/relations/JoinColumn.js.map +1 -1
- package/browser/decorator/relations/JoinTable.js.map +1 -1
- package/browser/decorator/relations/ManyToMany.js.map +1 -1
- package/browser/decorator/relations/ManyToOne.js.map +1 -1
- package/browser/decorator/relations/OneToMany.js.map +1 -1
- package/browser/decorator/relations/OneToOne.js.map +1 -1
- package/browser/decorator/relations/RelationCount.js.map +1 -1
- package/browser/decorator/relations/RelationId.js.map +1 -1
- package/browser/decorator/tree/Tree.js.map +1 -1
- package/browser/decorator/tree/TreeChildren.js.map +1 -1
- package/browser/decorator/tree/TreeLevelColumn.js.map +1 -1
- package/browser/decorator/tree/TreeParent.js.map +1 -1
- package/browser/driver/Driver.js.map +1 -1
- package/browser/driver/DriverFactory.js.map +1 -1
- package/browser/driver/DriverUtils.js.map +1 -1
- package/browser/driver/Query.js.map +1 -1
- package/browser/driver/SqlInMemory.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +6 -9
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
- package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -1
- package/browser/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
- package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js +6 -9
- package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
- package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
- package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
- package/browser/driver/capacitor/CapacitorConnectionOptions.js.map +1 -1
- package/browser/driver/capacitor/CapacitorDriver.js.map +1 -1
- package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachQueryRunner.js +7 -11
- package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/browser/driver/cordova/CordovaConnectionOptions.js.map +1 -1
- package/browser/driver/cordova/CordovaDriver.js.map +1 -1
- package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
- package/browser/driver/expo/ExpoConnectionOptions.js.map +1 -1
- package/browser/driver/expo/ExpoDriver.js.map +1 -1
- package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
- package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
- package/browser/driver/mongodb/MongoDriver.js.map +1 -1
- package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/browser/driver/mongodb/bson.typings.js.map +1 -1
- package/browser/driver/mongodb/typings.js.map +1 -1
- package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
- package/browser/driver/mysql/MysqlDriver.js.map +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.js +77 -80
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/browser/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
- package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
- package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
- package/browser/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
- package/browser/driver/oracle/OracleDriver.js.map +1 -1
- package/browser/driver/oracle/OracleQueryRunner.js +4 -6
- package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.js +6 -9
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
- package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
- package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
- package/browser/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/sap/SapConnectionOptions.js.map +1 -1
- package/browser/driver/sap/SapDriver.js +2 -0
- package/browser/driver/sap/SapDriver.js.map +1 -1
- package/browser/driver/sap/SapQueryRunner.js.map +1 -1
- package/browser/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/spanner/SpannerConnectionOptions.js.map +1 -1
- package/browser/driver/spanner/SpannerDriver.js.map +1 -1
- package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
- package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
- package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
- package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +6 -9
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
- package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
- package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/MssqlParameter.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +31 -32
- package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -1
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -1
- package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -1
- package/browser/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -1
- package/browser/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -1
- package/browser/driver/types/ColumnTypes.js.map +1 -1
- package/browser/driver/types/CteCapabilities.js.map +1 -1
- package/browser/driver/types/DataTypeDefaults.js.map +1 -1
- package/browser/driver/types/DatabaseType.js.map +1 -1
- package/browser/driver/types/GeoJsonTypes.js.map +1 -1
- package/browser/driver/types/IsolationLevel.js.map +1 -1
- package/browser/driver/types/MappedColumnTypes.js.map +1 -1
- package/browser/driver/types/MetadataTableType.js.map +1 -1
- package/browser/driver/types/ReplicationMode.js.map +1 -1
- package/browser/driver/types/UpsertType.js.map +1 -1
- package/browser/entity-manager/EntityManager.js.map +1 -1
- package/browser/entity-manager/EntityManagerFactory.js.map +1 -1
- package/browser/entity-manager/MongoEntityManager.js.map +1 -1
- package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
- package/browser/entity-schema/EntitySchema.js.map +1 -1
- package/browser/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
- package/browser/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaInheritanceOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/browser/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
- package/browser/error/AlreadyHasActiveConnectionError.js.map +1 -1
- package/browser/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
- package/browser/error/CannotConnectAlreadyConnectedError.js.map +1 -1
- package/browser/error/CannotCreateEntityIdMapError.js.map +1 -1
- package/browser/error/CannotDetermineEntityError.js.map +1 -1
- package/browser/error/CannotExecuteNotConnectedError.js.map +1 -1
- package/browser/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
- package/browser/error/CannotReflectMethodParameterTypeError.js.map +1 -1
- package/browser/error/CircularRelationsError.js.map +1 -1
- package/browser/error/ColumnTypeUndefinedError.js.map +1 -1
- package/browser/error/ConnectionIsNotSetError.js.map +1 -1
- package/browser/error/ConnectionNotFoundError.js.map +1 -1
- package/browser/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
- package/browser/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
- package/browser/error/CustomRepositoryNotFoundError.js.map +1 -1
- package/browser/error/DataTypeNotSupportedError.js.map +1 -1
- package/browser/error/DriverOptionNotSetError.js.map +1 -1
- package/browser/error/DriverPackageNotInstalledError.js.map +1 -1
- package/browser/error/EntityMetadataNotFoundError.js.map +1 -1
- package/browser/error/EntityNotFoundError.js.map +1 -1
- package/browser/error/EntityPropertyNotFoundError.js.map +1 -1
- package/browser/error/FindRelationsNotFoundError.js.map +1 -1
- package/browser/error/ForbiddenTransactionModeOverrideError.js.map +1 -1
- package/browser/error/InitializedRelationError.js.map +1 -1
- package/browser/error/InsertValuesMissingError.js.map +1 -1
- package/browser/error/LimitOnUpdateNotSupportedError.js.map +1 -1
- package/browser/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
- package/browser/error/MetadataAlreadyExistsError.js.map +1 -1
- package/browser/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
- package/browser/error/MissingDeleteDateColumnError.js.map +1 -1
- package/browser/error/MissingDriverError.js.map +1 -1
- package/browser/error/MissingJoinColumnError.js.map +1 -1
- package/browser/error/MissingJoinTableError.js.map +1 -1
- package/browser/error/MissingPrimaryColumnError.js.map +1 -1
- package/browser/error/MustBeEntityError.js.map +1 -1
- package/browser/error/NamingStrategyNotFoundError.js.map +1 -1
- package/browser/error/NestedSetMultipleRootError.js.map +1 -1
- package/browser/error/NoConnectionForRepositoryError.js.map +1 -1
- package/browser/error/NoConnectionOptionError.js.map +1 -1
- package/browser/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
- package/browser/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
- package/browser/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
- package/browser/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
- package/browser/error/OptimisticLockVersionMismatchError.js.map +1 -1
- package/browser/error/PersistedEntityNotFoundError.js.map +1 -1
- package/browser/error/PessimisticLockTransactionRequiredError.js.map +1 -1
- package/browser/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
- package/browser/error/QueryFailedError.js.map +1 -1
- package/browser/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
- package/browser/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
- package/browser/error/RepositoryNotTreeError.js.map +1 -1
- package/browser/error/ReturningStatementNotSupportedError.js.map +1 -1
- package/browser/error/SubjectRemovedAndUpdatedError.js.map +1 -1
- package/browser/error/SubjectWithoutIdentifierError.js.map +1 -1
- package/browser/error/TransactionAlreadyStartedError.js.map +1 -1
- package/browser/error/TransactionNotStartedError.js.map +1 -1
- package/browser/error/TreeRepositoryNotSupportedError.js.map +1 -1
- package/browser/error/TypeORMError.js.map +1 -1
- package/browser/error/UpdateValuesMissingError.js.map +1 -1
- package/browser/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
- package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
- package/browser/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
- package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
- package/browser/error/index.js.map +1 -1
- package/browser/find-options/EqualOperator.js.map +1 -1
- package/browser/find-options/FindManyOptions.js.map +1 -1
- package/browser/find-options/FindOneOptions.js.map +1 -1
- package/browser/find-options/FindOperator.js.map +1 -1
- package/browser/find-options/FindOperatorType.js.map +1 -1
- package/browser/find-options/FindOptionsOrder.js.map +1 -1
- package/browser/find-options/FindOptionsRelations.js.map +1 -1
- package/browser/find-options/FindOptionsSelect.js.map +1 -1
- package/browser/find-options/FindOptionsUtils.js.map +1 -1
- package/browser/find-options/FindOptionsWhere.js.map +1 -1
- package/browser/find-options/FindTreeOptions.js.map +1 -1
- package/browser/find-options/JoinOptions.js.map +1 -1
- package/browser/find-options/OrderByCondition.js.map +1 -1
- package/browser/find-options/mongodb/MongoFindManyOptions.js.map +1 -1
- package/browser/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
- package/browser/find-options/operator/And.js.map +1 -1
- package/browser/find-options/operator/Any.js.map +1 -1
- package/browser/find-options/operator/ArrayContainedBy.js.map +1 -1
- package/browser/find-options/operator/ArrayContains.js.map +1 -1
- package/browser/find-options/operator/ArrayOverlap.js.map +1 -1
- package/browser/find-options/operator/Between.js.map +1 -1
- package/browser/find-options/operator/Equal.js.map +1 -1
- package/browser/find-options/operator/ILike.js.map +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/JsonContains.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.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.js.map +1 -1
- package/browser/find-options/operator/Or.js.map +1 -1
- package/browser/find-options/operator/Raw.js.map +1 -1
- package/browser/globals.js.map +1 -1
- package/browser/index.js.map +1 -1
- package/browser/logger/AbstractLogger.js.map +1 -1
- package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
- package/browser/logger/DebugLogger.js.map +1 -1
- package/browser/logger/FileLogger.js.map +1 -1
- package/browser/logger/Logger.js.map +1 -1
- package/browser/logger/LoggerFactory.js.map +1 -1
- package/browser/logger/LoggerOptions.js.map +1 -1
- package/browser/logger/SimpleConsoleLogger.js.map +1 -1
- package/browser/metadata/CheckMetadata.js.map +1 -1
- package/browser/metadata/ColumnMetadata.js.map +1 -1
- package/browser/metadata/EmbeddedMetadata.js.map +1 -1
- package/browser/metadata/EntityListenerMetadata.js.map +1 -1
- package/browser/metadata/EntityMetadata.js.map +1 -1
- package/browser/metadata/ExclusionMetadata.js.map +1 -1
- package/browser/metadata/ForeignKeyMetadata.js.map +1 -1
- package/browser/metadata/IndexMetadata.js.map +1 -1
- package/browser/metadata/RelationCountMetadata.js.map +1 -1
- package/browser/metadata/RelationIdMetadata.js.map +1 -1
- package/browser/metadata/RelationMetadata.js.map +1 -1
- package/browser/metadata/UniqueMetadata.js.map +1 -1
- package/browser/metadata/types/ClosureTreeOptions.js.map +1 -1
- package/browser/metadata/types/DeferrableType.js.map +1 -1
- package/browser/metadata/types/EventListenerTypes.js.map +1 -1
- package/browser/metadata/types/OnDeleteType.js.map +1 -1
- package/browser/metadata/types/OnUpdateType.js.map +1 -1
- package/browser/metadata/types/PropertyTypeInFunction.js.map +1 -1
- package/browser/metadata/types/RelationTypeInFunction.js.map +1 -1
- package/browser/metadata/types/RelationTypes.js.map +1 -1
- package/browser/metadata/types/TableTypes.js.map +1 -1
- package/browser/metadata/types/TreeTypes.js.map +1 -1
- package/browser/metadata-args/CheckMetadataArgs.js.map +1 -1
- package/browser/metadata-args/ColumnMetadataArgs.js.map +1 -1
- package/browser/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
- package/browser/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
- package/browser/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
- package/browser/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
- package/browser/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
- package/browser/metadata-args/ExclusionMetadataArgs.js.map +1 -1
- package/browser/metadata-args/GeneratedMetadataArgs.js.map +1 -1
- package/browser/metadata-args/IndexMetadataArgs.js.map +1 -1
- package/browser/metadata-args/InheritanceMetadataArgs.js.map +1 -1
- package/browser/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
- package/browser/metadata-args/JoinTableMetadataArgs.js.map +1 -1
- package/browser/metadata-args/MetadataArgsStorage.js.map +1 -1
- package/browser/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
- package/browser/metadata-args/RelationCountMetadataArgs.js.map +1 -1
- package/browser/metadata-args/RelationIdMetadataArgs.js.map +1 -1
- package/browser/metadata-args/RelationMetadataArgs.js.map +1 -1
- package/browser/metadata-args/TableMetadataArgs.js.map +1 -1
- package/browser/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
- package/browser/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
- package/browser/metadata-args/TreeMetadataArgs.js.map +1 -1
- package/browser/metadata-args/UniqueMetadataArgs.js.map +1 -1
- package/browser/metadata-args/types/ColumnMode.js.map +1 -1
- package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/MetadataUtils.js.map +1 -1
- package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/browser/migration/Migration.js.map +1 -1
- package/browser/migration/MigrationExecutor.js.map +1 -1
- package/browser/migration/MigrationInterface.js.map +1 -1
- package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
- package/browser/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -1
- package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
- package/browser/persistence/EntityPersistExecutor.js.map +1 -1
- package/browser/persistence/Subject.js.map +1 -1
- package/browser/persistence/SubjectChangeMap.js.map +1 -1
- package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
- package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
- package/browser/persistence/SubjectExecutor.js.map +1 -1
- package/browser/persistence/SubjectTopologicalSorter.js.map +1 -1
- package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
- package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
- package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
- package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
- package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
- package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
- package/browser/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
- package/browser/platform/BrowserConnectionOptionsReaderDummy.js.map +1 -1
- package/browser/platform/BrowserDirectoryExportedClassesLoader.js.map +1 -1
- package/browser/platform/BrowserDisabledDriversDummy.js.map +1 -1
- package/browser/platform/BrowserFileLoggerDummy.js.map +1 -1
- package/browser/platform/BrowserPlatformTools.js.map +1 -1
- package/browser/platform/PlatformTools.js.map +1 -1
- package/browser/query-builder/Alias.js.map +1 -1
- package/browser/query-builder/Brackets.js.map +1 -1
- package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/browser/query-builder/InsertOrUpdateOptions.js.map +1 -1
- package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
- package/browser/query-builder/JoinAttribute.js.map +1 -1
- package/browser/query-builder/JoinOptions.js.map +1 -1
- package/browser/query-builder/NotBrackets.js.map +1 -1
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryBuilderCte.js.map +1 -1
- package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
- package/browser/query-builder/QueryExpressionMap.js.map +1 -1
- package/browser/query-builder/QueryPartialEntity.js.map +1 -1
- package/browser/query-builder/RelationIdLoader.js +3 -2
- package/browser/query-builder/RelationIdLoader.js.map +1 -1
- package/browser/query-builder/RelationLoader.js.map +1 -1
- package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
- package/browser/query-builder/RelationRemover.js.map +1 -1
- package/browser/query-builder/RelationUpdater.js.map +1 -1
- package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
- package/browser/query-builder/SelectQuery.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilderOption.js.map +1 -1
- package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
- package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/browser/query-builder/WhereClause.js.map +1 -1
- package/browser/query-builder/WhereExpressionBuilder.js.map +1 -1
- package/browser/query-builder/index.js.map +1 -1
- package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
- package/browser/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
- package/browser/query-builder/relation-count/RelationCountLoader.js.map +1 -1
- package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
- package/browser/query-builder/result/DeleteResult.js.map +1 -1
- package/browser/query-builder/result/InsertResult.js.map +1 -1
- package/browser/query-builder/result/UpdateResult.js.map +1 -1
- package/browser/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
- package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
- package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/browser/query-runner/BaseQueryRunner.js.map +1 -1
- package/browser/query-runner/QueryLock.js.map +1 -1
- package/browser/query-runner/QueryResult.js.map +1 -1
- package/browser/query-runner/QueryRunner.js.map +1 -1
- package/browser/repository/AbstractRepository.js.map +1 -1
- package/browser/repository/BaseEntity.js.map +1 -1
- package/browser/repository/EntityId.js.map +1 -1
- package/browser/repository/FindTreesOptions.js.map +1 -1
- package/browser/repository/MongoRepository.js.map +1 -1
- package/browser/repository/RemoveOptions.js.map +1 -1
- package/browser/repository/Repository.js.map +1 -1
- package/browser/repository/SaveOptions.js.map +1 -1
- package/browser/repository/TreeRepository.js.map +1 -1
- package/browser/repository/UpsertOptions.js.map +1 -1
- package/browser/schema-builder/MongoSchemaBuilder.js.map +1 -1
- package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/browser/schema-builder/SchemaBuilder.js.map +1 -1
- package/browser/schema-builder/options/TableCheckOptions.js.map +1 -1
- package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
- package/browser/schema-builder/options/TableExclusionOptions.js.map +1 -1
- package/browser/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
- package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
- package/browser/schema-builder/options/TableOptions.js.map +1 -1
- package/browser/schema-builder/options/TableUniqueOptions.js.map +1 -1
- package/browser/schema-builder/options/ViewOptions.js.map +1 -1
- package/browser/schema-builder/table/Table.js.map +1 -1
- package/browser/schema-builder/table/TableCheck.js.map +1 -1
- package/browser/schema-builder/table/TableColumn.js.map +1 -1
- package/browser/schema-builder/table/TableExclusion.js.map +1 -1
- package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
- package/browser/schema-builder/table/TableIndex.js.map +1 -1
- package/browser/schema-builder/table/TableUnique.js.map +1 -1
- package/browser/schema-builder/util/TableUtils.js.map +1 -1
- package/browser/schema-builder/util/ViewUtils.js.map +1 -1
- package/browser/schema-builder/view/View.js.map +1 -1
- package/browser/subscriber/Broadcaster.js.map +1 -1
- package/browser/subscriber/BroadcasterResult.js.map +1 -1
- package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
- package/browser/subscriber/event/InsertEvent.js.map +1 -1
- package/browser/subscriber/event/LoadEvent.js.map +1 -1
- package/browser/subscriber/event/QueryEvent.js.map +1 -1
- package/browser/subscriber/event/RecoverEvent.js.map +1 -1
- package/browser/subscriber/event/RemoveEvent.js.map +1 -1
- package/browser/subscriber/event/SoftRemoveEvent.js.map +1 -1
- package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -1
- package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -1
- package/browser/subscriber/event/TransactionStartEvent.js.map +1 -1
- package/browser/subscriber/event/UpdateEvent.js.map +1 -1
- package/browser/util/ApplyValueTransformers.js.map +1 -1
- package/browser/util/DateUtils.js.map +1 -1
- package/browser/util/DepGraph.js.map +1 -1
- package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
- package/browser/util/ImportUtils.js.map +1 -1
- package/browser/util/InstanceChecker.js.map +1 -1
- package/browser/util/ObjectUtils.js.map +1 -1
- package/browser/util/OrmUtils.js.map +1 -1
- package/browser/util/PathUtils.js.map +1 -1
- package/browser/util/RandomGenerator.js.map +1 -1
- package/browser/util/StringUtils.js.map +1 -1
- package/browser/util/TreeRepositoryUtils.js.map +1 -1
- package/browser/util/VersionUtils.js.map +1 -1
- package/browser/util/escapeRegExp.js.map +1 -1
- package/cache/DbQueryResultCache.js.map +1 -1
- package/cache/QueryResultCache.js.map +1 -1
- package/cache/QueryResultCacheFactory.js.map +1 -1
- package/cache/QueryResultCacheOptions.js.map +1 -1
- package/cache/RedisQueryResultCache.js.map +1 -1
- package/cli-ts-node-commonjs.js.map +1 -1
- package/cli-ts-node-esm.js.map +1 -1
- package/cli.js.map +1 -1
- package/commands/CacheClearCommand.js.map +1 -1
- package/commands/CommandUtils.js.map +1 -1
- package/commands/EntityCreateCommand.js +6 -6
- package/commands/EntityCreateCommand.js.map +1 -1
- package/commands/InitCommand.js +294 -302
- package/commands/InitCommand.js.map +1 -1
- package/commands/MigrationCreateCommand.js +22 -22
- package/commands/MigrationCreateCommand.js.map +1 -1
- package/commands/MigrationGenerateCommand.js +31 -31
- package/commands/MigrationGenerateCommand.js.map +1 -1
- package/commands/MigrationRevertCommand.js.map +1 -1
- package/commands/MigrationRunCommand.js.map +1 -1
- package/commands/MigrationShowCommand.js.map +1 -1
- package/commands/QueryCommand.js.map +1 -1
- package/commands/SchemaDropCommand.js.map +1 -1
- package/commands/SchemaLogCommand.js.map +1 -1
- package/commands/SchemaSyncCommand.js.map +1 -1
- package/commands/SubscriberCreateCommand.js +6 -6
- package/commands/SubscriberCreateCommand.js.map +1 -1
- package/commands/VersionCommand.js.map +1 -1
- package/common/DeepPartial.js.map +1 -1
- package/common/EntityTarget.js.map +1 -1
- package/common/MixedList.js.map +1 -1
- package/common/NonNever.js.map +1 -1
- package/common/ObjectLiteral.js.map +1 -1
- package/common/ObjectType.js.map +1 -1
- package/common/PickKeysByType.js.map +1 -1
- package/common/RelationType.js.map +1 -1
- package/connection/BaseConnectionOptions.js.map +1 -1
- package/connection/Connection.js.map +1 -1
- package/connection/ConnectionManager.js.map +1 -1
- package/connection/ConnectionMetadataBuilder.js.map +1 -1
- package/connection/ConnectionOptions.js.map +1 -1
- package/connection/ConnectionOptionsReader.js.map +1 -1
- package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
- package/container.js.map +1 -1
- package/data-source/BaseDataSourceOptions.js.map +1 -1
- package/data-source/DataSource.js.map +1 -1
- package/data-source/DataSourceOptions.js.map +1 -1
- package/data-source/index.js.map +1 -1
- package/decorator/Check.js.map +1 -1
- package/decorator/EntityRepository.js.map +1 -1
- package/decorator/Exclusion.js.map +1 -1
- package/decorator/Generated.js.map +1 -1
- package/decorator/Index.js.map +1 -1
- package/decorator/Unique.js.map +1 -1
- package/decorator/columns/Column.js.map +1 -1
- package/decorator/columns/CreateDateColumn.js.map +1 -1
- package/decorator/columns/DeleteDateColumn.js.map +1 -1
- package/decorator/columns/ObjectIdColumn.js.map +1 -1
- package/decorator/columns/PrimaryColumn.js.map +1 -1
- package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
- package/decorator/columns/UpdateDateColumn.js.map +1 -1
- package/decorator/columns/VersionColumn.js.map +1 -1
- package/decorator/columns/ViewColumn.js.map +1 -1
- package/decorator/columns/VirtualColumn.js.map +1 -1
- package/decorator/entity/ChildEntity.js.map +1 -1
- package/decorator/entity/Entity.js.map +1 -1
- package/decorator/entity/TableInheritance.js.map +1 -1
- package/decorator/entity-view/ViewEntity.js.map +1 -1
- package/decorator/listeners/AfterInsert.js.map +1 -1
- package/decorator/listeners/AfterLoad.js.map +1 -1
- package/decorator/listeners/AfterRecover.js.map +1 -1
- package/decorator/listeners/AfterRemove.js.map +1 -1
- package/decorator/listeners/AfterSoftRemove.js.map +1 -1
- package/decorator/listeners/AfterUpdate.js.map +1 -1
- package/decorator/listeners/BeforeInsert.js.map +1 -1
- package/decorator/listeners/BeforeRecover.js.map +1 -1
- package/decorator/listeners/BeforeRemove.js.map +1 -1
- package/decorator/listeners/BeforeSoftRemove.js.map +1 -1
- package/decorator/listeners/BeforeUpdate.js.map +1 -1
- package/decorator/listeners/EventSubscriber.js.map +1 -1
- package/decorator/options/ColumnCommonOptions.js.map +1 -1
- 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.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.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.js.map +1 -1
- package/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
- package/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
- 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.js.map +1 -1
- package/decorator/options/ValueTransformer.js.map +1 -1
- package/decorator/options/ViewColumnOptions.js.map +1 -1
- package/decorator/options/ViewEntityOptions.js.map +1 -1
- package/decorator/options/VirtualColumnOptions.js.map +1 -1
- package/decorator/relations/JoinColumn.js.map +1 -1
- package/decorator/relations/JoinTable.js.map +1 -1
- package/decorator/relations/ManyToMany.js.map +1 -1
- package/decorator/relations/ManyToOne.js.map +1 -1
- package/decorator/relations/OneToMany.js.map +1 -1
- package/decorator/relations/OneToOne.js.map +1 -1
- package/decorator/relations/RelationCount.js.map +1 -1
- package/decorator/relations/RelationId.js.map +1 -1
- package/decorator/tree/Tree.js.map +1 -1
- package/decorator/tree/TreeChildren.js.map +1 -1
- package/decorator/tree/TreeLevelColumn.js.map +1 -1
- package/decorator/tree/TreeParent.js.map +1 -1
- package/driver/Driver.js.map +1 -1
- package/driver/DriverFactory.js.map +1 -1
- package/driver/DriverUtils.js.map +1 -1
- package/driver/Query.js.map +1 -1
- package/driver/SqlInMemory.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +6 -9
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
- package/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -1
- package/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
- package/driver/aurora-postgres/AuroraPostgresQueryRunner.js +6 -9
- package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
- package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
- package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
- package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
- package/driver/capacitor/CapacitorConnectionOptions.js.map +1 -1
- package/driver/capacitor/CapacitorDriver.js.map +1 -1
- package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
- package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
- package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
- package/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.js +7 -11
- package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/driver/cordova/CordovaConnectionOptions.js.map +1 -1
- package/driver/cordova/CordovaDriver.js.map +1 -1
- package/driver/cordova/CordovaQueryRunner.js.map +1 -1
- package/driver/expo/ExpoConnectionOptions.js.map +1 -1
- package/driver/expo/ExpoDriver.js.map +1 -1
- package/driver/expo/ExpoQueryRunner.js.map +1 -1
- package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
- package/driver/mongodb/MongoDriver.js.map +1 -1
- package/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/driver/mongodb/bson.typings.js.map +1 -1
- package/driver/mongodb/typings.js.map +1 -1
- package/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
- package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
- package/driver/mysql/MysqlDriver.js.map +1 -1
- package/driver/mysql/MysqlQueryRunner.js +77 -80
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
- package/driver/nativescript/NativescriptDriver.js.map +1 -1
- package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
- package/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
- package/driver/oracle/OracleConnectionOptions.js.map +1 -1
- package/driver/oracle/OracleDriver.js.map +1 -1
- package/driver/oracle/OracleQueryRunner.js +4 -6
- package/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
- package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.js +6 -9
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
- package/driver/react-native/ReactNativeDriver.js.map +1 -1
- package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
- package/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
- package/driver/sap/SapConnectionOptions.js.map +1 -1
- package/driver/sap/SapDriver.js +2 -0
- package/driver/sap/SapDriver.js.map +1 -1
- package/driver/sap/SapQueryRunner.js.map +1 -1
- package/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -1
- package/driver/spanner/SpannerConnectionOptions.js.map +1 -1
- package/driver/spanner/SpannerDriver.js.map +1 -1
- package/driver/spanner/SpannerQueryRunner.js.map +1 -1
- package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
- package/driver/sqlite/SqliteDriver.js.map +1 -1
- package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +6 -9
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
- package/driver/sqljs/SqljsDriver.js.map +1 -1
- package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
- package/driver/sqlserver/MssqlParameter.js.map +1 -1
- package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
- package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
- package/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.js +31 -32
- package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -1
- package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -1
- package/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -1
- package/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -1
- package/driver/types/ColumnTypes.js.map +1 -1
- package/driver/types/CteCapabilities.js.map +1 -1
- package/driver/types/DataTypeDefaults.js.map +1 -1
- package/driver/types/DatabaseType.js.map +1 -1
- package/driver/types/GeoJsonTypes.js.map +1 -1
- package/driver/types/IsolationLevel.js.map +1 -1
- package/driver/types/MappedColumnTypes.js.map +1 -1
- package/driver/types/MetadataTableType.js.map +1 -1
- package/driver/types/ReplicationMode.js.map +1 -1
- package/driver/types/UpsertType.js.map +1 -1
- package/entity-manager/EntityManager.js.map +1 -1
- package/entity-manager/EntityManagerFactory.js.map +1 -1
- package/entity-manager/MongoEntityManager.js.map +1 -1
- package/entity-manager/SqljsEntityManager.js.map +1 -1
- package/entity-schema/EntitySchema.js.map +1 -1
- package/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
- package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
- package/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -1
- package/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
- package/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
- package/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
- package/entity-schema/EntitySchemaInheritanceOptions.js.map +1 -1
- package/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -1
- package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
- package/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
- package/error/AlreadyHasActiveConnectionError.js.map +1 -1
- package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
- package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
- package/error/CannotCreateEntityIdMapError.js.map +1 -1
- package/error/CannotDetermineEntityError.js.map +1 -1
- package/error/CannotExecuteNotConnectedError.js.map +1 -1
- package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
- package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
- package/error/CircularRelationsError.js.map +1 -1
- package/error/ColumnTypeUndefinedError.js.map +1 -1
- package/error/ConnectionIsNotSetError.js.map +1 -1
- package/error/ConnectionNotFoundError.js.map +1 -1
- package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
- package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
- package/error/CustomRepositoryNotFoundError.js.map +1 -1
- package/error/DataTypeNotSupportedError.js.map +1 -1
- package/error/DriverOptionNotSetError.js.map +1 -1
- package/error/DriverPackageNotInstalledError.js.map +1 -1
- package/error/EntityMetadataNotFoundError.js.map +1 -1
- package/error/EntityNotFoundError.js.map +1 -1
- package/error/EntityPropertyNotFoundError.js.map +1 -1
- package/error/FindRelationsNotFoundError.js.map +1 -1
- package/error/ForbiddenTransactionModeOverrideError.js.map +1 -1
- package/error/InitializedRelationError.js.map +1 -1
- package/error/InsertValuesMissingError.js.map +1 -1
- package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
- package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
- package/error/MetadataAlreadyExistsError.js.map +1 -1
- package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
- package/error/MissingDeleteDateColumnError.js.map +1 -1
- package/error/MissingDriverError.js.map +1 -1
- package/error/MissingJoinColumnError.js.map +1 -1
- package/error/MissingJoinTableError.js.map +1 -1
- package/error/MissingPrimaryColumnError.js.map +1 -1
- package/error/MustBeEntityError.js.map +1 -1
- package/error/NamingStrategyNotFoundError.js.map +1 -1
- package/error/NestedSetMultipleRootError.js.map +1 -1
- package/error/NoConnectionForRepositoryError.js.map +1 -1
- package/error/NoConnectionOptionError.js.map +1 -1
- package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
- package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
- package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
- package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
- package/error/OptimisticLockVersionMismatchError.js.map +1 -1
- package/error/PersistedEntityNotFoundError.js.map +1 -1
- package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
- package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
- package/error/QueryFailedError.js.map +1 -1
- package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
- package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
- package/error/RepositoryNotTreeError.js.map +1 -1
- package/error/ReturningStatementNotSupportedError.js.map +1 -1
- package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
- package/error/SubjectWithoutIdentifierError.js.map +1 -1
- package/error/TransactionAlreadyStartedError.js.map +1 -1
- package/error/TransactionNotStartedError.js.map +1 -1
- package/error/TreeRepositoryNotSupportedError.js.map +1 -1
- package/error/TypeORMError.js.map +1 -1
- package/error/UpdateValuesMissingError.js.map +1 -1
- package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
- package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
- package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
- package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
- package/error/index.js.map +1 -1
- package/find-options/EqualOperator.js.map +1 -1
- package/find-options/FindManyOptions.js.map +1 -1
- package/find-options/FindOneOptions.js.map +1 -1
- package/find-options/FindOperator.js.map +1 -1
- package/find-options/FindOperatorType.js.map +1 -1
- package/find-options/FindOptionsOrder.js.map +1 -1
- package/find-options/FindOptionsRelations.js.map +1 -1
- package/find-options/FindOptionsSelect.js.map +1 -1
- package/find-options/FindOptionsUtils.js.map +1 -1
- package/find-options/FindOptionsWhere.js.map +1 -1
- package/find-options/FindTreeOptions.js.map +1 -1
- package/find-options/JoinOptions.js.map +1 -1
- package/find-options/OrderByCondition.js.map +1 -1
- package/find-options/mongodb/MongoFindManyOptions.js.map +1 -1
- package/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
- package/find-options/operator/And.js.map +1 -1
- package/find-options/operator/Any.js.map +1 -1
- package/find-options/operator/ArrayContainedBy.js.map +1 -1
- package/find-options/operator/ArrayContains.js.map +1 -1
- package/find-options/operator/ArrayOverlap.js.map +1 -1
- package/find-options/operator/Between.js.map +1 -1
- package/find-options/operator/Equal.js.map +1 -1
- package/find-options/operator/ILike.js.map +1 -1
- package/find-options/operator/In.js.map +1 -1
- package/find-options/operator/IsNull.js.map +1 -1
- package/find-options/operator/JsonContains.js.map +1 -1
- package/find-options/operator/LessThan.js.map +1 -1
- package/find-options/operator/LessThanOrEqual.js.map +1 -1
- package/find-options/operator/Like.js.map +1 -1
- package/find-options/operator/MoreThan.js.map +1 -1
- package/find-options/operator/MoreThanOrEqual.js.map +1 -1
- package/find-options/operator/Not.js.map +1 -1
- package/find-options/operator/Or.js.map +1 -1
- package/find-options/operator/Raw.js.map +1 -1
- package/globals.js.map +1 -1
- package/index.js.map +1 -1
- package/logger/AbstractLogger.js.map +1 -1
- package/logger/AdvancedConsoleLogger.js.map +1 -1
- package/logger/DebugLogger.js.map +1 -1
- package/logger/FileLogger.js.map +1 -1
- package/logger/Logger.js.map +1 -1
- package/logger/LoggerFactory.js.map +1 -1
- package/logger/LoggerOptions.js.map +1 -1
- package/logger/SimpleConsoleLogger.js.map +1 -1
- package/metadata/CheckMetadata.js.map +1 -1
- package/metadata/ColumnMetadata.js.map +1 -1
- package/metadata/EmbeddedMetadata.js.map +1 -1
- package/metadata/EntityListenerMetadata.js.map +1 -1
- package/metadata/EntityMetadata.js.map +1 -1
- package/metadata/ExclusionMetadata.js.map +1 -1
- package/metadata/ForeignKeyMetadata.js.map +1 -1
- package/metadata/IndexMetadata.js.map +1 -1
- package/metadata/RelationCountMetadata.js.map +1 -1
- package/metadata/RelationIdMetadata.js.map +1 -1
- package/metadata/RelationMetadata.js.map +1 -1
- package/metadata/UniqueMetadata.js.map +1 -1
- package/metadata/types/ClosureTreeOptions.js.map +1 -1
- package/metadata/types/DeferrableType.js.map +1 -1
- 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.js.map +1 -1
- package/metadata/types/RelationTypes.js.map +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.js.map +1 -1
- package/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
- 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.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.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.js.map +1 -1
- package/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
- package/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
- package/metadata-args/TreeMetadataArgs.js.map +1 -1
- package/metadata-args/UniqueMetadataArgs.js.map +1 -1
- package/metadata-args/types/ColumnMode.js.map +1 -1
- package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/MetadataUtils.js.map +1 -1
- package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/migration/Migration.js.map +1 -1
- package/migration/MigrationExecutor.js.map +1 -1
- package/migration/MigrationInterface.js.map +1 -1
- package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
- package/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -1
- package/naming-strategy/NamingStrategyInterface.js.map +1 -1
- package/package.json +1 -260
- package/persistence/EntityPersistExecutor.js.map +1 -1
- package/persistence/Subject.js.map +1 -1
- package/persistence/SubjectChangeMap.js.map +1 -1
- package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
- package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
- package/persistence/SubjectExecutor.js.map +1 -1
- package/persistence/SubjectTopologicalSorter.js.map +1 -1
- package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
- package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
- package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
- package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
- package/platform/PlatformTools.js.map +1 -1
- package/query-builder/Alias.js.map +1 -1
- package/query-builder/Brackets.js.map +1 -1
- package/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/query-builder/InsertOrUpdateOptions.js.map +1 -1
- package/query-builder/InsertQueryBuilder.js.map +1 -1
- package/query-builder/JoinAttribute.js.map +1 -1
- package/query-builder/JoinOptions.js.map +1 -1
- package/query-builder/NotBrackets.js.map +1 -1
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/QueryBuilderCte.js.map +1 -1
- package/query-builder/QueryBuilderUtils.js.map +1 -1
- package/query-builder/QueryExpressionMap.js.map +1 -1
- package/query-builder/QueryPartialEntity.js.map +1 -1
- package/query-builder/RelationIdLoader.js +3 -2
- package/query-builder/RelationIdLoader.js.map +1 -1
- package/query-builder/RelationLoader.js.map +1 -1
- package/query-builder/RelationQueryBuilder.js.map +1 -1
- package/query-builder/RelationRemover.js.map +1 -1
- package/query-builder/RelationUpdater.js.map +1 -1
- package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
- package/query-builder/SelectQuery.js.map +1 -1
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-builder/SelectQueryBuilderOption.js.map +1 -1
- package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
- package/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/query-builder/WhereClause.js.map +1 -1
- package/query-builder/WhereExpressionBuilder.js.map +1 -1
- package/query-builder/index.js.map +1 -1
- 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.js.map +1 -1
- package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
- 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.js.map +1 -1
- package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
- package/query-builder/result/DeleteResult.js.map +1 -1
- package/query-builder/result/InsertResult.js.map +1 -1
- package/query-builder/result/UpdateResult.js.map +1 -1
- package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
- package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
- package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/query-runner/BaseQueryRunner.js.map +1 -1
- package/query-runner/QueryLock.js.map +1 -1
- package/query-runner/QueryResult.js.map +1 -1
- package/query-runner/QueryRunner.js.map +1 -1
- package/repository/AbstractRepository.js.map +1 -1
- package/repository/BaseEntity.js.map +1 -1
- package/repository/EntityId.js.map +1 -1
- package/repository/FindTreesOptions.js.map +1 -1
- package/repository/MongoRepository.js.map +1 -1
- package/repository/RemoveOptions.js.map +1 -1
- package/repository/Repository.js.map +1 -1
- package/repository/SaveOptions.js.map +1 -1
- package/repository/TreeRepository.js.map +1 -1
- package/repository/UpsertOptions.js.map +1 -1
- package/schema-builder/MongoSchemaBuilder.js.map +1 -1
- 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.js.map +1 -1
- package/schema-builder/options/TableExclusionOptions.js.map +1 -1
- package/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
- package/schema-builder/options/TableIndexOptions.js.map +1 -1
- package/schema-builder/options/TableOptions.js.map +1 -1
- package/schema-builder/options/TableUniqueOptions.js.map +1 -1
- package/schema-builder/options/ViewOptions.js.map +1 -1
- package/schema-builder/table/Table.js.map +1 -1
- package/schema-builder/table/TableCheck.js.map +1 -1
- package/schema-builder/table/TableColumn.js.map +1 -1
- package/schema-builder/table/TableExclusion.js.map +1 -1
- package/schema-builder/table/TableForeignKey.js.map +1 -1
- package/schema-builder/table/TableIndex.js.map +1 -1
- package/schema-builder/table/TableUnique.js.map +1 -1
- package/schema-builder/util/TableUtils.js.map +1 -1
- package/schema-builder/util/ViewUtils.js.map +1 -1
- package/schema-builder/view/View.js.map +1 -1
- package/subscriber/Broadcaster.js.map +1 -1
- package/subscriber/BroadcasterResult.js.map +1 -1
- package/subscriber/EntitySubscriberInterface.js.map +1 -1
- package/subscriber/event/InsertEvent.js.map +1 -1
- package/subscriber/event/LoadEvent.js.map +1 -1
- package/subscriber/event/QueryEvent.js.map +1 -1
- package/subscriber/event/RecoverEvent.js.map +1 -1
- package/subscriber/event/RemoveEvent.js.map +1 -1
- package/subscriber/event/SoftRemoveEvent.js.map +1 -1
- package/subscriber/event/TransactionCommitEvent.js.map +1 -1
- package/subscriber/event/TransactionRollbackEvent.js.map +1 -1
- package/subscriber/event/TransactionStartEvent.js.map +1 -1
- package/subscriber/event/UpdateEvent.js.map +1 -1
- package/typeorm-class-transformer-shim.js +271 -271
- package/typeorm-model-shim.js +295 -295
- package/util/ApplyValueTransformers.js.map +1 -1
- package/util/DateUtils.js.map +1 -1
- package/util/DepGraph.js.map +1 -1
- package/util/DirectoryExportedClassesLoader.js.map +1 -1
- package/util/ImportUtils.js.map +1 -1
- package/util/InstanceChecker.js.map +1 -1
- package/util/ObjectUtils.js.map +1 -1
- package/util/OrmUtils.js.map +1 -1
- package/util/PathUtils.js.map +1 -1
- package/util/RandomGenerator.js.map +1 -1
- package/util/StringUtils.js.map +1 -1
- package/util/TreeRepositoryUtils.js.map +1 -1
- package/util/VersionUtils.js.map +1 -1
- package/util/escapeRegExp.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../browser/src/query-builder/QueryExpressionMap.ts"],"names":[],"mappings":"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","file":"QueryExpressionMap.js","sourcesContent":["import { Alias } from \"./Alias\"\r\nimport { ObjectLiteral } from \"../common/ObjectLiteral\"\r\nimport { OrderByCondition } from \"../find-options/OrderByCondition\"\r\nimport { JoinAttribute } from \"./JoinAttribute\"\r\nimport { QueryBuilder } from \"./QueryBuilder\"\r\nimport { QueryBuilderCteOptions } from \"./QueryBuilderCte\"\r\nimport { RelationIdAttribute } from \"./relation-id/RelationIdAttribute\"\r\nimport { RelationCountAttribute } from \"./relation-count/RelationCountAttribute\"\r\nimport { DataSource } from \"../data-source/DataSource\"\r\nimport { EntityMetadata } from \"../metadata/EntityMetadata\"\r\nimport { SelectQuery } from \"./SelectQuery\"\r\nimport { ColumnMetadata } from \"../metadata/ColumnMetadata\"\r\nimport { RelationMetadata } from \"../metadata/RelationMetadata\"\r\nimport { SelectQueryBuilderOption } from \"./SelectQueryBuilderOption\"\r\nimport { TypeORMError } from \"../error\"\r\nimport { WhereClause } from \"./WhereClause\"\r\nimport { UpsertType } from \"../driver/types/UpsertType\"\r\nimport { CockroachConnectionOptions } from \"../driver/cockroachdb/CockroachConnectionOptions\"\r\n\r\n/**\r\n * Contains all properties of the QueryBuilder that needs to be build a final query.\r\n */\r\nexport class QueryExpressionMap {\r\n // -------------------------------------------------------------------------\r\n // Public Properties\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Strategy to load relations.\r\n */\r\n relationLoadStrategy: \"join\" | \"query\" = \"join\"\r\n\r\n /**\r\n * Indicates if QueryBuilder used to select entities and not a raw results.\r\n */\r\n queryEntity: boolean = false\r\n\r\n /**\r\n * Main alias is a main selection object selected by QueryBuilder.\r\n */\r\n mainAlias?: Alias\r\n\r\n /**\r\n * All aliases (including main alias) used in the query.\r\n */\r\n aliases: Alias[] = []\r\n\r\n /**\r\n * Represents query type. QueryBuilder is able to build SELECT, UPDATE and DELETE queries.\r\n */\r\n queryType:\r\n | \"select\"\r\n | \"update\"\r\n | \"delete\"\r\n | \"insert\"\r\n | \"relation\"\r\n | \"soft-delete\"\r\n | \"restore\" = \"select\"\r\n\r\n /**\r\n * Data needs to be SELECT-ed.\r\n */\r\n selects: SelectQuery[] = []\r\n\r\n /**\r\n * Max execution time in millisecond.\r\n */\r\n maxExecutionTime: number = 0\r\n\r\n /**\r\n * Whether SELECT is DISTINCT.\r\n */\r\n selectDistinct: boolean = false\r\n\r\n /**\r\n * SELECT DISTINCT ON query (postgres).\r\n */\r\n selectDistinctOn: string[] = []\r\n\r\n /**\r\n * FROM-s to be selected.\r\n */\r\n // froms: { target: string, alias: string }[] = [];\r\n\r\n /**\r\n * If update query was used, it needs \"update set\" - properties which will be updated by this query.\r\n * If insert query was used, it needs \"insert set\" - values that needs to be inserted.\r\n */\r\n valuesSet?: ObjectLiteral | ObjectLiteral[]\r\n\r\n /**\r\n * Optional returning (or output) clause for insert, update or delete queries.\r\n */\r\n returning: string | string[]\r\n\r\n /**\r\n * Extra returning columns to be added to the returning statement if driver supports it.\r\n */\r\n extraReturningColumns: ColumnMetadata[] = []\r\n\r\n /**\r\n * Optional on conflict statement used in insertion query in postgres.\r\n */\r\n onConflict: string = \"\"\r\n\r\n /**\r\n * Optional on ignore statement used in insertion query in databases.\r\n */\r\n onIgnore: boolean = false\r\n\r\n /**\r\n * Optional on update statement used in insertion query in databases.\r\n */\r\n onUpdate: {\r\n conflict?: string | string[]\r\n columns?: string[]\r\n overwrite?: string[]\r\n skipUpdateIfNoValuesChanged?: boolean\r\n indexPredicate?: string\r\n upsertType?: UpsertType\r\n }\r\n\r\n /**\r\n * JOIN queries.\r\n */\r\n joinAttributes: JoinAttribute[] = []\r\n\r\n /**\r\n * RelationId queries.\r\n */\r\n relationIdAttributes: RelationIdAttribute[] = []\r\n\r\n /**\r\n * Relation count queries.\r\n */\r\n relationCountAttributes: RelationCountAttribute[] = []\r\n\r\n /**\r\n * WHERE queries.\r\n */\r\n wheres: WhereClause[] = []\r\n\r\n /**\r\n * HAVING queries.\r\n */\r\n havings: { type: \"simple\" | \"and\" | \"or\"; condition: string }[] = []\r\n\r\n /**\r\n * ORDER BY queries.\r\n */\r\n orderBys: OrderByCondition = {}\r\n\r\n /**\r\n * GROUP BY queries.\r\n */\r\n groupBys: string[] = []\r\n\r\n /**\r\n * LIMIT query.\r\n */\r\n limit?: number\r\n\r\n /**\r\n * OFFSET query.\r\n */\r\n offset?: number\r\n\r\n /**\r\n * Number of rows to skip of result using pagination.\r\n */\r\n skip?: number\r\n\r\n /**\r\n * Number of rows to take using pagination.\r\n */\r\n take?: number\r\n\r\n /**\r\n * Use certain index for the query.\r\n *\r\n * SELECT * FROM table_name USE INDEX (col1_index, col2_index) WHERE col1=1 AND col2=2 AND col3=3;\r\n */\r\n useIndex?: string\r\n\r\n /**\r\n * Locking mode.\r\n */\r\n lockMode?:\r\n | \"optimistic\"\r\n | \"pessimistic_read\"\r\n | \"pessimistic_write\"\r\n | \"dirty_read\"\r\n /*\r\n \"pessimistic_partial_write\" and \"pessimistic_write_or_fail\" are deprecated and\r\n will be removed in a future version.\r\n\r\n Use onLocked instead.\r\n */\r\n | \"pessimistic_partial_write\"\r\n | \"pessimistic_write_or_fail\"\r\n | \"for_no_key_update\"\r\n | \"for_key_share\"\r\n\r\n /**\r\n * Current version of the entity, used for locking.\r\n */\r\n lockVersion?: number | Date\r\n\r\n /**\r\n * Tables to be specified in the \"FOR UPDATE OF\" clause, referred by their alias\r\n */\r\n lockTables?: string[]\r\n\r\n /**\r\n * Modify behavior when encountering locked rows. NOWAIT or SKIP LOCKED\r\n */\r\n onLocked?: \"nowait\" | \"skip_locked\"\r\n\r\n /**\r\n * Indicates if soft-deleted rows should be included in entity result.\r\n * By default the soft-deleted rows are not included.\r\n */\r\n withDeleted: boolean = false\r\n\r\n /**\r\n * Parameters used to be escaped in final query.\r\n */\r\n parameters: ObjectLiteral = {}\r\n\r\n /**\r\n * Indicates if alias, table names and column names will be escaped by driver, or not.\r\n *\r\n * todo: rename to isQuotingDisabled, also think if it should be named \"escaping\"\r\n */\r\n disableEscaping: boolean = true\r\n\r\n /**\r\n * Indicates if virtual columns should be included in entity result.\r\n *\r\n * todo: what to do with it? is it properly used? what about persistence?\r\n */\r\n enableRelationIdValues: boolean = false\r\n\r\n /**\r\n * Extra where condition appended to the end of original where conditions with AND keyword.\r\n * Original condition will be wrapped into brackets.\r\n */\r\n extraAppendedAndWhereCondition: string = \"\"\r\n\r\n /**\r\n * Indicates if query builder creates a subquery.\r\n */\r\n subQuery: boolean = false\r\n\r\n /**\r\n * Indicates if property names are prefixed with alias names during property replacement.\r\n * By default this is enabled, however we need this because aliases are not supported in UPDATE and DELETE queries,\r\n * but user can use them in WHERE expressions.\r\n */\r\n aliasNamePrefixingEnabled: boolean = true\r\n\r\n /**\r\n * Indicates if query result cache is enabled or not.\r\n * It is undefined by default to avoid overriding the `alwaysEnabled` config\r\n */\r\n cache?: boolean\r\n\r\n /**\r\n * Time in milliseconds in which cache will expire.\r\n * If not set then global caching time will be used.\r\n */\r\n cacheDuration: number\r\n\r\n /**\r\n * Cache id.\r\n * Used to identifier your cache queries.\r\n */\r\n cacheId: string\r\n\r\n /**\r\n * Options that define QueryBuilder behaviour.\r\n */\r\n options: SelectQueryBuilderOption[] = []\r\n\r\n /**\r\n * Property path of relation to work with.\r\n * Used in relational query builder.\r\n */\r\n relationPropertyPath: string\r\n\r\n /**\r\n * Entity (target) which relations will be updated.\r\n */\r\n of: any | any[]\r\n\r\n /**\r\n * List of columns where data should be inserted.\r\n * Used in INSERT query.\r\n */\r\n insertColumns: string[] = []\r\n\r\n /**\r\n * Used if user wants to update or delete a specific entities.\r\n */\r\n whereEntities: ObjectLiteral[] = []\r\n\r\n /**\r\n * Indicates if entity must be updated after insertion / updation.\r\n * This may produce extra query or use RETURNING / OUTPUT statement (depend on database).\r\n */\r\n updateEntity: boolean = true\r\n\r\n /**\r\n * Indicates if listeners and subscribers must be called before and after query execution.\r\n */\r\n callListeners: boolean = true\r\n\r\n /**\r\n * Indicates if query must be wrapped into transaction.\r\n */\r\n useTransaction: boolean = false\r\n\r\n /**\r\n * Indicates if query should be time travel query\r\n * https://www.cockroachlabs.com/docs/stable/as-of-system-time.html\r\n */\r\n timeTravel?: boolean | string\r\n\r\n /**\r\n * Extra parameters.\r\n *\r\n * @deprecated Use standard parameters instead\r\n */\r\n nativeParameters: ObjectLiteral = {}\r\n\r\n /**\r\n * Query Comment to include extra information for debugging or other purposes.\r\n */\r\n comment?: string\r\n\r\n /**\r\n * Items from an entity that have been locally generated & are recorded here for later use.\r\n * Examples include the UUID generation when the database does not natively support it.\r\n * These are included in the entity index order.\r\n */\r\n locallyGenerated: { [key: number]: ObjectLiteral } = {}\r\n\r\n commonTableExpressions: {\r\n queryBuilder: QueryBuilder<any> | string\r\n alias: string\r\n options: QueryBuilderCteOptions\r\n }[] = []\r\n\r\n // -------------------------------------------------------------------------\r\n // Constructor\r\n // -------------------------------------------------------------------------\r\n\r\n constructor(protected connection: DataSource) {\r\n if (connection.options.relationLoadStrategy) {\r\n this.relationLoadStrategy = connection.options.relationLoadStrategy\r\n }\r\n\r\n this.timeTravel =\r\n (connection.options as CockroachConnectionOptions)\r\n ?.timeTravelQueries || false\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Accessors\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Get all ORDER BY queries - if order by is specified by user then it uses them,\r\n * otherwise it uses default entity order by if it was set.\r\n */\r\n get allOrderBys() {\r\n if (\r\n !Object.keys(this.orderBys).length &&\r\n this.mainAlias!.hasMetadata &&\r\n this.options.indexOf(\"disable-global-order\") === -1\r\n ) {\r\n const entityOrderBy = this.mainAlias!.metadata.orderBy || {}\r\n return Object.keys(entityOrderBy).reduce((orderBy, key) => {\r\n orderBy[this.mainAlias!.name + \".\" + key] = entityOrderBy[key]\r\n return orderBy\r\n }, {} as OrderByCondition)\r\n }\r\n\r\n return this.orderBys\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Public Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Creates a main alias and adds it to the current expression map.\r\n */\r\n setMainAlias(alias: Alias): Alias {\r\n // if main alias is already set then remove it from the array\r\n // if (this.mainAlias)\r\n // this.aliases.splice(this.aliases.indexOf(this.mainAlias));\r\n\r\n // set new main alias\r\n this.mainAlias = alias\r\n\r\n return alias\r\n }\r\n\r\n /**\r\n * Creates a new alias and adds it to the current expression map.\r\n */\r\n createAlias(options: {\r\n type: \"from\" | \"select\" | \"join\" | \"other\"\r\n name?: string\r\n target?: Function | string\r\n tablePath?: string\r\n subQuery?: string\r\n metadata?: EntityMetadata\r\n }): Alias {\r\n let aliasName = options.name\r\n if (!aliasName && options.tablePath) aliasName = options.tablePath\r\n if (!aliasName && typeof options.target === \"function\")\r\n aliasName = options.target.name\r\n if (!aliasName && typeof options.target === \"string\")\r\n aliasName = options.target\r\n\r\n const alias = new Alias()\r\n alias.type = options.type\r\n if (aliasName) alias.name = aliasName\r\n if (options.metadata) alias.metadata = options.metadata\r\n if (options.target && !alias.hasMetadata)\r\n alias.metadata = this.connection.getMetadata(options.target)\r\n if (options.tablePath) alias.tablePath = options.tablePath\r\n if (options.subQuery) alias.subQuery = options.subQuery\r\n\r\n this.aliases.push(alias)\r\n return alias\r\n }\r\n\r\n /**\r\n * Finds alias with the given name.\r\n * If alias was not found it throw an exception.\r\n */\r\n findAliasByName(aliasName: string): Alias {\r\n const alias = this.aliases.find((alias) => alias.name === aliasName)\r\n if (!alias)\r\n throw new TypeORMError(\r\n `\"${aliasName}\" alias was not found. Maybe you forgot to join it?`,\r\n )\r\n\r\n return alias\r\n }\r\n\r\n findColumnByAliasExpression(\r\n aliasExpression: string,\r\n ): ColumnMetadata | undefined {\r\n const [aliasName, propertyPath] = aliasExpression.split(\".\")\r\n const alias = this.findAliasByName(aliasName)\r\n return alias.metadata.findColumnWithPropertyName(propertyPath)\r\n }\r\n\r\n /**\r\n * Gets relation metadata of the relation this query builder works with.\r\n *\r\n * todo: add proper exceptions\r\n */\r\n get relationMetadata(): RelationMetadata {\r\n if (!this.mainAlias)\r\n throw new TypeORMError(`Entity to work with is not specified!`) // todo: better message\r\n\r\n const relationMetadata =\r\n this.mainAlias.metadata.findRelationWithPropertyPath(\r\n this.relationPropertyPath,\r\n )\r\n if (!relationMetadata)\r\n throw new TypeORMError(\r\n `Relation ${this.relationPropertyPath} was not found in entity ${this.mainAlias.name}`,\r\n ) // todo: better message\r\n\r\n return relationMetadata\r\n }\r\n\r\n /**\r\n * Copies all properties of the current QueryExpressionMap into a new one.\r\n * Useful when QueryBuilder needs to create a copy of itself.\r\n */\r\n clone(): QueryExpressionMap {\r\n const map = new QueryExpressionMap(this.connection)\r\n map.queryType = this.queryType\r\n map.selects = this.selects.map((select) => select)\r\n map.maxExecutionTime = this.maxExecutionTime\r\n map.selectDistinct = this.selectDistinct\r\n map.selectDistinctOn = this.selectDistinctOn\r\n this.aliases.forEach((alias) => map.aliases.push(new Alias(alias)))\r\n map.relationLoadStrategy = this.relationLoadStrategy\r\n map.mainAlias = this.mainAlias\r\n map.valuesSet = this.valuesSet\r\n map.returning = this.returning\r\n map.onConflict = this.onConflict\r\n map.onIgnore = this.onIgnore\r\n map.onUpdate = this.onUpdate\r\n map.joinAttributes = this.joinAttributes.map(\r\n (join) => new JoinAttribute(this.connection, this, join),\r\n )\r\n map.relationIdAttributes = this.relationIdAttributes.map(\r\n (relationId) => new RelationIdAttribute(this, relationId),\r\n )\r\n map.relationCountAttributes = this.relationCountAttributes.map(\r\n (relationCount) => new RelationCountAttribute(this, relationCount),\r\n )\r\n map.wheres = this.wheres.map((where) => ({ ...where }))\r\n map.havings = this.havings.map((having) => ({ ...having }))\r\n map.orderBys = Object.assign({}, this.orderBys)\r\n map.groupBys = this.groupBys.map((groupBy) => groupBy)\r\n map.limit = this.limit\r\n map.offset = this.offset\r\n map.skip = this.skip\r\n map.take = this.take\r\n map.lockMode = this.lockMode\r\n map.onLocked = this.onLocked\r\n map.lockVersion = this.lockVersion\r\n map.lockTables = this.lockTables\r\n map.withDeleted = this.withDeleted\r\n map.parameters = Object.assign({}, this.parameters)\r\n map.disableEscaping = this.disableEscaping\r\n map.enableRelationIdValues = this.enableRelationIdValues\r\n map.extraAppendedAndWhereCondition = this.extraAppendedAndWhereCondition\r\n map.subQuery = this.subQuery\r\n map.aliasNamePrefixingEnabled = this.aliasNamePrefixingEnabled\r\n map.cache = this.cache\r\n map.cacheId = this.cacheId\r\n map.cacheDuration = this.cacheDuration\r\n map.relationPropertyPath = this.relationPropertyPath\r\n map.of = this.of\r\n map.insertColumns = this.insertColumns\r\n map.whereEntities = this.whereEntities\r\n map.updateEntity = this.updateEntity\r\n map.callListeners = this.callListeners\r\n map.useTransaction = this.useTransaction\r\n map.timeTravel = this.timeTravel\r\n map.nativeParameters = Object.assign({}, this.nativeParameters)\r\n map.comment = this.comment\r\n map.commonTableExpressions = this.commonTableExpressions.map(\r\n (cteOptions) => ({\r\n alias: cteOptions.alias,\r\n queryBuilder:\r\n typeof cteOptions.queryBuilder === \"string\"\r\n ? cteOptions.queryBuilder\r\n : cteOptions.queryBuilder.clone(),\r\n options: cteOptions.options,\r\n }),\r\n )\r\n return map\r\n }\r\n}\r\n"],"sourceRoot":".."}
|
|
1
|
+
{"version":3,"sources":["../browser/src/query-builder/QueryExpressionMap.ts"],"names":[],"mappings":"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","file":"QueryExpressionMap.js","sourcesContent":["import { Alias } from \"./Alias\"\nimport { ObjectLiteral } from \"../common/ObjectLiteral\"\nimport { OrderByCondition } from \"../find-options/OrderByCondition\"\nimport { JoinAttribute } from \"./JoinAttribute\"\nimport { QueryBuilder } from \"./QueryBuilder\"\nimport { QueryBuilderCteOptions } from \"./QueryBuilderCte\"\nimport { RelationIdAttribute } from \"./relation-id/RelationIdAttribute\"\nimport { RelationCountAttribute } from \"./relation-count/RelationCountAttribute\"\nimport { DataSource } from \"../data-source/DataSource\"\nimport { EntityMetadata } from \"../metadata/EntityMetadata\"\nimport { SelectQuery } from \"./SelectQuery\"\nimport { ColumnMetadata } from \"../metadata/ColumnMetadata\"\nimport { RelationMetadata } from \"../metadata/RelationMetadata\"\nimport { SelectQueryBuilderOption } from \"./SelectQueryBuilderOption\"\nimport { TypeORMError } from \"../error\"\nimport { WhereClause } from \"./WhereClause\"\nimport { UpsertType } from \"../driver/types/UpsertType\"\nimport { CockroachConnectionOptions } from \"../driver/cockroachdb/CockroachConnectionOptions\"\n\n/**\n * Contains all properties of the QueryBuilder that needs to be build a final query.\n */\nexport class QueryExpressionMap {\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Strategy to load relations.\n */\n relationLoadStrategy: \"join\" | \"query\" = \"join\"\n\n /**\n * Indicates if QueryBuilder used to select entities and not a raw results.\n */\n queryEntity: boolean = false\n\n /**\n * Main alias is a main selection object selected by QueryBuilder.\n */\n mainAlias?: Alias\n\n /**\n * All aliases (including main alias) used in the query.\n */\n aliases: Alias[] = []\n\n /**\n * Represents query type. QueryBuilder is able to build SELECT, UPDATE and DELETE queries.\n */\n queryType:\n | \"select\"\n | \"update\"\n | \"delete\"\n | \"insert\"\n | \"relation\"\n | \"soft-delete\"\n | \"restore\" = \"select\"\n\n /**\n * Data needs to be SELECT-ed.\n */\n selects: SelectQuery[] = []\n\n /**\n * Max execution time in millisecond.\n */\n maxExecutionTime: number = 0\n\n /**\n * Whether SELECT is DISTINCT.\n */\n selectDistinct: boolean = false\n\n /**\n * SELECT DISTINCT ON query (postgres).\n */\n selectDistinctOn: string[] = []\n\n /**\n * FROM-s to be selected.\n */\n // froms: { target: string, alias: string }[] = [];\n\n /**\n * If update query was used, it needs \"update set\" - properties which will be updated by this query.\n * If insert query was used, it needs \"insert set\" - values that needs to be inserted.\n */\n valuesSet?: ObjectLiteral | ObjectLiteral[]\n\n /**\n * Optional returning (or output) clause for insert, update or delete queries.\n */\n returning: string | string[]\n\n /**\n * Extra returning columns to be added to the returning statement if driver supports it.\n */\n extraReturningColumns: ColumnMetadata[] = []\n\n /**\n * Optional on conflict statement used in insertion query in postgres.\n */\n onConflict: string = \"\"\n\n /**\n * Optional on ignore statement used in insertion query in databases.\n */\n onIgnore: boolean = false\n\n /**\n * Optional on update statement used in insertion query in databases.\n */\n onUpdate: {\n conflict?: string | string[]\n columns?: string[]\n overwrite?: string[]\n skipUpdateIfNoValuesChanged?: boolean\n indexPredicate?: string\n upsertType?: UpsertType\n }\n\n /**\n * JOIN queries.\n */\n joinAttributes: JoinAttribute[] = []\n\n /**\n * RelationId queries.\n */\n relationIdAttributes: RelationIdAttribute[] = []\n\n /**\n * Relation count queries.\n */\n relationCountAttributes: RelationCountAttribute[] = []\n\n /**\n * WHERE queries.\n */\n wheres: WhereClause[] = []\n\n /**\n * HAVING queries.\n */\n havings: { type: \"simple\" | \"and\" | \"or\"; condition: string }[] = []\n\n /**\n * ORDER BY queries.\n */\n orderBys: OrderByCondition = {}\n\n /**\n * GROUP BY queries.\n */\n groupBys: string[] = []\n\n /**\n * LIMIT query.\n */\n limit?: number\n\n /**\n * OFFSET query.\n */\n offset?: number\n\n /**\n * Number of rows to skip of result using pagination.\n */\n skip?: number\n\n /**\n * Number of rows to take using pagination.\n */\n take?: number\n\n /**\n * Use certain index for the query.\n *\n * SELECT * FROM table_name USE INDEX (col1_index, col2_index) WHERE col1=1 AND col2=2 AND col3=3;\n */\n useIndex?: string\n\n /**\n * Locking mode.\n */\n lockMode?:\n | \"optimistic\"\n | \"pessimistic_read\"\n | \"pessimistic_write\"\n | \"dirty_read\"\n /*\n \"pessimistic_partial_write\" and \"pessimistic_write_or_fail\" are deprecated and\n will be removed in a future version.\n\n Use onLocked instead.\n */\n | \"pessimistic_partial_write\"\n | \"pessimistic_write_or_fail\"\n | \"for_no_key_update\"\n | \"for_key_share\"\n\n /**\n * Current version of the entity, used for locking.\n */\n lockVersion?: number | Date\n\n /**\n * Tables to be specified in the \"FOR UPDATE OF\" clause, referred by their alias\n */\n lockTables?: string[]\n\n /**\n * Modify behavior when encountering locked rows. NOWAIT or SKIP LOCKED\n */\n onLocked?: \"nowait\" | \"skip_locked\"\n\n /**\n * Indicates if soft-deleted rows should be included in entity result.\n * By default the soft-deleted rows are not included.\n */\n withDeleted: boolean = false\n\n /**\n * Parameters used to be escaped in final query.\n */\n parameters: ObjectLiteral = {}\n\n /**\n * Indicates if alias, table names and column names will be escaped by driver, or not.\n *\n * todo: rename to isQuotingDisabled, also think if it should be named \"escaping\"\n */\n disableEscaping: boolean = true\n\n /**\n * Indicates if virtual columns should be included in entity result.\n *\n * todo: what to do with it? is it properly used? what about persistence?\n */\n enableRelationIdValues: boolean = false\n\n /**\n * Extra where condition appended to the end of original where conditions with AND keyword.\n * Original condition will be wrapped into brackets.\n */\n extraAppendedAndWhereCondition: string = \"\"\n\n /**\n * Indicates if query builder creates a subquery.\n */\n subQuery: boolean = false\n\n /**\n * Indicates if property names are prefixed with alias names during property replacement.\n * By default this is enabled, however we need this because aliases are not supported in UPDATE and DELETE queries,\n * but user can use them in WHERE expressions.\n */\n aliasNamePrefixingEnabled: boolean = true\n\n /**\n * Indicates if query result cache is enabled or not.\n * It is undefined by default to avoid overriding the `alwaysEnabled` config\n */\n cache?: boolean\n\n /**\n * Time in milliseconds in which cache will expire.\n * If not set then global caching time will be used.\n */\n cacheDuration: number\n\n /**\n * Cache id.\n * Used to identifier your cache queries.\n */\n cacheId: string\n\n /**\n * Options that define QueryBuilder behaviour.\n */\n options: SelectQueryBuilderOption[] = []\n\n /**\n * Property path of relation to work with.\n * Used in relational query builder.\n */\n relationPropertyPath: string\n\n /**\n * Entity (target) which relations will be updated.\n */\n of: any | any[]\n\n /**\n * List of columns where data should be inserted.\n * Used in INSERT query.\n */\n insertColumns: string[] = []\n\n /**\n * Used if user wants to update or delete a specific entities.\n */\n whereEntities: ObjectLiteral[] = []\n\n /**\n * Indicates if entity must be updated after insertion / updation.\n * This may produce extra query or use RETURNING / OUTPUT statement (depend on database).\n */\n updateEntity: boolean = true\n\n /**\n * Indicates if listeners and subscribers must be called before and after query execution.\n */\n callListeners: boolean = true\n\n /**\n * Indicates if query must be wrapped into transaction.\n */\n useTransaction: boolean = false\n\n /**\n * Indicates if query should be time travel query\n * https://www.cockroachlabs.com/docs/stable/as-of-system-time.html\n */\n timeTravel?: boolean | string\n\n /**\n * Extra parameters.\n *\n * @deprecated Use standard parameters instead\n */\n nativeParameters: ObjectLiteral = {}\n\n /**\n * Query Comment to include extra information for debugging or other purposes.\n */\n comment?: string\n\n /**\n * Items from an entity that have been locally generated & are recorded here for later use.\n * Examples include the UUID generation when the database does not natively support it.\n * These are included in the entity index order.\n */\n locallyGenerated: { [key: number]: ObjectLiteral } = {}\n\n commonTableExpressions: {\n queryBuilder: QueryBuilder<any> | string\n alias: string\n options: QueryBuilderCteOptions\n }[] = []\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected connection: DataSource) {\n if (connection.options.relationLoadStrategy) {\n this.relationLoadStrategy = connection.options.relationLoadStrategy\n }\n\n this.timeTravel =\n (connection.options as CockroachConnectionOptions)\n ?.timeTravelQueries || false\n }\n\n // -------------------------------------------------------------------------\n // Accessors\n // -------------------------------------------------------------------------\n\n /**\n * Get all ORDER BY queries - if order by is specified by user then it uses them,\n * otherwise it uses default entity order by if it was set.\n */\n get allOrderBys() {\n if (\n !Object.keys(this.orderBys).length &&\n this.mainAlias!.hasMetadata &&\n this.options.indexOf(\"disable-global-order\") === -1\n ) {\n const entityOrderBy = this.mainAlias!.metadata.orderBy || {}\n return Object.keys(entityOrderBy).reduce((orderBy, key) => {\n orderBy[this.mainAlias!.name + \".\" + key] = entityOrderBy[key]\n return orderBy\n }, {} as OrderByCondition)\n }\n\n return this.orderBys\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a main alias and adds it to the current expression map.\n */\n setMainAlias(alias: Alias): Alias {\n // if main alias is already set then remove it from the array\n // if (this.mainAlias)\n // this.aliases.splice(this.aliases.indexOf(this.mainAlias));\n\n // set new main alias\n this.mainAlias = alias\n\n return alias\n }\n\n /**\n * Creates a new alias and adds it to the current expression map.\n */\n createAlias(options: {\n type: \"from\" | \"select\" | \"join\" | \"other\"\n name?: string\n target?: Function | string\n tablePath?: string\n subQuery?: string\n metadata?: EntityMetadata\n }): Alias {\n let aliasName = options.name\n if (!aliasName && options.tablePath) aliasName = options.tablePath\n if (!aliasName && typeof options.target === \"function\")\n aliasName = options.target.name\n if (!aliasName && typeof options.target === \"string\")\n aliasName = options.target\n\n const alias = new Alias()\n alias.type = options.type\n if (aliasName) alias.name = aliasName\n if (options.metadata) alias.metadata = options.metadata\n if (options.target && !alias.hasMetadata)\n alias.metadata = this.connection.getMetadata(options.target)\n if (options.tablePath) alias.tablePath = options.tablePath\n if (options.subQuery) alias.subQuery = options.subQuery\n\n this.aliases.push(alias)\n return alias\n }\n\n /**\n * Finds alias with the given name.\n * If alias was not found it throw an exception.\n */\n findAliasByName(aliasName: string): Alias {\n const alias = this.aliases.find((alias) => alias.name === aliasName)\n if (!alias)\n throw new TypeORMError(\n `\"${aliasName}\" alias was not found. Maybe you forgot to join it?`,\n )\n\n return alias\n }\n\n findColumnByAliasExpression(\n aliasExpression: string,\n ): ColumnMetadata | undefined {\n const [aliasName, propertyPath] = aliasExpression.split(\".\")\n const alias = this.findAliasByName(aliasName)\n return alias.metadata.findColumnWithPropertyName(propertyPath)\n }\n\n /**\n * Gets relation metadata of the relation this query builder works with.\n *\n * todo: add proper exceptions\n */\n get relationMetadata(): RelationMetadata {\n if (!this.mainAlias)\n throw new TypeORMError(`Entity to work with is not specified!`) // todo: better message\n\n const relationMetadata =\n this.mainAlias.metadata.findRelationWithPropertyPath(\n this.relationPropertyPath,\n )\n if (!relationMetadata)\n throw new TypeORMError(\n `Relation ${this.relationPropertyPath} was not found in entity ${this.mainAlias.name}`,\n ) // todo: better message\n\n return relationMetadata\n }\n\n /**\n * Copies all properties of the current QueryExpressionMap into a new one.\n * Useful when QueryBuilder needs to create a copy of itself.\n */\n clone(): QueryExpressionMap {\n const map = new QueryExpressionMap(this.connection)\n map.queryType = this.queryType\n map.selects = this.selects.map((select) => select)\n map.maxExecutionTime = this.maxExecutionTime\n map.selectDistinct = this.selectDistinct\n map.selectDistinctOn = this.selectDistinctOn\n this.aliases.forEach((alias) => map.aliases.push(new Alias(alias)))\n map.relationLoadStrategy = this.relationLoadStrategy\n map.mainAlias = this.mainAlias\n map.valuesSet = this.valuesSet\n map.returning = this.returning\n map.onConflict = this.onConflict\n map.onIgnore = this.onIgnore\n map.onUpdate = this.onUpdate\n map.joinAttributes = this.joinAttributes.map(\n (join) => new JoinAttribute(this.connection, this, join),\n )\n map.relationIdAttributes = this.relationIdAttributes.map(\n (relationId) => new RelationIdAttribute(this, relationId),\n )\n map.relationCountAttributes = this.relationCountAttributes.map(\n (relationCount) => new RelationCountAttribute(this, relationCount),\n )\n map.wheres = this.wheres.map((where) => ({ ...where }))\n map.havings = this.havings.map((having) => ({ ...having }))\n map.orderBys = Object.assign({}, this.orderBys)\n map.groupBys = this.groupBys.map((groupBy) => groupBy)\n map.limit = this.limit\n map.offset = this.offset\n map.skip = this.skip\n map.take = this.take\n map.lockMode = this.lockMode\n map.onLocked = this.onLocked\n map.lockVersion = this.lockVersion\n map.lockTables = this.lockTables\n map.withDeleted = this.withDeleted\n map.parameters = Object.assign({}, this.parameters)\n map.disableEscaping = this.disableEscaping\n map.enableRelationIdValues = this.enableRelationIdValues\n map.extraAppendedAndWhereCondition = this.extraAppendedAndWhereCondition\n map.subQuery = this.subQuery\n map.aliasNamePrefixingEnabled = this.aliasNamePrefixingEnabled\n map.cache = this.cache\n map.cacheId = this.cacheId\n map.cacheDuration = this.cacheDuration\n map.relationPropertyPath = this.relationPropertyPath\n map.of = this.of\n map.insertColumns = this.insertColumns\n map.whereEntities = this.whereEntities\n map.updateEntity = this.updateEntity\n map.callListeners = this.callListeners\n map.useTransaction = this.useTransaction\n map.timeTravel = this.timeTravel\n map.nativeParameters = Object.assign({}, this.nativeParameters)\n map.comment = this.comment\n map.commonTableExpressions = this.commonTableExpressions.map(\n (cteOptions) => ({\n alias: cteOptions.alias,\n queryBuilder:\n typeof cteOptions.queryBuilder === \"string\"\n ? cteOptions.queryBuilder\n : cteOptions.queryBuilder.clone(),\n options: cteOptions.options,\n }),\n )\n return map\n }\n}\n"],"sourceRoot":".."}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../browser/src/query-builder/QueryPartialEntity.ts"],"names":[],"mappings":"","file":"QueryPartialEntity.js","sourcesContent":["import { ObjectLiteral } from \"../common/ObjectLiteral\"\
|
|
1
|
+
{"version":3,"sources":["../browser/src/query-builder/QueryPartialEntity.ts"],"names":[],"mappings":"","file":"QueryPartialEntity.js","sourcesContent":["import { ObjectLiteral } from \"../common/ObjectLiteral\"\n\n/**\n * Make all properties in T optional\n */\nexport type QueryPartialEntity<T> = {\n [P in keyof T]?: T[P] | (() => string)\n}\n\n/**\n * Make all properties in T optional. Deep version.\n */\nexport type QueryDeepPartialEntity<T> = _QueryDeepPartialEntity<\n ObjectLiteral extends T ? unknown : T\n>\n\ntype _QueryDeepPartialEntity<T> = {\n [P in keyof T]?:\n | (T[P] extends Array<infer U>\n ? Array<_QueryDeepPartialEntity<U>>\n : T[P] extends ReadonlyArray<infer U>\n ? ReadonlyArray<_QueryDeepPartialEntity<U>>\n : _QueryDeepPartialEntity<T[P]>)\n | (() => string)\n}\n"],"sourceRoot":".."}
|
|
@@ -408,6 +408,7 @@ export class RelationIdLoader {
|
|
|
408
408
|
* Loads relation ids for the one-to-many and one-to-one not owner relations.
|
|
409
409
|
*/
|
|
410
410
|
loadForOneToManyAndOneToOneNotOwner(relation, entities, relatedEntities) {
|
|
411
|
+
const originalRelation = relation;
|
|
411
412
|
relation = relation.inverseRelation;
|
|
412
413
|
if (relation.entityMetadata.primaryColumns.length ===
|
|
413
414
|
relation.joinColumns.length) {
|
|
@@ -425,7 +426,7 @@ export class RelationIdLoader {
|
|
|
425
426
|
joinColumn.referencedColumn.propertyPath.replace(".", "_");
|
|
426
427
|
const primaryColumnName = joinColumn.entityMetadata.name +
|
|
427
428
|
"_" +
|
|
428
|
-
|
|
429
|
+
originalRelation.propertyPath.replace(".", "_") +
|
|
429
430
|
"_" +
|
|
430
431
|
joinColumn.propertyPath.replace(".", "_");
|
|
431
432
|
result[joinColumnName] = value;
|
|
@@ -441,7 +442,7 @@ export class RelationIdLoader {
|
|
|
441
442
|
relation.entityMetadata.primaryColumns.forEach((primaryColumn) => {
|
|
442
443
|
const columnName = DriverUtils.buildAlias(this.connection.driver, undefined, primaryColumn.entityMetadata.name +
|
|
443
444
|
"_" +
|
|
444
|
-
|
|
445
|
+
originalRelation.propertyPath.replace(".", "_") +
|
|
445
446
|
"_" +
|
|
446
447
|
primaryColumn.propertyPath.replace(".", "_"));
|
|
447
448
|
qb.addSelect(mainAlias + "." + primaryColumn.propertyPath, columnName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../browser/src/query-builder/RelationIdLoader.ts"],"names":[],"mappings":"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","file":"RelationIdLoader.js","sourcesContent":["import { RelationMetadata } from \"../metadata/RelationMetadata\"\r\nimport { ColumnMetadata } from \"../metadata/ColumnMetadata\"\r\nimport { DataSource } from \"../data-source/DataSource\"\r\nimport { ObjectLiteral } from \"../common/ObjectLiteral\"\r\nimport { SelectQueryBuilder } from \"./SelectQueryBuilder\"\r\nimport { DriverUtils } from \"../driver/DriverUtils\"\r\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\r\n\r\n/**\r\n * Loads relation ids for the given entities.\r\n */\r\nexport class RelationIdLoader {\r\n // -------------------------------------------------------------------------\r\n // Constructor\r\n // -------------------------------------------------------------------------\r\n\r\n constructor(\r\n private connection: DataSource,\r\n protected queryRunner?: QueryRunner | undefined,\r\n ) {}\r\n\r\n // -------------------------------------------------------------------------\r\n // Public Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Loads relation ids of the given entity or entities.\r\n */\r\n load(\r\n relation: RelationMetadata,\r\n entityOrEntities: ObjectLiteral | ObjectLiteral[],\r\n relatedEntityOrRelatedEntities?: ObjectLiteral | ObjectLiteral[],\r\n ): Promise<any[]> {\r\n const entities = Array.isArray(entityOrEntities)\r\n ? entityOrEntities\r\n : [entityOrEntities]\r\n const relatedEntities = Array.isArray(relatedEntityOrRelatedEntities)\r\n ? relatedEntityOrRelatedEntities\r\n : relatedEntityOrRelatedEntities\r\n ? [relatedEntityOrRelatedEntities]\r\n : undefined\r\n\r\n // load relation ids depend of relation type\r\n if (relation.isManyToMany) {\r\n return this.loadForManyToMany(relation, entities, relatedEntities)\r\n } else if (relation.isManyToOne || relation.isOneToOneOwner) {\r\n return this.loadForManyToOneAndOneToOneOwner(\r\n relation,\r\n entities,\r\n relatedEntities,\r\n )\r\n } else {\r\n // if (relation.isOneToMany || relation.isOneToOneNotOwner) {\r\n return this.loadForOneToManyAndOneToOneNotOwner(\r\n relation,\r\n entities,\r\n relatedEntities,\r\n )\r\n }\r\n }\r\n\r\n /**\r\n * Loads relation ids of the given entities and groups them into the object with parent and children.\r\n *\r\n * todo: extract this method?\r\n */\r\n async loadManyToManyRelationIdsAndGroup<\r\n E1 extends ObjectLiteral,\r\n E2 extends ObjectLiteral,\r\n >(\r\n relation: RelationMetadata,\r\n entitiesOrEntities: E1 | E1[],\r\n relatedEntityOrEntities?: E2 | E2[],\r\n queryBuilder?: SelectQueryBuilder<any>,\r\n ): Promise<{ entity: E1; related?: E2 | E2[] }[]> {\r\n // console.log(\"relation:\", relation.propertyName);\r\n // console.log(\"entitiesOrEntities\", entitiesOrEntities);\r\n const isMany = relation.isManyToMany || relation.isOneToMany\r\n const entities: E1[] = Array.isArray(entitiesOrEntities)\r\n ? entitiesOrEntities\r\n : [entitiesOrEntities]\r\n\r\n if (!relatedEntityOrEntities) {\r\n relatedEntityOrEntities = await this.connection.relationLoader.load(\r\n relation,\r\n entitiesOrEntities,\r\n this.queryRunner,\r\n queryBuilder,\r\n )\r\n if (!relatedEntityOrEntities.length)\r\n return entities.map((entity) => ({\r\n entity: entity,\r\n related: isMany ? [] : undefined,\r\n }))\r\n }\r\n // const relationIds = await this.load(relation, relatedEntityOrEntities!, entitiesOrEntities);\r\n const relationIds = await this.load(\r\n relation,\r\n entitiesOrEntities,\r\n relatedEntityOrEntities,\r\n )\r\n // console.log(\"entities\", entities);\r\n // console.log(\"relatedEntityOrEntities\", relatedEntityOrEntities);\r\n // console.log(\"relationIds\", relationIds);\r\n\r\n const relatedEntities: E2[] = Array.isArray(relatedEntityOrEntities)\r\n ? relatedEntityOrEntities\r\n : [relatedEntityOrEntities!]\r\n\r\n let columns: ColumnMetadata[] = [],\r\n inverseColumns: ColumnMetadata[] = []\r\n if (relation.isManyToManyOwner) {\r\n columns = relation.junctionEntityMetadata!.inverseColumns.map(\r\n (column) => column.referencedColumn!,\r\n )\r\n inverseColumns = relation.junctionEntityMetadata!.ownerColumns.map(\r\n (column) => column.referencedColumn!,\r\n )\r\n } else if (relation.isManyToManyNotOwner) {\r\n columns = relation.junctionEntityMetadata!.ownerColumns.map(\r\n (column) => column.referencedColumn!,\r\n )\r\n inverseColumns =\r\n relation.junctionEntityMetadata!.inverseColumns.map(\r\n (column) => column.referencedColumn!,\r\n )\r\n } else if (relation.isManyToOne || relation.isOneToOneOwner) {\r\n columns = relation.joinColumns.map(\r\n (column) => column.referencedColumn!,\r\n )\r\n inverseColumns = relation.entityMetadata.primaryColumns\r\n } else if (relation.isOneToMany || relation.isOneToOneNotOwner) {\r\n columns = relation.inverseRelation!.entityMetadata.primaryColumns\r\n inverseColumns = relation.inverseRelation!.joinColumns.map(\r\n (column) => column.referencedColumn!,\r\n )\r\n } else {\r\n }\r\n\r\n return entities.map((entity) => {\r\n const group: { entity: E1; related?: E2 | E2[] } = {\r\n entity: entity,\r\n related: isMany ? [] : undefined,\r\n }\r\n\r\n const entityRelationIds = relationIds.filter((relationId) => {\r\n return inverseColumns.every((column) => {\r\n return column.compareEntityValue(\r\n entity,\r\n relationId[\r\n column.entityMetadata.name +\r\n \"_\" +\r\n column.propertyAliasName\r\n ],\r\n )\r\n })\r\n })\r\n if (!entityRelationIds.length) return group\r\n\r\n relatedEntities.forEach((relatedEntity) => {\r\n entityRelationIds.forEach((relationId) => {\r\n const relatedEntityMatched = columns.every((column) => {\r\n return column.compareEntityValue(\r\n relatedEntity,\r\n relationId[\r\n DriverUtils.buildAlias(\r\n this.connection.driver,\r\n undefined,\r\n column.entityMetadata.name +\r\n \"_\" +\r\n relation.propertyPath.replace(\r\n \".\",\r\n \"_\",\r\n ) +\r\n \"_\" +\r\n column.propertyPath.replace(\".\", \"_\"),\r\n )\r\n ],\r\n )\r\n })\r\n if (relatedEntityMatched) {\r\n if (isMany) {\r\n ;(group.related as E2[]).push(relatedEntity)\r\n } else {\r\n group.related = relatedEntity\r\n }\r\n }\r\n })\r\n })\r\n return group\r\n })\r\n }\r\n\r\n /**\r\n * Loads relation ids of the given entities and maps them into the given entity property.\r\n async loadManyToManyRelationIdsAndMap(\r\n relation: RelationMetadata,\r\n entityOrEntities: ObjectLiteral|ObjectLiteral[],\r\n mapToEntityOrEntities: ObjectLiteral|ObjectLiteral[],\r\n propertyName: string\r\n ): Promise<void> {\r\n const relationIds = await this.loadManyToManyRelationIds(relation, entityOrEntities, mapToEntityOrEntities);\r\n const mapToEntities = mapToEntityOrEntities instanceof Array ? mapToEntityOrEntities : [mapToEntityOrEntities];\r\n const junctionMetadata = relation.junctionEntityMetadata!;\r\n const mainAlias = junctionMetadata.name;\r\n const columns = relation.isOwning ? junctionMetadata.inverseColumns : junctionMetadata.ownerColumns;\r\n const inverseColumns = relation.isOwning ? junctionMetadata.ownerColumns : junctionMetadata.inverseColumns;\r\n mapToEntities.forEach(mapToEntity => {\r\n mapToEntity[propertyName] = [];\r\n relationIds.forEach(relationId => {\r\n const match = inverseColumns.every(column => {\r\n return column.referencedColumn!.getEntityValue(mapToEntity) === relationId[mainAlias + \"_\" + column.propertyName];\r\n });\r\n if (match) {\r\n if (columns.length === 1) {\r\n mapToEntity[propertyName].push(relationId[mainAlias + \"_\" + columns[0].propertyName]);\r\n } else {\r\n const value = {};\r\n columns.forEach(column => {\r\n column.referencedColumn!.setEntityValue(value, relationId[mainAlias + \"_\" + column.propertyName]);\r\n });\r\n mapToEntity[propertyName].push(value);\r\n }\r\n }\r\n });\r\n });\r\n }*/\r\n\r\n // -------------------------------------------------------------------------\r\n // Protected Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Loads relation ids for the many-to-many relation.\r\n */\r\n protected loadForManyToMany(\r\n relation: RelationMetadata,\r\n entities: ObjectLiteral[],\r\n relatedEntities?: ObjectLiteral[],\r\n ) {\r\n const junctionMetadata = relation.junctionEntityMetadata!\r\n const mainAlias = junctionMetadata.name\r\n const columns = relation.isOwning\r\n ? junctionMetadata.ownerColumns\r\n : junctionMetadata.inverseColumns\r\n const inverseColumns = relation.isOwning\r\n ? junctionMetadata.inverseColumns\r\n : junctionMetadata.ownerColumns\r\n const qb = this.connection.createQueryBuilder(this.queryRunner)\r\n\r\n // select all columns from junction table\r\n columns.forEach((column) => {\r\n const columnName = DriverUtils.buildAlias(\r\n this.connection.driver,\r\n undefined,\r\n column.referencedColumn!.entityMetadata.name +\r\n \"_\" +\r\n column.referencedColumn!.propertyPath.replace(\".\", \"_\"),\r\n )\r\n qb.addSelect(mainAlias + \".\" + column.propertyPath, columnName)\r\n })\r\n inverseColumns.forEach((column) => {\r\n const columnName = DriverUtils.buildAlias(\r\n this.connection.driver,\r\n undefined,\r\n column.referencedColumn!.entityMetadata.name +\r\n \"_\" +\r\n relation.propertyPath.replace(\".\", \"_\") +\r\n \"_\" +\r\n column.referencedColumn!.propertyPath.replace(\".\", \"_\"),\r\n )\r\n qb.addSelect(mainAlias + \".\" + column.propertyPath, columnName)\r\n })\r\n\r\n // add conditions for the given entities\r\n let condition1 = \"\"\r\n if (columns.length === 1) {\r\n const values = entities.map((entity) =>\r\n columns[0].referencedColumn!.getEntityValue(entity),\r\n )\r\n const areAllNumbers = values.every(\r\n (value) => typeof value === \"number\",\r\n )\r\n\r\n if (areAllNumbers) {\r\n condition1 = `${mainAlias}.${\r\n columns[0].propertyPath\r\n } IN (${values.join(\", \")})`\r\n } else {\r\n qb.setParameter(\"values1\", values)\r\n condition1 =\r\n mainAlias +\r\n \".\" +\r\n columns[0].propertyPath +\r\n \" IN (:...values1)\" // todo: use ANY for postgres\r\n }\r\n } else {\r\n condition1 =\r\n \"(\" +\r\n entities\r\n .map((entity, entityIndex) => {\r\n return columns\r\n .map((column) => {\r\n const paramName =\r\n \"entity1_\" +\r\n entityIndex +\r\n \"_\" +\r\n column.propertyName\r\n qb.setParameter(\r\n paramName,\r\n column.referencedColumn!.getEntityValue(\r\n entity,\r\n ),\r\n )\r\n return (\r\n mainAlias +\r\n \".\" +\r\n column.propertyPath +\r\n \" = :\" +\r\n paramName\r\n )\r\n })\r\n .join(\" AND \")\r\n })\r\n .map((condition) => \"(\" + condition + \")\")\r\n .join(\" OR \") +\r\n \")\"\r\n }\r\n\r\n // add conditions for the given inverse entities\r\n let condition2 = \"\"\r\n if (relatedEntities) {\r\n if (inverseColumns.length === 1) {\r\n const values = relatedEntities.map((entity) =>\r\n inverseColumns[0].referencedColumn!.getEntityValue(entity),\r\n )\r\n const areAllNumbers = values.every(\r\n (value) => typeof value === \"number\",\r\n )\r\n\r\n if (areAllNumbers) {\r\n condition2 = `${mainAlias}.${\r\n inverseColumns[0].propertyPath\r\n } IN (${values.join(\", \")})`\r\n } else {\r\n qb.setParameter(\"values2\", values)\r\n condition2 =\r\n mainAlias +\r\n \".\" +\r\n inverseColumns[0].propertyPath +\r\n \" IN (:...values2)\" // todo: use ANY for postgres\r\n }\r\n } else {\r\n condition2 =\r\n \"(\" +\r\n relatedEntities\r\n .map((entity, entityIndex) => {\r\n return inverseColumns\r\n .map((column) => {\r\n const paramName =\r\n \"entity2_\" +\r\n entityIndex +\r\n \"_\" +\r\n column.propertyName\r\n qb.setParameter(\r\n paramName,\r\n column.referencedColumn!.getEntityValue(\r\n entity,\r\n ),\r\n )\r\n return (\r\n mainAlias +\r\n \".\" +\r\n column.propertyPath +\r\n \" = :\" +\r\n paramName\r\n )\r\n })\r\n .join(\" AND \")\r\n })\r\n .map((condition) => \"(\" + condition + \")\")\r\n .join(\" OR \") +\r\n \")\"\r\n }\r\n }\r\n\r\n // qb.from(junctionMetadata.target, mainAlias)\r\n // .where(condition1 + (condition2 ? \" AND \" + condition2 : \"\"));\r\n //\r\n // // execute query\r\n // const { values1, values2 } = qb.getParameters();\r\n // console.log(`I can do it`, { values1, values2 });\r\n // if (inverseColumns.length === 1 &&\r\n // columns.length === 1 &&\r\n // this.connection.driver instanceof SqliteDriver &&\r\n // (values1.length + values2.length) > 500 &&\r\n // values1.length === values2.length) {\r\n // console.log(`I can do it`);\r\n // return qb.getRawMany();\r\n //\r\n // } else {\r\n // return qb.getRawMany();\r\n // }\r\n\r\n // execute query\r\n const condition = [condition1, condition2]\r\n .filter((v) => v.length > 0)\r\n .join(\" AND \")\r\n return qb\r\n .from(junctionMetadata.target, mainAlias)\r\n .where(condition)\r\n .getRawMany()\r\n }\r\n\r\n /**\r\n * Loads relation ids for the many-to-one and one-to-one owner relations.\r\n */\r\n protected loadForManyToOneAndOneToOneOwner(\r\n relation: RelationMetadata,\r\n entities: ObjectLiteral[],\r\n relatedEntities?: ObjectLiteral[],\r\n ) {\r\n const mainAlias = relation.entityMetadata.targetName\r\n\r\n // console.log(\"entitiesx\", entities);\r\n // console.log(\"relatedEntitiesx\", relatedEntities);\r\n const hasAllJoinColumnsInEntity = relation.joinColumns.every(\r\n (joinColumn) => {\r\n return !!relation.entityMetadata.nonVirtualColumns.find(\r\n (column) => column === joinColumn,\r\n )\r\n },\r\n )\r\n if (relatedEntities && hasAllJoinColumnsInEntity) {\r\n let relationIdMaps: ObjectLiteral[] = []\r\n entities.forEach((entity) => {\r\n let relationIdMap: ObjectLiteral = {}\r\n relation.entityMetadata.primaryColumns.forEach(\r\n (primaryColumn) => {\r\n const key =\r\n primaryColumn.entityMetadata.name +\r\n \"_\" +\r\n primaryColumn.propertyPath.replace(\".\", \"_\")\r\n relationIdMap[key] =\r\n primaryColumn.getEntityValue(entity)\r\n },\r\n )\r\n\r\n relatedEntities.forEach((relatedEntity) => {\r\n relation.joinColumns.forEach((joinColumn) => {\r\n const entityColumnValue =\r\n joinColumn.getEntityValue(entity)\r\n const relatedEntityColumnValue =\r\n joinColumn.referencedColumn!.getEntityValue(\r\n relatedEntity,\r\n )\r\n if (\r\n entityColumnValue === undefined ||\r\n relatedEntityColumnValue === undefined\r\n )\r\n return\r\n\r\n if (entityColumnValue === relatedEntityColumnValue) {\r\n const key =\r\n joinColumn.referencedColumn!.entityMetadata\r\n .name +\r\n \"_\" +\r\n relation.propertyPath.replace(\".\", \"_\") +\r\n \"_\" +\r\n joinColumn.referencedColumn!.propertyPath.replace(\r\n \".\",\r\n \"_\",\r\n )\r\n relationIdMap[key] = relatedEntityColumnValue\r\n }\r\n })\r\n })\r\n if (\r\n Object.keys(relationIdMap).length ===\r\n relation.entityMetadata.primaryColumns.length +\r\n relation.joinColumns.length\r\n ) {\r\n relationIdMaps.push(relationIdMap)\r\n }\r\n })\r\n // console.log(\"relationIdMap\", relationIdMaps);\r\n // console.log(\"entities.length\", entities.length);\r\n if (relationIdMaps.length === entities.length)\r\n return Promise.resolve(relationIdMaps)\r\n }\r\n\r\n // select all columns we need\r\n const qb = this.connection.createQueryBuilder(this.queryRunner)\r\n relation.entityMetadata.primaryColumns.forEach((primaryColumn) => {\r\n const columnName = DriverUtils.buildAlias(\r\n this.connection.driver,\r\n undefined,\r\n primaryColumn.entityMetadata.name +\r\n \"_\" +\r\n primaryColumn.propertyPath.replace(\".\", \"_\"),\r\n )\r\n qb.addSelect(\r\n mainAlias + \".\" + primaryColumn.propertyPath,\r\n columnName,\r\n )\r\n })\r\n relation.joinColumns.forEach((column) => {\r\n const columnName = DriverUtils.buildAlias(\r\n this.connection.driver,\r\n undefined,\r\n column.referencedColumn!.entityMetadata.name +\r\n \"_\" +\r\n relation.propertyPath.replace(\".\", \"_\") +\r\n \"_\" +\r\n column.referencedColumn!.propertyPath.replace(\".\", \"_\"),\r\n )\r\n qb.addSelect(mainAlias + \".\" + column.propertyPath, columnName)\r\n })\r\n\r\n // add condition for entities\r\n let condition: string = \"\"\r\n if (relation.entityMetadata.primaryColumns.length === 1) {\r\n const values = entities.map((entity) =>\r\n relation.entityMetadata.primaryColumns[0].getEntityValue(\r\n entity,\r\n ),\r\n )\r\n const areAllNumbers = values.every(\r\n (value) => typeof value === \"number\",\r\n )\r\n\r\n if (areAllNumbers) {\r\n condition = `${mainAlias}.${\r\n relation.entityMetadata.primaryColumns[0].propertyPath\r\n } IN (${values.join(\", \")})`\r\n } else {\r\n qb.setParameter(\"values\", values)\r\n condition =\r\n mainAlias +\r\n \".\" +\r\n relation.entityMetadata.primaryColumns[0].propertyPath +\r\n \" IN (:...values)\" // todo: use ANY for postgres\r\n }\r\n } else {\r\n condition = entities\r\n .map((entity, entityIndex) => {\r\n return relation.entityMetadata.primaryColumns\r\n .map((column, columnIndex) => {\r\n const paramName =\r\n \"entity\" + entityIndex + \"_\" + columnIndex\r\n qb.setParameter(\r\n paramName,\r\n column.getEntityValue(entity),\r\n )\r\n return (\r\n mainAlias +\r\n \".\" +\r\n column.propertyPath +\r\n \" = :\" +\r\n paramName\r\n )\r\n })\r\n .join(\" AND \")\r\n })\r\n .map((condition) => \"(\" + condition + \")\")\r\n .join(\" OR \")\r\n }\r\n\r\n // execute query\r\n return qb\r\n .from(relation.entityMetadata.target, mainAlias)\r\n .where(condition)\r\n .getRawMany()\r\n }\r\n\r\n /**\r\n * Loads relation ids for the one-to-many and one-to-one not owner relations.\r\n */\r\n protected loadForOneToManyAndOneToOneNotOwner(\r\n relation: RelationMetadata,\r\n entities: ObjectLiteral[],\r\n relatedEntities?: ObjectLiteral[],\r\n ) {\r\n relation = relation.inverseRelation!\r\n\r\n if (\r\n relation.entityMetadata.primaryColumns.length ===\r\n relation.joinColumns.length\r\n ) {\r\n const sameReferencedColumns =\r\n relation.entityMetadata.primaryColumns.every((column) => {\r\n return relation.joinColumns.indexOf(column) !== -1\r\n })\r\n if (sameReferencedColumns) {\r\n return Promise.resolve(\r\n entities.map((entity) => {\r\n const result: ObjectLiteral = {}\r\n relation.joinColumns.forEach(function (joinColumn) {\r\n const value =\r\n joinColumn.referencedColumn!.getEntityValue(\r\n entity,\r\n )\r\n const joinColumnName =\r\n joinColumn.referencedColumn!.entityMetadata\r\n .name +\r\n \"_\" +\r\n joinColumn.referencedColumn!.propertyPath.replace(\r\n \".\",\r\n \"_\",\r\n )\r\n const primaryColumnName =\r\n joinColumn.entityMetadata.name +\r\n \"_\" +\r\n relation.inverseRelation!.propertyPath.replace(\r\n \".\",\r\n \"_\",\r\n ) +\r\n \"_\" +\r\n joinColumn.propertyPath.replace(\".\", \"_\")\r\n result[joinColumnName] = value\r\n result[primaryColumnName] = value\r\n })\r\n return result\r\n }),\r\n )\r\n }\r\n }\r\n\r\n const mainAlias = relation.entityMetadata.targetName\r\n\r\n // select all columns we need\r\n const qb = this.connection.createQueryBuilder(this.queryRunner)\r\n relation.entityMetadata.primaryColumns.forEach((primaryColumn) => {\r\n const columnName = DriverUtils.buildAlias(\r\n this.connection.driver,\r\n undefined,\r\n primaryColumn.entityMetadata.name +\r\n \"_\" +\r\n relation.inverseRelation!.propertyPath.replace(\".\", \"_\") +\r\n \"_\" +\r\n primaryColumn.propertyPath.replace(\".\", \"_\"),\r\n )\r\n qb.addSelect(\r\n mainAlias + \".\" + primaryColumn.propertyPath,\r\n columnName,\r\n )\r\n })\r\n relation.joinColumns.forEach((column) => {\r\n const columnName = DriverUtils.buildAlias(\r\n this.connection.driver,\r\n undefined,\r\n column.referencedColumn!.entityMetadata.name +\r\n \"_\" +\r\n column.referencedColumn!.propertyPath.replace(\".\", \"_\"),\r\n )\r\n qb.addSelect(mainAlias + \".\" + column.propertyPath, columnName)\r\n })\r\n\r\n // add condition for entities\r\n let condition: string = \"\"\r\n if (relation.joinColumns.length === 1) {\r\n const values = entities.map((entity) =>\r\n relation.joinColumns[0].referencedColumn!.getEntityValue(\r\n entity,\r\n ),\r\n )\r\n const areAllNumbers = values.every(\r\n (value) => typeof value === \"number\",\r\n )\r\n\r\n if (areAllNumbers) {\r\n condition = `${mainAlias}.${\r\n relation.joinColumns[0].propertyPath\r\n } IN (${values.join(\", \")})`\r\n } else {\r\n qb.setParameter(\"values\", values)\r\n condition =\r\n mainAlias +\r\n \".\" +\r\n relation.joinColumns[0].propertyPath +\r\n \" IN (:...values)\" // todo: use ANY for postgres\r\n }\r\n } else {\r\n condition = entities\r\n .map((entity, entityIndex) => {\r\n return relation.joinColumns\r\n .map((joinColumn, joinColumnIndex) => {\r\n const paramName =\r\n \"entity\" + entityIndex + \"_\" + joinColumnIndex\r\n qb.setParameter(\r\n paramName,\r\n joinColumn.referencedColumn!.getEntityValue(\r\n entity,\r\n ),\r\n )\r\n return (\r\n mainAlias +\r\n \".\" +\r\n joinColumn.propertyPath +\r\n \" = :\" +\r\n paramName\r\n )\r\n })\r\n .join(\" AND \")\r\n })\r\n .map((condition) => \"(\" + condition + \")\")\r\n .join(\" OR \")\r\n }\r\n\r\n // execute query\r\n return qb\r\n .from(relation.entityMetadata.target, mainAlias)\r\n .where(condition)\r\n .getRawMany()\r\n }\r\n}\r\n"],"sourceRoot":".."}
|
|
1
|
+
{"version":3,"sources":["../browser/src/query-builder/RelationIdLoader.ts"],"names":[],"mappings":"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","file":"RelationIdLoader.js","sourcesContent":["import { RelationMetadata } from \"../metadata/RelationMetadata\"\nimport { ColumnMetadata } from \"../metadata/ColumnMetadata\"\nimport { DataSource } from \"../data-source/DataSource\"\nimport { ObjectLiteral } from \"../common/ObjectLiteral\"\nimport { SelectQueryBuilder } from \"./SelectQueryBuilder\"\nimport { DriverUtils } from \"../driver/DriverUtils\"\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\n\n/**\n * Loads relation ids for the given entities.\n */\nexport class RelationIdLoader {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(\n private connection: DataSource,\n protected queryRunner?: QueryRunner | undefined,\n ) {}\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Loads relation ids of the given entity or entities.\n */\n load(\n relation: RelationMetadata,\n entityOrEntities: ObjectLiteral | ObjectLiteral[],\n relatedEntityOrRelatedEntities?: ObjectLiteral | ObjectLiteral[],\n ): Promise<any[]> {\n const entities = Array.isArray(entityOrEntities)\n ? entityOrEntities\n : [entityOrEntities]\n const relatedEntities = Array.isArray(relatedEntityOrRelatedEntities)\n ? relatedEntityOrRelatedEntities\n : relatedEntityOrRelatedEntities\n ? [relatedEntityOrRelatedEntities]\n : undefined\n\n // load relation ids depend of relation type\n if (relation.isManyToMany) {\n return this.loadForManyToMany(relation, entities, relatedEntities)\n } else if (relation.isManyToOne || relation.isOneToOneOwner) {\n return this.loadForManyToOneAndOneToOneOwner(\n relation,\n entities,\n relatedEntities,\n )\n } else {\n // if (relation.isOneToMany || relation.isOneToOneNotOwner) {\n return this.loadForOneToManyAndOneToOneNotOwner(\n relation,\n entities,\n relatedEntities,\n )\n }\n }\n\n /**\n * Loads relation ids of the given entities and groups them into the object with parent and children.\n *\n * todo: extract this method?\n */\n async loadManyToManyRelationIdsAndGroup<\n E1 extends ObjectLiteral,\n E2 extends ObjectLiteral,\n >(\n relation: RelationMetadata,\n entitiesOrEntities: E1 | E1[],\n relatedEntityOrEntities?: E2 | E2[],\n queryBuilder?: SelectQueryBuilder<any>,\n ): Promise<{ entity: E1; related?: E2 | E2[] }[]> {\n // console.log(\"relation:\", relation.propertyName);\n // console.log(\"entitiesOrEntities\", entitiesOrEntities);\n const isMany = relation.isManyToMany || relation.isOneToMany\n const entities: E1[] = Array.isArray(entitiesOrEntities)\n ? entitiesOrEntities\n : [entitiesOrEntities]\n\n if (!relatedEntityOrEntities) {\n relatedEntityOrEntities = await this.connection.relationLoader.load(\n relation,\n entitiesOrEntities,\n this.queryRunner,\n queryBuilder,\n )\n if (!relatedEntityOrEntities.length)\n return entities.map((entity) => ({\n entity: entity,\n related: isMany ? [] : undefined,\n }))\n }\n // const relationIds = await this.load(relation, relatedEntityOrEntities!, entitiesOrEntities);\n const relationIds = await this.load(\n relation,\n entitiesOrEntities,\n relatedEntityOrEntities,\n )\n // console.log(\"entities\", entities);\n // console.log(\"relatedEntityOrEntities\", relatedEntityOrEntities);\n // console.log(\"relationIds\", relationIds);\n\n const relatedEntities: E2[] = Array.isArray(relatedEntityOrEntities)\n ? relatedEntityOrEntities\n : [relatedEntityOrEntities!]\n\n let columns: ColumnMetadata[] = [],\n inverseColumns: ColumnMetadata[] = []\n if (relation.isManyToManyOwner) {\n columns = relation.junctionEntityMetadata!.inverseColumns.map(\n (column) => column.referencedColumn!,\n )\n inverseColumns = relation.junctionEntityMetadata!.ownerColumns.map(\n (column) => column.referencedColumn!,\n )\n } else if (relation.isManyToManyNotOwner) {\n columns = relation.junctionEntityMetadata!.ownerColumns.map(\n (column) => column.referencedColumn!,\n )\n inverseColumns =\n relation.junctionEntityMetadata!.inverseColumns.map(\n (column) => column.referencedColumn!,\n )\n } else if (relation.isManyToOne || relation.isOneToOneOwner) {\n columns = relation.joinColumns.map(\n (column) => column.referencedColumn!,\n )\n inverseColumns = relation.entityMetadata.primaryColumns\n } else if (relation.isOneToMany || relation.isOneToOneNotOwner) {\n columns = relation.inverseRelation!.entityMetadata.primaryColumns\n inverseColumns = relation.inverseRelation!.joinColumns.map(\n (column) => column.referencedColumn!,\n )\n } else {\n }\n\n return entities.map((entity) => {\n const group: { entity: E1; related?: E2 | E2[] } = {\n entity: entity,\n related: isMany ? [] : undefined,\n }\n\n const entityRelationIds = relationIds.filter((relationId) => {\n return inverseColumns.every((column) => {\n return column.compareEntityValue(\n entity,\n relationId[\n column.entityMetadata.name +\n \"_\" +\n column.propertyAliasName\n ],\n )\n })\n })\n if (!entityRelationIds.length) return group\n\n relatedEntities.forEach((relatedEntity) => {\n entityRelationIds.forEach((relationId) => {\n const relatedEntityMatched = columns.every((column) => {\n return column.compareEntityValue(\n relatedEntity,\n relationId[\n DriverUtils.buildAlias(\n this.connection.driver,\n undefined,\n column.entityMetadata.name +\n \"_\" +\n relation.propertyPath.replace(\n \".\",\n \"_\",\n ) +\n \"_\" +\n column.propertyPath.replace(\".\", \"_\"),\n )\n ],\n )\n })\n if (relatedEntityMatched) {\n if (isMany) {\n ;(group.related as E2[]).push(relatedEntity)\n } else {\n group.related = relatedEntity\n }\n }\n })\n })\n return group\n })\n }\n\n /**\n * Loads relation ids of the given entities and maps them into the given entity property.\n async loadManyToManyRelationIdsAndMap(\n relation: RelationMetadata,\n entityOrEntities: ObjectLiteral|ObjectLiteral[],\n mapToEntityOrEntities: ObjectLiteral|ObjectLiteral[],\n propertyName: string\n ): Promise<void> {\n const relationIds = await this.loadManyToManyRelationIds(relation, entityOrEntities, mapToEntityOrEntities);\n const mapToEntities = mapToEntityOrEntities instanceof Array ? mapToEntityOrEntities : [mapToEntityOrEntities];\n const junctionMetadata = relation.junctionEntityMetadata!;\n const mainAlias = junctionMetadata.name;\n const columns = relation.isOwning ? junctionMetadata.inverseColumns : junctionMetadata.ownerColumns;\n const inverseColumns = relation.isOwning ? junctionMetadata.ownerColumns : junctionMetadata.inverseColumns;\n mapToEntities.forEach(mapToEntity => {\n mapToEntity[propertyName] = [];\n relationIds.forEach(relationId => {\n const match = inverseColumns.every(column => {\n return column.referencedColumn!.getEntityValue(mapToEntity) === relationId[mainAlias + \"_\" + column.propertyName];\n });\n if (match) {\n if (columns.length === 1) {\n mapToEntity[propertyName].push(relationId[mainAlias + \"_\" + columns[0].propertyName]);\n } else {\n const value = {};\n columns.forEach(column => {\n column.referencedColumn!.setEntityValue(value, relationId[mainAlias + \"_\" + column.propertyName]);\n });\n mapToEntity[propertyName].push(value);\n }\n }\n });\n });\n }*/\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Loads relation ids for the many-to-many relation.\n */\n protected loadForManyToMany(\n relation: RelationMetadata,\n entities: ObjectLiteral[],\n relatedEntities?: ObjectLiteral[],\n ) {\n const junctionMetadata = relation.junctionEntityMetadata!\n const mainAlias = junctionMetadata.name\n const columns = relation.isOwning\n ? junctionMetadata.ownerColumns\n : junctionMetadata.inverseColumns\n const inverseColumns = relation.isOwning\n ? junctionMetadata.inverseColumns\n : junctionMetadata.ownerColumns\n const qb = this.connection.createQueryBuilder(this.queryRunner)\n\n // select all columns from junction table\n columns.forEach((column) => {\n const columnName = DriverUtils.buildAlias(\n this.connection.driver,\n undefined,\n column.referencedColumn!.entityMetadata.name +\n \"_\" +\n column.referencedColumn!.propertyPath.replace(\".\", \"_\"),\n )\n qb.addSelect(mainAlias + \".\" + column.propertyPath, columnName)\n })\n inverseColumns.forEach((column) => {\n const columnName = DriverUtils.buildAlias(\n this.connection.driver,\n undefined,\n column.referencedColumn!.entityMetadata.name +\n \"_\" +\n relation.propertyPath.replace(\".\", \"_\") +\n \"_\" +\n column.referencedColumn!.propertyPath.replace(\".\", \"_\"),\n )\n qb.addSelect(mainAlias + \".\" + column.propertyPath, columnName)\n })\n\n // add conditions for the given entities\n let condition1 = \"\"\n if (columns.length === 1) {\n const values = entities.map((entity) =>\n columns[0].referencedColumn!.getEntityValue(entity),\n )\n const areAllNumbers = values.every(\n (value) => typeof value === \"number\",\n )\n\n if (areAllNumbers) {\n condition1 = `${mainAlias}.${\n columns[0].propertyPath\n } IN (${values.join(\", \")})`\n } else {\n qb.setParameter(\"values1\", values)\n condition1 =\n mainAlias +\n \".\" +\n columns[0].propertyPath +\n \" IN (:...values1)\" // todo: use ANY for postgres\n }\n } else {\n condition1 =\n \"(\" +\n entities\n .map((entity, entityIndex) => {\n return columns\n .map((column) => {\n const paramName =\n \"entity1_\" +\n entityIndex +\n \"_\" +\n column.propertyName\n qb.setParameter(\n paramName,\n column.referencedColumn!.getEntityValue(\n entity,\n ),\n )\n return (\n mainAlias +\n \".\" +\n column.propertyPath +\n \" = :\" +\n paramName\n )\n })\n .join(\" AND \")\n })\n .map((condition) => \"(\" + condition + \")\")\n .join(\" OR \") +\n \")\"\n }\n\n // add conditions for the given inverse entities\n let condition2 = \"\"\n if (relatedEntities) {\n if (inverseColumns.length === 1) {\n const values = relatedEntities.map((entity) =>\n inverseColumns[0].referencedColumn!.getEntityValue(entity),\n )\n const areAllNumbers = values.every(\n (value) => typeof value === \"number\",\n )\n\n if (areAllNumbers) {\n condition2 = `${mainAlias}.${\n inverseColumns[0].propertyPath\n } IN (${values.join(\", \")})`\n } else {\n qb.setParameter(\"values2\", values)\n condition2 =\n mainAlias +\n \".\" +\n inverseColumns[0].propertyPath +\n \" IN (:...values2)\" // todo: use ANY for postgres\n }\n } else {\n condition2 =\n \"(\" +\n relatedEntities\n .map((entity, entityIndex) => {\n return inverseColumns\n .map((column) => {\n const paramName =\n \"entity2_\" +\n entityIndex +\n \"_\" +\n column.propertyName\n qb.setParameter(\n paramName,\n column.referencedColumn!.getEntityValue(\n entity,\n ),\n )\n return (\n mainAlias +\n \".\" +\n column.propertyPath +\n \" = :\" +\n paramName\n )\n })\n .join(\" AND \")\n })\n .map((condition) => \"(\" + condition + \")\")\n .join(\" OR \") +\n \")\"\n }\n }\n\n // qb.from(junctionMetadata.target, mainAlias)\n // .where(condition1 + (condition2 ? \" AND \" + condition2 : \"\"));\n //\n // // execute query\n // const { values1, values2 } = qb.getParameters();\n // console.log(`I can do it`, { values1, values2 });\n // if (inverseColumns.length === 1 &&\n // columns.length === 1 &&\n // this.connection.driver instanceof SqliteDriver &&\n // (values1.length + values2.length) > 500 &&\n // values1.length === values2.length) {\n // console.log(`I can do it`);\n // return qb.getRawMany();\n //\n // } else {\n // return qb.getRawMany();\n // }\n\n // execute query\n const condition = [condition1, condition2]\n .filter((v) => v.length > 0)\n .join(\" AND \")\n return qb\n .from(junctionMetadata.target, mainAlias)\n .where(condition)\n .getRawMany()\n }\n\n /**\n * Loads relation ids for the many-to-one and one-to-one owner relations.\n */\n protected loadForManyToOneAndOneToOneOwner(\n relation: RelationMetadata,\n entities: ObjectLiteral[],\n relatedEntities?: ObjectLiteral[],\n ) {\n const mainAlias = relation.entityMetadata.targetName\n\n // console.log(\"entitiesx\", entities);\n // console.log(\"relatedEntitiesx\", relatedEntities);\n const hasAllJoinColumnsInEntity = relation.joinColumns.every(\n (joinColumn) => {\n return !!relation.entityMetadata.nonVirtualColumns.find(\n (column) => column === joinColumn,\n )\n },\n )\n if (relatedEntities && hasAllJoinColumnsInEntity) {\n let relationIdMaps: ObjectLiteral[] = []\n entities.forEach((entity) => {\n let relationIdMap: ObjectLiteral = {}\n relation.entityMetadata.primaryColumns.forEach(\n (primaryColumn) => {\n const key =\n primaryColumn.entityMetadata.name +\n \"_\" +\n primaryColumn.propertyPath.replace(\".\", \"_\")\n relationIdMap[key] =\n primaryColumn.getEntityValue(entity)\n },\n )\n\n relatedEntities.forEach((relatedEntity) => {\n relation.joinColumns.forEach((joinColumn) => {\n const entityColumnValue =\n joinColumn.getEntityValue(entity)\n const relatedEntityColumnValue =\n joinColumn.referencedColumn!.getEntityValue(\n relatedEntity,\n )\n if (\n entityColumnValue === undefined ||\n relatedEntityColumnValue === undefined\n )\n return\n\n if (entityColumnValue === relatedEntityColumnValue) {\n const key =\n joinColumn.referencedColumn!.entityMetadata\n .name +\n \"_\" +\n relation.propertyPath.replace(\".\", \"_\") +\n \"_\" +\n joinColumn.referencedColumn!.propertyPath.replace(\n \".\",\n \"_\",\n )\n relationIdMap[key] = relatedEntityColumnValue\n }\n })\n })\n if (\n Object.keys(relationIdMap).length ===\n relation.entityMetadata.primaryColumns.length +\n relation.joinColumns.length\n ) {\n relationIdMaps.push(relationIdMap)\n }\n })\n // console.log(\"relationIdMap\", relationIdMaps);\n // console.log(\"entities.length\", entities.length);\n if (relationIdMaps.length === entities.length)\n return Promise.resolve(relationIdMaps)\n }\n\n // select all columns we need\n const qb = this.connection.createQueryBuilder(this.queryRunner)\n relation.entityMetadata.primaryColumns.forEach((primaryColumn) => {\n const columnName = DriverUtils.buildAlias(\n this.connection.driver,\n undefined,\n primaryColumn.entityMetadata.name +\n \"_\" +\n primaryColumn.propertyPath.replace(\".\", \"_\"),\n )\n qb.addSelect(\n mainAlias + \".\" + primaryColumn.propertyPath,\n columnName,\n )\n })\n relation.joinColumns.forEach((column) => {\n const columnName = DriverUtils.buildAlias(\n this.connection.driver,\n undefined,\n column.referencedColumn!.entityMetadata.name +\n \"_\" +\n relation.propertyPath.replace(\".\", \"_\") +\n \"_\" +\n column.referencedColumn!.propertyPath.replace(\".\", \"_\"),\n )\n qb.addSelect(mainAlias + \".\" + column.propertyPath, columnName)\n })\n\n // add condition for entities\n let condition: string = \"\"\n if (relation.entityMetadata.primaryColumns.length === 1) {\n const values = entities.map((entity) =>\n relation.entityMetadata.primaryColumns[0].getEntityValue(\n entity,\n ),\n )\n const areAllNumbers = values.every(\n (value) => typeof value === \"number\",\n )\n\n if (areAllNumbers) {\n condition = `${mainAlias}.${\n relation.entityMetadata.primaryColumns[0].propertyPath\n } IN (${values.join(\", \")})`\n } else {\n qb.setParameter(\"values\", values)\n condition =\n mainAlias +\n \".\" +\n relation.entityMetadata.primaryColumns[0].propertyPath +\n \" IN (:...values)\" // todo: use ANY for postgres\n }\n } else {\n condition = entities\n .map((entity, entityIndex) => {\n return relation.entityMetadata.primaryColumns\n .map((column, columnIndex) => {\n const paramName =\n \"entity\" + entityIndex + \"_\" + columnIndex\n qb.setParameter(\n paramName,\n column.getEntityValue(entity),\n )\n return (\n mainAlias +\n \".\" +\n column.propertyPath +\n \" = :\" +\n paramName\n )\n })\n .join(\" AND \")\n })\n .map((condition) => \"(\" + condition + \")\")\n .join(\" OR \")\n }\n\n // execute query\n return qb\n .from(relation.entityMetadata.target, mainAlias)\n .where(condition)\n .getRawMany()\n }\n\n /**\n * Loads relation ids for the one-to-many and one-to-one not owner relations.\n */\n protected loadForOneToManyAndOneToOneNotOwner(\n relation: RelationMetadata,\n entities: ObjectLiteral[],\n relatedEntities?: ObjectLiteral[],\n ) {\n const originalRelation = relation\n relation = relation.inverseRelation!\n\n if (\n relation.entityMetadata.primaryColumns.length ===\n relation.joinColumns.length\n ) {\n const sameReferencedColumns =\n relation.entityMetadata.primaryColumns.every((column) => {\n return relation.joinColumns.indexOf(column) !== -1\n })\n if (sameReferencedColumns) {\n return Promise.resolve(\n entities.map((entity) => {\n const result: ObjectLiteral = {}\n relation.joinColumns.forEach(function (joinColumn) {\n const value =\n joinColumn.referencedColumn!.getEntityValue(\n entity,\n )\n const joinColumnName =\n joinColumn.referencedColumn!.entityMetadata\n .name +\n \"_\" +\n joinColumn.referencedColumn!.propertyPath.replace(\n \".\",\n \"_\",\n )\n const primaryColumnName =\n joinColumn.entityMetadata.name +\n \"_\" +\n originalRelation.propertyPath.replace(\n \".\",\n \"_\",\n ) +\n \"_\" +\n joinColumn.propertyPath.replace(\".\", \"_\")\n result[joinColumnName] = value\n result[primaryColumnName] = value\n })\n return result\n }),\n )\n }\n }\n\n const mainAlias = relation.entityMetadata.targetName\n\n // select all columns we need\n const qb = this.connection.createQueryBuilder(this.queryRunner)\n relation.entityMetadata.primaryColumns.forEach((primaryColumn) => {\n const columnName = DriverUtils.buildAlias(\n this.connection.driver,\n undefined,\n primaryColumn.entityMetadata.name +\n \"_\" +\n originalRelation.propertyPath.replace(\".\", \"_\") +\n \"_\" +\n primaryColumn.propertyPath.replace(\".\", \"_\"),\n )\n qb.addSelect(\n mainAlias + \".\" + primaryColumn.propertyPath,\n columnName,\n )\n })\n relation.joinColumns.forEach((column) => {\n const columnName = DriverUtils.buildAlias(\n this.connection.driver,\n undefined,\n column.referencedColumn!.entityMetadata.name +\n \"_\" +\n column.referencedColumn!.propertyPath.replace(\".\", \"_\"),\n )\n qb.addSelect(mainAlias + \".\" + column.propertyPath, columnName)\n })\n\n // add condition for entities\n let condition: string = \"\"\n if (relation.joinColumns.length === 1) {\n const values = entities.map((entity) =>\n relation.joinColumns[0].referencedColumn!.getEntityValue(\n entity,\n ),\n )\n const areAllNumbers = values.every(\n (value) => typeof value === \"number\",\n )\n\n if (areAllNumbers) {\n condition = `${mainAlias}.${\n relation.joinColumns[0].propertyPath\n } IN (${values.join(\", \")})`\n } else {\n qb.setParameter(\"values\", values)\n condition =\n mainAlias +\n \".\" +\n relation.joinColumns[0].propertyPath +\n \" IN (:...values)\" // todo: use ANY for postgres\n }\n } else {\n condition = entities\n .map((entity, entityIndex) => {\n return relation.joinColumns\n .map((joinColumn, joinColumnIndex) => {\n const paramName =\n \"entity\" + entityIndex + \"_\" + joinColumnIndex\n qb.setParameter(\n paramName,\n joinColumn.referencedColumn!.getEntityValue(\n entity,\n ),\n )\n return (\n mainAlias +\n \".\" +\n joinColumn.propertyPath +\n \" = :\" +\n paramName\n )\n })\n .join(\" AND \")\n })\n .map((condition) => \"(\" + condition + \")\")\n .join(\" OR \")\n }\n\n // execute query\n return qb\n .from(relation.entityMetadata.target, mainAlias)\n .where(condition)\n .getRawMany()\n }\n}\n"],"sourceRoot":".."}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../browser/src/query-builder/RelationLoader.ts"],"names":[],"mappings":"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","file":"RelationLoader.js","sourcesContent":["import { DataSource } from \"../data-source/DataSource\"\r\nimport { ObjectLiteral } from \"../common/ObjectLiteral\"\r\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\r\nimport { RelationMetadata } from \"../metadata/RelationMetadata\"\r\nimport { FindOptionsUtils } from \"../find-options/FindOptionsUtils\"\r\nimport { SelectQueryBuilder } from \"./SelectQueryBuilder\"\r\n\r\n/**\r\n * Wraps entities and creates getters/setters for their relations\r\n * to be able to lazily load relations when accessing these relations.\r\n */\r\nexport class RelationLoader {\r\n // -------------------------------------------------------------------------\r\n // Constructor\r\n // -------------------------------------------------------------------------\r\n\r\n constructor(private connection: DataSource) {}\r\n\r\n // -------------------------------------------------------------------------\r\n // Public Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Loads relation data for the given entity and its relation.\r\n */\r\n load(\r\n relation: RelationMetadata,\r\n entityOrEntities: ObjectLiteral | ObjectLiteral[],\r\n queryRunner?: QueryRunner,\r\n queryBuilder?: SelectQueryBuilder<any>,\r\n ): Promise<any[]> {\r\n // todo: check all places where it uses non array\r\n if (queryRunner && queryRunner.isReleased) queryRunner = undefined // get new one if already closed\r\n if (relation.isManyToOne || relation.isOneToOneOwner) {\r\n return this.loadManyToOneOrOneToOneOwner(\r\n relation,\r\n entityOrEntities,\r\n queryRunner,\r\n queryBuilder,\r\n )\r\n } else if (relation.isOneToMany || relation.isOneToOneNotOwner) {\r\n return this.loadOneToManyOrOneToOneNotOwner(\r\n relation,\r\n entityOrEntities,\r\n queryRunner,\r\n queryBuilder,\r\n )\r\n } else if (relation.isManyToManyOwner) {\r\n return this.loadManyToManyOwner(\r\n relation,\r\n entityOrEntities,\r\n queryRunner,\r\n queryBuilder,\r\n )\r\n } else {\r\n // many-to-many non owner\r\n return this.loadManyToManyNotOwner(\r\n relation,\r\n entityOrEntities,\r\n queryRunner,\r\n queryBuilder,\r\n )\r\n }\r\n }\r\n\r\n /**\r\n * Loads data for many-to-one and one-to-one owner relations.\r\n *\r\n * (ow) post.category<=>category.post\r\n * loaded: category from post\r\n * example: SELECT category.id AS category_id, category.name AS category_name FROM category category\r\n * INNER JOIN post Post ON Post.category=category.id WHERE Post.id=1\r\n */\r\n loadManyToOneOrOneToOneOwner(\r\n relation: RelationMetadata,\r\n entityOrEntities: ObjectLiteral | ObjectLiteral[],\r\n queryRunner?: QueryRunner,\r\n queryBuilder?: SelectQueryBuilder<any>,\r\n ): Promise<any> {\r\n const entities = Array.isArray(entityOrEntities)\r\n ? entityOrEntities\r\n : [entityOrEntities]\r\n\r\n const joinAliasName = relation.entityMetadata.name\r\n const qb = queryBuilder\r\n ? queryBuilder\r\n : this.connection\r\n .createQueryBuilder(queryRunner)\r\n .select(relation.propertyName) // category\r\n .from(relation.type, relation.propertyName)\r\n\r\n const mainAlias = qb.expressionMap.mainAlias!.name\r\n const columns = relation.entityMetadata.primaryColumns\r\n const joinColumns = relation.isOwning\r\n ? relation.joinColumns\r\n : relation.inverseRelation!.joinColumns\r\n const conditions = joinColumns\r\n .map((joinColumn) => {\r\n return `${relation.entityMetadata.name}.${\r\n joinColumn.propertyName\r\n } = ${mainAlias}.${joinColumn.referencedColumn!.propertyName}`\r\n })\r\n .join(\" AND \")\r\n\r\n qb.innerJoin(\r\n relation.entityMetadata.target as Function,\r\n joinAliasName,\r\n conditions,\r\n )\r\n\r\n if (columns.length === 1) {\r\n qb.where(\r\n `${joinAliasName}.${columns[0].propertyPath} IN (:...${\r\n joinAliasName + \"_\" + columns[0].propertyName\r\n })`,\r\n )\r\n qb.setParameter(\r\n joinAliasName + \"_\" + columns[0].propertyName,\r\n entities.map((entity) =>\r\n columns[0].getEntityValue(entity, true),\r\n ),\r\n )\r\n } else {\r\n const condition = entities\r\n .map((entity, entityIndex) => {\r\n return columns\r\n .map((column, columnIndex) => {\r\n const paramName =\r\n joinAliasName +\r\n \"_entity_\" +\r\n entityIndex +\r\n \"_\" +\r\n columnIndex\r\n qb.setParameter(\r\n paramName,\r\n column.getEntityValue(entity, true),\r\n )\r\n return (\r\n joinAliasName +\r\n \".\" +\r\n column.propertyPath +\r\n \" = :\" +\r\n paramName\r\n )\r\n })\r\n .join(\" AND \")\r\n })\r\n .map((condition) => \"(\" + condition + \")\")\r\n .join(\" OR \")\r\n qb.where(condition)\r\n }\r\n\r\n FindOptionsUtils.joinEagerRelations(\r\n qb,\r\n qb.alias,\r\n qb.expressionMap.mainAlias!.metadata,\r\n )\r\n\r\n return qb.getMany()\r\n // return qb.getOne(); todo: fix all usages\r\n }\r\n\r\n /**\r\n * Loads data for one-to-many and one-to-one not owner relations.\r\n *\r\n * SELECT post\r\n * FROM post post\r\n * WHERE post.[joinColumn.name] = entity[joinColumn.referencedColumn]\r\n */\r\n loadOneToManyOrOneToOneNotOwner(\r\n relation: RelationMetadata,\r\n entityOrEntities: ObjectLiteral | ObjectLiteral[],\r\n queryRunner?: QueryRunner,\r\n queryBuilder?: SelectQueryBuilder<any>,\r\n ): Promise<any> {\r\n const entities = Array.isArray(entityOrEntities)\r\n ? entityOrEntities\r\n : [entityOrEntities]\r\n const columns = relation.inverseRelation!.joinColumns\r\n const qb = queryBuilder\r\n ? queryBuilder\r\n : this.connection\r\n .createQueryBuilder(queryRunner)\r\n .select(relation.propertyName)\r\n .from(\r\n relation.inverseRelation!.entityMetadata.target,\r\n relation.propertyName,\r\n )\r\n\r\n const aliasName = qb.expressionMap.mainAlias!.name\r\n\r\n if (columns.length === 1) {\r\n qb.where(\r\n `${aliasName}.${columns[0].propertyPath} IN (:...${\r\n aliasName + \"_\" + columns[0].propertyName\r\n })`,\r\n )\r\n qb.setParameter(\r\n aliasName + \"_\" + columns[0].propertyName,\r\n entities.map((entity) =>\r\n columns[0].referencedColumn!.getEntityValue(entity, true),\r\n ),\r\n )\r\n } else {\r\n const condition = entities\r\n .map((entity, entityIndex) => {\r\n return columns\r\n .map((column, columnIndex) => {\r\n const paramName =\r\n aliasName +\r\n \"_entity_\" +\r\n entityIndex +\r\n \"_\" +\r\n columnIndex\r\n qb.setParameter(\r\n paramName,\r\n column.referencedColumn!.getEntityValue(\r\n entity,\r\n true,\r\n ),\r\n )\r\n return (\r\n aliasName +\r\n \".\" +\r\n column.propertyPath +\r\n \" = :\" +\r\n paramName\r\n )\r\n })\r\n .join(\" AND \")\r\n })\r\n .map((condition) => \"(\" + condition + \")\")\r\n .join(\" OR \")\r\n qb.where(condition)\r\n }\r\n\r\n FindOptionsUtils.joinEagerRelations(\r\n qb,\r\n qb.alias,\r\n qb.expressionMap.mainAlias!.metadata,\r\n )\r\n\r\n return qb.getMany()\r\n // return relation.isOneToMany ? qb.getMany() : qb.getOne(); todo: fix all usages\r\n }\r\n\r\n /**\r\n * Loads data for many-to-many owner relations.\r\n *\r\n * SELECT category\r\n * FROM category category\r\n * INNER JOIN post_categories post_categories\r\n * ON post_categories.postId = :postId\r\n * AND post_categories.categoryId = category.id\r\n */\r\n loadManyToManyOwner(\r\n relation: RelationMetadata,\r\n entityOrEntities: ObjectLiteral | ObjectLiteral[],\r\n queryRunner?: QueryRunner,\r\n queryBuilder?: SelectQueryBuilder<any>,\r\n ): Promise<any> {\r\n const entities = Array.isArray(entityOrEntities)\r\n ? entityOrEntities\r\n : [entityOrEntities]\r\n const parameters = relation.joinColumns.reduce(\r\n (parameters, joinColumn) => {\r\n parameters[joinColumn.propertyName] = entities.map((entity) =>\r\n joinColumn.referencedColumn!.getEntityValue(entity, true),\r\n )\r\n return parameters\r\n },\r\n {} as ObjectLiteral,\r\n )\r\n\r\n const qb = queryBuilder\r\n ? queryBuilder\r\n : this.connection\r\n .createQueryBuilder(queryRunner)\r\n .select(relation.propertyName)\r\n .from(relation.type, relation.propertyName)\r\n\r\n const mainAlias = qb.expressionMap.mainAlias!.name\r\n const joinAlias = relation.junctionEntityMetadata!.tableName\r\n const joinColumnConditions = relation.joinColumns.map((joinColumn) => {\r\n return `${joinAlias}.${joinColumn.propertyName} IN (:...${joinColumn.propertyName})`\r\n })\r\n const inverseJoinColumnConditions = relation.inverseJoinColumns.map(\r\n (inverseJoinColumn) => {\r\n return `${joinAlias}.${\r\n inverseJoinColumn.propertyName\r\n }=${mainAlias}.${\r\n inverseJoinColumn.referencedColumn!.propertyName\r\n }`\r\n },\r\n )\r\n\r\n qb.innerJoin(\r\n joinAlias,\r\n joinAlias,\r\n [...joinColumnConditions, ...inverseJoinColumnConditions].join(\r\n \" AND \",\r\n ),\r\n ).setParameters(parameters)\r\n\r\n FindOptionsUtils.joinEagerRelations(\r\n qb,\r\n qb.alias,\r\n qb.expressionMap.mainAlias!.metadata,\r\n )\r\n\r\n return qb.getMany()\r\n }\r\n\r\n /**\r\n * Loads data for many-to-many not owner relations.\r\n *\r\n * SELECT post\r\n * FROM post post\r\n * INNER JOIN post_categories post_categories\r\n * ON post_categories.postId = post.id\r\n * AND post_categories.categoryId = post_categories.categoryId\r\n */\r\n loadManyToManyNotOwner(\r\n relation: RelationMetadata,\r\n entityOrEntities: ObjectLiteral | ObjectLiteral[],\r\n queryRunner?: QueryRunner,\r\n queryBuilder?: SelectQueryBuilder<any>,\r\n ): Promise<any> {\r\n const entities = Array.isArray(entityOrEntities)\r\n ? entityOrEntities\r\n : [entityOrEntities]\r\n\r\n const qb = queryBuilder\r\n ? queryBuilder\r\n : this.connection\r\n .createQueryBuilder(queryRunner)\r\n .select(relation.propertyName)\r\n .from(relation.type, relation.propertyName)\r\n\r\n const mainAlias = qb.expressionMap.mainAlias!.name\r\n const joinAlias = relation.junctionEntityMetadata!.tableName\r\n const joinColumnConditions = relation.inverseRelation!.joinColumns.map(\r\n (joinColumn) => {\r\n return `${joinAlias}.${\r\n joinColumn.propertyName\r\n } = ${mainAlias}.${joinColumn.referencedColumn!.propertyName}`\r\n },\r\n )\r\n const inverseJoinColumnConditions =\r\n relation.inverseRelation!.inverseJoinColumns.map(\r\n (inverseJoinColumn) => {\r\n return `${joinAlias}.${inverseJoinColumn.propertyName} IN (:...${inverseJoinColumn.propertyName})`\r\n },\r\n )\r\n const parameters = relation.inverseRelation!.inverseJoinColumns.reduce(\r\n (parameters, joinColumn) => {\r\n parameters[joinColumn.propertyName] = entities.map((entity) =>\r\n joinColumn.referencedColumn!.getEntityValue(entity, true),\r\n )\r\n return parameters\r\n },\r\n {} as ObjectLiteral,\r\n )\r\n\r\n qb.innerJoin(\r\n joinAlias,\r\n joinAlias,\r\n [...joinColumnConditions, ...inverseJoinColumnConditions].join(\r\n \" AND \",\r\n ),\r\n ).setParameters(parameters)\r\n\r\n FindOptionsUtils.joinEagerRelations(\r\n qb,\r\n qb.alias,\r\n qb.expressionMap.mainAlias!.metadata,\r\n )\r\n\r\n return qb.getMany()\r\n }\r\n\r\n /**\r\n * Wraps given entity and creates getters/setters for its given relation\r\n * to be able to lazily load data when accessing this relation.\r\n */\r\n enableLazyLoad(\r\n relation: RelationMetadata,\r\n entity: ObjectLiteral,\r\n queryRunner?: QueryRunner,\r\n ) {\r\n const relationLoader = this\r\n const dataIndex = \"__\" + relation.propertyName + \"__\" // in what property of the entity loaded data will be stored\r\n const promiseIndex = \"__promise_\" + relation.propertyName + \"__\" // in what property of the entity loading promise will be stored\r\n const resolveIndex = \"__has_\" + relation.propertyName + \"__\" // indicates if relation data already was loaded or not, we need this flag if loaded data is empty\r\n\r\n const setData = (entity: ObjectLiteral, value: any) => {\r\n entity[dataIndex] = value\r\n entity[resolveIndex] = true\r\n delete entity[promiseIndex]\r\n return value\r\n }\r\n const setPromise = (entity: ObjectLiteral, value: Promise<any>) => {\r\n delete entity[resolveIndex]\r\n delete entity[dataIndex]\r\n entity[promiseIndex] = value\r\n value.then(\r\n // ensure different value is not assigned yet\r\n (result) =>\r\n entity[promiseIndex] === value\r\n ? setData(entity, result)\r\n : result,\r\n )\r\n return value\r\n }\r\n\r\n Object.defineProperty(entity, relation.propertyName, {\r\n get: function () {\r\n if (\r\n this[resolveIndex] === true ||\r\n this[dataIndex] !== undefined\r\n )\r\n // if related data already was loaded then simply return it\r\n return Promise.resolve(this[dataIndex])\r\n\r\n if (this[promiseIndex])\r\n // if related data is loading then return a promise relationLoader loads it\r\n return this[promiseIndex]\r\n\r\n // nothing is loaded yet, load relation data and save it in the model once they are loaded\r\n const loader = relationLoader\r\n .load(relation, this, queryRunner)\r\n .then((result) =>\r\n relation.isOneToOne || relation.isManyToOne\r\n ? result.length === 0\r\n ? null\r\n : result[0]\r\n : result,\r\n )\r\n return setPromise(this, loader)\r\n },\r\n set: function (value: any | Promise<any>) {\r\n if (value instanceof Promise) {\r\n // if set data is a promise then wait for its resolve and save in the object\r\n setPromise(this, value)\r\n } else {\r\n // if its direct data set (non promise, probably not safe-typed)\r\n setData(this, value)\r\n }\r\n },\r\n configurable: true,\r\n enumerable: false,\r\n })\r\n }\r\n}\r\n"],"sourceRoot":".."}
|
|
1
|
+
{"version":3,"sources":["../browser/src/query-builder/RelationLoader.ts"],"names":[],"mappings":"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","file":"RelationLoader.js","sourcesContent":["import { DataSource } from \"../data-source/DataSource\"\nimport { ObjectLiteral } from \"../common/ObjectLiteral\"\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\nimport { RelationMetadata } from \"../metadata/RelationMetadata\"\nimport { FindOptionsUtils } from \"../find-options/FindOptionsUtils\"\nimport { SelectQueryBuilder } from \"./SelectQueryBuilder\"\n\n/**\n * Wraps entities and creates getters/setters for their relations\n * to be able to lazily load relations when accessing these relations.\n */\nexport class RelationLoader {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(private connection: DataSource) {}\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Loads relation data for the given entity and its relation.\n */\n load(\n relation: RelationMetadata,\n entityOrEntities: ObjectLiteral | ObjectLiteral[],\n queryRunner?: QueryRunner,\n queryBuilder?: SelectQueryBuilder<any>,\n ): Promise<any[]> {\n // todo: check all places where it uses non array\n if (queryRunner && queryRunner.isReleased) queryRunner = undefined // get new one if already closed\n if (relation.isManyToOne || relation.isOneToOneOwner) {\n return this.loadManyToOneOrOneToOneOwner(\n relation,\n entityOrEntities,\n queryRunner,\n queryBuilder,\n )\n } else if (relation.isOneToMany || relation.isOneToOneNotOwner) {\n return this.loadOneToManyOrOneToOneNotOwner(\n relation,\n entityOrEntities,\n queryRunner,\n queryBuilder,\n )\n } else if (relation.isManyToManyOwner) {\n return this.loadManyToManyOwner(\n relation,\n entityOrEntities,\n queryRunner,\n queryBuilder,\n )\n } else {\n // many-to-many non owner\n return this.loadManyToManyNotOwner(\n relation,\n entityOrEntities,\n queryRunner,\n queryBuilder,\n )\n }\n }\n\n /**\n * Loads data for many-to-one and one-to-one owner relations.\n *\n * (ow) post.category<=>category.post\n * loaded: category from post\n * example: SELECT category.id AS category_id, category.name AS category_name FROM category category\n * INNER JOIN post Post ON Post.category=category.id WHERE Post.id=1\n */\n loadManyToOneOrOneToOneOwner(\n relation: RelationMetadata,\n entityOrEntities: ObjectLiteral | ObjectLiteral[],\n queryRunner?: QueryRunner,\n queryBuilder?: SelectQueryBuilder<any>,\n ): Promise<any> {\n const entities = Array.isArray(entityOrEntities)\n ? entityOrEntities\n : [entityOrEntities]\n\n const joinAliasName = relation.entityMetadata.name\n const qb = queryBuilder\n ? queryBuilder\n : this.connection\n .createQueryBuilder(queryRunner)\n .select(relation.propertyName) // category\n .from(relation.type, relation.propertyName)\n\n const mainAlias = qb.expressionMap.mainAlias!.name\n const columns = relation.entityMetadata.primaryColumns\n const joinColumns = relation.isOwning\n ? relation.joinColumns\n : relation.inverseRelation!.joinColumns\n const conditions = joinColumns\n .map((joinColumn) => {\n return `${relation.entityMetadata.name}.${\n joinColumn.propertyName\n } = ${mainAlias}.${joinColumn.referencedColumn!.propertyName}`\n })\n .join(\" AND \")\n\n qb.innerJoin(\n relation.entityMetadata.target as Function,\n joinAliasName,\n conditions,\n )\n\n if (columns.length === 1) {\n qb.where(\n `${joinAliasName}.${columns[0].propertyPath} IN (:...${\n joinAliasName + \"_\" + columns[0].propertyName\n })`,\n )\n qb.setParameter(\n joinAliasName + \"_\" + columns[0].propertyName,\n entities.map((entity) =>\n columns[0].getEntityValue(entity, true),\n ),\n )\n } else {\n const condition = entities\n .map((entity, entityIndex) => {\n return columns\n .map((column, columnIndex) => {\n const paramName =\n joinAliasName +\n \"_entity_\" +\n entityIndex +\n \"_\" +\n columnIndex\n qb.setParameter(\n paramName,\n column.getEntityValue(entity, true),\n )\n return (\n joinAliasName +\n \".\" +\n column.propertyPath +\n \" = :\" +\n paramName\n )\n })\n .join(\" AND \")\n })\n .map((condition) => \"(\" + condition + \")\")\n .join(\" OR \")\n qb.where(condition)\n }\n\n FindOptionsUtils.joinEagerRelations(\n qb,\n qb.alias,\n qb.expressionMap.mainAlias!.metadata,\n )\n\n return qb.getMany()\n // return qb.getOne(); todo: fix all usages\n }\n\n /**\n * Loads data for one-to-many and one-to-one not owner relations.\n *\n * SELECT post\n * FROM post post\n * WHERE post.[joinColumn.name] = entity[joinColumn.referencedColumn]\n */\n loadOneToManyOrOneToOneNotOwner(\n relation: RelationMetadata,\n entityOrEntities: ObjectLiteral | ObjectLiteral[],\n queryRunner?: QueryRunner,\n queryBuilder?: SelectQueryBuilder<any>,\n ): Promise<any> {\n const entities = Array.isArray(entityOrEntities)\n ? entityOrEntities\n : [entityOrEntities]\n const columns = relation.inverseRelation!.joinColumns\n const qb = queryBuilder\n ? queryBuilder\n : this.connection\n .createQueryBuilder(queryRunner)\n .select(relation.propertyName)\n .from(\n relation.inverseRelation!.entityMetadata.target,\n relation.propertyName,\n )\n\n const aliasName = qb.expressionMap.mainAlias!.name\n\n if (columns.length === 1) {\n qb.where(\n `${aliasName}.${columns[0].propertyPath} IN (:...${\n aliasName + \"_\" + columns[0].propertyName\n })`,\n )\n qb.setParameter(\n aliasName + \"_\" + columns[0].propertyName,\n entities.map((entity) =>\n columns[0].referencedColumn!.getEntityValue(entity, true),\n ),\n )\n } else {\n const condition = entities\n .map((entity, entityIndex) => {\n return columns\n .map((column, columnIndex) => {\n const paramName =\n aliasName +\n \"_entity_\" +\n entityIndex +\n \"_\" +\n columnIndex\n qb.setParameter(\n paramName,\n column.referencedColumn!.getEntityValue(\n entity,\n true,\n ),\n )\n return (\n aliasName +\n \".\" +\n column.propertyPath +\n \" = :\" +\n paramName\n )\n })\n .join(\" AND \")\n })\n .map((condition) => \"(\" + condition + \")\")\n .join(\" OR \")\n qb.where(condition)\n }\n\n FindOptionsUtils.joinEagerRelations(\n qb,\n qb.alias,\n qb.expressionMap.mainAlias!.metadata,\n )\n\n return qb.getMany()\n // return relation.isOneToMany ? qb.getMany() : qb.getOne(); todo: fix all usages\n }\n\n /**\n * Loads data for many-to-many owner relations.\n *\n * SELECT category\n * FROM category category\n * INNER JOIN post_categories post_categories\n * ON post_categories.postId = :postId\n * AND post_categories.categoryId = category.id\n */\n loadManyToManyOwner(\n relation: RelationMetadata,\n entityOrEntities: ObjectLiteral | ObjectLiteral[],\n queryRunner?: QueryRunner,\n queryBuilder?: SelectQueryBuilder<any>,\n ): Promise<any> {\n const entities = Array.isArray(entityOrEntities)\n ? entityOrEntities\n : [entityOrEntities]\n const parameters = relation.joinColumns.reduce(\n (parameters, joinColumn) => {\n parameters[joinColumn.propertyName] = entities.map((entity) =>\n joinColumn.referencedColumn!.getEntityValue(entity, true),\n )\n return parameters\n },\n {} as ObjectLiteral,\n )\n\n const qb = queryBuilder\n ? queryBuilder\n : this.connection\n .createQueryBuilder(queryRunner)\n .select(relation.propertyName)\n .from(relation.type, relation.propertyName)\n\n const mainAlias = qb.expressionMap.mainAlias!.name\n const joinAlias = relation.junctionEntityMetadata!.tableName\n const joinColumnConditions = relation.joinColumns.map((joinColumn) => {\n return `${joinAlias}.${joinColumn.propertyName} IN (:...${joinColumn.propertyName})`\n })\n const inverseJoinColumnConditions = relation.inverseJoinColumns.map(\n (inverseJoinColumn) => {\n return `${joinAlias}.${\n inverseJoinColumn.propertyName\n }=${mainAlias}.${\n inverseJoinColumn.referencedColumn!.propertyName\n }`\n },\n )\n\n qb.innerJoin(\n joinAlias,\n joinAlias,\n [...joinColumnConditions, ...inverseJoinColumnConditions].join(\n \" AND \",\n ),\n ).setParameters(parameters)\n\n FindOptionsUtils.joinEagerRelations(\n qb,\n qb.alias,\n qb.expressionMap.mainAlias!.metadata,\n )\n\n return qb.getMany()\n }\n\n /**\n * Loads data for many-to-many not owner relations.\n *\n * SELECT post\n * FROM post post\n * INNER JOIN post_categories post_categories\n * ON post_categories.postId = post.id\n * AND post_categories.categoryId = post_categories.categoryId\n */\n loadManyToManyNotOwner(\n relation: RelationMetadata,\n entityOrEntities: ObjectLiteral | ObjectLiteral[],\n queryRunner?: QueryRunner,\n queryBuilder?: SelectQueryBuilder<any>,\n ): Promise<any> {\n const entities = Array.isArray(entityOrEntities)\n ? entityOrEntities\n : [entityOrEntities]\n\n const qb = queryBuilder\n ? queryBuilder\n : this.connection\n .createQueryBuilder(queryRunner)\n .select(relation.propertyName)\n .from(relation.type, relation.propertyName)\n\n const mainAlias = qb.expressionMap.mainAlias!.name\n const joinAlias = relation.junctionEntityMetadata!.tableName\n const joinColumnConditions = relation.inverseRelation!.joinColumns.map(\n (joinColumn) => {\n return `${joinAlias}.${\n joinColumn.propertyName\n } = ${mainAlias}.${joinColumn.referencedColumn!.propertyName}`\n },\n )\n const inverseJoinColumnConditions =\n relation.inverseRelation!.inverseJoinColumns.map(\n (inverseJoinColumn) => {\n return `${joinAlias}.${inverseJoinColumn.propertyName} IN (:...${inverseJoinColumn.propertyName})`\n },\n )\n const parameters = relation.inverseRelation!.inverseJoinColumns.reduce(\n (parameters, joinColumn) => {\n parameters[joinColumn.propertyName] = entities.map((entity) =>\n joinColumn.referencedColumn!.getEntityValue(entity, true),\n )\n return parameters\n },\n {} as ObjectLiteral,\n )\n\n qb.innerJoin(\n joinAlias,\n joinAlias,\n [...joinColumnConditions, ...inverseJoinColumnConditions].join(\n \" AND \",\n ),\n ).setParameters(parameters)\n\n FindOptionsUtils.joinEagerRelations(\n qb,\n qb.alias,\n qb.expressionMap.mainAlias!.metadata,\n )\n\n return qb.getMany()\n }\n\n /**\n * Wraps given entity and creates getters/setters for its given relation\n * to be able to lazily load data when accessing this relation.\n */\n enableLazyLoad(\n relation: RelationMetadata,\n entity: ObjectLiteral,\n queryRunner?: QueryRunner,\n ) {\n const relationLoader = this\n const dataIndex = \"__\" + relation.propertyName + \"__\" // in what property of the entity loaded data will be stored\n const promiseIndex = \"__promise_\" + relation.propertyName + \"__\" // in what property of the entity loading promise will be stored\n const resolveIndex = \"__has_\" + relation.propertyName + \"__\" // indicates if relation data already was loaded or not, we need this flag if loaded data is empty\n\n const setData = (entity: ObjectLiteral, value: any) => {\n entity[dataIndex] = value\n entity[resolveIndex] = true\n delete entity[promiseIndex]\n return value\n }\n const setPromise = (entity: ObjectLiteral, value: Promise<any>) => {\n delete entity[resolveIndex]\n delete entity[dataIndex]\n entity[promiseIndex] = value\n value.then(\n // ensure different value is not assigned yet\n (result) =>\n entity[promiseIndex] === value\n ? setData(entity, result)\n : result,\n )\n return value\n }\n\n Object.defineProperty(entity, relation.propertyName, {\n get: function () {\n if (\n this[resolveIndex] === true ||\n this[dataIndex] !== undefined\n )\n // if related data already was loaded then simply return it\n return Promise.resolve(this[dataIndex])\n\n if (this[promiseIndex])\n // if related data is loading then return a promise relationLoader loads it\n return this[promiseIndex]\n\n // nothing is loaded yet, load relation data and save it in the model once they are loaded\n const loader = relationLoader\n .load(relation, this, queryRunner)\n .then((result) =>\n relation.isOneToOne || relation.isManyToOne\n ? result.length === 0\n ? null\n : result[0]\n : result,\n )\n return setPromise(this, loader)\n },\n set: function (value: any | Promise<any>) {\n if (value instanceof Promise) {\n // if set data is a promise then wait for its resolve and save in the object\n setPromise(this, value)\n } else {\n // if its direct data set (non promise, probably not safe-typed)\n setData(this, value)\n }\n },\n configurable: true,\n enumerable: false,\n })\n }\n}\n"],"sourceRoot":".."}
|