@mikro-orm/core 7.0.0-dev.189 → 7.0.0-dev.190
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/package.json +1 -1
- package/typings.d.ts +33 -9
- package/utils/Utils.js +1 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mikro-orm/core",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "7.0.0-dev.
|
|
4
|
+
"version": "7.0.0-dev.190",
|
|
5
5
|
"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.",
|
|
6
6
|
"exports": {
|
|
7
7
|
"./package.json": "./package.json",
|
package/typings.d.ts
CHANGED
|
@@ -41,6 +41,30 @@ export type IsAny<T> = 0 extends (1 & T) ? true : false;
|
|
|
41
41
|
export type IsNever<T, True = true, False = false> = [T] extends [never] ? True : False;
|
|
42
42
|
export type MaybePromise<T> = T | Promise<T>;
|
|
43
43
|
export type NoInfer<T> = [T][T extends any ? 0 : never];
|
|
44
|
+
/**
|
|
45
|
+
* Structural type for matching Collection without triggering full interface evaluation.
|
|
46
|
+
* Using `T extends CollectionShape` instead of `T extends Collection<any, any>` avoids
|
|
47
|
+
* forcing TypeScript to evaluate Collection's 30+ methods, preventing instantiation explosion
|
|
48
|
+
* (~133k → ~2k instantiations).
|
|
49
|
+
*
|
|
50
|
+
* Usage:
|
|
51
|
+
* - Matching only: `T extends CollectionShape`
|
|
52
|
+
* - With inference: `T extends CollectionShape<infer U>`
|
|
53
|
+
*/
|
|
54
|
+
type CollectionShape<T = any> = {
|
|
55
|
+
[k: number]: T;
|
|
56
|
+
readonly owner: object;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Structural type for matching LoadedCollection (extends CollectionShape with `$` property).
|
|
60
|
+
*
|
|
61
|
+
* Usage:
|
|
62
|
+
* - Matching only: `T extends LoadedCollectionShape`
|
|
63
|
+
* - With inference: `T extends LoadedCollectionShape<infer U>`
|
|
64
|
+
*/
|
|
65
|
+
type LoadedCollectionShape<T = any> = CollectionShape<T> & {
|
|
66
|
+
$: any;
|
|
67
|
+
};
|
|
44
68
|
export type UnionKeys<T> = T extends any ? keyof T : never;
|
|
45
69
|
export type UnionPropertyType<T, K extends PropertyKey> = T extends any ? K extends keyof T ? T[K] : never : never;
|
|
46
70
|
export type MergeUnion<T> = [T] extends [object] ? T extends Scalar ? T : {
|
|
@@ -245,11 +269,11 @@ type NonArrayObject = object & {
|
|
|
245
269
|
export type EntityDataProp<T, C extends boolean> = T extends Date ? string | Date : T extends Scalar ? T : T extends {
|
|
246
270
|
__runtime?: infer Runtime;
|
|
247
271
|
__raw?: infer Raw;
|
|
248
|
-
} ? (C extends true ? Raw : Runtime) : T extends Reference<infer U> ? EntityDataNested<U, C> : T extends ScalarReference<infer U> ? EntityDataProp<U, C> : T extends
|
|
272
|
+
} ? (C extends true ? Raw : Runtime) : T extends Reference<infer U> ? EntityDataNested<U, C> : T extends ScalarReference<infer U> ? EntityDataProp<U, C> : T extends CollectionShape<infer U> ? U | U[] | EntityDataNested<U & object, C> | EntityDataNested<U & object, C>[] : T extends readonly (infer U)[] ? U extends NonArrayObject ? U | U[] | EntityDataNested<U, C> | EntityDataNested<U, C>[] : U[] | EntityDataNested<U, C>[] : EntityDataNested<T, C>;
|
|
249
273
|
export type RequiredEntityDataProp<T, O, C extends boolean> = T extends Date ? string | Date : Exclude<T, null> extends RequiredNullable.Brand ? T | null : T extends Scalar ? T : T extends {
|
|
250
274
|
__runtime?: infer Runtime;
|
|
251
275
|
__raw?: infer Raw;
|
|
252
|
-
} ? (C extends true ? Raw : Runtime) : T extends Reference<infer U> ? RequiredEntityDataNested<U, O, C> : T extends ScalarReference<infer U> ? RequiredEntityDataProp<U, O, C> : T extends
|
|
276
|
+
} ? (C extends true ? Raw : Runtime) : T extends Reference<infer U> ? RequiredEntityDataNested<U, O, C> : T extends ScalarReference<infer U> ? RequiredEntityDataProp<U, O, C> : T extends CollectionShape<infer U> ? U | U[] | RequiredEntityDataNested<U & object, O, C> | RequiredEntityDataNested<U & object, O, C>[] : T extends readonly (infer U)[] ? U extends NonArrayObject ? U | U[] | RequiredEntityDataNested<U, O, C> | RequiredEntityDataNested<U, O, C>[] : U[] | RequiredEntityDataNested<U, O, C>[] : RequiredEntityDataNested<T, O, C>;
|
|
253
277
|
export type EntityDataNested<T, C extends boolean = false> = T extends undefined ? never : T extends any[] ? Readonly<T> : EntityData<T, C> | ExpandEntityProp<T, C>;
|
|
254
278
|
type EntityDataItem<T, C extends boolean> = C extends false ? T | EntityDataProp<T, C> | null : EntityDataProp<T, C> | null;
|
|
255
279
|
export type RequiredEntityDataNested<T, O, C extends boolean> = T extends any[] ? Readonly<T> : RequiredEntityData<T, O> | ExpandRequiredEntityProp<T, O, C>;
|
|
@@ -265,7 +289,7 @@ type RequiredNullableKeys<T> = {
|
|
|
265
289
|
[K in keyof T]: Exclude<T[K], null> extends RequiredNullable.Brand ? K : never;
|
|
266
290
|
}[keyof T];
|
|
267
291
|
type ProbablyOptionalProps<T> = PrimaryProperty<T> | ExplicitlyOptionalProps<T> | Exclude<NonNullable<NullableKeys<T, null | undefined>>, RequiredNullableKeys<T>>;
|
|
268
|
-
type IsOptional<T, K extends keyof T, I> = T[K] extends
|
|
292
|
+
type IsOptional<T, K extends keyof T, I> = T[K] extends CollectionShape ? true : ExtractType<T[K]> extends I ? true : K extends ProbablyOptionalProps<T> ? true : false;
|
|
269
293
|
type RequiredKeys<T, K extends keyof T, I> = IsOptional<T, K, I> extends false ? CleanKeys<T, K> : never;
|
|
270
294
|
type OptionalKeys<T, K extends keyof T, I> = IsOptional<T, K, I> extends false ? never : CleanKeys<T, K>;
|
|
271
295
|
export type EntityData<T, C extends boolean = false> = {
|
|
@@ -311,7 +335,7 @@ type PrimaryOrObject<T, U, C extends TypeConfig> = PreferExplicitConfig<C, Extra
|
|
|
311
335
|
} : Primary<U>;
|
|
312
336
|
export type EntityDTOProp<E, T, C extends TypeConfig = never> = T extends Scalar ? T : T extends {
|
|
313
337
|
__serialized?: infer U;
|
|
314
|
-
} ? (IsUnknown<U> extends false ? U : T) : T extends LoadedReference<infer U> ? EntityDTO<U, C> : T extends Reference<infer U> ? PrimaryOrObject<E, U, C> : T extends ScalarReference<infer U> ? U : T extends
|
|
338
|
+
} ? (IsUnknown<U> extends false ? U : T) : T extends LoadedReference<infer U> ? EntityDTO<U, C> : T extends Reference<infer U> ? PrimaryOrObject<E, U, C> : T extends ScalarReference<infer U> ? U : T extends LoadedCollectionShape<infer U> ? EntityDTO<U & object, C>[] : T extends CollectionShape<infer U> ? PrimaryOrObject<E, U & object, C>[] : T extends readonly (infer U)[] ? U extends Scalar ? T : EntityDTOProp<E, U, C>[] : T extends Relation<T> ? EntityDTO<T, C> : T;
|
|
315
339
|
type DTOProbablyOptionalProps<T> = NonNullable<NullableKeys<T, undefined>>;
|
|
316
340
|
type DTOIsOptional<T, K extends keyof T> = T[K] extends LoadedCollection<any> ? false : K extends PrimaryProperty<T> ? false : K extends DTOProbablyOptionalProps<T> ? true : false;
|
|
317
341
|
type DTORequiredKeys<T, K extends keyof T> = DTOIsOptional<T, K> extends false ? ExcludeHidden<T, K> & CleanKeys<T, K> : never;
|
|
@@ -770,21 +794,21 @@ export type PopulateOptions<T> = {
|
|
|
770
794
|
dataOnly?: boolean;
|
|
771
795
|
};
|
|
772
796
|
type Loadable<T extends object> = Collection<T, any> | Reference<T> | Ref<T> | readonly T[];
|
|
773
|
-
type ExtractType<T> = T extends
|
|
797
|
+
type ExtractType<T> = T extends CollectionShape<infer U> ? U : T extends Reference<infer U> ? U : T extends Ref<infer U> ? U : T extends readonly (infer U)[] ? U : T;
|
|
774
798
|
type ExtractStringKeys<T> = {
|
|
775
799
|
[K in keyof T]-?: CleanKeys<T, K>;
|
|
776
800
|
}[keyof T] & {};
|
|
777
|
-
type StringKeys<T, E extends string = never> = T extends
|
|
801
|
+
type StringKeys<T, E extends string = never> = T extends CollectionShape ? ExtractStringKeys<ExtractType<T>> | E : T extends Reference<any> ? ExtractStringKeys<ExtractType<T>> | E : T extends object ? ExtractStringKeys<ExtractType<T>> | E : never;
|
|
778
802
|
type GetStringKey<T, K extends StringKeys<T, string>, E extends string> = K extends keyof T ? ExtractType<T[K]> : (K extends E ? keyof T : never);
|
|
779
803
|
type Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
|
780
804
|
type CollectionKeys<T> = T extends object ? {
|
|
781
|
-
[K in keyof T]-?: T[K] extends
|
|
805
|
+
[K in keyof T]-?: T[K] extends CollectionShape ? IsAny<T[K]> extends true ? never : K & string : never;
|
|
782
806
|
}[keyof T] & {} : never;
|
|
783
807
|
export type AutoPath<O, P extends string | boolean, E extends string = never, D extends Prev[number] = 9> = P extends boolean ? P : [D] extends [never] ? never : P extends any ? P extends string ? (P & `${string}.` extends never ? P : P & `${string}.`) extends infer Q ? Q extends `${infer A}.${infer B}` ? A extends StringKeys<O, E> ? `${A}.${AutoPath<NonNullable<GetStringKey<O, A, E>>, B, E, Prev[D]>}` : never : Q extends StringKeys<O, E> ? (NonNullable<GetStringKey<O, Q, E>> extends unknown ? Exclude<P, `${string}.`> : never) | (StringKeys<NonNullable<GetStringKey<O, Q, E>>, E> extends never ? never : `${Q & string}.`) : StringKeys<O, E> | `${CollectionKeys<O>}:ref` : never : never : never;
|
|
784
808
|
export type UnboxArray<T> = T extends any[] ? ArrayElement<T> : T;
|
|
785
809
|
export type ArrayElement<ArrayType extends unknown[]> = ArrayType extends (infer ElementType)[] ? ElementType : never;
|
|
786
|
-
export type ExpandProperty<T> = T extends Reference<infer U> ? NonNullable<U> : T extends
|
|
787
|
-
type LoadedLoadable<T, E extends object> = T extends
|
|
810
|
+
export type ExpandProperty<T> = T extends Reference<infer U> ? NonNullable<U> : T extends CollectionShape<infer U> ? NonNullable<U> : T extends (infer U)[] ? NonNullable<U> : NonNullable<T>;
|
|
811
|
+
type LoadedLoadable<T, E extends object> = T extends CollectionShape ? LoadedCollection<E> : T extends Reference<any> ? T & LoadedReference<E> : T extends ScalarReference<infer U> ? LoadedScalarReference<U> : T extends Scalar ? T : T extends (infer U)[] ? U extends Scalar ? T : E[] : E;
|
|
788
812
|
type IsTrue<T> = IsNever<T> extends true ? false : T extends boolean ? T extends true ? true : false : false;
|
|
789
813
|
type StringLiteral<T> = T extends string ? string extends T ? never : T : never;
|
|
790
814
|
type Prefix<T, K> = K extends `${infer S}.${string}` ? S : (K extends '*' ? keyof T : K);
|
package/utils/Utils.js
CHANGED
|
@@ -123,7 +123,7 @@ export function parseJsonSafe(value) {
|
|
|
123
123
|
}
|
|
124
124
|
export class Utils {
|
|
125
125
|
static PK_SEPARATOR = '~~~';
|
|
126
|
-
static #ORM_VERSION = '7.0.0-dev.
|
|
126
|
+
static #ORM_VERSION = '7.0.0-dev.190';
|
|
127
127
|
/**
|
|
128
128
|
* Checks if the argument is instance of `Object`. Returns false for arrays.
|
|
129
129
|
*/
|