typeorm 1.0.0-beta.1 → 1.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/cache/DbQueryResultCache.d.ts +7 -0
- package/browser/cache/DbQueryResultCache.js +12 -4
- package/browser/cache/DbQueryResultCache.js.map +1 -1
- package/browser/cache/RedisQueryResultCache.d.ts +7 -0
- package/browser/cache/RedisQueryResultCache.js +15 -10
- package/browser/cache/RedisQueryResultCache.js.map +1 -1
- package/browser/cli-ts-node-esm.js +2 -2
- package/browser/cli-ts-node-esm.js.map +1 -1
- package/browser/common/RelationType.d.ts +2 -0
- package/browser/common/RelationType.js.map +1 -1
- package/browser/connection/ConnectionMetadataBuilder.d.ts +3 -0
- package/browser/connection/ConnectionMetadataBuilder.js +3 -0
- package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
- package/browser/connection/ConnectionOptionsReader.d.ts +5 -4
- package/browser/connection/ConnectionOptionsReader.js +14 -12
- package/browser/connection/ConnectionOptionsReader.js.map +1 -1
- package/browser/data-source/BaseDataSourceOptions.d.ts +8 -0
- package/browser/data-source/BaseDataSourceOptions.js.map +1 -1
- package/browser/data-source/DataSource.d.ts +20 -1
- package/browser/data-source/DataSource.js +37 -15
- package/browser/data-source/DataSource.js.map +1 -1
- package/browser/decorator/Check.d.ts +2 -0
- package/browser/decorator/Check.js +2 -1
- package/browser/decorator/Check.js.map +1 -1
- package/browser/decorator/Exclusion.d.ts +2 -0
- package/browser/decorator/Exclusion.js +1 -0
- package/browser/decorator/Exclusion.js.map +1 -1
- package/browser/decorator/ForeignKey.d.ts +3 -0
- package/browser/decorator/ForeignKey.js +1 -0
- package/browser/decorator/ForeignKey.js.map +1 -1
- package/browser/decorator/Generated.d.ts +1 -0
- package/browser/decorator/Generated.js +1 -0
- package/browser/decorator/Generated.js.map +1 -1
- package/browser/decorator/Index.d.ts +7 -0
- package/browser/decorator/Index.js +13 -13
- package/browser/decorator/Index.js.map +1 -1
- package/browser/decorator/Unique.d.ts +4 -0
- package/browser/decorator/Unique.js +6 -6
- package/browser/decorator/Unique.js.map +1 -1
- package/browser/decorator/columns/Column.d.ts +11 -0
- package/browser/decorator/columns/Column.js +3 -3
- package/browser/decorator/columns/Column.js.map +1 -1
- package/browser/decorator/columns/CreateDateColumn.d.ts +1 -0
- package/browser/decorator/columns/CreateDateColumn.js +2 -1
- package/browser/decorator/columns/CreateDateColumn.js.map +1 -1
- package/browser/decorator/columns/DeleteDateColumn.d.ts +1 -0
- package/browser/decorator/columns/DeleteDateColumn.js +2 -1
- package/browser/decorator/columns/DeleteDateColumn.js.map +1 -1
- package/browser/decorator/columns/ObjectIdColumn.d.ts +1 -0
- package/browser/decorator/columns/ObjectIdColumn.js +3 -4
- package/browser/decorator/columns/ObjectIdColumn.js.map +1 -1
- package/browser/decorator/columns/PrimaryColumn.d.ts +2 -0
- package/browser/decorator/columns/PrimaryColumn.js +2 -2
- package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
- package/browser/decorator/columns/PrimaryGeneratedColumn.d.ts +4 -0
- package/browser/decorator/columns/PrimaryGeneratedColumn.js +1 -0
- package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
- package/browser/decorator/columns/UpdateDateColumn.d.ts +1 -0
- package/browser/decorator/columns/UpdateDateColumn.js +2 -1
- package/browser/decorator/columns/UpdateDateColumn.js.map +1 -1
- package/browser/decorator/columns/VersionColumn.d.ts +1 -0
- package/browser/decorator/columns/VersionColumn.js +2 -1
- package/browser/decorator/columns/VersionColumn.js.map +1 -1
- package/browser/decorator/columns/ViewColumn.d.ts +1 -0
- package/browser/decorator/columns/ViewColumn.js +2 -1
- package/browser/decorator/columns/ViewColumn.js.map +1 -1
- package/browser/decorator/columns/VirtualColumn.d.ts +2 -0
- package/browser/decorator/columns/VirtualColumn.js +1 -0
- package/browser/decorator/columns/VirtualColumn.js.map +1 -1
- package/browser/decorator/entity/ChildEntity.d.ts +1 -0
- package/browser/decorator/entity/ChildEntity.js +1 -0
- package/browser/decorator/entity/ChildEntity.js.map +1 -1
- package/browser/decorator/entity/Entity.d.ts +2 -0
- package/browser/decorator/entity/Entity.js +7 -6
- package/browser/decorator/entity/Entity.js.map +1 -1
- package/browser/decorator/entity/TableInheritance.d.ts +1 -0
- package/browser/decorator/entity/TableInheritance.js +3 -2
- package/browser/decorator/entity/TableInheritance.js.map +1 -1
- package/browser/decorator/entity-view/ViewEntity.d.ts +2 -0
- package/browser/decorator/entity-view/ViewEntity.js +4 -3
- package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
- package/browser/decorator/options/ColumnOptions.d.ts +3 -0
- package/browser/decorator/options/ColumnOptions.js.map +1 -1
- package/browser/decorator/options/EntityOptions.d.ts +1 -0
- package/browser/decorator/options/EntityOptions.js.map +1 -1
- package/browser/decorator/options/RelationOptions.d.ts +2 -0
- package/browser/decorator/options/RelationOptions.js.map +1 -1
- package/browser/decorator/options/VirtualColumnOptions.d.ts +1 -0
- package/browser/decorator/options/VirtualColumnOptions.js.map +1 -1
- package/browser/decorator/relations/JoinColumn.d.ts +2 -0
- package/browser/decorator/relations/JoinColumn.js +2 -1
- package/browser/decorator/relations/JoinColumn.js.map +1 -1
- package/browser/decorator/relations/JoinTable.d.ts +2 -0
- package/browser/decorator/relations/JoinTable.js +5 -4
- package/browser/decorator/relations/JoinTable.js.map +1 -1
- package/browser/decorator/relations/ManyToMany.d.ts +2 -0
- package/browser/decorator/relations/ManyToMany.js +2 -2
- package/browser/decorator/relations/ManyToMany.js.map +1 -1
- package/browser/decorator/relations/ManyToOne.d.ts +2 -0
- package/browser/decorator/relations/ManyToOne.js +3 -3
- package/browser/decorator/relations/ManyToOne.js.map +1 -1
- package/browser/decorator/relations/OneToMany.d.ts +1 -0
- package/browser/decorator/relations/OneToMany.js +3 -3
- package/browser/decorator/relations/OneToMany.js.map +1 -1
- package/browser/decorator/relations/OneToOne.d.ts +2 -0
- package/browser/decorator/relations/OneToOne.js +3 -3
- package/browser/decorator/relations/OneToOne.js.map +1 -1
- package/browser/decorator/relations/RelationId.d.ts +1 -0
- package/browser/decorator/relations/RelationId.js +1 -0
- package/browser/decorator/relations/RelationId.js.map +1 -1
- package/browser/decorator/tree/Tree.d.ts +1 -0
- package/browser/decorator/tree/Tree.js +1 -0
- package/browser/decorator/tree/Tree.js.map +1 -1
- package/browser/decorator/tree/TreeChildren.d.ts +1 -0
- package/browser/decorator/tree/TreeChildren.js +3 -3
- package/browser/decorator/tree/TreeChildren.js.map +1 -1
- package/browser/decorator/tree/TreeParent.d.ts +1 -0
- package/browser/decorator/tree/TreeParent.js +3 -3
- package/browser/decorator/tree/TreeParent.js.map +1 -1
- package/browser/driver/Driver.d.ts +5 -0
- package/browser/driver/Driver.js.map +1 -1
- package/browser/driver/DriverFactory.d.ts +1 -0
- package/browser/driver/DriverFactory.js +1 -0
- package/browser/driver/DriverFactory.js.map +1 -1
- package/browser/driver/DriverUtils.d.ts +7 -0
- package/browser/driver/DriverUtils.js +34 -21
- package/browser/driver/DriverUtils.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts +1 -0
- package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlDataSourceOptions.d.ts +1 -0
- package/browser/driver/aurora-mysql/AuroraMysqlDataSourceOptions.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.d.ts +37 -0
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.js +53 -16
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +64 -0
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +90 -30
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
- package/browser/driver/aurora-postgres/AuroraPostgresDriver.d.ts +13 -0
- package/browser/driver/aurora-postgres/AuroraPostgresDriver.js +26 -5
- package/browser/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
- package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +3 -0
- package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js +27 -1
- package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
- package/browser/driver/better-sqlite3/BetterSqlite3DataSourceOptions.d.ts +1 -0
- package/browser/driver/better-sqlite3/BetterSqlite3DataSourceOptions.js.map +1 -1
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.d.ts +3 -0
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +5 -3
- package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
- package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +1 -0
- package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +1 -0
- package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
- package/browser/driver/capacitor/CapacitorDriver.d.ts +1 -0
- package/browser/driver/capacitor/CapacitorDriver.js +3 -3
- package/browser/driver/capacitor/CapacitorDriver.js.map +1 -1
- package/browser/driver/capacitor/CapacitorQueryRunner.d.ts +2 -0
- package/browser/driver/capacitor/CapacitorQueryRunner.js +4 -2
- package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachDataSourceOptions.d.ts +1 -0
- package/browser/driver/cockroachdb/CockroachDataSourceOptions.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachDriver.d.ts +35 -0
- package/browser/driver/cockroachdb/CockroachDriver.js +64 -29
- package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +74 -0
- package/browser/driver/cockroachdb/CockroachQueryRunner.js +143 -119
- package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/browser/driver/cordova/CordovaDriver.d.ts +6 -0
- package/browser/driver/cordova/CordovaDriver.js +14 -4
- package/browser/driver/cordova/CordovaDriver.js.map +1 -1
- package/browser/driver/cordova/CordovaQueryRunner.d.ts +2 -0
- package/browser/driver/cordova/CordovaQueryRunner.js +3 -1
- package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
- package/browser/driver/expo/ExpoDriver.js +1 -2
- package/browser/driver/expo/ExpoDriver.js.map +1 -1
- package/browser/driver/mongodb/MongoDriver.d.ts +25 -0
- package/browser/driver/mongodb/MongoDriver.js +35 -6
- package/browser/driver/mongodb/MongoDriver.js.map +1 -1
- package/browser/driver/mongodb/MongoQueryRunner.d.ts +84 -0
- package/browser/driver/mongodb/MongoQueryRunner.js +102 -18
- package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/browser/driver/mongodb/bson.typings.d.ts +1 -0
- package/browser/driver/mongodb/bson.typings.js.map +1 -1
- package/browser/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +1 -0
- package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
- package/browser/driver/mysql/MysqlDataSourceOptions.d.ts +2 -0
- package/browser/driver/mysql/MysqlDataSourceOptions.js.map +1 -1
- package/browser/driver/mysql/MysqlDriver.d.ts +37 -0
- package/browser/driver/mysql/MysqlDriver.js +57 -17
- package/browser/driver/mysql/MysqlDriver.js.map +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.d.ts +64 -0
- package/browser/driver/mysql/MysqlQueryRunner.js +140 -111
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/browser/driver/nativescript/NativescriptDriver.d.ts +1 -0
- package/browser/driver/nativescript/NativescriptDriver.js +3 -4
- package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
- package/browser/driver/nativescript/NativescriptQueryRunner.d.ts +2 -0
- package/browser/driver/nativescript/NativescriptQueryRunner.js +3 -1
- package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
- package/browser/driver/oracle/OracleDriver.d.ts +32 -0
- package/browser/driver/oracle/OracleDriver.js +48 -15
- package/browser/driver/oracle/OracleDriver.js.map +1 -1
- package/browser/driver/oracle/OracleQueryRunner.d.ts +66 -0
- package/browser/driver/oracle/OracleQueryRunner.js +119 -83
- package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/browser/driver/postgres/PostgresDataSourceOptions.d.ts +2 -0
- package/browser/driver/postgres/PostgresDataSourceOptions.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.d.ts +37 -0
- package/browser/driver/postgres/PostgresDriver.js +67 -31
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.d.ts +81 -0
- package/browser/driver/postgres/PostgresQueryRunner.js +152 -121
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/react-native/ReactNativeDriver.d.ts +29 -0
- package/browser/driver/react-native/ReactNativeDriver.js +45 -12
- package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
- package/browser/driver/react-native/ReactNativeQueryRunner.d.ts +2 -0
- package/browser/driver/react-native/ReactNativeQueryRunner.js +3 -1
- package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
- package/browser/driver/sap/SapDataSourceOptions.d.ts +1 -0
- package/browser/driver/sap/SapDataSourceOptions.js.map +1 -1
- package/browser/driver/sap/SapDriver.d.ts +30 -0
- package/browser/driver/sap/SapDriver.js +45 -11
- package/browser/driver/sap/SapDriver.js.map +1 -1
- package/browser/driver/sap/SapQueryRunner.d.ts +66 -0
- package/browser/driver/sap/SapQueryRunner.js +101 -56
- package/browser/driver/sap/SapQueryRunner.js.map +1 -1
- package/browser/driver/spanner/SpannerDataSourceOptions.d.ts +1 -0
- package/browser/driver/spanner/SpannerDataSourceOptions.js.map +1 -1
- package/browser/driver/spanner/SpannerDriver.d.ts +33 -0
- package/browser/driver/spanner/SpannerDriver.js +50 -10
- package/browser/driver/spanner/SpannerDriver.js.map +1 -1
- package/browser/driver/spanner/SpannerQueryRunner.d.ts +64 -0
- package/browser/driver/spanner/SpannerQueryRunner.js +89 -32
- package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +30 -0
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +43 -77
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +59 -0
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +89 -45
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqljs/SqljsDriver.d.ts +5 -0
- package/browser/driver/sqljs/SqljsDriver.js +8 -4
- package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
- package/browser/driver/sqljs/SqljsQueryRunner.d.ts +1 -0
- package/browser/driver/sqljs/SqljsQueryRunner.js +1 -0
- package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/MssqlParameter.d.ts +1 -0
- package/browser/driver/sqlserver/MssqlParameter.js +1 -0
- package/browser/driver/sqlserver/MssqlParameter.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerDataSourceOptions.d.ts +14 -5
- package/browser/driver/sqlserver/SqlServerDataSourceOptions.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerDriver.d.ts +42 -0
- package/browser/driver/sqlserver/SqlServerDriver.js +100 -26
- package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +76 -10
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +160 -163
- package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/browser/driver/types/IsolationLevel.d.ts +2 -1
- package/browser/driver/types/IsolationLevel.js +8 -0
- package/browser/driver/types/IsolationLevel.js.map +1 -1
- package/browser/driver/validate-isolation-level.d.ts +9 -0
- package/browser/driver/validate-isolation-level.js +23 -0
- package/browser/driver/validate-isolation-level.js.map +1 -0
- package/browser/entity-manager/EntityManager.d.ts +38 -1
- package/browser/entity-manager/EntityManager.js +58 -12
- package/browser/entity-manager/EntityManager.js.map +1 -1
- package/browser/entity-manager/EntityManagerFactory.d.ts +1 -0
- package/browser/entity-manager/EntityManagerFactory.js +1 -0
- package/browser/entity-manager/EntityManagerFactory.js.map +1 -1
- package/browser/entity-manager/MongoEntityManager.d.ts +54 -1
- package/browser/entity-manager/MongoEntityManager.js +103 -12
- package/browser/entity-manager/MongoEntityManager.js.map +1 -1
- package/browser/entity-manager/SqljsEntityManager.d.ts +2 -0
- package/browser/entity-manager/SqljsEntityManager.js +2 -0
- package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
- package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +1 -0
- package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaOptions.d.ts +1 -0
- package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaTransformer.d.ts +1 -0
- package/browser/entity-schema/EntitySchemaTransformer.js +25 -26
- package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/browser/error/InitializedRelationError.d.ts +1 -0
- package/browser/error/InitializedRelationError.js +1 -0
- package/browser/error/InitializedRelationError.js.map +1 -1
- package/browser/find-options/FindOptionsUtils.d.ts +7 -0
- package/browser/find-options/FindOptionsUtils.js +7 -0
- package/browser/find-options/FindOptionsUtils.js.map +1 -1
- package/browser/find-options/OrderByCondition.d.ts +2 -1
- package/browser/find-options/OrderByCondition.js.map +1 -1
- package/browser/find-options/operator/Any.d.ts +4 -1
- package/browser/find-options/operator/Any.js +4 -1
- package/browser/find-options/operator/Any.js.map +1 -1
- package/browser/find-options/operator/ArrayContainedBy.d.ts +4 -1
- package/browser/find-options/operator/ArrayContainedBy.js +4 -1
- package/browser/find-options/operator/ArrayContainedBy.js.map +1 -1
- package/browser/find-options/operator/ArrayContains.d.ts +4 -1
- package/browser/find-options/operator/ArrayContains.js +4 -1
- package/browser/find-options/operator/ArrayContains.js.map +1 -1
- package/browser/find-options/operator/ArrayOverlap.d.ts +4 -1
- package/browser/find-options/operator/ArrayOverlap.js +4 -1
- package/browser/find-options/operator/ArrayOverlap.js.map +1 -1
- package/browser/find-options/operator/Between.d.ts +4 -1
- package/browser/find-options/operator/Between.js +4 -1
- package/browser/find-options/operator/Between.js.map +1 -1
- package/browser/find-options/operator/Equal.d.ts +6 -3
- package/browser/find-options/operator/Equal.js +6 -3
- package/browser/find-options/operator/Equal.js.map +1 -1
- package/browser/find-options/operator/ILike.d.ts +4 -1
- package/browser/find-options/operator/ILike.js +4 -1
- package/browser/find-options/operator/ILike.js.map +1 -1
- package/browser/find-options/operator/In.d.ts +4 -1
- package/browser/find-options/operator/In.js +4 -1
- package/browser/find-options/operator/In.js.map +1 -1
- package/browser/find-options/operator/IsNull.d.ts +4 -1
- package/browser/find-options/operator/IsNull.js +4 -1
- package/browser/find-options/operator/IsNull.js.map +1 -1
- package/browser/find-options/operator/JsonContains.d.ts +4 -1
- package/browser/find-options/operator/JsonContains.js +4 -1
- package/browser/find-options/operator/JsonContains.js.map +1 -1
- package/browser/find-options/operator/LessThan.d.ts +4 -1
- package/browser/find-options/operator/LessThan.js +4 -1
- package/browser/find-options/operator/LessThan.js.map +1 -1
- package/browser/find-options/operator/LessThanOrEqual.d.ts +4 -1
- package/browser/find-options/operator/LessThanOrEqual.js +4 -1
- package/browser/find-options/operator/LessThanOrEqual.js.map +1 -1
- package/browser/find-options/operator/Like.d.ts +4 -1
- package/browser/find-options/operator/Like.js +4 -1
- package/browser/find-options/operator/Like.js.map +1 -1
- package/browser/find-options/operator/MoreThan.d.ts +4 -1
- package/browser/find-options/operator/MoreThan.js +4 -1
- package/browser/find-options/operator/MoreThan.js.map +1 -1
- package/browser/find-options/operator/MoreThanOrEqual.d.ts +4 -1
- package/browser/find-options/operator/MoreThanOrEqual.js +4 -1
- package/browser/find-options/operator/MoreThanOrEqual.js.map +1 -1
- package/browser/find-options/operator/Not.d.ts +4 -1
- package/browser/find-options/operator/Not.js +4 -1
- package/browser/find-options/operator/Not.js.map +1 -1
- package/browser/find-options/operator/Raw.d.ts +12 -3
- package/browser/find-options/operator/Raw.js.map +1 -1
- package/browser/globals.js +1 -2
- package/browser/globals.js.map +1 -1
- package/browser/logger/AbstractLogger.d.ts +9 -0
- package/browser/logger/AbstractLogger.js +10 -2
- package/browser/logger/AbstractLogger.js.map +1 -1
- package/browser/logger/AdvancedConsoleLogger.d.ts +1 -0
- package/browser/logger/AdvancedConsoleLogger.js +1 -0
- package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
- package/browser/logger/DebugLogger.d.ts +2 -0
- package/browser/logger/DebugLogger.js +3 -1
- package/browser/logger/DebugLogger.js.map +1 -1
- package/browser/logger/FileLogger.d.ts +13 -2
- package/browser/logger/FileLogger.js +4 -5
- package/browser/logger/FileLogger.js.map +1 -1
- package/browser/logger/FormattedConsoleLogger.d.ts +1 -0
- package/browser/logger/FormattedConsoleLogger.js +1 -0
- package/browser/logger/FormattedConsoleLogger.js.map +1 -1
- package/browser/logger/LoggerFactory.d.ts +1 -0
- package/browser/logger/LoggerFactory.js +1 -0
- package/browser/logger/LoggerFactory.js.map +1 -1
- package/browser/logger/LoggerOptions.d.ts +0 -9
- package/browser/logger/LoggerOptions.js.map +1 -1
- package/browser/logger/SimpleConsoleLogger.d.ts +1 -0
- package/browser/logger/SimpleConsoleLogger.js +1 -0
- package/browser/logger/SimpleConsoleLogger.js.map +1 -1
- package/browser/metadata/CheckMetadata.d.ts +1 -0
- package/browser/metadata/CheckMetadata.js +4 -3
- package/browser/metadata/CheckMetadata.js.map +1 -1
- package/browser/metadata/ColumnMetadata.d.ts +8 -5
- package/browser/metadata/ColumnMetadata.js +17 -25
- package/browser/metadata/ColumnMetadata.js.map +1 -1
- package/browser/metadata/EmbeddedMetadata.d.ts +1 -0
- package/browser/metadata/EmbeddedMetadata.js +1 -0
- package/browser/metadata/EmbeddedMetadata.js.map +1 -1
- package/browser/metadata/EntityListenerMetadata.d.ts +3 -0
- package/browser/metadata/EntityListenerMetadata.js +3 -0
- package/browser/metadata/EntityListenerMetadata.js.map +1 -1
- package/browser/metadata/EntityMetadata.d.ts +25 -5
- package/browser/metadata/EntityMetadata.js +32 -12
- package/browser/metadata/EntityMetadata.js.map +1 -1
- package/browser/metadata/ExclusionMetadata.d.ts +1 -0
- package/browser/metadata/ExclusionMetadata.js +4 -3
- package/browser/metadata/ExclusionMetadata.js.map +1 -1
- package/browser/metadata/ForeignKeyMetadata.d.ts +1 -0
- package/browser/metadata/ForeignKeyMetadata.js +6 -5
- package/browser/metadata/ForeignKeyMetadata.js.map +1 -1
- package/browser/metadata/IndexMetadata.d.ts +1 -0
- package/browser/metadata/IndexMetadata.js +4 -3
- package/browser/metadata/IndexMetadata.js.map +1 -1
- package/browser/metadata/RelationIdMetadata.d.ts +1 -0
- package/browser/metadata/RelationIdMetadata.js +1 -0
- package/browser/metadata/RelationIdMetadata.js.map +1 -1
- package/browser/metadata/RelationMetadata.d.ts +8 -0
- package/browser/metadata/RelationMetadata.js +15 -15
- package/browser/metadata/RelationMetadata.js.map +1 -1
- package/browser/metadata/UniqueMetadata.d.ts +1 -0
- package/browser/metadata/UniqueMetadata.js +4 -3
- package/browser/metadata/UniqueMetadata.js.map +1 -1
- package/browser/metadata-args/MetadataArgsStorage.d.ts +4 -0
- package/browser/metadata-args/MetadataArgsStorage.js +4 -0
- package/browser/metadata-args/MetadataArgsStorage.js.map +1 -1
- package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +1 -0
- package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +7 -11
- package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataBuilder.d.ts +7 -0
- package/browser/metadata-builder/EntityMetadataBuilder.js +11 -6
- package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataValidator.d.ts +4 -0
- package/browser/metadata-builder/EntityMetadataValidator.js +6 -43
- package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.d.ts +3 -0
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +39 -20
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/MetadataUtils.d.ts +3 -0
- package/browser/metadata-builder/MetadataUtils.js +4 -1
- package/browser/metadata-builder/MetadataUtils.js.map +1 -1
- package/browser/metadata-builder/RelationJoinColumnBuilder.d.ts +3 -0
- package/browser/metadata-builder/RelationJoinColumnBuilder.js +17 -1
- package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/browser/migration/MigrationExecutor.d.ts +9 -0
- package/browser/migration/MigrationExecutor.js +16 -7
- package/browser/migration/MigrationExecutor.js.map +1 -1
- package/browser/naming-strategy/DefaultNamingStrategy.d.ts +3 -0
- package/browser/naming-strategy/DefaultNamingStrategy.js +13 -10
- package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
- package/browser/naming-strategy/NamingStrategyInterface.d.ts +2 -0
- package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
- package/browser/persistence/EntityPersistExecutor.js +2 -4
- package/browser/persistence/EntityPersistExecutor.js.map +1 -1
- package/browser/persistence/Subject.js +4 -6
- package/browser/persistence/Subject.js.map +1 -1
- package/browser/persistence/SubjectChangedColumnsComputer.d.ts +3 -0
- package/browser/persistence/SubjectChangedColumnsComputer.js +3 -0
- package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
- package/browser/persistence/SubjectDatabaseEntityLoader.d.ts +1 -0
- package/browser/persistence/SubjectDatabaseEntityLoader.js +3 -1
- package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
- package/browser/persistence/SubjectExecutor.d.ts +2 -0
- package/browser/persistence/SubjectExecutor.js +15 -27
- package/browser/persistence/SubjectExecutor.js.map +1 -1
- package/browser/persistence/SubjectTopologicalSorter.d.ts +4 -0
- package/browser/persistence/SubjectTopologicalSorter.js +4 -0
- package/browser/persistence/SubjectTopologicalSorter.js.map +1 -1
- package/browser/persistence/subject-builder/CascadesSubjectBuilder.d.ts +2 -0
- package/browser/persistence/subject-builder/CascadesSubjectBuilder.js +37 -11
- package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
- package/browser/persistence/subject-builder/ManyToManySubjectBuilder.d.ts +11 -8
- package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js +15 -13
- package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
- package/browser/persistence/subject-builder/OneToManySubjectBuilder.d.ts +9 -10
- package/browser/persistence/subject-builder/OneToManySubjectBuilder.js +30 -24
- package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
- package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.d.ts +9 -10
- package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +9 -10
- package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
- package/browser/persistence/tree/ClosureSubjectExecutor.d.ts +4 -0
- package/browser/persistence/tree/ClosureSubjectExecutor.js +10 -8
- package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
- package/browser/persistence/tree/MaterializedPathSubjectExecutor.d.ts +2 -0
- package/browser/persistence/tree/MaterializedPathSubjectExecutor.js +8 -6
- package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
- package/browser/persistence/tree/NestedSetSubjectExecutor.d.ts +5 -0
- package/browser/persistence/tree/NestedSetSubjectExecutor.js +10 -5
- package/browser/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
- package/browser/platform/PlatformTools.d.ts +9 -0
- package/browser/platform/PlatformTools.js +10 -1
- package/browser/platform/PlatformTools.js.map +1 -1
- package/browser/query-builder/Alias.js +1 -1
- package/browser/query-builder/Alias.js.map +1 -1
- package/browser/query-builder/Brackets.d.ts +1 -0
- package/browser/query-builder/Brackets.js +1 -0
- package/browser/query-builder/Brackets.js.map +1 -1
- package/browser/query-builder/DeleteQueryBuilder.d.ts +7 -0
- package/browser/query-builder/DeleteQueryBuilder.js +9 -0
- package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/browser/query-builder/InsertQueryBuilder.d.ts +9 -0
- package/browser/query-builder/InsertQueryBuilder.js +14 -8
- package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
- package/browser/query-builder/JoinAttribute.js +3 -3
- package/browser/query-builder/JoinAttribute.js.map +1 -1
- package/browser/query-builder/QueryBuilder.d.ts +25 -4
- package/browser/query-builder/QueryBuilder.js +58 -15
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryBuilderUtils.d.ts +1 -0
- package/browser/query-builder/QueryBuilderUtils.js +1 -0
- package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
- package/browser/query-builder/QueryExpressionMap.d.ts +5 -0
- package/browser/query-builder/QueryExpressionMap.js +4 -1
- package/browser/query-builder/QueryExpressionMap.js.map +1 -1
- package/browser/query-builder/RelationIdLoader.d.ts +6 -35
- package/browser/query-builder/RelationIdLoader.js +19 -43
- package/browser/query-builder/RelationIdLoader.js.map +1 -1
- package/browser/query-builder/RelationLoader.d.ts +11 -2
- package/browser/query-builder/RelationLoader.js +20 -17
- package/browser/query-builder/RelationLoader.js.map +1 -1
- package/browser/query-builder/RelationQueryBuilder.d.ts +5 -0
- package/browser/query-builder/RelationQueryBuilder.js +5 -0
- package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
- package/browser/query-builder/RelationRemover.d.ts +1 -0
- package/browser/query-builder/RelationRemover.js +1 -0
- package/browser/query-builder/RelationRemover.js.map +1 -1
- package/browser/query-builder/RelationUpdater.d.ts +1 -0
- package/browser/query-builder/RelationUpdater.js +1 -0
- package/browser/query-builder/RelationUpdater.js.map +1 -1
- package/browser/query-builder/ReturningResultsEntityUpdator.d.ts +2 -0
- package/browser/query-builder/ReturningResultsEntityUpdator.js +3 -1
- package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.d.ts +31 -8
- package/browser/query-builder/SelectQueryBuilder.js +98 -70
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-builder/SoftDeleteQueryBuilder.d.ts +11 -0
- package/browser/query-builder/SoftDeleteQueryBuilder.js +17 -0
- package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
- package/browser/query-builder/UpdateQueryBuilder.d.ts +11 -0
- package/browser/query-builder/UpdateQueryBuilder.js +18 -1
- package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdAttribute.js +5 -5
- package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
- package/browser/query-builder/relation-id/RelationIdLoader.d.ts +2 -1
- package/browser/query-builder/relation-id/RelationIdLoader.js +6 -3
- package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
- package/browser/query-builder/transformer/DocumentToEntityTransformer.js +3 -16
- package/browser/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
- package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +2 -4
- package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
- package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.d.ts +1 -0
- package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js +1 -0
- package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +6 -0
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +6 -7
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/browser/query-runner/BaseQueryRunner.d.ts +21 -1
- package/browser/query-runner/BaseQueryRunner.js +36 -49
- package/browser/query-runner/BaseQueryRunner.js.map +1 -1
- package/browser/query-runner/QueryRunner.d.ts +5 -1
- package/browser/query-runner/QueryRunner.js.map +1 -1
- package/browser/repository/BaseEntity.d.ts +32 -0
- package/browser/repository/BaseEntity.js +36 -0
- package/browser/repository/BaseEntity.js.map +1 -1
- package/browser/repository/MongoRepository.d.ts +39 -0
- package/browser/repository/MongoRepository.js +41 -2
- package/browser/repository/MongoRepository.js.map +1 -1
- package/browser/repository/Repository.d.ts +37 -1
- package/browser/repository/Repository.js +43 -2
- package/browser/repository/Repository.js.map +1 -1
- package/browser/repository/TreeRepository.d.ts +11 -0
- package/browser/repository/TreeRepository.js +12 -1
- package/browser/repository/TreeRepository.js.map +1 -1
- package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +6 -4
- package/browser/schema-builder/RdbmsSchemaBuilder.js +10 -13
- package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/browser/schema-builder/table/Table.d.ts +17 -0
- package/browser/schema-builder/table/Table.js +19 -2
- package/browser/schema-builder/table/Table.js.map +1 -1
- package/browser/schema-builder/table/TableCheck.d.ts +1 -0
- package/browser/schema-builder/table/TableCheck.js +1 -0
- package/browser/schema-builder/table/TableCheck.js.map +1 -1
- package/browser/schema-builder/table/TableColumn.js +7 -7
- package/browser/schema-builder/table/TableColumn.js.map +1 -1
- package/browser/schema-builder/table/TableExclusion.d.ts +1 -0
- package/browser/schema-builder/table/TableExclusion.js +1 -0
- package/browser/schema-builder/table/TableExclusion.js.map +1 -1
- package/browser/schema-builder/table/TableForeignKey.d.ts +1 -0
- package/browser/schema-builder/table/TableForeignKey.js +1 -0
- package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
- package/browser/schema-builder/table/TableIndex.d.ts +1 -0
- package/browser/schema-builder/table/TableIndex.js +2 -1
- package/browser/schema-builder/table/TableIndex.js.map +1 -1
- package/browser/schema-builder/table/TableUnique.d.ts +1 -0
- package/browser/schema-builder/table/TableUnique.js +1 -0
- package/browser/schema-builder/table/TableUnique.js.map +1 -1
- package/browser/schema-builder/util/ViewUtils.d.ts +1 -0
- package/browser/schema-builder/util/ViewUtils.js +1 -0
- package/browser/schema-builder/util/ViewUtils.js.map +1 -1
- package/browser/schema-builder/view/View.d.ts +3 -0
- package/browser/schema-builder/view/View.js +3 -0
- package/browser/schema-builder/view/View.js.map +1 -1
- package/browser/subscriber/Broadcaster.d.ts +20 -0
- package/browser/subscriber/Broadcaster.js +25 -6
- package/browser/subscriber/Broadcaster.js.map +1 -1
- package/browser/subscriber/event/BaseEvent.d.ts +1 -0
- package/browser/subscriber/event/BaseEvent.js.map +1 -1
- package/browser/util/DateUtils.d.ts +15 -0
- package/browser/util/DateUtils.js +15 -0
- package/browser/util/DateUtils.js.map +1 -1
- package/browser/util/DepGraph.d.ts +10 -0
- package/browser/util/DepGraph.js +11 -0
- package/browser/util/DepGraph.js.map +1 -1
- package/browser/util/DirectoryExportedClassesLoader.d.ts +1 -0
- package/browser/util/DirectoryExportedClassesLoader.js +1 -0
- package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
- package/browser/util/ObjectUtils.d.ts +6 -0
- package/browser/util/ObjectUtils.js +4 -0
- package/browser/util/ObjectUtils.js.map +1 -1
- package/browser/util/OrmUtils.d.ts +14 -0
- package/browser/util/OrmUtils.js +18 -6
- package/browser/util/OrmUtils.js.map +1 -1
- package/browser/util/PathUtils.d.ts +2 -0
- package/browser/util/PathUtils.js +2 -0
- package/browser/util/PathUtils.js.map +1 -1
- package/browser/util/RandomGenerator.d.ts +2 -0
- package/browser/util/RandomGenerator.js +2 -0
- package/browser/util/RandomGenerator.js.map +1 -1
- package/browser/util/StringUtils.d.ts +11 -4
- package/browser/util/StringUtils.js +15 -7
- package/browser/util/StringUtils.js.map +1 -1
- package/browser/util/TreeRepositoryUtils.js +2 -2
- package/browser/util/TreeRepositoryUtils.js.map +1 -1
- package/cache/DbQueryResultCache.d.ts +7 -0
- package/cache/DbQueryResultCache.js +12 -4
- package/cache/DbQueryResultCache.js.map +1 -1
- package/cache/RedisQueryResultCache.d.ts +7 -0
- package/cache/RedisQueryResultCache.js +15 -10
- package/cache/RedisQueryResultCache.js.map +1 -1
- package/cli-ts-node-esm.js +2 -2
- package/cli-ts-node-esm.js.map +1 -1
- package/commands/CacheClearCommand.js +1 -1
- package/commands/CacheClearCommand.js.map +1 -1
- package/commands/CommandUtils.d.ts +4 -0
- package/commands/CommandUtils.js +4 -0
- package/commands/CommandUtils.js.map +1 -1
- package/commands/EntityCreateCommand.d.ts +1 -0
- package/commands/EntityCreateCommand.js +1 -0
- package/commands/EntityCreateCommand.js.map +1 -1
- package/commands/InitCommand.d.ts +10 -0
- package/commands/InitCommand.js +16 -9
- package/commands/InitCommand.js.map +1 -1
- package/commands/MigrationCreateCommand.d.ts +2 -0
- package/commands/MigrationCreateCommand.js +2 -0
- package/commands/MigrationCreateCommand.js.map +1 -1
- package/commands/MigrationGenerateCommand.d.ts +3 -0
- package/commands/MigrationGenerateCommand.js +4 -1
- package/commands/MigrationGenerateCommand.js.map +1 -1
- package/commands/MigrationRevertCommand.js +1 -1
- package/commands/MigrationRevertCommand.js.map +1 -1
- package/commands/MigrationRunCommand.js +1 -1
- package/commands/MigrationRunCommand.js.map +1 -1
- package/commands/MigrationShowCommand.js +1 -1
- package/commands/MigrationShowCommand.js.map +1 -1
- package/commands/QueryCommand.js +1 -1
- package/commands/QueryCommand.js.map +1 -1
- package/commands/SchemaDropCommand.js +1 -1
- package/commands/SchemaDropCommand.js.map +1 -1
- package/commands/SchemaSyncCommand.js +1 -1
- package/commands/SchemaSyncCommand.js.map +1 -1
- package/commands/SubscriberCreateCommand.d.ts +1 -0
- package/commands/SubscriberCreateCommand.js +1 -0
- package/commands/SubscriberCreateCommand.js.map +1 -1
- package/commands/VersionCommand.js +2 -2
- package/commands/VersionCommand.js.map +1 -1
- package/common/RelationType.d.ts +2 -0
- package/common/RelationType.js.map +1 -1
- package/connection/ConnectionMetadataBuilder.d.ts +3 -0
- package/connection/ConnectionMetadataBuilder.js +3 -0
- package/connection/ConnectionMetadataBuilder.js.map +1 -1
- package/connection/ConnectionOptionsReader.d.ts +5 -4
- package/connection/ConnectionOptionsReader.js +14 -12
- package/connection/ConnectionOptionsReader.js.map +1 -1
- package/data-source/BaseDataSourceOptions.d.ts +8 -0
- package/data-source/BaseDataSourceOptions.js.map +1 -1
- package/data-source/DataSource.d.ts +20 -1
- package/data-source/DataSource.js +37 -15
- package/data-source/DataSource.js.map +1 -1
- package/decorator/Check.d.ts +2 -0
- package/decorator/Check.js +2 -1
- package/decorator/Check.js.map +1 -1
- package/decorator/Exclusion.d.ts +2 -0
- package/decorator/Exclusion.js +1 -0
- package/decorator/Exclusion.js.map +1 -1
- package/decorator/ForeignKey.d.ts +3 -0
- package/decorator/ForeignKey.js +1 -0
- package/decorator/ForeignKey.js.map +1 -1
- package/decorator/Generated.d.ts +1 -0
- package/decorator/Generated.js +1 -0
- package/decorator/Generated.js.map +1 -1
- package/decorator/Index.d.ts +7 -0
- package/decorator/Index.js +13 -13
- package/decorator/Index.js.map +1 -1
- package/decorator/Unique.d.ts +4 -0
- package/decorator/Unique.js +6 -6
- package/decorator/Unique.js.map +1 -1
- package/decorator/columns/Column.d.ts +11 -0
- package/decorator/columns/Column.js +3 -3
- package/decorator/columns/Column.js.map +1 -1
- package/decorator/columns/CreateDateColumn.d.ts +1 -0
- package/decorator/columns/CreateDateColumn.js +2 -1
- package/decorator/columns/CreateDateColumn.js.map +1 -1
- package/decorator/columns/DeleteDateColumn.d.ts +1 -0
- package/decorator/columns/DeleteDateColumn.js +2 -1
- package/decorator/columns/DeleteDateColumn.js.map +1 -1
- package/decorator/columns/ObjectIdColumn.d.ts +1 -0
- package/decorator/columns/ObjectIdColumn.js +3 -4
- package/decorator/columns/ObjectIdColumn.js.map +1 -1
- package/decorator/columns/PrimaryColumn.d.ts +2 -0
- package/decorator/columns/PrimaryColumn.js +2 -2
- package/decorator/columns/PrimaryColumn.js.map +1 -1
- package/decorator/columns/PrimaryGeneratedColumn.d.ts +4 -0
- package/decorator/columns/PrimaryGeneratedColumn.js +1 -0
- package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
- package/decorator/columns/UpdateDateColumn.d.ts +1 -0
- package/decorator/columns/UpdateDateColumn.js +2 -1
- package/decorator/columns/UpdateDateColumn.js.map +1 -1
- package/decorator/columns/VersionColumn.d.ts +1 -0
- package/decorator/columns/VersionColumn.js +2 -1
- package/decorator/columns/VersionColumn.js.map +1 -1
- package/decorator/columns/ViewColumn.d.ts +1 -0
- package/decorator/columns/ViewColumn.js +2 -1
- package/decorator/columns/ViewColumn.js.map +1 -1
- package/decorator/columns/VirtualColumn.d.ts +2 -0
- package/decorator/columns/VirtualColumn.js +1 -0
- package/decorator/columns/VirtualColumn.js.map +1 -1
- package/decorator/entity/ChildEntity.d.ts +1 -0
- package/decorator/entity/ChildEntity.js +1 -0
- package/decorator/entity/ChildEntity.js.map +1 -1
- package/decorator/entity/Entity.d.ts +2 -0
- package/decorator/entity/Entity.js +7 -6
- package/decorator/entity/Entity.js.map +1 -1
- package/decorator/entity/TableInheritance.d.ts +1 -0
- package/decorator/entity/TableInheritance.js +3 -2
- package/decorator/entity/TableInheritance.js.map +1 -1
- package/decorator/entity-view/ViewEntity.d.ts +2 -0
- package/decorator/entity-view/ViewEntity.js +4 -3
- package/decorator/entity-view/ViewEntity.js.map +1 -1
- package/decorator/options/ColumnOptions.d.ts +3 -0
- package/decorator/options/ColumnOptions.js.map +1 -1
- package/decorator/options/EntityOptions.d.ts +1 -0
- package/decorator/options/EntityOptions.js.map +1 -1
- package/decorator/options/RelationOptions.d.ts +2 -0
- package/decorator/options/RelationOptions.js.map +1 -1
- package/decorator/options/VirtualColumnOptions.d.ts +1 -0
- package/decorator/options/VirtualColumnOptions.js.map +1 -1
- package/decorator/relations/JoinColumn.d.ts +2 -0
- package/decorator/relations/JoinColumn.js +2 -1
- package/decorator/relations/JoinColumn.js.map +1 -1
- package/decorator/relations/JoinTable.d.ts +2 -0
- package/decorator/relations/JoinTable.js +5 -4
- package/decorator/relations/JoinTable.js.map +1 -1
- package/decorator/relations/ManyToMany.d.ts +2 -0
- package/decorator/relations/ManyToMany.js +2 -2
- package/decorator/relations/ManyToMany.js.map +1 -1
- package/decorator/relations/ManyToOne.d.ts +2 -0
- package/decorator/relations/ManyToOne.js +3 -3
- package/decorator/relations/ManyToOne.js.map +1 -1
- package/decorator/relations/OneToMany.d.ts +1 -0
- package/decorator/relations/OneToMany.js +3 -3
- package/decorator/relations/OneToMany.js.map +1 -1
- package/decorator/relations/OneToOne.d.ts +2 -0
- package/decorator/relations/OneToOne.js +3 -3
- package/decorator/relations/OneToOne.js.map +1 -1
- package/decorator/relations/RelationId.d.ts +1 -0
- package/decorator/relations/RelationId.js +1 -0
- package/decorator/relations/RelationId.js.map +1 -1
- package/decorator/tree/Tree.d.ts +1 -0
- package/decorator/tree/Tree.js +1 -0
- package/decorator/tree/Tree.js.map +1 -1
- package/decorator/tree/TreeChildren.d.ts +1 -0
- package/decorator/tree/TreeChildren.js +3 -3
- package/decorator/tree/TreeChildren.js.map +1 -1
- package/decorator/tree/TreeParent.d.ts +1 -0
- package/decorator/tree/TreeParent.js +3 -3
- package/decorator/tree/TreeParent.js.map +1 -1
- package/driver/Driver.d.ts +5 -0
- package/driver/Driver.js.map +1 -1
- package/driver/DriverFactory.d.ts +1 -0
- package/driver/DriverFactory.js +1 -0
- package/driver/DriverFactory.js.map +1 -1
- package/driver/DriverUtils.d.ts +7 -0
- package/driver/DriverUtils.js +34 -21
- package/driver/DriverUtils.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts +1 -0
- package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlDataSourceOptions.d.ts +1 -0
- package/driver/aurora-mysql/AuroraMysqlDataSourceOptions.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlDriver.d.ts +37 -0
- package/driver/aurora-mysql/AuroraMysqlDriver.js +53 -16
- package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +64 -0
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +90 -30
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
- package/driver/aurora-postgres/AuroraPostgresDriver.d.ts +13 -0
- package/driver/aurora-postgres/AuroraPostgresDriver.js +26 -5
- package/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
- package/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +3 -0
- package/driver/aurora-postgres/AuroraPostgresQueryRunner.js +27 -1
- package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
- package/driver/better-sqlite3/BetterSqlite3DataSourceOptions.d.ts +1 -0
- package/driver/better-sqlite3/BetterSqlite3DataSourceOptions.js.map +1 -1
- package/driver/better-sqlite3/BetterSqlite3Driver.d.ts +3 -0
- package/driver/better-sqlite3/BetterSqlite3Driver.js +5 -3
- package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
- package/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +1 -0
- package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +1 -0
- package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
- package/driver/capacitor/CapacitorDriver.d.ts +1 -0
- package/driver/capacitor/CapacitorDriver.js +3 -3
- package/driver/capacitor/CapacitorDriver.js.map +1 -1
- package/driver/capacitor/CapacitorQueryRunner.d.ts +2 -0
- package/driver/capacitor/CapacitorQueryRunner.js +4 -2
- package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
- package/driver/cockroachdb/CockroachDataSourceOptions.d.ts +1 -0
- package/driver/cockroachdb/CockroachDataSourceOptions.js.map +1 -1
- package/driver/cockroachdb/CockroachDriver.d.ts +35 -0
- package/driver/cockroachdb/CockroachDriver.js +64 -29
- package/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.d.ts +74 -0
- package/driver/cockroachdb/CockroachQueryRunner.js +143 -119
- package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/driver/cordova/CordovaDriver.d.ts +6 -0
- package/driver/cordova/CordovaDriver.js +14 -4
- package/driver/cordova/CordovaDriver.js.map +1 -1
- package/driver/cordova/CordovaQueryRunner.d.ts +2 -0
- package/driver/cordova/CordovaQueryRunner.js +3 -1
- package/driver/cordova/CordovaQueryRunner.js.map +1 -1
- package/driver/expo/ExpoDriver.js +1 -2
- package/driver/expo/ExpoDriver.js.map +1 -1
- package/driver/mongodb/MongoDriver.d.ts +25 -0
- package/driver/mongodb/MongoDriver.js +35 -6
- package/driver/mongodb/MongoDriver.js.map +1 -1
- package/driver/mongodb/MongoQueryRunner.d.ts +84 -0
- package/driver/mongodb/MongoQueryRunner.js +102 -18
- package/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/driver/mongodb/bson.typings.d.ts +1 -0
- package/driver/mongodb/bson.typings.js.map +1 -1
- package/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +1 -0
- package/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
- package/driver/mysql/MysqlDataSourceOptions.d.ts +2 -0
- package/driver/mysql/MysqlDataSourceOptions.js.map +1 -1
- package/driver/mysql/MysqlDriver.d.ts +37 -0
- package/driver/mysql/MysqlDriver.js +57 -17
- package/driver/mysql/MysqlDriver.js.map +1 -1
- package/driver/mysql/MysqlQueryRunner.d.ts +64 -0
- package/driver/mysql/MysqlQueryRunner.js +140 -111
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/driver/nativescript/NativescriptDriver.d.ts +1 -0
- package/driver/nativescript/NativescriptDriver.js +3 -4
- package/driver/nativescript/NativescriptDriver.js.map +1 -1
- package/driver/nativescript/NativescriptQueryRunner.d.ts +2 -0
- package/driver/nativescript/NativescriptQueryRunner.js +3 -1
- package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
- package/driver/oracle/OracleDriver.d.ts +32 -0
- package/driver/oracle/OracleDriver.js +48 -15
- package/driver/oracle/OracleDriver.js.map +1 -1
- package/driver/oracle/OracleQueryRunner.d.ts +66 -0
- package/driver/oracle/OracleQueryRunner.js +119 -83
- package/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/driver/postgres/PostgresDataSourceOptions.d.ts +2 -0
- package/driver/postgres/PostgresDataSourceOptions.js.map +1 -1
- package/driver/postgres/PostgresDriver.d.ts +37 -0
- package/driver/postgres/PostgresDriver.js +67 -31
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.d.ts +81 -0
- package/driver/postgres/PostgresQueryRunner.js +152 -121
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/react-native/ReactNativeDriver.d.ts +29 -0
- package/driver/react-native/ReactNativeDriver.js +45 -12
- package/driver/react-native/ReactNativeDriver.js.map +1 -1
- package/driver/react-native/ReactNativeQueryRunner.d.ts +2 -0
- package/driver/react-native/ReactNativeQueryRunner.js +3 -1
- package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
- package/driver/sap/SapDataSourceOptions.d.ts +1 -0
- package/driver/sap/SapDataSourceOptions.js.map +1 -1
- package/driver/sap/SapDriver.d.ts +30 -0
- package/driver/sap/SapDriver.js +45 -11
- package/driver/sap/SapDriver.js.map +1 -1
- package/driver/sap/SapQueryRunner.d.ts +66 -0
- package/driver/sap/SapQueryRunner.js +101 -56
- package/driver/sap/SapQueryRunner.js.map +1 -1
- package/driver/spanner/SpannerDataSourceOptions.d.ts +1 -0
- package/driver/spanner/SpannerDataSourceOptions.js.map +1 -1
- package/driver/spanner/SpannerDriver.d.ts +33 -0
- package/driver/spanner/SpannerDriver.js +50 -10
- package/driver/spanner/SpannerDriver.js.map +1 -1
- package/driver/spanner/SpannerQueryRunner.d.ts +64 -0
- package/driver/spanner/SpannerQueryRunner.js +89 -32
- package/driver/spanner/SpannerQueryRunner.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +30 -0
- package/driver/sqlite-abstract/AbstractSqliteDriver.js +43 -77
- package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +59 -0
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +89 -45
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/driver/sqljs/SqljsDriver.d.ts +5 -0
- package/driver/sqljs/SqljsDriver.js +8 -4
- package/driver/sqljs/SqljsDriver.js.map +1 -1
- package/driver/sqljs/SqljsQueryRunner.d.ts +1 -0
- package/driver/sqljs/SqljsQueryRunner.js +1 -0
- package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
- package/driver/sqlserver/MssqlParameter.d.ts +1 -0
- package/driver/sqlserver/MssqlParameter.js +1 -0
- package/driver/sqlserver/MssqlParameter.js.map +1 -1
- package/driver/sqlserver/SqlServerDataSourceOptions.d.ts +14 -5
- package/driver/sqlserver/SqlServerDataSourceOptions.js.map +1 -1
- package/driver/sqlserver/SqlServerDriver.d.ts +42 -0
- package/driver/sqlserver/SqlServerDriver.js +100 -26
- package/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.d.ts +76 -10
- package/driver/sqlserver/SqlServerQueryRunner.js +160 -163
- package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/driver/types/IsolationLevel.d.ts +2 -1
- package/driver/types/IsolationLevel.js +8 -0
- package/driver/types/IsolationLevel.js.map +1 -1
- package/driver/validate-isolation-level.d.ts +9 -0
- package/driver/validate-isolation-level.js +23 -0
- package/driver/validate-isolation-level.js.map +1 -0
- package/entity-manager/EntityManager.d.ts +38 -1
- package/entity-manager/EntityManager.js +58 -12
- package/entity-manager/EntityManager.js.map +1 -1
- package/entity-manager/EntityManagerFactory.d.ts +1 -0
- package/entity-manager/EntityManagerFactory.js +1 -0
- package/entity-manager/EntityManagerFactory.js.map +1 -1
- package/entity-manager/MongoEntityManager.d.ts +54 -1
- package/entity-manager/MongoEntityManager.js +103 -12
- package/entity-manager/MongoEntityManager.js.map +1 -1
- package/entity-manager/SqljsEntityManager.d.ts +2 -0
- package/entity-manager/SqljsEntityManager.js +2 -0
- package/entity-manager/SqljsEntityManager.js.map +1 -1
- package/entity-schema/EntitySchemaColumnOptions.d.ts +1 -0
- package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
- package/entity-schema/EntitySchemaOptions.d.ts +1 -0
- package/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/entity-schema/EntitySchemaTransformer.d.ts +1 -0
- package/entity-schema/EntitySchemaTransformer.js +25 -26
- package/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/error/InitializedRelationError.d.ts +1 -0
- package/error/InitializedRelationError.js +1 -0
- package/error/InitializedRelationError.js.map +1 -1
- package/find-options/FindOptionsUtils.d.ts +7 -0
- package/find-options/FindOptionsUtils.js +7 -0
- package/find-options/FindOptionsUtils.js.map +1 -1
- package/find-options/OrderByCondition.d.ts +2 -1
- package/find-options/OrderByCondition.js.map +1 -1
- package/find-options/operator/Any.d.ts +4 -1
- package/find-options/operator/Any.js +4 -1
- package/find-options/operator/Any.js.map +1 -1
- package/find-options/operator/ArrayContainedBy.d.ts +4 -1
- package/find-options/operator/ArrayContainedBy.js +4 -1
- package/find-options/operator/ArrayContainedBy.js.map +1 -1
- package/find-options/operator/ArrayContains.d.ts +4 -1
- package/find-options/operator/ArrayContains.js +4 -1
- package/find-options/operator/ArrayContains.js.map +1 -1
- package/find-options/operator/ArrayOverlap.d.ts +4 -1
- package/find-options/operator/ArrayOverlap.js +4 -1
- package/find-options/operator/ArrayOverlap.js.map +1 -1
- package/find-options/operator/Between.d.ts +4 -1
- package/find-options/operator/Between.js +4 -1
- package/find-options/operator/Between.js.map +1 -1
- package/find-options/operator/Equal.d.ts +6 -3
- package/find-options/operator/Equal.js +6 -3
- package/find-options/operator/Equal.js.map +1 -1
- package/find-options/operator/ILike.d.ts +4 -1
- package/find-options/operator/ILike.js +4 -1
- package/find-options/operator/ILike.js.map +1 -1
- package/find-options/operator/In.d.ts +4 -1
- package/find-options/operator/In.js +4 -1
- package/find-options/operator/In.js.map +1 -1
- package/find-options/operator/IsNull.d.ts +4 -1
- package/find-options/operator/IsNull.js +4 -1
- package/find-options/operator/IsNull.js.map +1 -1
- package/find-options/operator/JsonContains.d.ts +4 -1
- package/find-options/operator/JsonContains.js +4 -1
- package/find-options/operator/JsonContains.js.map +1 -1
- package/find-options/operator/LessThan.d.ts +4 -1
- package/find-options/operator/LessThan.js +4 -1
- package/find-options/operator/LessThan.js.map +1 -1
- package/find-options/operator/LessThanOrEqual.d.ts +4 -1
- package/find-options/operator/LessThanOrEqual.js +4 -1
- package/find-options/operator/LessThanOrEqual.js.map +1 -1
- package/find-options/operator/Like.d.ts +4 -1
- package/find-options/operator/Like.js +4 -1
- package/find-options/operator/Like.js.map +1 -1
- package/find-options/operator/MoreThan.d.ts +4 -1
- package/find-options/operator/MoreThan.js +4 -1
- package/find-options/operator/MoreThan.js.map +1 -1
- package/find-options/operator/MoreThanOrEqual.d.ts +4 -1
- package/find-options/operator/MoreThanOrEqual.js +4 -1
- package/find-options/operator/MoreThanOrEqual.js.map +1 -1
- package/find-options/operator/Not.d.ts +4 -1
- package/find-options/operator/Not.js +4 -1
- package/find-options/operator/Not.js.map +1 -1
- package/find-options/operator/Raw.d.ts +12 -3
- package/find-options/operator/Raw.js.map +1 -1
- package/globals.js +1 -2
- package/globals.js.map +1 -1
- package/logger/AbstractLogger.d.ts +9 -0
- package/logger/AbstractLogger.js +10 -2
- package/logger/AbstractLogger.js.map +1 -1
- package/logger/AdvancedConsoleLogger.d.ts +1 -0
- package/logger/AdvancedConsoleLogger.js +1 -0
- package/logger/AdvancedConsoleLogger.js.map +1 -1
- package/logger/DebugLogger.d.ts +2 -0
- package/logger/DebugLogger.js +3 -1
- package/logger/DebugLogger.js.map +1 -1
- package/logger/FileLogger.d.ts +13 -2
- package/logger/FileLogger.js +4 -5
- package/logger/FileLogger.js.map +1 -1
- package/logger/FormattedConsoleLogger.d.ts +1 -0
- package/logger/FormattedConsoleLogger.js +1 -0
- package/logger/FormattedConsoleLogger.js.map +1 -1
- package/logger/LoggerFactory.d.ts +1 -0
- package/logger/LoggerFactory.js +1 -0
- package/logger/LoggerFactory.js.map +1 -1
- package/logger/LoggerOptions.d.ts +0 -9
- package/logger/LoggerOptions.js.map +1 -1
- package/logger/SimpleConsoleLogger.d.ts +1 -0
- package/logger/SimpleConsoleLogger.js +1 -0
- package/logger/SimpleConsoleLogger.js.map +1 -1
- package/metadata/CheckMetadata.d.ts +1 -0
- package/metadata/CheckMetadata.js +4 -3
- package/metadata/CheckMetadata.js.map +1 -1
- package/metadata/ColumnMetadata.d.ts +8 -5
- package/metadata/ColumnMetadata.js +17 -25
- package/metadata/ColumnMetadata.js.map +1 -1
- package/metadata/EmbeddedMetadata.d.ts +1 -0
- package/metadata/EmbeddedMetadata.js +1 -0
- package/metadata/EmbeddedMetadata.js.map +1 -1
- package/metadata/EntityListenerMetadata.d.ts +3 -0
- package/metadata/EntityListenerMetadata.js +3 -0
- package/metadata/EntityListenerMetadata.js.map +1 -1
- package/metadata/EntityMetadata.d.ts +25 -5
- package/metadata/EntityMetadata.js +32 -12
- package/metadata/EntityMetadata.js.map +1 -1
- package/metadata/ExclusionMetadata.d.ts +1 -0
- package/metadata/ExclusionMetadata.js +4 -3
- package/metadata/ExclusionMetadata.js.map +1 -1
- package/metadata/ForeignKeyMetadata.d.ts +1 -0
- package/metadata/ForeignKeyMetadata.js +6 -5
- package/metadata/ForeignKeyMetadata.js.map +1 -1
- package/metadata/IndexMetadata.d.ts +1 -0
- package/metadata/IndexMetadata.js +4 -3
- package/metadata/IndexMetadata.js.map +1 -1
- package/metadata/RelationIdMetadata.d.ts +1 -0
- package/metadata/RelationIdMetadata.js +1 -0
- package/metadata/RelationIdMetadata.js.map +1 -1
- package/metadata/RelationMetadata.d.ts +8 -0
- package/metadata/RelationMetadata.js +15 -15
- package/metadata/RelationMetadata.js.map +1 -1
- package/metadata/UniqueMetadata.d.ts +1 -0
- package/metadata/UniqueMetadata.js +4 -3
- package/metadata/UniqueMetadata.js.map +1 -1
- package/metadata-args/MetadataArgsStorage.d.ts +4 -0
- package/metadata-args/MetadataArgsStorage.js +4 -0
- package/metadata-args/MetadataArgsStorage.js.map +1 -1
- package/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +1 -0
- package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +7 -11
- package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/EntityMetadataBuilder.d.ts +7 -0
- package/metadata-builder/EntityMetadataBuilder.js +11 -6
- package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/EntityMetadataValidator.d.ts +4 -0
- package/metadata-builder/EntityMetadataValidator.js +6 -43
- package/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/metadata-builder/JunctionEntityMetadataBuilder.d.ts +3 -0
- package/metadata-builder/JunctionEntityMetadataBuilder.js +39 -20
- package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/MetadataUtils.d.ts +3 -0
- package/metadata-builder/MetadataUtils.js +4 -1
- package/metadata-builder/MetadataUtils.js.map +1 -1
- package/metadata-builder/RelationJoinColumnBuilder.d.ts +3 -0
- package/metadata-builder/RelationJoinColumnBuilder.js +17 -1
- package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/migration/MigrationExecutor.d.ts +9 -0
- package/migration/MigrationExecutor.js +16 -7
- package/migration/MigrationExecutor.js.map +1 -1
- package/naming-strategy/DefaultNamingStrategy.d.ts +3 -0
- package/naming-strategy/DefaultNamingStrategy.js +13 -10
- package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
- package/naming-strategy/NamingStrategyInterface.d.ts +2 -0
- package/naming-strategy/NamingStrategyInterface.js.map +1 -1
- package/package.json +6 -2
- package/persistence/EntityPersistExecutor.js +2 -4
- package/persistence/EntityPersistExecutor.js.map +1 -1
- package/persistence/Subject.js +4 -6
- package/persistence/Subject.js.map +1 -1
- package/persistence/SubjectChangedColumnsComputer.d.ts +3 -0
- package/persistence/SubjectChangedColumnsComputer.js +3 -0
- package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
- package/persistence/SubjectDatabaseEntityLoader.d.ts +1 -0
- package/persistence/SubjectDatabaseEntityLoader.js +3 -1
- package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
- package/persistence/SubjectExecutor.d.ts +2 -0
- package/persistence/SubjectExecutor.js +15 -27
- package/persistence/SubjectExecutor.js.map +1 -1
- package/persistence/SubjectTopologicalSorter.d.ts +4 -0
- package/persistence/SubjectTopologicalSorter.js +4 -0
- package/persistence/SubjectTopologicalSorter.js.map +1 -1
- package/persistence/subject-builder/CascadesSubjectBuilder.d.ts +2 -0
- package/persistence/subject-builder/CascadesSubjectBuilder.js +37 -11
- package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/ManyToManySubjectBuilder.d.ts +11 -8
- package/persistence/subject-builder/ManyToManySubjectBuilder.js +15 -13
- package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/OneToManySubjectBuilder.d.ts +9 -10
- package/persistence/subject-builder/OneToManySubjectBuilder.js +30 -24
- package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
- package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.d.ts +9 -10
- package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +9 -10
- package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
- package/persistence/tree/ClosureSubjectExecutor.d.ts +4 -0
- package/persistence/tree/ClosureSubjectExecutor.js +10 -8
- package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
- package/persistence/tree/MaterializedPathSubjectExecutor.d.ts +2 -0
- package/persistence/tree/MaterializedPathSubjectExecutor.js +8 -6
- package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
- package/persistence/tree/NestedSetSubjectExecutor.d.ts +5 -0
- package/persistence/tree/NestedSetSubjectExecutor.js +10 -5
- package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
- package/platform/PlatformTools.d.ts +9 -0
- package/platform/PlatformTools.js +10 -1
- package/platform/PlatformTools.js.map +1 -1
- package/query-builder/Alias.js +1 -1
- package/query-builder/Alias.js.map +1 -1
- package/query-builder/Brackets.d.ts +1 -0
- package/query-builder/Brackets.js +1 -0
- package/query-builder/Brackets.js.map +1 -1
- package/query-builder/DeleteQueryBuilder.d.ts +7 -0
- package/query-builder/DeleteQueryBuilder.js +9 -0
- package/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/query-builder/InsertQueryBuilder.d.ts +9 -0
- package/query-builder/InsertQueryBuilder.js +14 -8
- package/query-builder/InsertQueryBuilder.js.map +1 -1
- package/query-builder/JoinAttribute.js +3 -3
- package/query-builder/JoinAttribute.js.map +1 -1
- package/query-builder/QueryBuilder.d.ts +25 -4
- package/query-builder/QueryBuilder.js +58 -15
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/QueryBuilderUtils.d.ts +1 -0
- package/query-builder/QueryBuilderUtils.js +1 -0
- package/query-builder/QueryBuilderUtils.js.map +1 -1
- package/query-builder/QueryExpressionMap.d.ts +5 -0
- package/query-builder/QueryExpressionMap.js +4 -1
- package/query-builder/QueryExpressionMap.js.map +1 -1
- package/query-builder/RelationIdLoader.d.ts +6 -35
- package/query-builder/RelationIdLoader.js +19 -43
- package/query-builder/RelationIdLoader.js.map +1 -1
- package/query-builder/RelationLoader.d.ts +11 -2
- package/query-builder/RelationLoader.js +20 -17
- package/query-builder/RelationLoader.js.map +1 -1
- package/query-builder/RelationQueryBuilder.d.ts +5 -0
- package/query-builder/RelationQueryBuilder.js +5 -0
- package/query-builder/RelationQueryBuilder.js.map +1 -1
- package/query-builder/RelationRemover.d.ts +1 -0
- package/query-builder/RelationRemover.js +1 -0
- package/query-builder/RelationRemover.js.map +1 -1
- package/query-builder/RelationUpdater.d.ts +1 -0
- package/query-builder/RelationUpdater.js +1 -0
- package/query-builder/RelationUpdater.js.map +1 -1
- package/query-builder/ReturningResultsEntityUpdator.d.ts +2 -0
- package/query-builder/ReturningResultsEntityUpdator.js +3 -1
- package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
- package/query-builder/SelectQueryBuilder.d.ts +31 -8
- package/query-builder/SelectQueryBuilder.js +98 -70
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-builder/SoftDeleteQueryBuilder.d.ts +11 -0
- package/query-builder/SoftDeleteQueryBuilder.js +17 -0
- package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
- package/query-builder/UpdateQueryBuilder.d.ts +11 -0
- package/query-builder/UpdateQueryBuilder.js +18 -1
- package/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/query-builder/relation-id/RelationIdAttribute.js +5 -5
- package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
- package/query-builder/relation-id/RelationIdLoader.d.ts +2 -1
- package/query-builder/relation-id/RelationIdLoader.js +6 -3
- package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
- package/query-builder/transformer/DocumentToEntityTransformer.js +3 -16
- package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
- package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +2 -4
- package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
- package/query-builder/transformer/PlainObjectToNewEntityTransformer.d.ts +1 -0
- package/query-builder/transformer/PlainObjectToNewEntityTransformer.js +1 -0
- package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +6 -0
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +6 -7
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/query-runner/BaseQueryRunner.d.ts +21 -1
- package/query-runner/BaseQueryRunner.js +36 -49
- package/query-runner/BaseQueryRunner.js.map +1 -1
- package/query-runner/QueryRunner.d.ts +5 -1
- package/query-runner/QueryRunner.js.map +1 -1
- package/repository/BaseEntity.d.ts +32 -0
- package/repository/BaseEntity.js +36 -0
- package/repository/BaseEntity.js.map +1 -1
- package/repository/MongoRepository.d.ts +39 -0
- package/repository/MongoRepository.js +41 -2
- package/repository/MongoRepository.js.map +1 -1
- package/repository/Repository.d.ts +37 -1
- package/repository/Repository.js +43 -2
- package/repository/Repository.js.map +1 -1
- package/repository/TreeRepository.d.ts +11 -0
- package/repository/TreeRepository.js +12 -1
- package/repository/TreeRepository.js.map +1 -1
- package/schema-builder/RdbmsSchemaBuilder.d.ts +6 -4
- package/schema-builder/RdbmsSchemaBuilder.js +10 -13
- package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/schema-builder/table/Table.d.ts +17 -0
- package/schema-builder/table/Table.js +19 -2
- package/schema-builder/table/Table.js.map +1 -1
- package/schema-builder/table/TableCheck.d.ts +1 -0
- package/schema-builder/table/TableCheck.js +1 -0
- package/schema-builder/table/TableCheck.js.map +1 -1
- package/schema-builder/table/TableColumn.js +7 -7
- package/schema-builder/table/TableColumn.js.map +1 -1
- package/schema-builder/table/TableExclusion.d.ts +1 -0
- package/schema-builder/table/TableExclusion.js +1 -0
- package/schema-builder/table/TableExclusion.js.map +1 -1
- package/schema-builder/table/TableForeignKey.d.ts +1 -0
- package/schema-builder/table/TableForeignKey.js +1 -0
- package/schema-builder/table/TableForeignKey.js.map +1 -1
- package/schema-builder/table/TableIndex.d.ts +1 -0
- package/schema-builder/table/TableIndex.js +2 -1
- package/schema-builder/table/TableIndex.js.map +1 -1
- package/schema-builder/table/TableUnique.d.ts +1 -0
- package/schema-builder/table/TableUnique.js +1 -0
- package/schema-builder/table/TableUnique.js.map +1 -1
- package/schema-builder/util/ViewUtils.d.ts +1 -0
- package/schema-builder/util/ViewUtils.js +1 -0
- package/schema-builder/util/ViewUtils.js.map +1 -1
- package/schema-builder/view/View.d.ts +3 -0
- package/schema-builder/view/View.js +3 -0
- package/schema-builder/view/View.js.map +1 -1
- package/subscriber/Broadcaster.d.ts +20 -0
- package/subscriber/Broadcaster.js +25 -6
- package/subscriber/Broadcaster.js.map +1 -1
- package/subscriber/event/BaseEvent.d.ts +1 -0
- package/subscriber/event/BaseEvent.js.map +1 -1
- package/util/DateUtils.d.ts +15 -0
- package/util/DateUtils.js +15 -0
- package/util/DateUtils.js.map +1 -1
- package/util/DepGraph.d.ts +10 -0
- package/util/DepGraph.js +11 -0
- package/util/DepGraph.js.map +1 -1
- package/util/DirectoryExportedClassesLoader.d.ts +1 -0
- package/util/DirectoryExportedClassesLoader.js +1 -0
- package/util/DirectoryExportedClassesLoader.js.map +1 -1
- package/util/ObjectUtils.d.ts +6 -0
- package/util/ObjectUtils.js +4 -0
- package/util/ObjectUtils.js.map +1 -1
- package/util/OrmUtils.d.ts +14 -0
- package/util/OrmUtils.js +18 -6
- package/util/OrmUtils.js.map +1 -1
- package/util/PathUtils.d.ts +2 -0
- package/util/PathUtils.js +2 -0
- package/util/PathUtils.js.map +1 -1
- package/util/RandomGenerator.d.ts +2 -0
- package/util/RandomGenerator.js +2 -0
- package/util/RandomGenerator.js.map +1 -1
- package/util/StringUtils.d.ts +11 -4
- package/util/StringUtils.js +15 -7
- package/util/StringUtils.js.map +1 -1
- package/util/TreeRepositoryUtils.js +2 -2
- package/util/TreeRepositoryUtils.js.map +1 -1
|
@@ -144,11 +144,6 @@ class RelationMetadata {
|
|
|
144
144
|
if (args.inverseSideProperty)
|
|
145
145
|
this.givenInverseSidePropertyFactory = args.inverseSideProperty;
|
|
146
146
|
this.isLazy = args.isLazy || false;
|
|
147
|
-
// this.isCascadeInsert = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("insert") !== -1);
|
|
148
|
-
// this.isCascadeUpdate = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("update") !== -1);
|
|
149
|
-
// this.isCascadeRemove = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("remove") !== -1);
|
|
150
|
-
// this.isCascadeSoftRemove = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("soft-remove") !== -1);
|
|
151
|
-
// this.isCascadeRecover = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf("recover") !== -1);
|
|
152
147
|
this.isCascadeInsert =
|
|
153
148
|
args.options.cascade === true ||
|
|
154
149
|
(Array.isArray(args.options.cascade) &&
|
|
@@ -169,7 +164,6 @@ class RelationMetadata {
|
|
|
169
164
|
args.options.cascade === true ||
|
|
170
165
|
(Array.isArray(args.options.cascade) &&
|
|
171
166
|
args.options.cascade.indexOf("recover") !== -1);
|
|
172
|
-
// this.isPrimary = args.options.primary || false;
|
|
173
167
|
this.isNullable =
|
|
174
168
|
args.options.nullable === false || this.isPrimary ? false : true;
|
|
175
169
|
this.onDelete = args.options.onDelete;
|
|
@@ -177,12 +171,12 @@ class RelationMetadata {
|
|
|
177
171
|
this.deferrable = args.options.deferrable;
|
|
178
172
|
this.createForeignKeyConstraints =
|
|
179
173
|
args.options.createForeignKeyConstraints === false ? false : true;
|
|
180
|
-
this.isEager = args.options.eager
|
|
174
|
+
this.isEager = args.options.eager ?? false;
|
|
181
175
|
this.persistenceEnabled =
|
|
182
176
|
args.options.persistence === false ? false : true;
|
|
183
|
-
this.orphanedRowAction = args.options.orphanedRowAction
|
|
184
|
-
this.isTreeParent = args.isTreeParent
|
|
185
|
-
this.isTreeChildren = args.isTreeChildren
|
|
177
|
+
this.orphanedRowAction = args.options.orphanedRowAction ?? "nullify";
|
|
178
|
+
this.isTreeParent = args.isTreeParent ?? false;
|
|
179
|
+
this.isTreeChildren = args.isTreeChildren ?? false;
|
|
186
180
|
if (typeof args.type === "function") {
|
|
187
181
|
this.type =
|
|
188
182
|
typeof args.type === "function"
|
|
@@ -211,6 +205,7 @@ class RelationMetadata {
|
|
|
211
205
|
// ---------------------------------------------------------------------
|
|
212
206
|
/**
|
|
213
207
|
* Creates join column ids map from the given related entity ids array.
|
|
208
|
+
*
|
|
214
209
|
* @param entity
|
|
215
210
|
*/
|
|
216
211
|
getRelationIdMap(entity) {
|
|
@@ -227,6 +222,7 @@ class RelationMetadata {
|
|
|
227
222
|
* If given id is an object then it means its already id map.
|
|
228
223
|
* If given id isn't an object then it means its a value of the id column
|
|
229
224
|
* and it creates a new id map with this value and name of the primary column.
|
|
225
|
+
*
|
|
230
226
|
* @param id
|
|
231
227
|
*/
|
|
232
228
|
ensureRelationIdMap(id) {
|
|
@@ -243,6 +239,7 @@ class RelationMetadata {
|
|
|
243
239
|
/**
|
|
244
240
|
* Extracts column value from the given entity.
|
|
245
241
|
* If column is in embedded (or recursive embedded) it extracts its value from there.
|
|
242
|
+
*
|
|
246
243
|
* @param entity
|
|
247
244
|
* @param getLazyRelationsPromiseValue
|
|
248
245
|
*/
|
|
@@ -300,6 +297,7 @@ class RelationMetadata {
|
|
|
300
297
|
* Using of this method helps to set entity relation's value of the lazy and non-lazy relations.
|
|
301
298
|
*
|
|
302
299
|
* If merge is set to true, it merges given value into currently
|
|
300
|
+
*
|
|
303
301
|
* @param entity
|
|
304
302
|
* @param value
|
|
305
303
|
*/
|
|
@@ -314,9 +312,8 @@ class RelationMetadata {
|
|
|
314
312
|
// object[embeddedMetadata.propertyName] = embeddedMetadata.create();
|
|
315
313
|
const embeddedMetadata = embeddedMetadatas.shift();
|
|
316
314
|
if (embeddedMetadata) {
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
embeddedMetadata.create();
|
|
315
|
+
map[embeddedMetadata.propertyName] ??=
|
|
316
|
+
embeddedMetadata.create();
|
|
320
317
|
extractEmbeddedColumnValue(embeddedMetadatas, map[embeddedMetadata.propertyName]);
|
|
321
318
|
return map;
|
|
322
319
|
}
|
|
@@ -336,6 +333,7 @@ class RelationMetadata {
|
|
|
336
333
|
}
|
|
337
334
|
/**
|
|
338
335
|
* Creates entity id map from the given entity ids array.
|
|
336
|
+
*
|
|
339
337
|
* @param value
|
|
340
338
|
*/
|
|
341
339
|
createValueMap(value) {
|
|
@@ -381,6 +379,7 @@ class RelationMetadata {
|
|
|
381
379
|
/**
|
|
382
380
|
* Registers given foreign keys in the relation.
|
|
383
381
|
* This builder method should be used to register foreign key in the relation.
|
|
382
|
+
*
|
|
384
383
|
* @param foreignKeys
|
|
385
384
|
*/
|
|
386
385
|
registerForeignKeys(...foreignKeys) {
|
|
@@ -389,6 +388,7 @@ class RelationMetadata {
|
|
|
389
388
|
/**
|
|
390
389
|
* Registers given join columns in the relation.
|
|
391
390
|
* This builder method should be used to register join column in the relation.
|
|
391
|
+
*
|
|
392
392
|
* @param joinColumns
|
|
393
393
|
* @param inverseJoinColumns
|
|
394
394
|
*/
|
|
@@ -408,6 +408,7 @@ class RelationMetadata {
|
|
|
408
408
|
/**
|
|
409
409
|
* Registers a given junction entity metadata.
|
|
410
410
|
* This builder method can be called after junction entity metadata for the many-to-many relation was created.
|
|
411
|
+
*
|
|
411
412
|
* @param junctionEntityMetadata
|
|
412
413
|
*/
|
|
413
414
|
registerJunctionEntityMetadata(junctionEntityMetadata) {
|
|
@@ -444,8 +445,7 @@ class RelationMetadata {
|
|
|
444
445
|
* Builds relation's property path based on its embedded tree.
|
|
445
446
|
*/
|
|
446
447
|
buildPropertyPath() {
|
|
447
|
-
if (!this.embeddedMetadata
|
|
448
|
-
!this.embeddedMetadata.parentPropertyNames.length)
|
|
448
|
+
if (!this.embeddedMetadata?.parentPropertyNames.length)
|
|
449
449
|
return this.propertyName;
|
|
450
450
|
return (this.embeddedMetadata.parentPropertyNames.join(".") +
|
|
451
451
|
"." +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationMetadata.js","sourceRoot":"../build/browser/src/","sources":["metadata/RelationMetadata.ts"],"names":[],"mappings":"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","sourcesContent":["import type { RelationType } from \"./types/RelationTypes\"\nimport { EntityMetadata } from \"./EntityMetadata\"\nimport type { ForeignKeyMetadata } from \"./ForeignKeyMetadata\"\nimport type { ObjectLiteral } from \"../common/ObjectLiteral\"\nimport type { ColumnMetadata } from \"./ColumnMetadata\"\nimport type { EmbeddedMetadata } from \"./EmbeddedMetadata\"\nimport type { RelationMetadataArgs } from \"../metadata-args/RelationMetadataArgs\"\nimport type { DeferrableType } from \"./types/DeferrableType\"\nimport type { OnUpdateType } from \"./types/OnUpdateType\"\nimport type { OnDeleteType } from \"./types/OnDeleteType\"\nimport type { PropertyTypeFactory } from \"./types/PropertyTypeInFunction\"\nimport { TypeORMError } from \"../error\"\nimport { ObjectUtils } from \"../util/ObjectUtils\"\nimport { InstanceChecker } from \"../util/InstanceChecker\"\nimport { OrmUtils } from \"../util/OrmUtils\"\n\n/**\n * Contains all information about some entity's relation.\n */\nexport class RelationMetadata {\n // ---------------------------------------------------------------------\n // Public Properties\n // ---------------------------------------------------------------------\n\n /**\n * Entity metadata of the entity where this relation is placed.\n *\n * For example for `@ManyToMany(type => Category)` in `Post`, `entityMetadata` will be metadata of `Post` entity.\n */\n entityMetadata: EntityMetadata\n\n /**\n * Entity metadata of the entity that is targeted by this relation.\n *\n * For example for `@ManyToMany(type => Category)` in `Post`, `inverseEntityMetadata` will be metadata of `Category` entity.\n */\n inverseEntityMetadata: EntityMetadata\n\n /**\n * Entity metadata of the junction table.\n * Junction tables have their own entity metadata objects.\n * Defined only for many-to-many relations.\n */\n junctionEntityMetadata?: EntityMetadata\n\n /**\n * Embedded metadata where this relation is.\n * If this relation is not in embed then this property value is undefined.\n */\n embeddedMetadata?: EmbeddedMetadata\n\n /**\n * Relation type, e.g. is it one-to-one, one-to-many, many-to-one or many-to-many.\n */\n relationType: RelationType\n\n /**\n * Target entity to which this relation is applied.\n * Target IS NOT equal to entityMetadata.target, because relation\n *\n * For example for `@ManyToMany(type => Category)` in `Post`, `target` will be `Post`.\n * If `@ManyToMany(type => Category)` is in `Counters` which is embedded into `Post`, `target` will be `Counters`.\n * If `@ManyToMany(type => Category)` is in abstract class `BaseUser` which `Post` extends, `target` will be `BaseUser`.\n * Target can be string if its defined in entity schema instead of class.\n */\n target: Function | string\n\n /**\n * Target's property name to which relation decorator is applied.\n */\n propertyName: string\n\n /**\n * Gets full path to this column property (including relation name).\n * Full path is relevant when column is used in embeds (one or multiple nested).\n * For example it will return \"counters.subcounters.likes\".\n * If property is not in embeds then it returns just property name of the column.\n */\n propertyPath: string\n\n /**\n * Indicates if this is a parent (can be only many-to-one relation) relation in the tree tables.\n */\n isTreeParent: boolean = false\n\n /**\n * Indicates if this is a children (can be only one-to-many relation) relation in the tree tables.\n */\n isTreeChildren: boolean = false\n\n /**\n * Indicates if this relation's column is a primary key.\n * Can be used only for many-to-one and owner one-to-one relations.\n */\n isPrimary: boolean = false\n\n /**\n * Indicates if this relation is lazily loaded.\n */\n isLazy: boolean = false\n\n /**\n * Indicates if this relation is eagerly loaded.\n */\n isEager: boolean = false\n\n /**\n * Indicates if persistence is enabled for the relation.\n * By default its enabled, but if you want to avoid any changes in the relation to be reflected in the database you can disable it.\n * If its disabled you can only change a relation from inverse side of a relation or using relation query builder functionality.\n * This is useful for performance optimization since its disabling avoid multiple extra queries during entity save.\n */\n persistenceEnabled: boolean = true\n\n /**\n * When a parent is saved (with cascading but) without a child row that still exists in database, this will control what shall happen to them.\n * delete will remove these rows from database. nullify will remove the relation key.\n * skip will keep the relation intact. Removal of related item is only possible through its own repo.\n */\n orphanedRowAction?: \"nullify\" | \"delete\" | \"soft-delete\" | \"disable\"\n\n /**\n * If set to true then related objects are allowed to be inserted to the database.\n */\n isCascadeInsert: boolean = false\n\n /**\n * If set to true then related objects are allowed to be updated in the database.\n */\n isCascadeUpdate: boolean = false\n\n /**\n * If set to true then related objects are allowed to be remove from the database.\n */\n isCascadeRemove: boolean = false\n\n /**\n * If set to true then related objects are allowed to be soft-removed from the database.\n */\n isCascadeSoftRemove: boolean = false\n\n /**\n * If set to true then related objects are allowed to be recovered from the database.\n */\n isCascadeRecover: boolean = false\n\n /**\n * Indicates if relation column value can be nullable or not.\n */\n isNullable: boolean = true\n\n /**\n * What to do with a relation on deletion of the row containing a foreign key.\n */\n onDelete?: OnDeleteType\n\n /**\n * What to do with a relation on update of the row containing a foreign key.\n */\n onUpdate?: OnUpdateType\n\n /**\n * What to do with a relation on update of the row containing a foreign key.\n */\n deferrable?: DeferrableType\n\n /**\n * Indicates whether foreign key constraints will be created for join columns.\n * Can be used only for many-to-one and owner one-to-one relations.\n * Defaults to true.\n */\n createForeignKeyConstraints: boolean = true\n\n /**\n * Gets the property's type to which this relation is applied.\n *\n * For example for `@ManyToMany(type => Category)` in `Post`, `type` will be `Category`.\n */\n type: Function | string\n\n /**\n * Indicates if this side is an owner of this relation.\n */\n isOwning: boolean = false\n\n /**\n * Checks if this relation's type is \"one-to-one\".\n */\n isOneToOne: boolean = false\n\n /**\n * Checks if this relation is owner side of the \"one-to-one\" relation.\n * Owner side means this side of relation has a join column in the table.\n */\n isOneToOneOwner: boolean = false\n\n /**\n * Checks if this relation has a join column (e.g. is it many-to-one or one-to-one owner side).\n */\n isWithJoinColumn: boolean = false\n\n /**\n * Checks if this relation is NOT owner side of the \"one-to-one\" relation.\n * NOT owner side means this side of relation does not have a join column in the table.\n */\n isOneToOneNotOwner: boolean = false\n\n /**\n * Checks if this relation's type is \"one-to-many\".\n */\n isOneToMany: boolean = false\n\n /**\n * Checks if this relation's type is \"many-to-one\".\n */\n isManyToOne: boolean = false\n\n /**\n * Checks if this relation's type is \"many-to-many\".\n */\n isManyToMany: boolean = false\n\n /**\n * Checks if this relation's type is \"many-to-many\", and is owner side of the relationship.\n * Owner side means this side of relation has a join table.\n */\n isManyToManyOwner: boolean = false\n\n /**\n * Checks if this relation's type is \"many-to-many\", and is NOT owner side of the relationship.\n * Not owner side means this side of relation does not have a join table.\n */\n isManyToManyNotOwner: boolean = false\n\n /**\n * Gets the property path of the inverse side of the relation.\n */\n inverseSidePropertyPath: string\n\n /**\n * Inverse side of the relation set by user.\n *\n * Inverse side set in the relation can be either string - property name of the column on inverse side,\n * either can be a function that accepts a map of properties with the object and returns one of them.\n * Second approach is used to achieve type-safety.\n */\n givenInverseSidePropertyFactory: PropertyTypeFactory<any>\n\n /**\n * Gets the relation metadata of the inverse side of this relation.\n */\n inverseRelation?: RelationMetadata\n\n /**\n * Join table name.\n */\n joinTableName: string\n\n /**\n * Foreign keys created for this relation.\n */\n foreignKeys: ForeignKeyMetadata[] = []\n\n /**\n * Join table columns.\n * Join columns can be obtained only from owner side of the relation.\n * From non-owner side of the relation join columns will be empty.\n * If this relation is a many-to-one/one-to-one then it takes join columns from the current entity.\n * If this relation is many-to-many then it takes all owner join columns from the junction entity.\n */\n joinColumns: ColumnMetadata[] = []\n\n /**\n * Inverse join table columns.\n * Inverse join columns are supported only for many-to-many relations\n * and can be obtained only from owner side of the relation.\n * From non-owner side of the relation join columns will be undefined.\n */\n inverseJoinColumns: ColumnMetadata[] = []\n\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n\n constructor(options: {\n entityMetadata: EntityMetadata\n embeddedMetadata?: EmbeddedMetadata\n args: RelationMetadataArgs\n }) {\n this.entityMetadata = options.entityMetadata\n this.embeddedMetadata = options.embeddedMetadata!\n const args = options.args\n this.target = args.target\n this.propertyName = args.propertyName\n this.relationType = args.relationType\n\n if (args.inverseSideProperty)\n this.givenInverseSidePropertyFactory = args.inverseSideProperty\n\n this.isLazy = args.isLazy || false\n // this.isCascadeInsert = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf(\"insert\") !== -1);\n // this.isCascadeUpdate = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf(\"update\") !== -1);\n // this.isCascadeRemove = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf(\"remove\") !== -1);\n // this.isCascadeSoftRemove = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf(\"soft-remove\") !== -1);\n // this.isCascadeRecover = args.options.cascade === true || (args.options.cascade instanceof Array && args.options.cascade.indexOf(\"recover\") !== -1);\n this.isCascadeInsert =\n args.options.cascade === true ||\n (Array.isArray(args.options.cascade) &&\n args.options.cascade.indexOf(\"insert\") !== -1)\n this.isCascadeUpdate =\n args.options.cascade === true ||\n (Array.isArray(args.options.cascade) &&\n args.options.cascade.indexOf(\"update\") !== -1)\n this.isCascadeRemove =\n args.options.cascade === true ||\n (Array.isArray(args.options.cascade) &&\n args.options.cascade.indexOf(\"remove\") !== -1)\n this.isCascadeSoftRemove =\n args.options.cascade === true ||\n (Array.isArray(args.options.cascade) &&\n args.options.cascade.indexOf(\"soft-remove\") !== -1)\n this.isCascadeRecover =\n args.options.cascade === true ||\n (Array.isArray(args.options.cascade) &&\n args.options.cascade.indexOf(\"recover\") !== -1)\n // this.isPrimary = args.options.primary || false;\n this.isNullable =\n args.options.nullable === false || this.isPrimary ? false : true\n this.onDelete = args.options.onDelete\n this.onUpdate = args.options.onUpdate\n this.deferrable = args.options.deferrable\n this.createForeignKeyConstraints =\n args.options.createForeignKeyConstraints === false ? false : true\n this.isEager = args.options.eager || false\n this.persistenceEnabled =\n args.options.persistence === false ? false : true\n this.orphanedRowAction = args.options.orphanedRowAction || \"nullify\"\n this.isTreeParent = args.isTreeParent || false\n this.isTreeChildren = args.isTreeChildren || false\n\n if (typeof args.type === \"function\") {\n this.type =\n typeof args.type === \"function\"\n ? (args.type as () => any)()\n : args.type\n } else if (InstanceChecker.isEntitySchema(args.type)) {\n this.type = args.type.options.name\n } else if (\n ObjectUtils.isObject(args.type) &&\n typeof (args.type as any).name === \"string\"\n ) {\n this.type = (args.type as any).name\n } else {\n this.type = args.type as string | Function\n }\n\n this.isOneToOne = this.relationType === \"one-to-one\"\n this.isOneToMany = this.relationType === \"one-to-many\"\n this.isManyToOne = this.relationType === \"many-to-one\"\n this.isManyToMany = this.relationType === \"many-to-many\"\n this.isOneToOneNotOwner = this.isOneToOne ? true : false\n this.isManyToManyNotOwner = this.isManyToMany ? true : false\n }\n\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n\n /**\n * Creates join column ids map from the given related entity ids array.\n * @param entity\n */\n getRelationIdMap(entity: ObjectLiteral): ObjectLiteral | undefined {\n const joinColumns = this.isOwning\n ? this.joinColumns\n : this.inverseRelation!.joinColumns\n const referencedColumns = joinColumns.map(\n (joinColumn) => joinColumn.referencedColumn!,\n )\n // console.log(\"entity\", entity);\n // console.log(\"referencedColumns\", referencedColumns);\n return EntityMetadata.getValueMap(entity, referencedColumns)\n }\n\n /**\n * Ensures that given object is an entity id map.\n * If given id is an object then it means its already id map.\n * If given id isn't an object then it means its a value of the id column\n * and it creates a new id map with this value and name of the primary column.\n * @param id\n */\n ensureRelationIdMap(id: any): ObjectLiteral {\n if (ObjectUtils.isObject(id)) return id\n\n const joinColumns = this.isOwning\n ? this.joinColumns\n : this.inverseRelation!.joinColumns\n const referencedColumns = joinColumns.map(\n (joinColumn) => joinColumn.referencedColumn!,\n )\n\n if (referencedColumns.length > 1)\n throw new TypeORMError(\n `Cannot create relation id map for a single value because relation contains multiple referenced columns.`,\n )\n\n return referencedColumns[0].createValueMap(id)\n }\n\n /**\n * Extracts column value from the given entity.\n * If column is in embedded (or recursive embedded) it extracts its value from there.\n * @param entity\n * @param getLazyRelationsPromiseValue\n */\n getEntityValue(\n entity: ObjectLiteral,\n getLazyRelationsPromiseValue: boolean = false,\n ): any | undefined {\n if (entity === null || entity === undefined) return undefined\n // extract column value from embeddeds of entity if column is in embedded\n if (this.embeddedMetadata) {\n // example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeddeds\n // we need to get value of \"id\" column from the post real entity object\n\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const propertyNames = [...this.embeddedMetadata.parentPropertyNames]\n\n // next we need to access post[data][information][counters][this.propertyName] to get column value from the counters\n // this recursive function takes array of generated property names and gets the post[data][information][counters] embed\n const extractEmbeddedColumnValue = (\n propertyNames: string[],\n value: ObjectLiteral,\n ): any => {\n const propertyName = propertyNames.shift()\n if (propertyName) {\n if (value[propertyName]) {\n return extractEmbeddedColumnValue(\n propertyNames,\n value[propertyName],\n )\n }\n return undefined\n }\n return value\n }\n\n // once we get nested embed object we get its column, e.g. post[data][information][counters][this.propertyName]\n const embeddedObject = extractEmbeddedColumnValue(\n propertyNames,\n entity,\n )\n\n if (this.isLazy) {\n if (\n embeddedObject[\"__\" + this.propertyName + \"__\"] !==\n undefined\n )\n return embeddedObject[\"__\" + this.propertyName + \"__\"]\n\n if (getLazyRelationsPromiseValue === true)\n return embeddedObject[this.propertyName]\n\n return undefined\n }\n return embeddedObject\n ? embeddedObject[\n this.isLazy\n ? \"__\" + this.propertyName + \"__\"\n : this.propertyName\n ]\n : undefined\n } else {\n // no embeds - no problems. Simply return column name by property name of the entity\n if (this.isLazy) {\n if (entity[\"__\" + this.propertyName + \"__\"] !== undefined)\n return entity[\"__\" + this.propertyName + \"__\"]\n\n if (getLazyRelationsPromiseValue === true)\n return entity[this.propertyName]\n\n return undefined\n }\n return entity[this.propertyName]\n }\n }\n\n /**\n * Sets given entity's relation's value.\n * Using of this method helps to set entity relation's value of the lazy and non-lazy relations.\n *\n * If merge is set to true, it merges given value into currently\n * @param entity\n * @param value\n */\n setEntityValue(entity: ObjectLiteral, value: any): void {\n const propertyName = this.isLazy\n ? \"__\" + this.propertyName + \"__\"\n : this.propertyName\n\n if (this.embeddedMetadata) {\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const extractEmbeddedColumnValue = (\n embeddedMetadatas: EmbeddedMetadata[],\n map: ObjectLiteral,\n ): any => {\n // if (!object[embeddedMetadata.propertyName])\n // object[embeddedMetadata.propertyName] = embeddedMetadata.create();\n\n const embeddedMetadata = embeddedMetadatas.shift()\n if (embeddedMetadata) {\n if (!map[embeddedMetadata.propertyName])\n map[embeddedMetadata.propertyName] =\n embeddedMetadata.create()\n\n extractEmbeddedColumnValue(\n embeddedMetadatas,\n map[embeddedMetadata.propertyName],\n )\n return map\n }\n map[propertyName] = value\n return map\n }\n return extractEmbeddedColumnValue(\n [...this.embeddedMetadata.embeddedMetadataTree],\n entity,\n )\n } else {\n if (ObjectUtils.isObject(entity[propertyName])) {\n OrmUtils.mergeDeep(entity[propertyName], value)\n } else {\n entity[propertyName] = value\n }\n }\n }\n\n /**\n * Creates entity id map from the given entity ids array.\n * @param value\n */\n createValueMap(value: any) {\n // extract column value from embeds of entity if column is in embedded\n if (this.embeddedMetadata) {\n // example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeddeds\n // we need to get value of \"id\" column from the post real entity object and return it in a\n // { data: { information: { counters: { id: ... } } } } format\n\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const propertyNames = [...this.embeddedMetadata.parentPropertyNames]\n\n // now need to access post[data][information][counters] to get column value from the counters\n // and on each step we need to create complex literal object, e.g. first { data },\n // then { data: { information } }, then { data: { information: { counters } } },\n // then { data: { information: { counters: [this.propertyName]: entity[data][information][counters][this.propertyName] } } }\n // this recursive function helps doing that\n const extractEmbeddedColumnValue = (\n propertyNames: string[],\n map: ObjectLiteral,\n ): any => {\n const propertyName = propertyNames.shift()\n if (propertyName) {\n map[propertyName] = {}\n extractEmbeddedColumnValue(propertyNames, map[propertyName])\n return map\n }\n map[this.propertyName] = value\n return map\n }\n return extractEmbeddedColumnValue(propertyNames, {})\n } else {\n // no embeds - no problems. Simply return column property name and its value of the entity\n return { [this.propertyName]: value }\n }\n }\n\n // ---------------------------------------------------------------------\n // Builder Methods\n // ---------------------------------------------------------------------\n\n /**\n * Builds some depend relation metadata properties.\n * This builder method should be used only after embedded metadata tree was build.\n */\n build() {\n this.propertyPath = this.buildPropertyPath()\n }\n\n /**\n * Registers given foreign keys in the relation.\n * This builder method should be used to register foreign key in the relation.\n * @param foreignKeys\n */\n registerForeignKeys(...foreignKeys: ForeignKeyMetadata[]) {\n this.foreignKeys.push(...foreignKeys)\n }\n\n /**\n * Registers given join columns in the relation.\n * This builder method should be used to register join column in the relation.\n * @param joinColumns\n * @param inverseJoinColumns\n */\n registerJoinColumns(\n joinColumns: ColumnMetadata[] = [],\n inverseJoinColumns: ColumnMetadata[] = [],\n ) {\n this.joinColumns = joinColumns\n this.inverseJoinColumns = inverseJoinColumns\n this.isOwning =\n this.isManyToOne ||\n ((this.isManyToMany || this.isOneToOne) &&\n this.joinColumns.length > 0)\n this.isOneToOneOwner = this.isOneToOne && this.isOwning\n this.isOneToOneNotOwner = this.isOneToOne && !this.isOwning\n this.isManyToManyOwner = this.isManyToMany && this.isOwning\n this.isManyToManyNotOwner = this.isManyToMany && !this.isOwning\n this.isWithJoinColumn = this.isManyToOne || this.isOneToOneOwner\n }\n\n /**\n * Registers a given junction entity metadata.\n * This builder method can be called after junction entity metadata for the many-to-many relation was created.\n * @param junctionEntityMetadata\n */\n registerJunctionEntityMetadata(junctionEntityMetadata: EntityMetadata) {\n this.junctionEntityMetadata = junctionEntityMetadata\n this.joinTableName = junctionEntityMetadata.tableName\n if (this.inverseRelation) {\n this.inverseRelation.junctionEntityMetadata = junctionEntityMetadata\n this.joinTableName = junctionEntityMetadata.tableName\n }\n }\n\n /**\n * Builds inverse side property path based on given inverse side property factory.\n * This builder method should be used only after properties map of the inverse entity metadata was build.\n */\n buildInverseSidePropertyPath(): string {\n if (this.givenInverseSidePropertyFactory) {\n const ownerEntityPropertiesMap =\n this.inverseEntityMetadata.propertiesMap\n if (typeof this.givenInverseSidePropertyFactory === \"function\")\n return this.givenInverseSidePropertyFactory(\n ownerEntityPropertiesMap,\n )\n\n if (typeof this.givenInverseSidePropertyFactory === \"string\")\n return this.givenInverseSidePropertyFactory\n } else if (\n this.isTreeParent &&\n this.entityMetadata.treeChildrenRelation\n ) {\n return this.entityMetadata.treeChildrenRelation.propertyName\n } else if (\n this.isTreeChildren &&\n this.entityMetadata.treeParentRelation\n ) {\n return this.entityMetadata.treeParentRelation.propertyName\n }\n\n return \"\"\n }\n\n /**\n * Builds relation's property path based on its embedded tree.\n */\n buildPropertyPath(): string {\n if (\n !this.embeddedMetadata ||\n !this.embeddedMetadata.parentPropertyNames.length\n )\n return this.propertyName\n\n return (\n this.embeddedMetadata.parentPropertyNames.join(\".\") +\n \".\" +\n this.propertyName\n )\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"RelationMetadata.js","sourceRoot":"../build/browser/src/","sources":["metadata/RelationMetadata.ts"],"names":[],"mappings":"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","sourcesContent":["import type { RelationType } from \"./types/RelationTypes\"\nimport { EntityMetadata } from \"./EntityMetadata\"\nimport type { ForeignKeyMetadata } from \"./ForeignKeyMetadata\"\nimport type { ObjectLiteral } from \"../common/ObjectLiteral\"\nimport type { ColumnMetadata } from \"./ColumnMetadata\"\nimport type { EmbeddedMetadata } from \"./EmbeddedMetadata\"\nimport type { RelationMetadataArgs } from \"../metadata-args/RelationMetadataArgs\"\nimport type { DeferrableType } from \"./types/DeferrableType\"\nimport type { OnUpdateType } from \"./types/OnUpdateType\"\nimport type { OnDeleteType } from \"./types/OnDeleteType\"\nimport type { PropertyTypeFactory } from \"./types/PropertyTypeInFunction\"\nimport { TypeORMError } from \"../error\"\nimport { ObjectUtils } from \"../util/ObjectUtils\"\nimport { InstanceChecker } from \"../util/InstanceChecker\"\nimport { OrmUtils } from \"../util/OrmUtils\"\n\n/**\n * Contains all information about some entity's relation.\n */\nexport class RelationMetadata {\n // ---------------------------------------------------------------------\n // Public Properties\n // ---------------------------------------------------------------------\n\n /**\n * Entity metadata of the entity where this relation is placed.\n *\n * For example for `@ManyToMany(type => Category)` in `Post`, `entityMetadata` will be metadata of `Post` entity.\n */\n entityMetadata: EntityMetadata\n\n /**\n * Entity metadata of the entity that is targeted by this relation.\n *\n * For example for `@ManyToMany(type => Category)` in `Post`, `inverseEntityMetadata` will be metadata of `Category` entity.\n */\n inverseEntityMetadata: EntityMetadata\n\n /**\n * Entity metadata of the junction table.\n * Junction tables have their own entity metadata objects.\n * Defined only for many-to-many relations.\n */\n junctionEntityMetadata?: EntityMetadata\n\n /**\n * Embedded metadata where this relation is.\n * If this relation is not in embed then this property value is undefined.\n */\n embeddedMetadata?: EmbeddedMetadata\n\n /**\n * Relation type, e.g. is it one-to-one, one-to-many, many-to-one or many-to-many.\n */\n relationType: RelationType\n\n /**\n * Target entity to which this relation is applied.\n * Target IS NOT equal to entityMetadata.target, because relation\n *\n * For example for `@ManyToMany(type => Category)` in `Post`, `target` will be `Post`.\n * If `@ManyToMany(type => Category)` is in `Counters` which is embedded into `Post`, `target` will be `Counters`.\n * If `@ManyToMany(type => Category)` is in abstract class `BaseUser` which `Post` extends, `target` will be `BaseUser`.\n * Target can be string if its defined in entity schema instead of class.\n */\n target: Function | string\n\n /**\n * Target's property name to which relation decorator is applied.\n */\n propertyName: string\n\n /**\n * Gets full path to this column property (including relation name).\n * Full path is relevant when column is used in embeds (one or multiple nested).\n * For example it will return \"counters.subcounters.likes\".\n * If property is not in embeds then it returns just property name of the column.\n */\n propertyPath: string\n\n /**\n * Indicates if this is a parent (can be only many-to-one relation) relation in the tree tables.\n */\n isTreeParent: boolean = false\n\n /**\n * Indicates if this is a children (can be only one-to-many relation) relation in the tree tables.\n */\n isTreeChildren: boolean = false\n\n /**\n * Indicates if this relation's column is a primary key.\n * Can be used only for many-to-one and owner one-to-one relations.\n */\n isPrimary: boolean = false\n\n /**\n * Indicates if this relation is lazily loaded.\n */\n isLazy: boolean = false\n\n /**\n * Indicates if this relation is eagerly loaded.\n */\n isEager: boolean = false\n\n /**\n * Indicates if persistence is enabled for the relation.\n * By default its enabled, but if you want to avoid any changes in the relation to be reflected in the database you can disable it.\n * If its disabled you can only change a relation from inverse side of a relation or using relation query builder functionality.\n * This is useful for performance optimization since its disabling avoid multiple extra queries during entity save.\n */\n persistenceEnabled: boolean = true\n\n /**\n * When a parent is saved (with cascading but) without a child row that still exists in database, this will control what shall happen to them.\n * delete will remove these rows from database. nullify will remove the relation key.\n * skip will keep the relation intact. Removal of related item is only possible through its own repo.\n */\n orphanedRowAction?: \"nullify\" | \"delete\" | \"soft-delete\" | \"disable\"\n\n /**\n * If set to true then related objects are allowed to be inserted to the database.\n */\n isCascadeInsert: boolean = false\n\n /**\n * If set to true then related objects are allowed to be updated in the database.\n */\n isCascadeUpdate: boolean = false\n\n /**\n * If set to true then related objects are allowed to be remove from the database.\n */\n isCascadeRemove: boolean = false\n\n /**\n * If set to true then related objects are allowed to be soft-removed from the database.\n */\n isCascadeSoftRemove: boolean = false\n\n /**\n * If set to true then related objects are allowed to be recovered from the database.\n */\n isCascadeRecover: boolean = false\n\n /**\n * Indicates if relation column value can be nullable or not.\n */\n isNullable: boolean = true\n\n /**\n * What to do with a relation on deletion of the row containing a foreign key.\n */\n onDelete?: OnDeleteType\n\n /**\n * What to do with a relation on update of the row containing a foreign key.\n */\n onUpdate?: OnUpdateType\n\n /**\n * What to do with a relation on update of the row containing a foreign key.\n */\n deferrable?: DeferrableType\n\n /**\n * Indicates whether foreign key constraints will be created for join columns.\n * Can be used only for many-to-one and owner one-to-one relations.\n * Defaults to true.\n */\n createForeignKeyConstraints: boolean = true\n\n /**\n * Gets the property's type to which this relation is applied.\n *\n * For example for `@ManyToMany(type => Category)` in `Post`, `type` will be `Category`.\n */\n type: Function | string\n\n /**\n * Indicates if this side is an owner of this relation.\n */\n isOwning: boolean = false\n\n /**\n * Checks if this relation's type is \"one-to-one\".\n */\n isOneToOne: boolean = false\n\n /**\n * Checks if this relation is owner side of the \"one-to-one\" relation.\n * Owner side means this side of relation has a join column in the table.\n */\n isOneToOneOwner: boolean = false\n\n /**\n * Checks if this relation has a join column (e.g. is it many-to-one or one-to-one owner side).\n */\n isWithJoinColumn: boolean = false\n\n /**\n * Checks if this relation is NOT owner side of the \"one-to-one\" relation.\n * NOT owner side means this side of relation does not have a join column in the table.\n */\n isOneToOneNotOwner: boolean = false\n\n /**\n * Checks if this relation's type is \"one-to-many\".\n */\n isOneToMany: boolean = false\n\n /**\n * Checks if this relation's type is \"many-to-one\".\n */\n isManyToOne: boolean = false\n\n /**\n * Checks if this relation's type is \"many-to-many\".\n */\n isManyToMany: boolean = false\n\n /**\n * Checks if this relation's type is \"many-to-many\", and is owner side of the relationship.\n * Owner side means this side of relation has a join table.\n */\n isManyToManyOwner: boolean = false\n\n /**\n * Checks if this relation's type is \"many-to-many\", and is NOT owner side of the relationship.\n * Not owner side means this side of relation does not have a join table.\n */\n isManyToManyNotOwner: boolean = false\n\n /**\n * Gets the property path of the inverse side of the relation.\n */\n inverseSidePropertyPath: string\n\n /**\n * Inverse side of the relation set by user.\n *\n * Inverse side set in the relation can be either string - property name of the column on inverse side,\n * either can be a function that accepts a map of properties with the object and returns one of them.\n * Second approach is used to achieve type-safety.\n */\n givenInverseSidePropertyFactory: PropertyTypeFactory<any>\n\n /**\n * Gets the relation metadata of the inverse side of this relation.\n */\n inverseRelation?: RelationMetadata\n\n /**\n * Join table name.\n */\n joinTableName: string\n\n /**\n * Foreign keys created for this relation.\n */\n foreignKeys: ForeignKeyMetadata[] = []\n\n /**\n * Join table columns.\n * Join columns can be obtained only from owner side of the relation.\n * From non-owner side of the relation join columns will be empty.\n * If this relation is a many-to-one/one-to-one then it takes join columns from the current entity.\n * If this relation is many-to-many then it takes all owner join columns from the junction entity.\n */\n joinColumns: ColumnMetadata[] = []\n\n /**\n * Inverse join table columns.\n * Inverse join columns are supported only for many-to-many relations\n * and can be obtained only from owner side of the relation.\n * From non-owner side of the relation join columns will be undefined.\n */\n inverseJoinColumns: ColumnMetadata[] = []\n\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n\n constructor(options: {\n entityMetadata: EntityMetadata\n embeddedMetadata?: EmbeddedMetadata\n args: RelationMetadataArgs\n }) {\n this.entityMetadata = options.entityMetadata\n this.embeddedMetadata = options.embeddedMetadata!\n const args = options.args\n this.target = args.target\n this.propertyName = args.propertyName\n this.relationType = args.relationType\n\n if (args.inverseSideProperty)\n this.givenInverseSidePropertyFactory = args.inverseSideProperty\n\n this.isLazy = args.isLazy || false\n this.isCascadeInsert =\n args.options.cascade === true ||\n (Array.isArray(args.options.cascade) &&\n args.options.cascade.indexOf(\"insert\") !== -1)\n this.isCascadeUpdate =\n args.options.cascade === true ||\n (Array.isArray(args.options.cascade) &&\n args.options.cascade.indexOf(\"update\") !== -1)\n this.isCascadeRemove =\n args.options.cascade === true ||\n (Array.isArray(args.options.cascade) &&\n args.options.cascade.indexOf(\"remove\") !== -1)\n this.isCascadeSoftRemove =\n args.options.cascade === true ||\n (Array.isArray(args.options.cascade) &&\n args.options.cascade.indexOf(\"soft-remove\") !== -1)\n this.isCascadeRecover =\n args.options.cascade === true ||\n (Array.isArray(args.options.cascade) &&\n args.options.cascade.indexOf(\"recover\") !== -1)\n this.isNullable =\n args.options.nullable === false || this.isPrimary ? false : true\n this.onDelete = args.options.onDelete\n this.onUpdate = args.options.onUpdate\n this.deferrable = args.options.deferrable\n this.createForeignKeyConstraints =\n args.options.createForeignKeyConstraints === false ? false : true\n this.isEager = args.options.eager ?? false\n this.persistenceEnabled =\n args.options.persistence === false ? false : true\n this.orphanedRowAction = args.options.orphanedRowAction ?? \"nullify\"\n this.isTreeParent = args.isTreeParent ?? false\n this.isTreeChildren = args.isTreeChildren ?? false\n\n if (typeof args.type === \"function\") {\n this.type =\n typeof args.type === \"function\"\n ? (args.type as () => any)()\n : args.type\n } else if (InstanceChecker.isEntitySchema(args.type)) {\n this.type = args.type.options.name\n } else if (\n ObjectUtils.isObject(args.type) &&\n typeof (args.type as any).name === \"string\"\n ) {\n this.type = (args.type as any).name\n } else {\n this.type = args.type as string | Function\n }\n\n this.isOneToOne = this.relationType === \"one-to-one\"\n this.isOneToMany = this.relationType === \"one-to-many\"\n this.isManyToOne = this.relationType === \"many-to-one\"\n this.isManyToMany = this.relationType === \"many-to-many\"\n this.isOneToOneNotOwner = this.isOneToOne ? true : false\n this.isManyToManyNotOwner = this.isManyToMany ? true : false\n }\n\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n\n /**\n * Creates join column ids map from the given related entity ids array.\n *\n * @param entity\n */\n getRelationIdMap(entity: ObjectLiteral): ObjectLiteral | undefined {\n const joinColumns = this.isOwning\n ? this.joinColumns\n : this.inverseRelation!.joinColumns\n const referencedColumns = joinColumns.map(\n (joinColumn) => joinColumn.referencedColumn!,\n )\n // console.log(\"entity\", entity);\n // console.log(\"referencedColumns\", referencedColumns);\n return EntityMetadata.getValueMap(entity, referencedColumns)\n }\n\n /**\n * Ensures that given object is an entity id map.\n * If given id is an object then it means its already id map.\n * If given id isn't an object then it means its a value of the id column\n * and it creates a new id map with this value and name of the primary column.\n *\n * @param id\n */\n ensureRelationIdMap(id: any): ObjectLiteral {\n if (ObjectUtils.isObject(id)) return id\n\n const joinColumns = this.isOwning\n ? this.joinColumns\n : this.inverseRelation!.joinColumns\n const referencedColumns = joinColumns.map(\n (joinColumn) => joinColumn.referencedColumn!,\n )\n\n if (referencedColumns.length > 1)\n throw new TypeORMError(\n `Cannot create relation id map for a single value because relation contains multiple referenced columns.`,\n )\n\n return referencedColumns[0].createValueMap(id)\n }\n\n /**\n * Extracts column value from the given entity.\n * If column is in embedded (or recursive embedded) it extracts its value from there.\n *\n * @param entity\n * @param getLazyRelationsPromiseValue\n */\n getEntityValue(\n entity: ObjectLiteral,\n getLazyRelationsPromiseValue: boolean = false,\n ): any | undefined {\n if (entity === null || entity === undefined) return undefined\n // extract column value from embeddeds of entity if column is in embedded\n if (this.embeddedMetadata) {\n // example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeddeds\n // we need to get value of \"id\" column from the post real entity object\n\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const propertyNames = [...this.embeddedMetadata.parentPropertyNames]\n\n // next we need to access post[data][information][counters][this.propertyName] to get column value from the counters\n // this recursive function takes array of generated property names and gets the post[data][information][counters] embed\n const extractEmbeddedColumnValue = (\n propertyNames: string[],\n value: ObjectLiteral,\n ): any => {\n const propertyName = propertyNames.shift()\n if (propertyName) {\n if (value[propertyName]) {\n return extractEmbeddedColumnValue(\n propertyNames,\n value[propertyName],\n )\n }\n return undefined\n }\n return value\n }\n\n // once we get nested embed object we get its column, e.g. post[data][information][counters][this.propertyName]\n const embeddedObject = extractEmbeddedColumnValue(\n propertyNames,\n entity,\n )\n\n if (this.isLazy) {\n if (\n embeddedObject[\"__\" + this.propertyName + \"__\"] !==\n undefined\n )\n return embeddedObject[\"__\" + this.propertyName + \"__\"]\n\n if (getLazyRelationsPromiseValue === true)\n return embeddedObject[this.propertyName]\n\n return undefined\n }\n return embeddedObject\n ? embeddedObject[\n this.isLazy\n ? \"__\" + this.propertyName + \"__\"\n : this.propertyName\n ]\n : undefined\n } else {\n // no embeds - no problems. Simply return column name by property name of the entity\n if (this.isLazy) {\n if (entity[\"__\" + this.propertyName + \"__\"] !== undefined)\n return entity[\"__\" + this.propertyName + \"__\"]\n\n if (getLazyRelationsPromiseValue === true)\n return entity[this.propertyName]\n\n return undefined\n }\n return entity[this.propertyName]\n }\n }\n\n /**\n * Sets given entity's relation's value.\n * Using of this method helps to set entity relation's value of the lazy and non-lazy relations.\n *\n * If merge is set to true, it merges given value into currently\n *\n * @param entity\n * @param value\n */\n setEntityValue(entity: ObjectLiteral, value: any): void {\n const propertyName = this.isLazy\n ? \"__\" + this.propertyName + \"__\"\n : this.propertyName\n\n if (this.embeddedMetadata) {\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const extractEmbeddedColumnValue = (\n embeddedMetadatas: EmbeddedMetadata[],\n map: ObjectLiteral,\n ): any => {\n // if (!object[embeddedMetadata.propertyName])\n // object[embeddedMetadata.propertyName] = embeddedMetadata.create();\n\n const embeddedMetadata = embeddedMetadatas.shift()\n if (embeddedMetadata) {\n map[embeddedMetadata.propertyName] ??=\n embeddedMetadata.create()\n\n extractEmbeddedColumnValue(\n embeddedMetadatas,\n map[embeddedMetadata.propertyName],\n )\n return map\n }\n map[propertyName] = value\n return map\n }\n return extractEmbeddedColumnValue(\n [...this.embeddedMetadata.embeddedMetadataTree],\n entity,\n )\n } else {\n if (ObjectUtils.isObject(entity[propertyName])) {\n OrmUtils.mergeDeep(entity[propertyName], value)\n } else {\n entity[propertyName] = value\n }\n }\n }\n\n /**\n * Creates entity id map from the given entity ids array.\n *\n * @param value\n */\n createValueMap(value: any) {\n // extract column value from embeds of entity if column is in embedded\n if (this.embeddedMetadata) {\n // example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeddeds\n // we need to get value of \"id\" column from the post real entity object and return it in a\n // { data: { information: { counters: { id: ... } } } } format\n\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const propertyNames = [...this.embeddedMetadata.parentPropertyNames]\n\n // now need to access post[data][information][counters] to get column value from the counters\n // and on each step we need to create complex literal object, e.g. first { data },\n // then { data: { information } }, then { data: { information: { counters } } },\n // then { data: { information: { counters: [this.propertyName]: entity[data][information][counters][this.propertyName] } } }\n // this recursive function helps doing that\n const extractEmbeddedColumnValue = (\n propertyNames: string[],\n map: ObjectLiteral,\n ): any => {\n const propertyName = propertyNames.shift()\n if (propertyName) {\n map[propertyName] = {}\n extractEmbeddedColumnValue(propertyNames, map[propertyName])\n return map\n }\n map[this.propertyName] = value\n return map\n }\n return extractEmbeddedColumnValue(propertyNames, {})\n } else {\n // no embeds - no problems. Simply return column property name and its value of the entity\n return { [this.propertyName]: value }\n }\n }\n\n // ---------------------------------------------------------------------\n // Builder Methods\n // ---------------------------------------------------------------------\n\n /**\n * Builds some depend relation metadata properties.\n * This builder method should be used only after embedded metadata tree was build.\n */\n build() {\n this.propertyPath = this.buildPropertyPath()\n }\n\n /**\n * Registers given foreign keys in the relation.\n * This builder method should be used to register foreign key in the relation.\n *\n * @param foreignKeys\n */\n registerForeignKeys(...foreignKeys: ForeignKeyMetadata[]) {\n this.foreignKeys.push(...foreignKeys)\n }\n\n /**\n * Registers given join columns in the relation.\n * This builder method should be used to register join column in the relation.\n *\n * @param joinColumns\n * @param inverseJoinColumns\n */\n registerJoinColumns(\n joinColumns: ColumnMetadata[] = [],\n inverseJoinColumns: ColumnMetadata[] = [],\n ) {\n this.joinColumns = joinColumns\n this.inverseJoinColumns = inverseJoinColumns\n this.isOwning =\n this.isManyToOne ||\n ((this.isManyToMany || this.isOneToOne) &&\n this.joinColumns.length > 0)\n this.isOneToOneOwner = this.isOneToOne && this.isOwning\n this.isOneToOneNotOwner = this.isOneToOne && !this.isOwning\n this.isManyToManyOwner = this.isManyToMany && this.isOwning\n this.isManyToManyNotOwner = this.isManyToMany && !this.isOwning\n this.isWithJoinColumn = this.isManyToOne || this.isOneToOneOwner\n }\n\n /**\n * Registers a given junction entity metadata.\n * This builder method can be called after junction entity metadata for the many-to-many relation was created.\n *\n * @param junctionEntityMetadata\n */\n registerJunctionEntityMetadata(junctionEntityMetadata: EntityMetadata) {\n this.junctionEntityMetadata = junctionEntityMetadata\n this.joinTableName = junctionEntityMetadata.tableName\n if (this.inverseRelation) {\n this.inverseRelation.junctionEntityMetadata = junctionEntityMetadata\n this.joinTableName = junctionEntityMetadata.tableName\n }\n }\n\n /**\n * Builds inverse side property path based on given inverse side property factory.\n * This builder method should be used only after properties map of the inverse entity metadata was build.\n */\n buildInverseSidePropertyPath(): string {\n if (this.givenInverseSidePropertyFactory) {\n const ownerEntityPropertiesMap =\n this.inverseEntityMetadata.propertiesMap\n if (typeof this.givenInverseSidePropertyFactory === \"function\")\n return this.givenInverseSidePropertyFactory(\n ownerEntityPropertiesMap,\n )\n\n if (typeof this.givenInverseSidePropertyFactory === \"string\")\n return this.givenInverseSidePropertyFactory\n } else if (\n this.isTreeParent &&\n this.entityMetadata.treeChildrenRelation\n ) {\n return this.entityMetadata.treeChildrenRelation.propertyName\n } else if (\n this.isTreeChildren &&\n this.entityMetadata.treeParentRelation\n ) {\n return this.entityMetadata.treeParentRelation.propertyName\n }\n\n return \"\"\n }\n\n /**\n * Builds relation's property path based on its embedded tree.\n */\n buildPropertyPath(): string {\n if (!this.embeddedMetadata?.parentPropertyNames.length)\n return this.propertyName\n\n return (\n this.embeddedMetadata.parentPropertyNames.join(\".\") +\n \".\" +\n this.propertyName\n )\n }\n}\n"]}
|
|
@@ -60,6 +60,7 @@ export declare class UniqueMetadata {
|
|
|
60
60
|
/**
|
|
61
61
|
* Builds some depend unique constraint properties.
|
|
62
62
|
* Must be called after all entity metadata's properties map, columns and relations are built.
|
|
63
|
+
*
|
|
63
64
|
* @param namingStrategy
|
|
64
65
|
*/
|
|
65
66
|
build(namingStrategy: NamingStrategyInterface): this;
|
|
@@ -36,6 +36,7 @@ class UniqueMetadata {
|
|
|
36
36
|
/**
|
|
37
37
|
* Builds some depend unique constraint properties.
|
|
38
38
|
* Must be called after all entity metadata's properties map, columns and relations are built.
|
|
39
|
+
*
|
|
39
40
|
* @param namingStrategy
|
|
40
41
|
*/
|
|
41
42
|
build(namingStrategy) {
|
|
@@ -97,9 +98,9 @@ class UniqueMetadata {
|
|
|
97
98
|
updatedMap[column.databasePath] = map[key];
|
|
98
99
|
return updatedMap;
|
|
99
100
|
}, {});
|
|
100
|
-
this.name =
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
this.name =
|
|
102
|
+
this.givenName ??
|
|
103
|
+
namingStrategy.uniqueConstraintName(this.entityMetadata.tableName, this.columns.map((column) => column.databaseName));
|
|
103
104
|
return this;
|
|
104
105
|
}
|
|
105
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniqueMetadata.js","sourceRoot":"../build/browser/src/","sources":["metadata/UniqueMetadata.ts"],"names":[],"mappings":"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","sourcesContent":["import type { EmbeddedMetadata } from \"./EmbeddedMetadata\"\nimport type { EntityMetadata } from \"./EntityMetadata\"\nimport type { NamingStrategyInterface } from \"../naming-strategy/NamingStrategyInterface\"\nimport type { ColumnMetadata } from \"./ColumnMetadata\"\nimport type { UniqueMetadataArgs } from \"../metadata-args/UniqueMetadataArgs\"\nimport { TypeORMError } from \"../error\"\nimport type { DeferrableType } from \"./types/DeferrableType\"\n\n/**\n * Unique metadata contains all information about table's unique constraints.\n */\nexport class UniqueMetadata {\n // ---------------------------------------------------------------------\n // Public Properties\n // ---------------------------------------------------------------------\n\n /**\n * Entity metadata of the class to which this unique constraint is applied.\n */\n entityMetadata: EntityMetadata\n\n /**\n * Embedded metadata if this unique was applied on embedded.\n */\n embeddedMetadata?: EmbeddedMetadata\n\n /**\n * Target class to which metadata is applied.\n */\n target?: Function | string\n\n /**\n * Unique columns.\n */\n columns: ColumnMetadata[] = []\n\n /**\n * Indicate if unique constraints can be deferred.\n */\n deferrable?: DeferrableType\n\n /**\n * User specified unique constraint name.\n */\n givenName?: string\n\n /**\n * User specified column names.\n */\n givenColumnNames?:\n | ((object?: any) => any[] | { [key: string]: number })\n | string[]\n\n /**\n * Final unique constraint name.\n * If unique constraint name was given by a user then it stores normalized (by naming strategy) givenName.\n * If unique constraint name was not given then its generated.\n */\n name: string\n\n /**\n * Map of column names with order set.\n * Used only by MongoDB driver.\n */\n columnNamesWithOrderingMap: { [key: string]: number } = {}\n\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n\n constructor(options: {\n entityMetadata: EntityMetadata\n embeddedMetadata?: EmbeddedMetadata\n columns?: ColumnMetadata[]\n args?: UniqueMetadataArgs\n }) {\n this.entityMetadata = options.entityMetadata\n this.embeddedMetadata = options.embeddedMetadata\n if (options.columns) this.columns = options.columns\n\n if (options.args) {\n this.target = options.args.target\n this.givenName = options.args.name\n this.givenColumnNames = options.args.columns\n this.deferrable = options.args.deferrable\n }\n }\n\n // ---------------------------------------------------------------------\n // Public Build Methods\n // ---------------------------------------------------------------------\n\n /**\n * Builds some depend unique constraint properties.\n * Must be called after all entity metadata's properties map, columns and relations are built.\n * @param namingStrategy\n */\n build(namingStrategy: NamingStrategyInterface): this {\n const map: { [key: string]: number } = {}\n\n // if columns already an array of string then simply return it\n if (this.givenColumnNames) {\n let columnPropertyPaths: string[]\n if (Array.isArray(this.givenColumnNames)) {\n columnPropertyPaths = this.givenColumnNames.map(\n (columnName) => {\n if (this.embeddedMetadata)\n return (\n this.embeddedMetadata.propertyPath +\n \".\" +\n columnName\n )\n\n return columnName.trim()\n },\n )\n columnPropertyPaths.forEach((propertyPath) => {\n map[propertyPath] = 1\n })\n } else {\n // if columns is a function that returns array of field names then execute it and get columns names from it\n const columnsFnResult = this.givenColumnNames(\n this.entityMetadata.propertiesMap,\n )\n if (Array.isArray(columnsFnResult)) {\n columnPropertyPaths = columnsFnResult.map((i: any) =>\n String(i),\n )\n columnPropertyPaths.forEach((name) => {\n map[name] = 1\n })\n } else {\n columnPropertyPaths = Object.keys(columnsFnResult).map(\n (i: any) => String(i),\n )\n Object.keys(columnsFnResult).forEach((columnName) => {\n map[columnName] = columnsFnResult[columnName]\n })\n }\n }\n\n this.columns = columnPropertyPaths\n .map((propertyName) => {\n const columnWithSameName = this.entityMetadata.columns.find(\n (column) => column.propertyPath === propertyName,\n )\n if (columnWithSameName) {\n return [columnWithSameName]\n }\n const relationWithSameName =\n this.entityMetadata.relations.find(\n (relation) =>\n relation.isWithJoinColumn &&\n relation.propertyName === propertyName,\n )\n if (relationWithSameName) {\n return relationWithSameName.joinColumns\n }\n const indexName = this.givenName\n ? '\"' + this.givenName + '\" '\n : \"\"\n const entityName = this.entityMetadata.targetName\n throw new TypeORMError(\n `Unique constraint ${indexName}contains column that is missing in the entity (${entityName}): ` +\n propertyName,\n )\n })\n .reduce((a, b) => a.concat(b))\n }\n\n this.columnNamesWithOrderingMap = Object.keys(map).reduce(\n (updatedMap, key) => {\n const column = this.entityMetadata.columns.find(\n (column) => column.propertyPath === key,\n )\n if (column) updatedMap[column.databasePath] = map[key]\n\n return updatedMap\n },\n {} as { [key: string]: number },\n )\n\n this.name = this.givenName\n ? this.givenName\n : namingStrategy.uniqueConstraintName(\n this.entityMetadata.tableName,\n this.columns.map((column) => column.databaseName),\n )\n return this\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"UniqueMetadata.js","sourceRoot":"../build/browser/src/","sources":["metadata/UniqueMetadata.ts"],"names":[],"mappings":"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","sourcesContent":["import type { EmbeddedMetadata } from \"./EmbeddedMetadata\"\nimport type { EntityMetadata } from \"./EntityMetadata\"\nimport type { NamingStrategyInterface } from \"../naming-strategy/NamingStrategyInterface\"\nimport type { ColumnMetadata } from \"./ColumnMetadata\"\nimport type { UniqueMetadataArgs } from \"../metadata-args/UniqueMetadataArgs\"\nimport { TypeORMError } from \"../error\"\nimport type { DeferrableType } from \"./types/DeferrableType\"\n\n/**\n * Unique metadata contains all information about table's unique constraints.\n */\nexport class UniqueMetadata {\n // ---------------------------------------------------------------------\n // Public Properties\n // ---------------------------------------------------------------------\n\n /**\n * Entity metadata of the class to which this unique constraint is applied.\n */\n entityMetadata: EntityMetadata\n\n /**\n * Embedded metadata if this unique was applied on embedded.\n */\n embeddedMetadata?: EmbeddedMetadata\n\n /**\n * Target class to which metadata is applied.\n */\n target?: Function | string\n\n /**\n * Unique columns.\n */\n columns: ColumnMetadata[] = []\n\n /**\n * Indicate if unique constraints can be deferred.\n */\n deferrable?: DeferrableType\n\n /**\n * User specified unique constraint name.\n */\n givenName?: string\n\n /**\n * User specified column names.\n */\n givenColumnNames?:\n | ((object?: any) => any[] | { [key: string]: number })\n | string[]\n\n /**\n * Final unique constraint name.\n * If unique constraint name was given by a user then it stores normalized (by naming strategy) givenName.\n * If unique constraint name was not given then its generated.\n */\n name: string\n\n /**\n * Map of column names with order set.\n * Used only by MongoDB driver.\n */\n columnNamesWithOrderingMap: { [key: string]: number } = {}\n\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n\n constructor(options: {\n entityMetadata: EntityMetadata\n embeddedMetadata?: EmbeddedMetadata\n columns?: ColumnMetadata[]\n args?: UniqueMetadataArgs\n }) {\n this.entityMetadata = options.entityMetadata\n this.embeddedMetadata = options.embeddedMetadata\n if (options.columns) this.columns = options.columns\n\n if (options.args) {\n this.target = options.args.target\n this.givenName = options.args.name\n this.givenColumnNames = options.args.columns\n this.deferrable = options.args.deferrable\n }\n }\n\n // ---------------------------------------------------------------------\n // Public Build Methods\n // ---------------------------------------------------------------------\n\n /**\n * Builds some depend unique constraint properties.\n * Must be called after all entity metadata's properties map, columns and relations are built.\n *\n * @param namingStrategy\n */\n build(namingStrategy: NamingStrategyInterface): this {\n const map: { [key: string]: number } = {}\n\n // if columns already an array of string then simply return it\n if (this.givenColumnNames) {\n let columnPropertyPaths: string[]\n if (Array.isArray(this.givenColumnNames)) {\n columnPropertyPaths = this.givenColumnNames.map(\n (columnName) => {\n if (this.embeddedMetadata)\n return (\n this.embeddedMetadata.propertyPath +\n \".\" +\n columnName\n )\n\n return columnName.trim()\n },\n )\n columnPropertyPaths.forEach((propertyPath) => {\n map[propertyPath] = 1\n })\n } else {\n // if columns is a function that returns array of field names then execute it and get columns names from it\n const columnsFnResult = this.givenColumnNames(\n this.entityMetadata.propertiesMap,\n )\n if (Array.isArray(columnsFnResult)) {\n columnPropertyPaths = columnsFnResult.map((i: any) =>\n String(i),\n )\n columnPropertyPaths.forEach((name) => {\n map[name] = 1\n })\n } else {\n columnPropertyPaths = Object.keys(columnsFnResult).map(\n (i: any) => String(i),\n )\n Object.keys(columnsFnResult).forEach((columnName) => {\n map[columnName] = columnsFnResult[columnName]\n })\n }\n }\n\n this.columns = columnPropertyPaths\n .map((propertyName) => {\n const columnWithSameName = this.entityMetadata.columns.find(\n (column) => column.propertyPath === propertyName,\n )\n if (columnWithSameName) {\n return [columnWithSameName]\n }\n const relationWithSameName =\n this.entityMetadata.relations.find(\n (relation) =>\n relation.isWithJoinColumn &&\n relation.propertyName === propertyName,\n )\n if (relationWithSameName) {\n return relationWithSameName.joinColumns\n }\n const indexName = this.givenName\n ? '\"' + this.givenName + '\" '\n : \"\"\n const entityName = this.entityMetadata.targetName\n throw new TypeORMError(\n `Unique constraint ${indexName}contains column that is missing in the entity (${entityName}): ` +\n propertyName,\n )\n })\n .reduce((a, b) => a.concat(b))\n }\n\n this.columnNamesWithOrderingMap = Object.keys(map).reduce(\n (updatedMap, key) => {\n const column = this.entityMetadata.columns.find(\n (column) => column.propertyPath === key,\n )\n if (column) updatedMap[column.databasePath] = map[key]\n\n return updatedMap\n },\n {} as { [key: string]: number },\n )\n\n this.name =\n this.givenName ??\n namingStrategy.uniqueConstraintName(\n this.entityMetadata.tableName,\n this.columns.map((column) => column.databaseName),\n )\n return this\n }\n}\n"]}
|
|
@@ -84,6 +84,7 @@ export declare class MetadataArgsStorage {
|
|
|
84
84
|
findDiscriminatorValue(target: Function | string): DiscriminatorValueMetadataArgs | undefined;
|
|
85
85
|
/**
|
|
86
86
|
* Filters given array by a given target or targets.
|
|
87
|
+
*
|
|
87
88
|
* @param array
|
|
88
89
|
* @param target
|
|
89
90
|
*/
|
|
@@ -92,6 +93,7 @@ export declare class MetadataArgsStorage {
|
|
|
92
93
|
}>(array: T[], target: (Function | string) | (Function | string)[]): T[];
|
|
93
94
|
/**
|
|
94
95
|
* Filters given array by a given target or targets and prevents duplicate property names.
|
|
96
|
+
*
|
|
95
97
|
* @param array
|
|
96
98
|
* @param target
|
|
97
99
|
*/
|
|
@@ -101,12 +103,14 @@ export declare class MetadataArgsStorage {
|
|
|
101
103
|
}>(array: T[], target: (Function | string) | (Function | string)[]): T[];
|
|
102
104
|
/**
|
|
103
105
|
* Filters given array by a given target or targets and prevents duplicate relation property names.
|
|
106
|
+
*
|
|
104
107
|
* @param array
|
|
105
108
|
* @param target
|
|
106
109
|
*/
|
|
107
110
|
protected filterByTargetAndWithoutDuplicateRelationProperties<T extends RelationMetadataArgs>(array: T[], target: (Function | string) | (Function | string)[]): T[];
|
|
108
111
|
/**
|
|
109
112
|
* Filters given array by a given target or targets and prevents duplicate embedded property names.
|
|
113
|
+
*
|
|
110
114
|
* @param array
|
|
111
115
|
* @param target
|
|
112
116
|
*/
|
|
@@ -157,6 +157,7 @@ class MetadataArgsStorage {
|
|
|
157
157
|
// -------------------------------------------------------------------------
|
|
158
158
|
/**
|
|
159
159
|
* Filters given array by a given target or targets.
|
|
160
|
+
*
|
|
160
161
|
* @param array
|
|
161
162
|
* @param target
|
|
162
163
|
*/
|
|
@@ -169,6 +170,7 @@ class MetadataArgsStorage {
|
|
|
169
170
|
}
|
|
170
171
|
/**
|
|
171
172
|
* Filters given array by a given target or targets and prevents duplicate property names.
|
|
173
|
+
*
|
|
172
174
|
* @param array
|
|
173
175
|
* @param target
|
|
174
176
|
*/
|
|
@@ -187,6 +189,7 @@ class MetadataArgsStorage {
|
|
|
187
189
|
}
|
|
188
190
|
/**
|
|
189
191
|
* Filters given array by a given target or targets and prevents duplicate relation property names.
|
|
192
|
+
*
|
|
190
193
|
* @param array
|
|
191
194
|
* @param target
|
|
192
195
|
*/
|
|
@@ -215,6 +218,7 @@ class MetadataArgsStorage {
|
|
|
215
218
|
}
|
|
216
219
|
/**
|
|
217
220
|
* Filters given array by a given target or targets and prevents duplicate embedded property names.
|
|
221
|
+
*
|
|
218
222
|
* @param array
|
|
219
223
|
* @param target
|
|
220
224
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetadataArgsStorage.js","sourceRoot":"../build/browser/src/","sources":["metadata-args/MetadataArgsStorage.ts"],"names":[],"mappings":";;;AAeA,qEAAiE;AAQjE;;;;GAIG;AACH,MAAa,mBAAmB;IAAhC;QACI,4EAA4E;QAC5E,aAAa;QACb,4EAA4E;QAEnE,WAAM,GAAwB,EAAE,CAAA;QAChC,UAAK,GAAuB,EAAE,CAAA;QAC9B,8BAAyB,GAAoC,EAAE,CAAA;QAC/D,4BAAuB,GAAwC,EAAE,CAAA;QACjE,qBAAgB,GAAiC,EAAE,CAAA;QACnD,sBAAiB,GAAmC,EAAE,CAAA;QACtD,YAAO,GAAwB,EAAE,CAAA;QACjC,gBAAW,GAA6B,EAAE,CAAA;QAC1C,YAAO,GAAyB,EAAE,CAAA;QAClC,WAAM,GAAwB,EAAE,CAAA;QAChC,eAAU,GAA4B,EAAE,CAAA;QACxC,YAAO,GAAyB,EAAE,CAAA;QAClC,gBAAW,GAA4B,EAAE,CAAA;QACzC,cAAS,GAA2B,EAAE,CAAA;QACtC,gBAAW,GAA6B,EAAE,CAAA;QAC1C,eAAU,GAA4B,EAAE,CAAA;QACxC,oBAAe,GAAiC,EAAE,CAAA;QAClD,gBAAW,GAA6B,EAAE,CAAA;QAC1C,cAAS,GAA2B,EAAE,CAAA;QACtC,iBAAY,GAA8B,EAAE,CAAA;QAC5C,wBAAmB,GAAqC,EAAE,CAAA;IA4WvE,CAAC;IApWG,YAAY,CACR,MAAmD;QAEnD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnD,CAAC;IAID,aAAa,CACT,MAAmD;QAEnD,OAAO,IAAI,CAAC,2CAA2C,CACnD,IAAI,CAAC,OAAO,EACZ,MAAM,CACT,CAAA;IACL,CAAC;IAUD,aAAa,CACT,MAAmD,EACnD,YAAoB;QAEpB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YACvC,OAAO,CACH,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAClB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzC,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,MAAM,CAAC;gBAClC,SAAS,CAAC,YAAY,KAAK,YAAY,CAC1C,CAAA;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,QAAQ,CACJ,MAAmD;QAEnD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBACxB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAA;QAChC,CAAC,CAAC,CAAA;IACN,CAAC;IAID,eAAe,CACX,MAAmD;QAEnD,OAAO,IAAI,CAAC,mDAAmD,CAC3D,IAAI,CAAC,SAAS,EACd,MAAM,CACT,CAAA;IACL,CAAC;IAID,iBAAiB,CACb,MAAmD;QAEnD,OAAO,IAAI,CAAC,2CAA2C,CACnD,IAAI,CAAC,WAAW,EAChB,MAAM,CACT,CAAA;IACL,CAAC;IAID,aAAa,CACT,MAAmD;QAEnD,2CAA2C;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YACjC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBACxB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAA;QACjC,CAAC,CAAC,CAAA;IACN,CAAC;IAID,iBAAiB,CACb,MAAmD;QAEnD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;YAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBACxB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC1C,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,MAAM,CAAA;QACtC,CAAC,CAAC,CAAA;IACN,CAAC;IAID,aAAa,CACT,MAAmD;QAEnD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YAClC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBACxB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAA;QAClC,CAAC,CAAC,CAAA;IACN,CAAC;IAID,YAAY,CACR,MAAmD;QAEnD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAChC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBACxB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAA;QACjC,CAAC,CAAC,CAAA;IACN,CAAC;IAID,gBAAgB,CACZ,MAAmD;QAEnD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE;YACxC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBACxB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzC,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,MAAM,CAAA;QACrC,CAAC,CAAC,CAAA;IACN,CAAC;IAID,eAAe,CACX,MAAmD;QAEnD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;IAC5D,CAAC;IAID,eAAe,CACX,MAAmD;QAEnD,OAAO,IAAI,CAAC,mDAAmD,CAC3D,IAAI,CAAC,SAAS,EACd,MAAM,CACT,CAAA;IACL,CAAC;IAED,aAAa,CACT,MAAyB,EACzB,YAAoB;QAEpB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YACtC,OAAO,CACH,SAAS,CAAC,MAAM,KAAK,MAAM;gBAC3B,SAAS,CAAC,YAAY,KAAK,YAAY,CAC1C,CAAA;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,iBAAiB,CACb,MAAyB,EACzB,YAAoB;QAEpB,2CAA2C;QAC3C,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;YAC1C,OAAO,CACH,UAAU,CAAC,MAAM,KAAK,MAAM;gBAC5B,UAAU,CAAC,YAAY,KAAK,YAAY,CAC3C,CAAA;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAMD,iBAAiB,CACb,MAAmD;QAEnD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAA;IAC9D,CAAC;IAQD,sBAAsB,CAClB,MAAmD;QAEnD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;IAC7D,CAAC;IAED,+BAA+B,CAC3B,MAAyB,EACzB,YAAoB;QAEpB,OAAO,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,EAAE;YAC3D,OAAO,CACH,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAClB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7C,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,MAAM,CAAC;gBACtC,aAAa,CAAC,UAAU,KAAK,YAAY,CAC5C,CAAA;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,2BAA2B,CACvB,MAAyB,EACzB,YAAoB;QAEpB,OAAO,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,EAAE;YACzD,OAAO,CACH,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAClB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7C,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,MAAM,CAAC;gBACtC,aAAa,CAAC,UAAU,KAAK,YAAY,CAC5C,CAAA;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,yBAAyB,CAAC,MAAyB;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAChC,OAAO,CACH,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU;gBAClC,OAAO,MAAM,KAAK,UAAU;gBAC5B,6BAAa,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC/C,KAAK,CAAC,IAAI,KAAK,cAAc,CAChC,CAAA;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,mBAAmB,CACf,MAAyB;QAEzB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CACzB,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,KAAK,MAAM,CACjD,CAAA;IACL,CAAC;IAED,sBAAsB,CAClB,MAAyB;QAEzB,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAChC,CAAC,kBAAkB,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,KAAK,MAAM,CAC/D,CAAA;IACL,CAAC;IAED,4EAA4E;IAC5E,oBAAoB;IACpB,4EAA4E;IAE5E;;;;OAIG;IACO,cAAc,CACpB,KAAU,EACV,MAAmD;QAEnD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1B,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBACxB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAA;QACjC,CAAC,CAAC,CAAA;IACN,CAAC;IAED;;;;OAIG;IACO,2CAA2C,CAEnD,KAAU,EAAE,MAAmD;QAC7D,MAAM,QAAQ,GAAQ,EAAE,CAAA;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACnB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBACpC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAA;YAC5B,IAAI,UAAU,EAAE,CAAC;gBACb,IACI,CAAC,QAAQ,CAAC,IAAI,CACV,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,CAC1D;oBAED,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC3B,CAAC;QACL,CAAC,CAAC,CAAA;QACF,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED;;;;OAIG;IACO,mDAAmD,CAE3D,KAAU,EAAE,MAAmD;QAC7D,MAAM,QAAQ,GAAQ,EAAE,CAAA;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACnB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBACpC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAA;YAC5B,IAAI,UAAU,EAAE,CAAC;gBACb,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,CACpC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,CAC1D,CAAA;gBACD,IACI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;oBACrB,aAAa,KAAK,CAAC,CAAC;oBACpB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;wBACvB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,EACpD,CAAC;oBACC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAA;oBACpD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;oBACtB,QAAQ,CAAC,aAAa,CAAC,GAAG,KAAK,CAAA;gBACnC,CAAC;qBAAM,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;oBAC9B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACvB,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAA;QACF,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED;;;;OAIG;IACO,mDAAmD,CAE3D,KAAU,EAAE,MAAmD;QAC7D,MAAM,QAAQ,GAAQ,EAAE,CAAA;QACxB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACnB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBACpC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAA;YAC5B,IAAI,UAAU,EAAE,CAAC;gBACb,MAAM,2BAA2B,GAAG,QAAQ,CAAC,IAAI,CAC7C,CAAC,OAA6B,EAAW,EAAE,CACvC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;oBAC9B,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,CACjD,CAAA;gBACD,IAAI,CAAC,2BAA2B;oBAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACzD,CAAC;QACL,CAAC,CAAC,CAAA;QACF,OAAO,QAAQ,CAAA;IACnB,CAAC;CACJ;AArYD,kDAqYC","sourcesContent":["import type { RelationMetadataArgs } from \"./RelationMetadataArgs\"\nimport type { ColumnMetadataArgs } from \"./ColumnMetadataArgs\"\nimport type { IndexMetadataArgs } from \"./IndexMetadataArgs\"\nimport type { EntityListenerMetadataArgs } from \"./EntityListenerMetadataArgs\"\nimport type { TableMetadataArgs } from \"./TableMetadataArgs\"\nimport type { NamingStrategyMetadataArgs } from \"./NamingStrategyMetadataArgs\"\nimport type { JoinTableMetadataArgs } from \"./JoinTableMetadataArgs\"\nimport type { JoinColumnMetadataArgs } from \"./JoinColumnMetadataArgs\"\nimport type { EmbeddedMetadataArgs } from \"./EmbeddedMetadataArgs\"\nimport type { EntitySubscriberMetadataArgs } from \"./EntitySubscriberMetadataArgs\"\nimport type { RelationIdMetadataArgs } from \"./RelationIdMetadataArgs\"\nimport type { InheritanceMetadataArgs } from \"./InheritanceMetadataArgs\"\nimport type { DiscriminatorValueMetadataArgs } from \"./DiscriminatorValueMetadataArgs\"\nimport type { TransactionEntityMetadataArgs } from \"./TransactionEntityMetadataArgs\"\nimport type { TransactionRepositoryMetadataArgs } from \"./TransactionRepositoryMetadataArgs\"\nimport { MetadataUtils } from \"../metadata-builder/MetadataUtils\"\nimport type { GeneratedMetadataArgs } from \"./GeneratedMetadataArgs\"\nimport type { TreeMetadataArgs } from \"./TreeMetadataArgs\"\nimport type { UniqueMetadataArgs } from \"./UniqueMetadataArgs\"\nimport type { CheckMetadataArgs } from \"./CheckMetadataArgs\"\nimport type { ExclusionMetadataArgs } from \"./ExclusionMetadataArgs\"\nimport type { ForeignKeyMetadataArgs } from \"./ForeignKeyMetadataArgs\"\n\n/**\n * Storage all metadatas args of all available types: tables, columns, subscribers, relations, etc.\n * Each metadata args represents some specifications of what it represents.\n * MetadataArgs used to create a real Metadata objects.\n */\nexport class MetadataArgsStorage {\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n\n readonly tables: TableMetadataArgs[] = []\n readonly trees: TreeMetadataArgs[] = []\n readonly transactionEntityManagers: TransactionEntityMetadataArgs[] = []\n readonly transactionRepositories: TransactionRepositoryMetadataArgs[] = []\n readonly namingStrategies: NamingStrategyMetadataArgs[] = []\n readonly entitySubscribers: EntitySubscriberMetadataArgs[] = []\n readonly indices: IndexMetadataArgs[] = []\n readonly foreignKeys: ForeignKeyMetadataArgs[] = []\n readonly uniques: UniqueMetadataArgs[] = []\n readonly checks: CheckMetadataArgs[] = []\n readonly exclusions: ExclusionMetadataArgs[] = []\n readonly columns: ColumnMetadataArgs[] = []\n readonly generations: GeneratedMetadataArgs[] = []\n readonly relations: RelationMetadataArgs[] = []\n readonly joinColumns: JoinColumnMetadataArgs[] = []\n readonly joinTables: JoinTableMetadataArgs[] = []\n readonly entityListeners: EntityListenerMetadataArgs[] = []\n readonly relationIds: RelationIdMetadataArgs[] = []\n readonly embeddeds: EmbeddedMetadataArgs[] = []\n readonly inheritances: InheritanceMetadataArgs[] = []\n readonly discriminatorValues: DiscriminatorValueMetadataArgs[] = []\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n filterTables(target: Function | string): TableMetadataArgs[]\n filterTables(target: (Function | string)[]): TableMetadataArgs[]\n filterTables(\n target: (Function | string) | (Function | string)[],\n ): TableMetadataArgs[] {\n return this.filterByTarget(this.tables, target)\n }\n\n filterColumns(target: Function | string): ColumnMetadataArgs[]\n filterColumns(target: (Function | string)[]): ColumnMetadataArgs[]\n filterColumns(\n target: (Function | string) | (Function | string)[],\n ): ColumnMetadataArgs[] {\n return this.filterByTargetAndWithoutDuplicateProperties(\n this.columns,\n target,\n )\n }\n\n findGenerated(\n target: Function | string,\n propertyName: string,\n ): GeneratedMetadataArgs | undefined\n findGenerated(\n target: (Function | string)[],\n propertyName: string,\n ): GeneratedMetadataArgs | undefined\n findGenerated(\n target: (Function | string) | (Function | string)[],\n propertyName: string,\n ): GeneratedMetadataArgs | undefined {\n return this.generations.find((generated) => {\n return (\n (Array.isArray(target)\n ? target.indexOf(generated.target) !== -1\n : generated.target === target) &&\n generated.propertyName === propertyName\n )\n })\n }\n\n findTree(\n target: (Function | string) | (Function | string)[],\n ): TreeMetadataArgs | undefined {\n return this.trees.find((tree) => {\n return Array.isArray(target)\n ? target.indexOf(tree.target) !== -1\n : tree.target === target\n })\n }\n\n filterRelations(target: Function | string): RelationMetadataArgs[]\n filterRelations(target: (Function | string)[]): RelationMetadataArgs[]\n filterRelations(\n target: (Function | string) | (Function | string)[],\n ): RelationMetadataArgs[] {\n return this.filterByTargetAndWithoutDuplicateRelationProperties(\n this.relations,\n target,\n )\n }\n\n filterRelationIds(target: Function | string): RelationIdMetadataArgs[]\n filterRelationIds(target: (Function | string)[]): RelationIdMetadataArgs[]\n filterRelationIds(\n target: (Function | string) | (Function | string)[],\n ): RelationIdMetadataArgs[] {\n return this.filterByTargetAndWithoutDuplicateProperties(\n this.relationIds,\n target,\n )\n }\n\n filterIndices(target: Function | string): IndexMetadataArgs[]\n filterIndices(target: (Function | string)[]): IndexMetadataArgs[]\n filterIndices(\n target: (Function | string) | (Function | string)[],\n ): IndexMetadataArgs[] {\n // todo: implement parent-entity overrides?\n return this.indices.filter((index) => {\n return Array.isArray(target)\n ? target.indexOf(index.target) !== -1\n : index.target === target\n })\n }\n\n filterForeignKeys(target: Function | string): ForeignKeyMetadataArgs[]\n filterForeignKeys(target: (Function | string)[]): ForeignKeyMetadataArgs[]\n filterForeignKeys(\n target: (Function | string) | (Function | string)[],\n ): ForeignKeyMetadataArgs[] {\n return this.foreignKeys.filter((foreignKey) => {\n return Array.isArray(target)\n ? target.indexOf(foreignKey.target) !== -1\n : foreignKey.target === target\n })\n }\n\n filterUniques(target: Function | string): UniqueMetadataArgs[]\n filterUniques(target: (Function | string)[]): UniqueMetadataArgs[]\n filterUniques(\n target: (Function | string) | (Function | string)[],\n ): UniqueMetadataArgs[] {\n return this.uniques.filter((unique) => {\n return Array.isArray(target)\n ? target.indexOf(unique.target) !== -1\n : unique.target === target\n })\n }\n\n filterChecks(target: Function | string): CheckMetadataArgs[]\n filterChecks(target: (Function | string)[]): CheckMetadataArgs[]\n filterChecks(\n target: (Function | string) | (Function | string)[],\n ): CheckMetadataArgs[] {\n return this.checks.filter((check) => {\n return Array.isArray(target)\n ? target.indexOf(check.target) !== -1\n : check.target === target\n })\n }\n\n filterExclusions(target: Function | string): ExclusionMetadataArgs[]\n filterExclusions(target: (Function | string)[]): ExclusionMetadataArgs[]\n filterExclusions(\n target: (Function | string) | (Function | string)[],\n ): ExclusionMetadataArgs[] {\n return this.exclusions.filter((exclusion) => {\n return Array.isArray(target)\n ? target.indexOf(exclusion.target) !== -1\n : exclusion.target === target\n })\n }\n\n filterListeners(target: Function | string): EntityListenerMetadataArgs[]\n filterListeners(target: (Function | string)[]): EntityListenerMetadataArgs[]\n filterListeners(\n target: (Function | string) | (Function | string)[],\n ): EntityListenerMetadataArgs[] {\n return this.filterByTarget(this.entityListeners, target)\n }\n\n filterEmbeddeds(target: Function | string): EmbeddedMetadataArgs[]\n filterEmbeddeds(target: (Function | string)[]): EmbeddedMetadataArgs[]\n filterEmbeddeds(\n target: (Function | string) | (Function | string)[],\n ): EmbeddedMetadataArgs[] {\n return this.filterByTargetAndWithoutDuplicateEmbeddedProperties(\n this.embeddeds,\n target,\n )\n }\n\n findJoinTable(\n target: Function | string,\n propertyName: string,\n ): JoinTableMetadataArgs | undefined {\n return this.joinTables.find((joinTable) => {\n return (\n joinTable.target === target &&\n joinTable.propertyName === propertyName\n )\n })\n }\n\n filterJoinColumns(\n target: Function | string,\n propertyName: string,\n ): JoinColumnMetadataArgs[] {\n // todo: implement parent-entity overrides?\n return this.joinColumns.filter((joinColumn) => {\n return (\n joinColumn.target === target &&\n joinColumn.propertyName === propertyName\n )\n })\n }\n\n filterSubscribers(target: Function | string): EntitySubscriberMetadataArgs[]\n filterSubscribers(\n target: (Function | string)[],\n ): EntitySubscriberMetadataArgs[]\n filterSubscribers(\n target: (Function | string) | (Function | string)[],\n ): EntitySubscriberMetadataArgs[] {\n return this.filterByTarget(this.entitySubscribers, target)\n }\n\n filterNamingStrategies(\n target: Function | string,\n ): NamingStrategyMetadataArgs[]\n filterNamingStrategies(\n target: (Function | string)[],\n ): NamingStrategyMetadataArgs[]\n filterNamingStrategies(\n target: (Function | string) | (Function | string)[],\n ): NamingStrategyMetadataArgs[] {\n return this.filterByTarget(this.namingStrategies, target)\n }\n\n filterTransactionEntityManagers(\n target: Function | string,\n propertyName: string,\n ): TransactionEntityMetadataArgs[] {\n return this.transactionEntityManagers.filter((transactionEm) => {\n return (\n (Array.isArray(target)\n ? target.indexOf(transactionEm.target) !== -1\n : transactionEm.target === target) &&\n transactionEm.methodName === propertyName\n )\n })\n }\n\n filterTransactionRepository(\n target: Function | string,\n propertyName: string,\n ): TransactionRepositoryMetadataArgs[] {\n return this.transactionRepositories.filter((transactionEm) => {\n return (\n (Array.isArray(target)\n ? target.indexOf(transactionEm.target) !== -1\n : transactionEm.target === target) &&\n transactionEm.methodName === propertyName\n )\n })\n }\n\n filterSingleTableChildren(target: Function | string): TableMetadataArgs[] {\n return this.tables.filter((table) => {\n return (\n typeof table.target === \"function\" &&\n typeof target === \"function\" &&\n MetadataUtils.isInherited(table.target, target) &&\n table.type === \"entity-child\"\n )\n })\n }\n\n findInheritanceType(\n target: Function | string,\n ): InheritanceMetadataArgs | undefined {\n return this.inheritances.find(\n (inheritance) => inheritance.target === target,\n )\n }\n\n findDiscriminatorValue(\n target: Function | string,\n ): DiscriminatorValueMetadataArgs | undefined {\n return this.discriminatorValues.find(\n (discriminatorValue) => discriminatorValue.target === target,\n )\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Filters given array by a given target or targets.\n * @param array\n * @param target\n */\n protected filterByTarget<T extends { target: Function | string }>(\n array: T[],\n target: (Function | string) | (Function | string)[],\n ): T[] {\n return array.filter((table) => {\n return Array.isArray(target)\n ? target.indexOf(table.target) !== -1\n : table.target === target\n })\n }\n\n /**\n * Filters given array by a given target or targets and prevents duplicate property names.\n * @param array\n * @param target\n */\n protected filterByTargetAndWithoutDuplicateProperties<\n T extends { target: Function | string; propertyName: string },\n >(array: T[], target: (Function | string) | (Function | string)[]): T[] {\n const newArray: T[] = []\n array.forEach((item) => {\n const sameTarget = Array.isArray(target)\n ? target.indexOf(item.target) !== -1\n : item.target === target\n if (sameTarget) {\n if (\n !newArray.find(\n (newItem) => newItem.propertyName === item.propertyName,\n )\n )\n newArray.push(item)\n }\n })\n return newArray\n }\n\n /**\n * Filters given array by a given target or targets and prevents duplicate relation property names.\n * @param array\n * @param target\n */\n protected filterByTargetAndWithoutDuplicateRelationProperties<\n T extends RelationMetadataArgs,\n >(array: T[], target: (Function | string) | (Function | string)[]): T[] {\n const newArray: T[] = []\n array.forEach((item) => {\n const sameTarget = Array.isArray(target)\n ? target.indexOf(item.target) !== -1\n : item.target === target\n if (sameTarget) {\n const existingIndex = newArray.findIndex(\n (newItem) => newItem.propertyName === item.propertyName,\n )\n if (\n Array.isArray(target) &&\n existingIndex !== -1 &&\n target.indexOf(item.target) <\n target.indexOf(newArray[existingIndex].target)\n ) {\n const clone = Object.create(newArray[existingIndex])\n clone.type = item.type\n newArray[existingIndex] = clone\n } else if (existingIndex === -1) {\n newArray.push(item)\n }\n }\n })\n return newArray\n }\n\n /**\n * Filters given array by a given target or targets and prevents duplicate embedded property names.\n * @param array\n * @param target\n */\n protected filterByTargetAndWithoutDuplicateEmbeddedProperties<\n T extends EmbeddedMetadataArgs,\n >(array: T[], target: (Function | string) | (Function | string)[]): T[] {\n const newArray: T[] = []\n array.forEach((item) => {\n const sameTarget = Array.isArray(target)\n ? target.indexOf(item.target) !== -1\n : item.target === target\n if (sameTarget) {\n const isDuplicateEmbeddedProperty = newArray.find(\n (newItem: EmbeddedMetadataArgs): boolean =>\n newItem.prefix === item.prefix &&\n newItem.propertyName === item.propertyName,\n )\n if (!isDuplicateEmbeddedProperty) newArray.push(item)\n }\n })\n return newArray\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"MetadataArgsStorage.js","sourceRoot":"../build/browser/src/","sources":["metadata-args/MetadataArgsStorage.ts"],"names":[],"mappings":"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","sourcesContent":["import type { RelationMetadataArgs } from \"./RelationMetadataArgs\"\nimport type { ColumnMetadataArgs } from \"./ColumnMetadataArgs\"\nimport type { IndexMetadataArgs } from \"./IndexMetadataArgs\"\nimport type { EntityListenerMetadataArgs } from \"./EntityListenerMetadataArgs\"\nimport type { TableMetadataArgs } from \"./TableMetadataArgs\"\nimport type { NamingStrategyMetadataArgs } from \"./NamingStrategyMetadataArgs\"\nimport type { JoinTableMetadataArgs } from \"./JoinTableMetadataArgs\"\nimport type { JoinColumnMetadataArgs } from \"./JoinColumnMetadataArgs\"\nimport type { EmbeddedMetadataArgs } from \"./EmbeddedMetadataArgs\"\nimport type { EntitySubscriberMetadataArgs } from \"./EntitySubscriberMetadataArgs\"\nimport type { RelationIdMetadataArgs } from \"./RelationIdMetadataArgs\"\nimport type { InheritanceMetadataArgs } from \"./InheritanceMetadataArgs\"\nimport type { DiscriminatorValueMetadataArgs } from \"./DiscriminatorValueMetadataArgs\"\nimport type { TransactionEntityMetadataArgs } from \"./TransactionEntityMetadataArgs\"\nimport type { TransactionRepositoryMetadataArgs } from \"./TransactionRepositoryMetadataArgs\"\nimport { MetadataUtils } from \"../metadata-builder/MetadataUtils\"\nimport type { GeneratedMetadataArgs } from \"./GeneratedMetadataArgs\"\nimport type { TreeMetadataArgs } from \"./TreeMetadataArgs\"\nimport type { UniqueMetadataArgs } from \"./UniqueMetadataArgs\"\nimport type { CheckMetadataArgs } from \"./CheckMetadataArgs\"\nimport type { ExclusionMetadataArgs } from \"./ExclusionMetadataArgs\"\nimport type { ForeignKeyMetadataArgs } from \"./ForeignKeyMetadataArgs\"\n\n/**\n * Storage all metadatas args of all available types: tables, columns, subscribers, relations, etc.\n * Each metadata args represents some specifications of what it represents.\n * MetadataArgs used to create a real Metadata objects.\n */\nexport class MetadataArgsStorage {\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n\n readonly tables: TableMetadataArgs[] = []\n readonly trees: TreeMetadataArgs[] = []\n readonly transactionEntityManagers: TransactionEntityMetadataArgs[] = []\n readonly transactionRepositories: TransactionRepositoryMetadataArgs[] = []\n readonly namingStrategies: NamingStrategyMetadataArgs[] = []\n readonly entitySubscribers: EntitySubscriberMetadataArgs[] = []\n readonly indices: IndexMetadataArgs[] = []\n readonly foreignKeys: ForeignKeyMetadataArgs[] = []\n readonly uniques: UniqueMetadataArgs[] = []\n readonly checks: CheckMetadataArgs[] = []\n readonly exclusions: ExclusionMetadataArgs[] = []\n readonly columns: ColumnMetadataArgs[] = []\n readonly generations: GeneratedMetadataArgs[] = []\n readonly relations: RelationMetadataArgs[] = []\n readonly joinColumns: JoinColumnMetadataArgs[] = []\n readonly joinTables: JoinTableMetadataArgs[] = []\n readonly entityListeners: EntityListenerMetadataArgs[] = []\n readonly relationIds: RelationIdMetadataArgs[] = []\n readonly embeddeds: EmbeddedMetadataArgs[] = []\n readonly inheritances: InheritanceMetadataArgs[] = []\n readonly discriminatorValues: DiscriminatorValueMetadataArgs[] = []\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n filterTables(target: Function | string): TableMetadataArgs[]\n filterTables(target: (Function | string)[]): TableMetadataArgs[]\n filterTables(\n target: (Function | string) | (Function | string)[],\n ): TableMetadataArgs[] {\n return this.filterByTarget(this.tables, target)\n }\n\n filterColumns(target: Function | string): ColumnMetadataArgs[]\n filterColumns(target: (Function | string)[]): ColumnMetadataArgs[]\n filterColumns(\n target: (Function | string) | (Function | string)[],\n ): ColumnMetadataArgs[] {\n return this.filterByTargetAndWithoutDuplicateProperties(\n this.columns,\n target,\n )\n }\n\n findGenerated(\n target: Function | string,\n propertyName: string,\n ): GeneratedMetadataArgs | undefined\n findGenerated(\n target: (Function | string)[],\n propertyName: string,\n ): GeneratedMetadataArgs | undefined\n findGenerated(\n target: (Function | string) | (Function | string)[],\n propertyName: string,\n ): GeneratedMetadataArgs | undefined {\n return this.generations.find((generated) => {\n return (\n (Array.isArray(target)\n ? target.indexOf(generated.target) !== -1\n : generated.target === target) &&\n generated.propertyName === propertyName\n )\n })\n }\n\n findTree(\n target: (Function | string) | (Function | string)[],\n ): TreeMetadataArgs | undefined {\n return this.trees.find((tree) => {\n return Array.isArray(target)\n ? target.indexOf(tree.target) !== -1\n : tree.target === target\n })\n }\n\n filterRelations(target: Function | string): RelationMetadataArgs[]\n filterRelations(target: (Function | string)[]): RelationMetadataArgs[]\n filterRelations(\n target: (Function | string) | (Function | string)[],\n ): RelationMetadataArgs[] {\n return this.filterByTargetAndWithoutDuplicateRelationProperties(\n this.relations,\n target,\n )\n }\n\n filterRelationIds(target: Function | string): RelationIdMetadataArgs[]\n filterRelationIds(target: (Function | string)[]): RelationIdMetadataArgs[]\n filterRelationIds(\n target: (Function | string) | (Function | string)[],\n ): RelationIdMetadataArgs[] {\n return this.filterByTargetAndWithoutDuplicateProperties(\n this.relationIds,\n target,\n )\n }\n\n filterIndices(target: Function | string): IndexMetadataArgs[]\n filterIndices(target: (Function | string)[]): IndexMetadataArgs[]\n filterIndices(\n target: (Function | string) | (Function | string)[],\n ): IndexMetadataArgs[] {\n // todo: implement parent-entity overrides?\n return this.indices.filter((index) => {\n return Array.isArray(target)\n ? target.indexOf(index.target) !== -1\n : index.target === target\n })\n }\n\n filterForeignKeys(target: Function | string): ForeignKeyMetadataArgs[]\n filterForeignKeys(target: (Function | string)[]): ForeignKeyMetadataArgs[]\n filterForeignKeys(\n target: (Function | string) | (Function | string)[],\n ): ForeignKeyMetadataArgs[] {\n return this.foreignKeys.filter((foreignKey) => {\n return Array.isArray(target)\n ? target.indexOf(foreignKey.target) !== -1\n : foreignKey.target === target\n })\n }\n\n filterUniques(target: Function | string): UniqueMetadataArgs[]\n filterUniques(target: (Function | string)[]): UniqueMetadataArgs[]\n filterUniques(\n target: (Function | string) | (Function | string)[],\n ): UniqueMetadataArgs[] {\n return this.uniques.filter((unique) => {\n return Array.isArray(target)\n ? target.indexOf(unique.target) !== -1\n : unique.target === target\n })\n }\n\n filterChecks(target: Function | string): CheckMetadataArgs[]\n filterChecks(target: (Function | string)[]): CheckMetadataArgs[]\n filterChecks(\n target: (Function | string) | (Function | string)[],\n ): CheckMetadataArgs[] {\n return this.checks.filter((check) => {\n return Array.isArray(target)\n ? target.indexOf(check.target) !== -1\n : check.target === target\n })\n }\n\n filterExclusions(target: Function | string): ExclusionMetadataArgs[]\n filterExclusions(target: (Function | string)[]): ExclusionMetadataArgs[]\n filterExclusions(\n target: (Function | string) | (Function | string)[],\n ): ExclusionMetadataArgs[] {\n return this.exclusions.filter((exclusion) => {\n return Array.isArray(target)\n ? target.indexOf(exclusion.target) !== -1\n : exclusion.target === target\n })\n }\n\n filterListeners(target: Function | string): EntityListenerMetadataArgs[]\n filterListeners(target: (Function | string)[]): EntityListenerMetadataArgs[]\n filterListeners(\n target: (Function | string) | (Function | string)[],\n ): EntityListenerMetadataArgs[] {\n return this.filterByTarget(this.entityListeners, target)\n }\n\n filterEmbeddeds(target: Function | string): EmbeddedMetadataArgs[]\n filterEmbeddeds(target: (Function | string)[]): EmbeddedMetadataArgs[]\n filterEmbeddeds(\n target: (Function | string) | (Function | string)[],\n ): EmbeddedMetadataArgs[] {\n return this.filterByTargetAndWithoutDuplicateEmbeddedProperties(\n this.embeddeds,\n target,\n )\n }\n\n findJoinTable(\n target: Function | string,\n propertyName: string,\n ): JoinTableMetadataArgs | undefined {\n return this.joinTables.find((joinTable) => {\n return (\n joinTable.target === target &&\n joinTable.propertyName === propertyName\n )\n })\n }\n\n filterJoinColumns(\n target: Function | string,\n propertyName: string,\n ): JoinColumnMetadataArgs[] {\n // todo: implement parent-entity overrides?\n return this.joinColumns.filter((joinColumn) => {\n return (\n joinColumn.target === target &&\n joinColumn.propertyName === propertyName\n )\n })\n }\n\n filterSubscribers(target: Function | string): EntitySubscriberMetadataArgs[]\n filterSubscribers(\n target: (Function | string)[],\n ): EntitySubscriberMetadataArgs[]\n filterSubscribers(\n target: (Function | string) | (Function | string)[],\n ): EntitySubscriberMetadataArgs[] {\n return this.filterByTarget(this.entitySubscribers, target)\n }\n\n filterNamingStrategies(\n target: Function | string,\n ): NamingStrategyMetadataArgs[]\n filterNamingStrategies(\n target: (Function | string)[],\n ): NamingStrategyMetadataArgs[]\n filterNamingStrategies(\n target: (Function | string) | (Function | string)[],\n ): NamingStrategyMetadataArgs[] {\n return this.filterByTarget(this.namingStrategies, target)\n }\n\n filterTransactionEntityManagers(\n target: Function | string,\n propertyName: string,\n ): TransactionEntityMetadataArgs[] {\n return this.transactionEntityManagers.filter((transactionEm) => {\n return (\n (Array.isArray(target)\n ? target.indexOf(transactionEm.target) !== -1\n : transactionEm.target === target) &&\n transactionEm.methodName === propertyName\n )\n })\n }\n\n filterTransactionRepository(\n target: Function | string,\n propertyName: string,\n ): TransactionRepositoryMetadataArgs[] {\n return this.transactionRepositories.filter((transactionEm) => {\n return (\n (Array.isArray(target)\n ? target.indexOf(transactionEm.target) !== -1\n : transactionEm.target === target) &&\n transactionEm.methodName === propertyName\n )\n })\n }\n\n filterSingleTableChildren(target: Function | string): TableMetadataArgs[] {\n return this.tables.filter((table) => {\n return (\n typeof table.target === \"function\" &&\n typeof target === \"function\" &&\n MetadataUtils.isInherited(table.target, target) &&\n table.type === \"entity-child\"\n )\n })\n }\n\n findInheritanceType(\n target: Function | string,\n ): InheritanceMetadataArgs | undefined {\n return this.inheritances.find(\n (inheritance) => inheritance.target === target,\n )\n }\n\n findDiscriminatorValue(\n target: Function | string,\n ): DiscriminatorValueMetadataArgs | undefined {\n return this.discriminatorValues.find(\n (discriminatorValue) => discriminatorValue.target === target,\n )\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Filters given array by a given target or targets.\n *\n * @param array\n * @param target\n */\n protected filterByTarget<T extends { target: Function | string }>(\n array: T[],\n target: (Function | string) | (Function | string)[],\n ): T[] {\n return array.filter((table) => {\n return Array.isArray(target)\n ? target.indexOf(table.target) !== -1\n : table.target === target\n })\n }\n\n /**\n * Filters given array by a given target or targets and prevents duplicate property names.\n *\n * @param array\n * @param target\n */\n protected filterByTargetAndWithoutDuplicateProperties<\n T extends { target: Function | string; propertyName: string },\n >(array: T[], target: (Function | string) | (Function | string)[]): T[] {\n const newArray: T[] = []\n array.forEach((item) => {\n const sameTarget = Array.isArray(target)\n ? target.indexOf(item.target) !== -1\n : item.target === target\n if (sameTarget) {\n if (\n !newArray.find(\n (newItem) => newItem.propertyName === item.propertyName,\n )\n )\n newArray.push(item)\n }\n })\n return newArray\n }\n\n /**\n * Filters given array by a given target or targets and prevents duplicate relation property names.\n *\n * @param array\n * @param target\n */\n protected filterByTargetAndWithoutDuplicateRelationProperties<\n T extends RelationMetadataArgs,\n >(array: T[], target: (Function | string) | (Function | string)[]): T[] {\n const newArray: T[] = []\n array.forEach((item) => {\n const sameTarget = Array.isArray(target)\n ? target.indexOf(item.target) !== -1\n : item.target === target\n if (sameTarget) {\n const existingIndex = newArray.findIndex(\n (newItem) => newItem.propertyName === item.propertyName,\n )\n if (\n Array.isArray(target) &&\n existingIndex !== -1 &&\n target.indexOf(item.target) <\n target.indexOf(newArray[existingIndex].target)\n ) {\n const clone = Object.create(newArray[existingIndex])\n clone.type = item.type\n newArray[existingIndex] = clone\n } else if (existingIndex === -1) {\n newArray.push(item)\n }\n }\n })\n return newArray\n }\n\n /**\n * Filters given array by a given target or targets and prevents duplicate embedded property names.\n *\n * @param array\n * @param target\n */\n protected filterByTargetAndWithoutDuplicateEmbeddedProperties<\n T extends EmbeddedMetadataArgs,\n >(array: T[], target: (Function | string) | (Function | string)[]): T[] {\n const newArray: T[] = []\n array.forEach((item) => {\n const sameTarget = Array.isArray(target)\n ? target.indexOf(item.target) !== -1\n : item.target === target\n if (sameTarget) {\n const isDuplicateEmbeddedProperty = newArray.find(\n (newItem: EmbeddedMetadataArgs): boolean =>\n newItem.prefix === item.prefix &&\n newItem.propertyName === item.propertyName,\n )\n if (!isDuplicateEmbeddedProperty) newArray.push(item)\n }\n })\n return newArray\n }\n}\n"]}
|
|
@@ -9,6 +9,7 @@ export declare class ClosureJunctionEntityMetadataBuilder {
|
|
|
9
9
|
constructor(dataSource: DataSource);
|
|
10
10
|
/**
|
|
11
11
|
* Builds EntityMetadata for the closure junction of the given closure entity.
|
|
12
|
+
*
|
|
12
13
|
* @param parentClosureEntityMetadata
|
|
13
14
|
*/
|
|
14
15
|
build(parentClosureEntityMetadata: EntityMetadata): EntityMetadata;
|