@mikro-orm/knex 6.5.7-dev.2 → 6.5.7-dev.20
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/AbstractSqlDriver.d.ts +1 -1
- package/AbstractSqlDriver.js +8 -3
- package/index.mjs +4 -0
- package/package.json +2 -2
- package/query/QueryBuilderHelper.js +4 -0
package/AbstractSqlDriver.d.ts
CHANGED
|
@@ -75,7 +75,7 @@ export declare abstract class AbstractSqlDriver<Connection extends AbstractSqlCo
|
|
|
75
75
|
protected buildPopulateOrderBy<T extends object>(qb: QueryBuilder<T, any, any, any>, meta: EntityMetadata<T>, populateOrderBy: QueryOrderMap<T>[], parentPath: string, explicit: boolean, parentAlias?: string): QueryOrderMap<T>[];
|
|
76
76
|
protected buildJoinedPropsOrderBy<T extends object>(qb: QueryBuilder<T, any, any, any>, meta: EntityMetadata<T>, populate: PopulateOptions<T>[], options?: Pick<FindOptions<any>, 'strategy' | 'orderBy' | 'populateOrderBy'>, parentPath?: string): QueryOrderMap<T>[];
|
|
77
77
|
protected normalizeFields<T extends object>(fields: Field<T>[], prefix?: string): string[];
|
|
78
|
-
protected processField<T extends object>(meta: EntityMetadata<T>, prop: EntityProperty<T> | undefined, field: string, ret: Field<T>[]
|
|
78
|
+
protected processField<T extends object>(meta: EntityMetadata<T>, prop: EntityProperty<T> | undefined, field: string, ret: Field<T>[]): void;
|
|
79
79
|
protected isPopulated<T extends object>(meta: EntityMetadata<T>, prop: EntityProperty<T>, hint: PopulateOptions<T>, name?: string): boolean;
|
|
80
80
|
protected buildFields<T extends object>(meta: EntityMetadata<T>, populate: PopulateOptions<T>[], joinedProps: PopulateOptions<T>[], qb: QueryBuilder<T, any, any, any>, alias: string, options: Pick<FindOptions<T, any, any, any>, 'strategy' | 'fields' | 'exclude'>): Field<T>[];
|
|
81
81
|
}
|
package/AbstractSqlDriver.js
CHANGED
|
@@ -992,6 +992,11 @@ class AbstractSqlDriver extends core_1.DatabaseDriver {
|
|
|
992
992
|
* @internal
|
|
993
993
|
*/
|
|
994
994
|
mapPropToFieldNames(qb, prop, tableAlias) {
|
|
995
|
+
if (prop.kind === core_1.ReferenceKind.EMBEDDED && !prop.object) {
|
|
996
|
+
return Object.values(prop.embeddedProps).flatMap(childProp => {
|
|
997
|
+
return this.mapPropToFieldNames(qb, childProp, tableAlias);
|
|
998
|
+
});
|
|
999
|
+
}
|
|
995
1000
|
const aliased = this.platform.quoteIdentifier(tableAlias ? `${tableAlias}__${prop.fieldNames[0]}` : prop.fieldNames[0]);
|
|
996
1001
|
if (tableAlias && prop.customTypes?.some(type => type?.convertToJSValueSQL)) {
|
|
997
1002
|
return prop.fieldNames.map((col, idx) => {
|
|
@@ -1216,7 +1221,7 @@ class AbstractSqlDriver extends core_1.DatabaseDriver {
|
|
|
1216
1221
|
}
|
|
1217
1222
|
return ret;
|
|
1218
1223
|
}
|
|
1219
|
-
processField(meta, prop, field, ret
|
|
1224
|
+
processField(meta, prop, field, ret) {
|
|
1220
1225
|
if (!prop || (prop.kind === core_1.ReferenceKind.ONE_TO_ONE && !prop.owner)) {
|
|
1221
1226
|
return;
|
|
1222
1227
|
}
|
|
@@ -1229,7 +1234,7 @@ class AbstractSqlDriver extends core_1.DatabaseDriver {
|
|
|
1229
1234
|
const top = parts.shift();
|
|
1230
1235
|
for (const key of Object.keys(prop.embeddedProps)) {
|
|
1231
1236
|
if (!top || key === top) {
|
|
1232
|
-
this.processField(meta, prop.embeddedProps[key], parts.join('.'), ret
|
|
1237
|
+
this.processField(meta, prop.embeddedProps[key], parts.join('.'), ret);
|
|
1233
1238
|
}
|
|
1234
1239
|
}
|
|
1235
1240
|
return;
|
|
@@ -1271,7 +1276,7 @@ class AbstractSqlDriver extends core_1.DatabaseDriver {
|
|
|
1271
1276
|
where: {},
|
|
1272
1277
|
aliasMap: qb.getAliasMap(),
|
|
1273
1278
|
});
|
|
1274
|
-
this.processField(meta, prop, parts.join('.'), ret
|
|
1279
|
+
this.processField(meta, prop, parts.join('.'), ret);
|
|
1275
1280
|
}
|
|
1276
1281
|
if (!options.fields.includes('*') && !options.fields.includes(`${qb.alias}.*`)) {
|
|
1277
1282
|
ret.unshift(...meta.primaryKeys.filter(pk => !options.fields.includes(pk)));
|
package/index.mjs
CHANGED
|
@@ -62,6 +62,7 @@ export const DeadlockException = mod.DeadlockException;
|
|
|
62
62
|
export const DecimalType = mod.DecimalType;
|
|
63
63
|
export const DefaultLogger = mod.DefaultLogger;
|
|
64
64
|
export const DeferMode = mod.DeferMode;
|
|
65
|
+
export const DefineConfig = mod.DefineConfig;
|
|
65
66
|
export const DoubleType = mod.DoubleType;
|
|
66
67
|
export const DriverException = mod.DriverException;
|
|
67
68
|
export const EagerProps = mod.EagerProps;
|
|
@@ -102,6 +103,7 @@ export const ForeignKeyConstraintViolationException = mod.ForeignKeyConstraintVi
|
|
|
102
103
|
export const Formula = mod.Formula;
|
|
103
104
|
export const GeneratedCacheAdapter = mod.GeneratedCacheAdapter;
|
|
104
105
|
export const GroupOperator = mod.GroupOperator;
|
|
106
|
+
export const Hidden = mod.Hidden;
|
|
105
107
|
export const HiddenProps = mod.HiddenProps;
|
|
106
108
|
export const Hydrator = mod.Hydrator;
|
|
107
109
|
export const IdentityMap = mod.IdentityMap;
|
|
@@ -156,6 +158,7 @@ export const OneToManyOptionsBuilder = mod.OneToManyOptionsBuilder;
|
|
|
156
158
|
export const OneToManyOptionsBuilderOnlyMappedBy = mod.OneToManyOptionsBuilderOnlyMappedBy;
|
|
157
159
|
export const OneToOne = mod.OneToOne;
|
|
158
160
|
export const OneToOneOptionsBuilder = mod.OneToOneOptionsBuilder;
|
|
161
|
+
export const Opt = mod.Opt;
|
|
159
162
|
export const OptimisticLockError = mod.OptimisticLockError;
|
|
160
163
|
export const OptionalProps = mod.OptionalProps;
|
|
161
164
|
export const PlainObject = mod.PlainObject;
|
|
@@ -183,6 +186,7 @@ export const ReferenceKind = mod.ReferenceKind;
|
|
|
183
186
|
export const ReferenceOptionsBuilder = mod.ReferenceOptionsBuilder;
|
|
184
187
|
export const ReflectMetadataProvider = mod.ReflectMetadataProvider;
|
|
185
188
|
export const RequestContext = mod.RequestContext;
|
|
189
|
+
export const RequiredNullable = mod.RequiredNullable;
|
|
186
190
|
export const SCALAR_TYPES = mod.SCALAR_TYPES;
|
|
187
191
|
export const ScalarCriteriaNode = mod.ScalarCriteriaNode;
|
|
188
192
|
export const ScalarReference = mod.ScalarReference;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mikro-orm/knex",
|
|
3
|
-
"version": "6.5.7-dev.
|
|
3
|
+
"version": "6.5.7-dev.20",
|
|
4
4
|
"description": "TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, PostgreSQL and SQLite databases as well as usage with vanilla JavaScript.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"module": "index.mjs",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"@mikro-orm/core": "^6.5.6"
|
|
67
67
|
},
|
|
68
68
|
"peerDependencies": {
|
|
69
|
-
"@mikro-orm/core": "6.5.7-dev.
|
|
69
|
+
"@mikro-orm/core": "6.5.7-dev.20",
|
|
70
70
|
"better-sqlite3": "*",
|
|
71
71
|
"libsql": "*",
|
|
72
72
|
"mariadb": "*"
|
|
@@ -281,6 +281,10 @@ class QueryBuilderHelper {
|
|
|
281
281
|
}
|
|
282
282
|
const [fromAlias, fromField] = this.splitField(key);
|
|
283
283
|
const prop = this.getProperty(fromField, fromAlias);
|
|
284
|
+
if (core_1.Utils.isPlainObject(value) && prop?.kind === core_1.ReferenceKind.EMBEDDED) {
|
|
285
|
+
const parts = Object.entries(value).map(([k, v]) => this.processJoinClause(`${alias}.${prop.embeddedProps[k].name}`, v, alias, params));
|
|
286
|
+
return this.wrapQueryGroup(parts);
|
|
287
|
+
}
|
|
284
288
|
operator = operator === '$not' ? '$eq' : operator;
|
|
285
289
|
const column = this.mapper(key, undefined, undefined, null);
|
|
286
290
|
if (value === null) {
|