typeorm 0.3.11-dev.658604d → 0.3.11-dev.6ba48bd
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/decorator/options/JoinTableMultipleColumnsOptions.d.ts +6 -0
- package/browser/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
- package/browser/decorator/options/JoinTableOptions.d.ts +6 -0
- package/browser/decorator/options/JoinTableOptions.js.map +1 -1
- package/browser/decorator/relations/JoinTable.js +1 -0
- package/browser/decorator/relations/JoinTable.js.map +1 -1
- package/browser/driver/Driver.d.ts +4 -0
- package/browser/driver/Driver.js.map +1 -1
- package/browser/driver/cordova/CordovaDriver.d.ts +1 -0
- package/browser/driver/cordova/CordovaDriver.js +1 -0
- package/browser/driver/cordova/CordovaDriver.js.map +1 -1
- package/browser/driver/oracle/OracleDriver.d.ts +1 -0
- package/browser/driver/oracle/OracleDriver.js +1 -0
- package/browser/driver/oracle/OracleDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresConnectionOptions.d.ts +16 -0
- package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.js +11 -1
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.d.ts +17 -1
- package/browser/driver/postgres/PostgresQueryRunner.js +97 -0
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/sap/SapDriver.d.ts +1 -0
- package/browser/driver/sap/SapDriver.js +1 -0
- package/browser/driver/sap/SapDriver.js.map +1 -1
- package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +6 -0
- package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
- package/browser/driver/sqlite/SqliteDriver.js +18 -6
- package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
- package/browser/entity-manager/EntityManager.d.ts +4 -0
- package/browser/entity-manager/EntityManager.js +14 -1
- package/browser/entity-manager/EntityManager.js.map +1 -1
- package/browser/error/ForbiddenTransactionModeOverrideError.d.ts +8 -0
- package/browser/error/ForbiddenTransactionModeOverrideError.js +12 -0
- package/browser/error/ForbiddenTransactionModeOverrideError.js.map +1 -0
- package/browser/error/index.d.ts +1 -0
- package/browser/error/index.js +1 -0
- package/browser/error/index.js.map +1 -1
- package/browser/find-options/FindOperatorType.d.ts +1 -1
- package/browser/find-options/FindOperatorType.js.map +1 -1
- package/browser/find-options/operator/And.d.ts +2 -0
- package/browser/find-options/operator/And.js +6 -0
- package/browser/find-options/operator/And.js.map +1 -0
- package/browser/index.d.ts +1 -0
- package/browser/index.js +1 -0
- package/browser/index.js.map +1 -1
- package/browser/metadata-args/JoinTableMetadataArgs.d.ts +6 -0
- package/browser/metadata-args/JoinTableMetadataArgs.js.map +1 -1
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +1 -0
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/migration/Migration.d.ts +5 -1
- package/browser/migration/Migration.js +2 -1
- package/browser/migration/Migration.js.map +1 -1
- package/browser/migration/MigrationExecutor.js +39 -6
- package/browser/migration/MigrationExecutor.js.map +1 -1
- package/browser/migration/MigrationInterface.d.ts +7 -0
- package/browser/migration/MigrationInterface.js.map +1 -1
- package/browser/naming-strategy/NamingStrategyInterface.d.ts +2 -1
- package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
- package/browser/persistence/EntityPersistExecutor.js +2 -1
- package/browser/persistence/EntityPersistExecutor.js.map +1 -1
- package/browser/query-builder/InsertOrUpdateOptions.d.ts +7 -0
- package/browser/query-builder/InsertOrUpdateOptions.js.map +1 -1
- package/browser/query-builder/InsertQueryBuilder.js +10 -1
- package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryBuilder.d.ts +1 -0
- package/browser/query-builder/QueryBuilder.js +22 -0
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryExpressionMap.d.ts +1 -0
- package/browser/query-builder/QueryExpressionMap.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.d.ts +19 -0
- package/browser/query-builder/SelectQueryBuilder.js +76 -8
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-builder/WhereClause.d.ts +1 -1
- package/browser/query-builder/WhereClause.js.map +1 -1
- package/browser/query-runner/BaseQueryRunner.d.ts +1 -1
- package/browser/query-runner/BaseQueryRunner.js.map +1 -1
- package/browser/repository/Repository.d.ts +5 -1
- package/browser/repository/Repository.js +6 -0
- package/browser/repository/Repository.js.map +1 -1
- package/browser/repository/TreeRepository.d.ts +0 -4
- package/browser/repository/TreeRepository.js +0 -11
- package/browser/repository/TreeRepository.js.map +1 -1
- package/browser/repository/UpsertOptions.d.ts +5 -2
- package/browser/repository/UpsertOptions.js.map +1 -1
- package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +4 -0
- package/browser/schema-builder/RdbmsSchemaBuilder.js +74 -2
- package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/browser/schema-builder/view/View.d.ts +13 -1
- package/browser/schema-builder/view/View.js +16 -0
- package/browser/schema-builder/view/View.js.map +1 -1
- package/commands/InitCommand.js +32 -5
- package/commands/InitCommand.js.map +1 -1
- package/commands/MigrationGenerateCommand.js +1 -0
- package/commands/MigrationGenerateCommand.js.map +1 -1
- package/decorator/options/JoinTableMultipleColumnsOptions.d.ts +6 -0
- package/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
- package/decorator/options/JoinTableOptions.d.ts +6 -0
- package/decorator/options/JoinTableOptions.js.map +1 -1
- package/decorator/relations/JoinTable.js +1 -0
- package/decorator/relations/JoinTable.js.map +1 -1
- package/driver/Driver.d.ts +4 -0
- package/driver/Driver.js.map +1 -1
- package/driver/cordova/CordovaDriver.d.ts +1 -0
- package/driver/cordova/CordovaDriver.js +1 -0
- package/driver/cordova/CordovaDriver.js.map +1 -1
- package/driver/oracle/OracleDriver.d.ts +1 -0
- package/driver/oracle/OracleDriver.js +1 -0
- package/driver/oracle/OracleDriver.js.map +1 -1
- package/driver/postgres/PostgresConnectionOptions.d.ts +16 -0
- package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
- package/driver/postgres/PostgresDriver.js +11 -1
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.d.ts +17 -1
- package/driver/postgres/PostgresQueryRunner.js +97 -0
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/sap/SapDriver.d.ts +1 -0
- package/driver/sap/SapDriver.js +1 -0
- package/driver/sap/SapDriver.js.map +1 -1
- package/driver/sqlite/SqliteConnectionOptions.d.ts +6 -0
- package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
- package/driver/sqlite/SqliteDriver.js +18 -6
- package/driver/sqlite/SqliteDriver.js.map +1 -1
- package/entity-manager/EntityManager.d.ts +4 -0
- package/entity-manager/EntityManager.js +14 -1
- package/entity-manager/EntityManager.js.map +1 -1
- package/error/ForbiddenTransactionModeOverrideError.d.ts +8 -0
- package/error/ForbiddenTransactionModeOverrideError.js +16 -0
- package/error/ForbiddenTransactionModeOverrideError.js.map +1 -0
- package/error/index.d.ts +1 -0
- package/error/index.js +1 -0
- package/error/index.js.map +1 -1
- package/find-options/FindOperatorType.d.ts +1 -1
- package/find-options/FindOperatorType.js.map +1 -1
- package/find-options/operator/And.d.ts +2 -0
- package/find-options/operator/And.js +10 -0
- package/find-options/operator/And.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/index.mjs +4 -0
- package/metadata-args/JoinTableMetadataArgs.d.ts +6 -0
- package/metadata-args/JoinTableMetadataArgs.js.map +1 -1
- package/metadata-builder/JunctionEntityMetadataBuilder.js +1 -0
- package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/migration/Migration.d.ts +5 -1
- package/migration/Migration.js +2 -1
- package/migration/Migration.js.map +1 -1
- package/migration/MigrationExecutor.js +38 -5
- package/migration/MigrationExecutor.js.map +1 -1
- package/migration/MigrationInterface.d.ts +7 -0
- package/migration/MigrationInterface.js.map +1 -1
- package/naming-strategy/NamingStrategyInterface.d.ts +2 -1
- package/naming-strategy/NamingStrategyInterface.js.map +1 -1
- package/package.json +1 -1
- package/persistence/EntityPersistExecutor.js +2 -1
- package/persistence/EntityPersistExecutor.js.map +1 -1
- package/query-builder/InsertOrUpdateOptions.d.ts +7 -0
- package/query-builder/InsertOrUpdateOptions.js.map +1 -1
- package/query-builder/InsertQueryBuilder.js +10 -1
- package/query-builder/InsertQueryBuilder.js.map +1 -1
- package/query-builder/QueryBuilder.d.ts +1 -0
- package/query-builder/QueryBuilder.js +22 -0
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/QueryExpressionMap.d.ts +1 -0
- package/query-builder/QueryExpressionMap.js.map +1 -1
- package/query-builder/SelectQueryBuilder.d.ts +19 -0
- package/query-builder/SelectQueryBuilder.js +76 -8
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-builder/WhereClause.d.ts +1 -1
- package/query-builder/WhereClause.js.map +1 -1
- package/query-runner/BaseQueryRunner.d.ts +1 -1
- package/query-runner/BaseQueryRunner.js.map +1 -1
- package/repository/Repository.d.ts +5 -1
- package/repository/Repository.js +6 -0
- package/repository/Repository.js.map +1 -1
- package/repository/TreeRepository.d.ts +0 -4
- package/repository/TreeRepository.js +0 -11
- package/repository/TreeRepository.js.map +1 -1
- package/repository/UpsertOptions.d.ts +5 -2
- package/repository/UpsertOptions.js.map +1 -1
- package/schema-builder/RdbmsSchemaBuilder.d.ts +4 -0
- package/schema-builder/RdbmsSchemaBuilder.js +74 -2
- package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/schema-builder/view/View.d.ts +13 -1
- package/schema-builder/view/View.js +16 -0
- package/schema-builder/view/View.js.map +1 -1
|
@@ -93,6 +93,7 @@ export declare class SelectQueryBuilder<Entity extends ObjectLiteral> extends Qu
|
|
|
93
93
|
* Sets the distinct on clause for Postgres.
|
|
94
94
|
*/
|
|
95
95
|
distinctOn(distinctOn: string[]): this;
|
|
96
|
+
fromDummy(): SelectQueryBuilder<any>;
|
|
96
97
|
/**
|
|
97
98
|
* Specifies FROM which entity's table select/update/delete will be executed.
|
|
98
99
|
* Also sets a main string alias of the selection data.
|
|
@@ -402,6 +403,18 @@ export declare class SelectQueryBuilder<Entity extends ObjectLiteral> extends Qu
|
|
|
402
403
|
* Additionally you can add parameters used in where expression.
|
|
403
404
|
*/
|
|
404
405
|
orWhere(where: Brackets | string | ((qb: this) => string) | ObjectLiteral | ObjectLiteral[], parameters?: ObjectLiteral): this;
|
|
406
|
+
/**
|
|
407
|
+
* Sets a new where EXISTS clause
|
|
408
|
+
*/
|
|
409
|
+
whereExists(subQuery: SelectQueryBuilder<any>): this;
|
|
410
|
+
/**
|
|
411
|
+
* Adds a new AND where EXISTS clause
|
|
412
|
+
*/
|
|
413
|
+
andWhereExists(subQuery: SelectQueryBuilder<any>): this;
|
|
414
|
+
/**
|
|
415
|
+
* Adds a new OR where EXISTS clause
|
|
416
|
+
*/
|
|
417
|
+
orWhereExists(subQuery: SelectQueryBuilder<any>): this;
|
|
405
418
|
/**
|
|
406
419
|
* Adds new AND WHERE with conditions for the given ids.
|
|
407
420
|
*
|
|
@@ -562,6 +575,11 @@ export declare class SelectQueryBuilder<Entity extends ObjectLiteral> extends Qu
|
|
|
562
575
|
* Count excludes all limitations set by setFirstResult and setMaxResults methods call.
|
|
563
576
|
*/
|
|
564
577
|
getCount(): Promise<number>;
|
|
578
|
+
/**
|
|
579
|
+
* Gets exists
|
|
580
|
+
* Returns whether any rows exists matching current query.
|
|
581
|
+
*/
|
|
582
|
+
getExists(): Promise<boolean>;
|
|
565
583
|
/**
|
|
566
584
|
* Executes built SQL query and returns entities and overall entities count (without limitation).
|
|
567
585
|
* This method is useful to build pagination.
|
|
@@ -634,6 +652,7 @@ export declare class SelectQueryBuilder<Entity extends ObjectLiteral> extends Qu
|
|
|
634
652
|
protected findEntityColumnSelects(aliasName: string, metadata: EntityMetadata): SelectQuery[];
|
|
635
653
|
private computeCountExpression;
|
|
636
654
|
protected executeCountQuery(queryRunner: QueryRunner): Promise<number>;
|
|
655
|
+
protected executeExistsQuery(queryRunner: QueryRunner): Promise<boolean>;
|
|
637
656
|
protected applyFindOptions(): void;
|
|
638
657
|
/**
|
|
639
658
|
* Executes sql generated by query builder and returns object with raw results and entities created from them.
|
|
@@ -151,6 +151,10 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
151
151
|
this.expressionMap.selectDistinctOn = distinctOn;
|
|
152
152
|
return this;
|
|
153
153
|
}
|
|
154
|
+
fromDummy() {
|
|
155
|
+
var _a;
|
|
156
|
+
return this.from((_a = this.connection.driver.dummyTableName) !== null && _a !== void 0 ? _a : "(SELECT 1 AS dummy_column)", "dummy_table");
|
|
157
|
+
}
|
|
154
158
|
/**
|
|
155
159
|
* Specifies FROM which entity's table select/update/delete will be executed.
|
|
156
160
|
* Also sets a main string alias of the selection data.
|
|
@@ -368,6 +372,24 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
368
372
|
this.setParameters(parameters);
|
|
369
373
|
return this;
|
|
370
374
|
}
|
|
375
|
+
/**
|
|
376
|
+
* Sets a new where EXISTS clause
|
|
377
|
+
*/
|
|
378
|
+
whereExists(subQuery) {
|
|
379
|
+
return this.where(...this.getExistsCondition(subQuery));
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Adds a new AND where EXISTS clause
|
|
383
|
+
*/
|
|
384
|
+
andWhereExists(subQuery) {
|
|
385
|
+
return this.andWhere(...this.getExistsCondition(subQuery));
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Adds a new OR where EXISTS clause
|
|
389
|
+
*/
|
|
390
|
+
orWhereExists(subQuery) {
|
|
391
|
+
return this.orWhere(...this.getExistsCondition(subQuery));
|
|
392
|
+
}
|
|
371
393
|
/**
|
|
372
394
|
* Adds new AND WHERE with conditions for the given ids.
|
|
373
395
|
*
|
|
@@ -751,6 +773,46 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
751
773
|
await queryRunner.release();
|
|
752
774
|
}
|
|
753
775
|
}
|
|
776
|
+
/**
|
|
777
|
+
* Gets exists
|
|
778
|
+
* Returns whether any rows exists matching current query.
|
|
779
|
+
*/
|
|
780
|
+
async getExists() {
|
|
781
|
+
if (this.expressionMap.lockMode === "optimistic")
|
|
782
|
+
throw new OptimisticLockCanNotBeUsedError_1.OptimisticLockCanNotBeUsedError();
|
|
783
|
+
const queryRunner = this.obtainQueryRunner();
|
|
784
|
+
let transactionStartedByUs = false;
|
|
785
|
+
try {
|
|
786
|
+
// start transaction if it was enabled
|
|
787
|
+
if (this.expressionMap.useTransaction === true &&
|
|
788
|
+
queryRunner.isTransactionActive === false) {
|
|
789
|
+
await queryRunner.startTransaction();
|
|
790
|
+
transactionStartedByUs = true;
|
|
791
|
+
}
|
|
792
|
+
this.expressionMap.queryEntity = false;
|
|
793
|
+
const results = await this.executeExistsQuery(queryRunner);
|
|
794
|
+
// close transaction if we started it
|
|
795
|
+
if (transactionStartedByUs) {
|
|
796
|
+
await queryRunner.commitTransaction();
|
|
797
|
+
}
|
|
798
|
+
return results;
|
|
799
|
+
}
|
|
800
|
+
catch (error) {
|
|
801
|
+
// rollback transaction if we started it
|
|
802
|
+
if (transactionStartedByUs) {
|
|
803
|
+
try {
|
|
804
|
+
await queryRunner.rollbackTransaction();
|
|
805
|
+
}
|
|
806
|
+
catch (rollbackError) { }
|
|
807
|
+
}
|
|
808
|
+
throw error;
|
|
809
|
+
}
|
|
810
|
+
finally {
|
|
811
|
+
if (queryRunner !== this.queryRunner)
|
|
812
|
+
// means we created our own query runner
|
|
813
|
+
await queryRunner.release();
|
|
814
|
+
}
|
|
815
|
+
}
|
|
754
816
|
/**
|
|
755
817
|
* Executes built SQL query and returns entities and overall entities count (without limitation).
|
|
756
818
|
* This method is useful to build pagination.
|
|
@@ -1624,6 +1686,16 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
1624
1686
|
return 0;
|
|
1625
1687
|
return parseInt(results[0]["cnt"]);
|
|
1626
1688
|
}
|
|
1689
|
+
async executeExistsQuery(queryRunner) {
|
|
1690
|
+
const results = await this.connection
|
|
1691
|
+
.createQueryBuilder()
|
|
1692
|
+
.fromDummy()
|
|
1693
|
+
.select("1", "row_exists")
|
|
1694
|
+
.whereExists(this)
|
|
1695
|
+
.limit(1)
|
|
1696
|
+
.loadRawResults(queryRunner);
|
|
1697
|
+
return results.length > 0;
|
|
1698
|
+
}
|
|
1627
1699
|
applyFindOptions() {
|
|
1628
1700
|
// todo: convert relations: string[] to object map to simplify code
|
|
1629
1701
|
// todo: same with selects
|
|
@@ -1868,9 +1940,9 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
1868
1940
|
.offset(this.expressionMap.skip)
|
|
1869
1941
|
.limit(this.expressionMap.take)
|
|
1870
1942
|
.orderBy(orderBys)
|
|
1871
|
-
.cache(this.expressionMap.cache
|
|
1872
|
-
? this.expressionMap.
|
|
1873
|
-
: this.expressionMap.
|
|
1943
|
+
.cache(this.expressionMap.cache && this.expressionMap.cacheId
|
|
1944
|
+
? `${this.expressionMap.cacheId}-pagination`
|
|
1945
|
+
: this.expressionMap.cache, this.expressionMap.cacheDuration)
|
|
1874
1946
|
.setParameters(this.getParameters())
|
|
1875
1947
|
.setNativeParameters(this.expressionMap.nativeParameters)
|
|
1876
1948
|
.getRawMany();
|
|
@@ -2468,7 +2540,7 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
2468
2540
|
const existJoin = this.joins.find((join) => join.alias === joinAlias);
|
|
2469
2541
|
if (!existJoin) {
|
|
2470
2542
|
this.joins.push({
|
|
2471
|
-
type: "
|
|
2543
|
+
type: "left",
|
|
2472
2544
|
select: false,
|
|
2473
2545
|
selection: undefined,
|
|
2474
2546
|
alias: joinAlias,
|
|
@@ -2476,10 +2548,6 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
2476
2548
|
relationMetadata: relation,
|
|
2477
2549
|
});
|
|
2478
2550
|
}
|
|
2479
|
-
else {
|
|
2480
|
-
if (existJoin.type === "left")
|
|
2481
|
-
existJoin.type = "inner";
|
|
2482
|
-
}
|
|
2483
2551
|
const condition = this.buildWhere(where[key], relation.inverseEntityMetadata, joinAlias);
|
|
2484
2552
|
if (condition) {
|
|
2485
2553
|
andConditions.push(condition);
|