typeorm 0.3.27-dev.fa3cd43 → 0.3.28-dev.02e7b71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -5
- package/browser/data-source/BaseDataSourceOptions.d.ts +18 -0
- package/browser/data-source/BaseDataSourceOptions.js.map +1 -1
- package/browser/decorator/columns/Column.d.ts +7 -7
- package/browser/decorator/columns/Column.js +1 -1
- package/browser/decorator/columns/Column.js.map +1 -1
- package/browser/decorator/options/ColumnNumericOptions.d.ts +8 -1
- package/browser/decorator/options/ColumnNumericOptions.js.map +1 -1
- package/browser/decorator/options/ColumnOptions.d.ts +6 -0
- package/browser/decorator/options/ColumnOptions.js.map +1 -1
- package/browser/decorator/options/ColumnUnsignedOptions.d.ts +28 -0
- package/browser/decorator/options/ColumnUnsignedOptions.js +3 -0
- package/browser/decorator/options/ColumnUnsignedOptions.js.map +1 -0
- package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +3 -0
- package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
- package/browser/decorator/tree/TreeChildren.d.ts +1 -1
- package/browser/decorator/tree/TreeChildren.js +1 -1
- package/browser/decorator/tree/TreeChildren.js.map +1 -1
- package/browser/decorator/tree/TreeParent.d.ts +1 -1
- package/browser/decorator/tree/TreeParent.js +1 -1
- package/browser/decorator/tree/TreeParent.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.d.ts +15 -19
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.js +7 -27
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +9 -9
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +17 -15
- package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachDriver.d.ts +1 -1
- package/browser/driver/cockroachdb/CockroachDriver.js +1 -1
- package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/browser/driver/mongodb/MongoConnectionOptions.d.ts +16 -0
- package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
- package/browser/driver/mongodb/MongoDriver.js +5 -0
- package/browser/driver/mongodb/MongoDriver.js.map +1 -1
- package/browser/driver/mongodb/MongoQueryRunner.d.ts +4 -4
- package/browser/driver/mongodb/MongoQueryRunner.js +5 -5
- package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/browser/driver/mongodb/typings.d.ts +6 -1
- package/browser/driver/mongodb/typings.js.map +1 -1
- package/browser/driver/mysql/MysqlDriver.d.ts +23 -19
- package/browser/driver/mysql/MysqlDriver.js +63 -29
- package/browser/driver/mysql/MysqlDriver.js.map +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.d.ts +3 -2
- package/browser/driver/mysql/MysqlQueryRunner.js +14 -8
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/browser/driver/oracle/OracleQueryRunner.d.ts +2 -2
- package/browser/driver/oracle/OracleQueryRunner.js +2 -2
- package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.d.ts +2 -2
- package/browser/driver/postgres/PostgresDriver.js +42 -3
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.js +7 -0
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/sap/SapDriver.js +7 -1
- package/browser/driver/sap/SapDriver.js.map +1 -1
- package/browser/driver/sap/SapQueryRunner.d.ts +1 -1
- package/browser/driver/sap/SapQueryRunner.js +1 -1
- package/browser/driver/sap/SapQueryRunner.js.map +1 -1
- package/browser/driver/spanner/SpannerConnectionOptions.d.ts +0 -5
- package/browser/driver/spanner/SpannerConnectionOptions.js.map +1 -1
- package/browser/driver/spanner/SpannerDriver.d.ts +0 -4
- package/browser/driver/spanner/SpannerDriver.js +0 -4
- package/browser/driver/spanner/SpannerDriver.js.map +1 -1
- package/browser/driver/spanner/SpannerQueryRunner.d.ts +1 -1
- package/browser/driver/spanner/SpannerQueryRunner.js +1 -1
- package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +2 -2
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +2 -2
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/MssqlParameter.d.ts +1 -0
- package/browser/driver/sqlserver/MssqlParameter.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +5 -0
- package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerDriver.js +26 -1
- package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +17 -6
- package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/browser/driver/types/ColumnTypes.d.ts +4 -4
- package/browser/driver/types/ColumnTypes.js.map +1 -1
- package/browser/entity-schema/EntitySchemaOptions.d.ts +2 -0
- package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaTransformer.js +9 -0
- package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/browser/find-options/FindOptionsUtils.d.ts +0 -161
- package/browser/find-options/FindOptionsUtils.js +0 -161
- package/browser/find-options/FindOptionsUtils.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataBuilder.js +1 -8
- package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/browser/query-builder/QueryBuilder.js +26 -12
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.js +42 -35
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-runner/QueryRunner.d.ts +1 -1
- package/browser/query-runner/QueryRunner.js.map +1 -1
- package/commands/InitCommand.js +24 -16
- package/commands/InitCommand.js.map +1 -1
- package/data-source/BaseDataSourceOptions.d.ts +18 -0
- package/data-source/BaseDataSourceOptions.js.map +1 -1
- package/decorator/columns/Column.d.ts +7 -7
- package/decorator/columns/Column.js +1 -1
- package/decorator/columns/Column.js.map +1 -1
- package/decorator/options/ColumnNumericOptions.d.ts +8 -1
- package/decorator/options/ColumnNumericOptions.js.map +1 -1
- package/decorator/options/ColumnOptions.d.ts +6 -0
- package/decorator/options/ColumnOptions.js.map +1 -1
- package/decorator/options/ColumnUnsignedOptions.d.ts +28 -0
- package/decorator/options/{ColumnWithWidthOptions.js → ColumnUnsignedOptions.js} +1 -1
- package/decorator/options/ColumnUnsignedOptions.js.map +1 -0
- package/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +3 -0
- package/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
- package/decorator/tree/TreeChildren.d.ts +1 -1
- package/decorator/tree/TreeChildren.js +1 -1
- package/decorator/tree/TreeChildren.js.map +1 -1
- package/decorator/tree/TreeParent.d.ts +1 -1
- package/decorator/tree/TreeParent.js +1 -1
- package/decorator/tree/TreeParent.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlDriver.d.ts +15 -19
- package/driver/aurora-mysql/AuroraMysqlDriver.js +7 -27
- package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +9 -9
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +17 -15
- package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
- package/driver/cockroachdb/CockroachDriver.d.ts +1 -1
- package/driver/cockroachdb/CockroachDriver.js +1 -1
- package/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/driver/mongodb/MongoConnectionOptions.d.ts +16 -0
- package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
- package/driver/mongodb/MongoDriver.js +5 -0
- package/driver/mongodb/MongoDriver.js.map +1 -1
- package/driver/mongodb/MongoQueryRunner.d.ts +4 -4
- package/driver/mongodb/MongoQueryRunner.js +5 -5
- package/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/driver/mongodb/typings.d.ts +6 -1
- package/driver/mongodb/typings.js.map +1 -1
- package/driver/mysql/MysqlDriver.d.ts +23 -19
- package/driver/mysql/MysqlDriver.js +63 -29
- package/driver/mysql/MysqlDriver.js.map +1 -1
- package/driver/mysql/MysqlQueryRunner.d.ts +3 -2
- package/driver/mysql/MysqlQueryRunner.js +14 -8
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/driver/oracle/OracleQueryRunner.d.ts +2 -2
- package/driver/oracle/OracleQueryRunner.js +2 -2
- package/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/driver/postgres/PostgresDriver.d.ts +2 -2
- package/driver/postgres/PostgresDriver.js +42 -3
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.js +7 -0
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/sap/SapDriver.js +8 -2
- package/driver/sap/SapDriver.js.map +1 -1
- package/driver/sap/SapQueryRunner.d.ts +1 -1
- package/driver/sap/SapQueryRunner.js +1 -1
- package/driver/sap/SapQueryRunner.js.map +1 -1
- package/driver/spanner/SpannerConnectionOptions.d.ts +0 -5
- package/driver/spanner/SpannerConnectionOptions.js.map +1 -1
- package/driver/spanner/SpannerDriver.d.ts +0 -4
- package/driver/spanner/SpannerDriver.js +0 -4
- package/driver/spanner/SpannerDriver.js.map +1 -1
- package/driver/spanner/SpannerQueryRunner.d.ts +1 -1
- package/driver/spanner/SpannerQueryRunner.js +1 -1
- package/driver/spanner/SpannerQueryRunner.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +2 -2
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +2 -2
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/driver/sqlserver/MssqlParameter.d.ts +1 -0
- package/driver/sqlserver/MssqlParameter.js.map +1 -1
- package/driver/sqlserver/SqlServerConnectionOptions.d.ts +5 -0
- package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
- package/driver/sqlserver/SqlServerDriver.js +26 -1
- package/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.d.ts +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.js +17 -6
- package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/driver/types/ColumnTypes.d.ts +4 -4
- package/driver/types/ColumnTypes.js.map +1 -1
- package/entity-schema/EntitySchemaOptions.d.ts +2 -0
- package/entity-schema/EntitySchemaOptions.js.map +1 -1
- package/entity-schema/EntitySchemaTransformer.js +9 -0
- package/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/find-options/FindOptionsUtils.d.ts +0 -161
- package/find-options/FindOptionsUtils.js +0 -161
- package/find-options/FindOptionsUtils.js.map +1 -1
- package/metadata-builder/EntityMetadataBuilder.js +1 -8
- package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/package.json +1 -1
- package/query-builder/QueryBuilder.js +26 -12
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/SelectQueryBuilder.js +42 -35
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-runner/QueryRunner.d.ts +1 -1
- package/query-runner/QueryRunner.js.map +1 -1
- package/browser/decorator/options/ColumnWithWidthOptions.d.ts +0 -19
- package/browser/decorator/options/ColumnWithWidthOptions.js +0 -3
- package/browser/decorator/options/ColumnWithWidthOptions.js.map +0 -1
- package/decorator/options/ColumnWithWidthOptions.d.ts +0 -19
- package/decorator/options/ColumnWithWidthOptions.js.map +0 -1
|
@@ -2504,22 +2504,47 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
2504
2504
|
else {
|
|
2505
2505
|
const andConditions = [];
|
|
2506
2506
|
for (const key in where) {
|
|
2507
|
-
|
|
2508
|
-
continue;
|
|
2507
|
+
let parameterValue = where[key];
|
|
2509
2508
|
const propertyPath = embedPrefix ? embedPrefix + "." + key : key;
|
|
2510
2509
|
const column = metadata.findColumnWithPropertyPathStrict(propertyPath);
|
|
2511
2510
|
const embed = metadata.findEmbeddedWithPropertyPath(propertyPath);
|
|
2512
2511
|
const relation = metadata.findRelationWithPropertyPath(propertyPath);
|
|
2513
|
-
if (!embed && !column && !relation)
|
|
2512
|
+
if (!embed && !column && !relation) {
|
|
2514
2513
|
throw new EntityPropertyNotFoundError_1.EntityPropertyNotFoundError(propertyPath, metadata);
|
|
2514
|
+
}
|
|
2515
|
+
if (parameterValue === undefined) {
|
|
2516
|
+
const undefinedBehavior = this.connection.options.invalidWhereValuesBehavior
|
|
2517
|
+
?.undefined || "ignore";
|
|
2518
|
+
if (undefinedBehavior === "throw") {
|
|
2519
|
+
throw new error_1.TypeORMError(`Undefined value encountered in property '${alias}.${key}' of a where condition. ` +
|
|
2520
|
+
`Set 'invalidWhereValuesBehavior.undefined' to 'ignore' in connection options to skip properties with undefined values.`);
|
|
2521
|
+
}
|
|
2522
|
+
continue;
|
|
2523
|
+
}
|
|
2524
|
+
if (parameterValue === null) {
|
|
2525
|
+
const nullBehavior = this.connection.options.invalidWhereValuesBehavior
|
|
2526
|
+
?.null || "ignore";
|
|
2527
|
+
if (nullBehavior === "ignore") {
|
|
2528
|
+
continue;
|
|
2529
|
+
}
|
|
2530
|
+
else if (nullBehavior === "throw") {
|
|
2531
|
+
throw new error_1.TypeORMError(`Null value encountered in property '${alias}.${key}' of a where condition. ` +
|
|
2532
|
+
`To match with SQL NULL, the IsNull() operator must be used. ` +
|
|
2533
|
+
`Set 'invalidWhereValuesBehavior.null' to 'ignore' or 'sql-null' in connection options to skip or handle null values.`);
|
|
2534
|
+
}
|
|
2535
|
+
// 'sql-null' behavior continues to the next logic
|
|
2536
|
+
}
|
|
2515
2537
|
if (column) {
|
|
2516
2538
|
let aliasPath = `${alias}.${propertyPath}`;
|
|
2517
2539
|
if (column.isVirtualProperty && column.query) {
|
|
2518
2540
|
aliasPath = `(${column.query(this.escape(alias))})`;
|
|
2519
2541
|
}
|
|
2542
|
+
if (parameterValue === null) {
|
|
2543
|
+
andConditions.push(`${aliasPath} IS NULL`);
|
|
2544
|
+
continue;
|
|
2545
|
+
}
|
|
2520
2546
|
// const parameterName = alias + "_" + propertyPath.split(".").join("_") + "_" + parameterIndex;
|
|
2521
2547
|
// todo: we need to handle other operators as well?
|
|
2522
|
-
let parameterValue = where[key];
|
|
2523
2548
|
if (InstanceChecker_1.InstanceChecker.isEqualOperator(where[key])) {
|
|
2524
2549
|
parameterValue = where[key].value;
|
|
2525
2550
|
}
|
|
@@ -2535,37 +2560,6 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
2535
2560
|
if (this.connection.driver.options.type === "mssql") {
|
|
2536
2561
|
parameterValue = this.connection.driver.parametrizeValues(column, parameterValue);
|
|
2537
2562
|
}
|
|
2538
|
-
// if (parameterValue === null) {
|
|
2539
|
-
// andConditions.push(`${aliasPath} IS NULL`);
|
|
2540
|
-
//
|
|
2541
|
-
// } else if (parameterValue instanceof FindOperator) {
|
|
2542
|
-
// // let parameters: any[] = [];
|
|
2543
|
-
// // if (parameterValue.useParameter) {
|
|
2544
|
-
// // const realParameterValues: any[] = parameterValue.multipleParameters ? parameterValue.value : [parameterValue.value];
|
|
2545
|
-
// // realParameterValues.forEach((realParameterValue, realParameterValueIndex) => {
|
|
2546
|
-
// //
|
|
2547
|
-
// // // don't create parameters for number to prevent max number of variables issues as much as possible
|
|
2548
|
-
// // if (typeof realParameterValue === "number") {
|
|
2549
|
-
// // parameters.push(realParameterValue);
|
|
2550
|
-
// //
|
|
2551
|
-
// // } else {
|
|
2552
|
-
// // this.expressionMap.nativeParameters[parameterName + realParameterValueIndex] = realParameterValue;
|
|
2553
|
-
// // parameterIndex++;
|
|
2554
|
-
// // parameters.push(this.connection.driver.createParameter(parameterName + realParameterValueIndex, parameterIndex - 1));
|
|
2555
|
-
// // }
|
|
2556
|
-
// // });
|
|
2557
|
-
// // }
|
|
2558
|
-
// andConditions.push(
|
|
2559
|
-
// this.createWhereConditionExpression(this.getWherePredicateCondition(aliasPath, parameterValue))
|
|
2560
|
-
// // parameterValue.toSql(this.connection, aliasPath, parameters));
|
|
2561
|
-
// )
|
|
2562
|
-
//
|
|
2563
|
-
// } else {
|
|
2564
|
-
// this.expressionMap.nativeParameters[parameterName] = parameterValue;
|
|
2565
|
-
// parameterIndex++;
|
|
2566
|
-
// const parameter = this.connection.driver.createParameter(parameterName, parameterIndex - 1);
|
|
2567
|
-
// andConditions.push(`${aliasPath} = ${parameter}`);
|
|
2568
|
-
// }
|
|
2569
2563
|
andConditions.push(this.createWhereConditionExpression(this.getWherePredicateCondition(aliasPath, parameterValue)));
|
|
2570
2564
|
// this.conditions.push(`${alias}.${propertyPath} = :${paramName}`);
|
|
2571
2565
|
// this.expressionMap.parameters[paramName] = where[key]; // todo: handle functions and other edge cases
|
|
@@ -2576,6 +2570,19 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
2576
2570
|
andConditions.push(condition);
|
|
2577
2571
|
}
|
|
2578
2572
|
else if (relation) {
|
|
2573
|
+
if (where[key] === null) {
|
|
2574
|
+
const nullBehavior = this.connection.options.invalidWhereValuesBehavior
|
|
2575
|
+
?.null || "ignore";
|
|
2576
|
+
if (nullBehavior === "sql-null") {
|
|
2577
|
+
andConditions.push(`${alias}.${propertyPath} IS NULL`);
|
|
2578
|
+
}
|
|
2579
|
+
else if (nullBehavior === "throw") {
|
|
2580
|
+
throw new error_1.TypeORMError(`Null value encountered in property '${alias}.${key}' of a where condition. ` +
|
|
2581
|
+
`Set 'invalidWhereValuesBehavior.null' to 'ignore' or 'sql-null' in connection options to skip or handle null values.`);
|
|
2582
|
+
}
|
|
2583
|
+
// 'ignore' behavior falls through to continue
|
|
2584
|
+
continue;
|
|
2585
|
+
}
|
|
2579
2586
|
// if all properties of where are undefined we don't need to join anything
|
|
2580
2587
|
// this can happen when user defines map with conditional queries inside
|
|
2581
2588
|
if (typeof where[key] === "object") {
|