@mikro-orm/core 7.0.0-dev.12 → 7.0.0-dev.121
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/EntityManager.d.ts +85 -56
- package/EntityManager.js +332 -293
- package/MikroORM.d.ts +41 -32
- package/MikroORM.js +100 -140
- package/README.md +3 -2
- package/cache/FileCacheAdapter.d.ts +1 -1
- package/cache/FileCacheAdapter.js +8 -7
- package/cache/GeneratedCacheAdapter.d.ts +0 -1
- package/cache/GeneratedCacheAdapter.js +0 -2
- package/cache/index.d.ts +0 -1
- package/cache/index.js +0 -1
- package/connections/Connection.d.ts +16 -7
- package/connections/Connection.js +23 -14
- package/drivers/DatabaseDriver.d.ts +25 -16
- package/drivers/DatabaseDriver.js +40 -24
- package/drivers/IDatabaseDriver.d.ts +38 -17
- package/entity/BaseEntity.d.ts +0 -1
- package/entity/BaseEntity.js +0 -3
- package/entity/Collection.d.ts +95 -30
- package/entity/Collection.js +439 -99
- package/entity/EntityAssigner.d.ts +1 -1
- package/entity/EntityAssigner.js +26 -18
- package/entity/EntityFactory.d.ts +7 -0
- package/entity/EntityFactory.js +72 -53
- package/entity/EntityHelper.d.ts +2 -2
- package/entity/EntityHelper.js +30 -15
- package/entity/EntityLoader.d.ts +7 -6
- package/entity/EntityLoader.js +84 -72
- package/entity/EntityRepository.d.ts +1 -1
- package/entity/EntityRepository.js +2 -2
- package/entity/Reference.d.ts +6 -5
- package/entity/Reference.js +34 -9
- package/entity/WrappedEntity.d.ts +2 -7
- package/entity/WrappedEntity.js +3 -8
- package/entity/defineEntity.d.ts +568 -0
- package/entity/defineEntity.js +529 -0
- package/entity/index.d.ts +3 -2
- package/entity/index.js +3 -2
- package/entity/utils.d.ts +7 -0
- package/entity/utils.js +16 -4
- package/entity/validators.d.ts +11 -0
- package/entity/validators.js +65 -0
- package/enums.d.ts +21 -6
- package/enums.js +14 -1
- package/errors.d.ts +17 -9
- package/errors.js +41 -21
- package/events/EventManager.d.ts +2 -1
- package/events/EventManager.js +19 -11
- package/hydration/Hydrator.js +1 -2
- package/hydration/ObjectHydrator.d.ts +4 -4
- package/hydration/ObjectHydrator.js +50 -33
- package/index.d.ts +2 -2
- package/index.js +1 -2
- package/logging/DefaultLogger.d.ts +1 -1
- package/logging/DefaultLogger.js +1 -0
- package/logging/SimpleLogger.d.ts +1 -1
- package/logging/colors.d.ts +1 -1
- package/logging/colors.js +7 -6
- package/logging/index.d.ts +1 -0
- package/logging/index.js +1 -0
- package/logging/inspect.d.ts +2 -0
- package/logging/inspect.js +11 -0
- package/metadata/EntitySchema.d.ts +22 -24
- package/metadata/EntitySchema.js +73 -51
- package/metadata/MetadataDiscovery.d.ts +6 -10
- package/metadata/MetadataDiscovery.js +289 -298
- package/metadata/MetadataProvider.d.ts +11 -2
- package/metadata/MetadataProvider.js +46 -2
- package/metadata/MetadataStorage.d.ts +13 -11
- package/metadata/MetadataStorage.js +70 -37
- package/metadata/MetadataValidator.d.ts +2 -9
- package/metadata/MetadataValidator.js +22 -38
- package/metadata/discover-entities.d.ts +5 -0
- package/metadata/discover-entities.js +40 -0
- package/metadata/index.d.ts +1 -1
- package/metadata/index.js +1 -1
- package/metadata/types.d.ts +480 -0
- package/metadata/types.js +1 -0
- package/naming-strategy/AbstractNamingStrategy.d.ts +8 -4
- package/naming-strategy/AbstractNamingStrategy.js +8 -2
- package/naming-strategy/EntityCaseNamingStrategy.d.ts +3 -3
- package/naming-strategy/EntityCaseNamingStrategy.js +6 -5
- package/naming-strategy/MongoNamingStrategy.d.ts +3 -3
- package/naming-strategy/MongoNamingStrategy.js +6 -6
- package/naming-strategy/NamingStrategy.d.ts +14 -4
- package/naming-strategy/UnderscoreNamingStrategy.d.ts +3 -3
- package/naming-strategy/UnderscoreNamingStrategy.js +6 -6
- package/not-supported.d.ts +2 -0
- package/not-supported.js +4 -0
- package/package.json +19 -11
- package/platforms/ExceptionConverter.js +1 -1
- package/platforms/Platform.d.ts +6 -13
- package/platforms/Platform.js +17 -43
- package/serialization/EntitySerializer.d.ts +5 -0
- package/serialization/EntitySerializer.js +47 -27
- package/serialization/EntityTransformer.js +28 -18
- package/serialization/SerializationContext.d.ts +6 -6
- package/serialization/SerializationContext.js +16 -13
- package/types/ArrayType.d.ts +1 -1
- package/types/ArrayType.js +2 -3
- package/types/BigIntType.d.ts +8 -6
- package/types/BigIntType.js +1 -1
- package/types/BlobType.d.ts +0 -1
- package/types/BlobType.js +0 -3
- package/types/BooleanType.d.ts +2 -1
- package/types/BooleanType.js +3 -0
- package/types/DecimalType.d.ts +6 -4
- package/types/DecimalType.js +3 -3
- package/types/DoubleType.js +2 -2
- package/types/EnumArrayType.js +1 -2
- package/types/JsonType.d.ts +1 -1
- package/types/JsonType.js +7 -2
- package/types/TinyIntType.js +1 -1
- package/types/Type.d.ts +2 -4
- package/types/Type.js +3 -3
- package/types/Uint8ArrayType.d.ts +0 -1
- package/types/Uint8ArrayType.js +1 -4
- package/types/index.d.ts +1 -1
- package/typings.d.ts +148 -109
- package/typings.js +50 -42
- package/unit-of-work/ChangeSet.d.ts +2 -6
- package/unit-of-work/ChangeSet.js +4 -5
- package/unit-of-work/ChangeSetComputer.d.ts +1 -3
- package/unit-of-work/ChangeSetComputer.js +14 -12
- package/unit-of-work/ChangeSetPersister.d.ts +5 -4
- package/unit-of-work/ChangeSetPersister.js +65 -33
- package/unit-of-work/CommitOrderCalculator.d.ts +12 -10
- package/unit-of-work/CommitOrderCalculator.js +13 -13
- package/unit-of-work/UnitOfWork.d.ts +10 -3
- package/unit-of-work/UnitOfWork.js +139 -96
- package/utils/AbstractSchemaGenerator.d.ts +5 -5
- package/utils/AbstractSchemaGenerator.js +18 -16
- package/utils/AsyncContext.d.ts +6 -0
- package/utils/AsyncContext.js +42 -0
- package/utils/Configuration.d.ts +753 -207
- package/utils/Configuration.js +145 -190
- package/utils/ConfigurationLoader.d.ts +1 -54
- package/utils/ConfigurationLoader.js +1 -352
- package/utils/Cursor.d.ts +0 -3
- package/utils/Cursor.js +9 -6
- package/utils/DataloaderUtils.d.ts +15 -5
- package/utils/DataloaderUtils.js +65 -17
- package/utils/EntityComparator.d.ts +13 -9
- package/utils/EntityComparator.js +85 -43
- package/utils/QueryHelper.d.ts +14 -6
- package/utils/QueryHelper.js +87 -25
- package/utils/RawQueryFragment.d.ts +48 -25
- package/utils/RawQueryFragment.js +66 -70
- package/utils/RequestContext.js +2 -2
- package/utils/TransactionContext.js +2 -2
- package/utils/TransactionManager.d.ts +65 -0
- package/utils/TransactionManager.js +223 -0
- package/utils/Utils.d.ts +12 -119
- package/utils/Utils.js +97 -373
- package/utils/clone.js +8 -23
- package/utils/env-vars.d.ts +7 -0
- package/utils/env-vars.js +97 -0
- package/utils/fs-utils.d.ts +32 -0
- package/utils/fs-utils.js +178 -0
- package/utils/index.d.ts +2 -1
- package/utils/index.js +2 -1
- package/utils/upsert-utils.d.ts +9 -4
- package/utils/upsert-utils.js +55 -4
- package/decorators/Check.d.ts +0 -3
- package/decorators/Check.js +0 -13
- package/decorators/CreateRequestContext.d.ts +0 -3
- package/decorators/CreateRequestContext.js +0 -32
- package/decorators/Embeddable.d.ts +0 -8
- package/decorators/Embeddable.js +0 -11
- package/decorators/Embedded.d.ts +0 -18
- package/decorators/Embedded.js +0 -18
- package/decorators/Entity.d.ts +0 -18
- package/decorators/Entity.js +0 -12
- package/decorators/Enum.d.ts +0 -9
- package/decorators/Enum.js +0 -16
- package/decorators/Filter.d.ts +0 -2
- package/decorators/Filter.js +0 -8
- package/decorators/Formula.d.ts +0 -4
- package/decorators/Formula.js +0 -15
- package/decorators/Indexed.d.ts +0 -19
- package/decorators/Indexed.js +0 -20
- package/decorators/ManyToMany.d.ts +0 -40
- package/decorators/ManyToMany.js +0 -14
- package/decorators/ManyToOne.d.ts +0 -30
- package/decorators/ManyToOne.js +0 -14
- package/decorators/OneToMany.d.ts +0 -28
- package/decorators/OneToMany.js +0 -17
- package/decorators/OneToOne.d.ts +0 -24
- package/decorators/OneToOne.js +0 -7
- package/decorators/PrimaryKey.d.ts +0 -8
- package/decorators/PrimaryKey.js +0 -20
- package/decorators/Property.d.ts +0 -250
- package/decorators/Property.js +0 -32
- package/decorators/Transactional.d.ts +0 -13
- package/decorators/Transactional.js +0 -28
- package/decorators/hooks.d.ts +0 -16
- package/decorators/hooks.js +0 -47
- package/decorators/index.d.ts +0 -17
- package/decorators/index.js +0 -17
- package/entity/ArrayCollection.d.ts +0 -116
- package/entity/ArrayCollection.js +0 -402
- package/entity/EntityValidator.d.ts +0 -19
- package/entity/EntityValidator.js +0 -150
- package/metadata/ReflectMetadataProvider.d.ts +0 -8
- package/metadata/ReflectMetadataProvider.js +0 -44
- package/utils/resolveContextProvider.d.ts +0 -10
- package/utils/resolveContextProvider.js +0 -28
package/typings.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Transaction } from './connections/Connection.js';
|
|
2
|
-
import { type Cascade, type DeferMode, type EventType, type LoadStrategy, type PopulatePath, type QueryOrderMap, ReferenceKind } from './enums.js';
|
|
2
|
+
import { type Cascade, type DeferMode, type EmbeddedPrefixMode, type EventType, type LoadStrategy, type PopulatePath, type QueryOrderMap, ReferenceKind } from './enums.js';
|
|
3
3
|
import { type AssignOptions } from './entity/EntityAssigner.js';
|
|
4
4
|
import { type EntityIdentifier } from './entity/EntityIdentifier.js';
|
|
5
5
|
import { type EntityLoaderOptions } from './entity/EntityLoader.js';
|
|
@@ -7,7 +7,6 @@ import { type Collection } from './entity/Collection.js';
|
|
|
7
7
|
import { type EntityFactory } from './entity/EntityFactory.js';
|
|
8
8
|
import { type EntityRepository } from './entity/EntityRepository.js';
|
|
9
9
|
import { Reference, type ScalarReference } from './entity/Reference.js';
|
|
10
|
-
import type { MikroORM } from './MikroORM.js';
|
|
11
10
|
import type { SerializationContext } from './serialization/SerializationContext.js';
|
|
12
11
|
import type { SerializeOptions } from './serialization/EntitySerializer.js';
|
|
13
12
|
import type { MetadataStorage } from './metadata/MetadataStorage.js';
|
|
@@ -15,11 +14,10 @@ import type { EntitySchema } from './metadata/EntitySchema.js';
|
|
|
15
14
|
import type { Type, types } from './types/index.js';
|
|
16
15
|
import type { Platform } from './platforms/Platform.js';
|
|
17
16
|
import type { Configuration } from './utils/Configuration.js';
|
|
18
|
-
import type {
|
|
17
|
+
import type { Raw } from './utils/RawQueryFragment.js';
|
|
19
18
|
import type { EntityManager } from './EntityManager.js';
|
|
20
|
-
import type { EmbeddedPrefixMode } from './decorators/Embedded.js';
|
|
21
19
|
import type { EventSubscriber } from './events/EventSubscriber.js';
|
|
22
|
-
import type { FindOneOptions, FindOptions, LoadHint } from './drivers/IDatabaseDriver.js';
|
|
20
|
+
import type { FilterOptions, FindOneOptions, FindOptions, LoadHint } from './drivers/IDatabaseDriver.js';
|
|
23
21
|
export type Constructor<T = unknown> = new (...args: any[]) => T;
|
|
24
22
|
export type Dictionary<T = any> = {
|
|
25
23
|
[k: string]: T;
|
|
@@ -52,18 +50,34 @@ export declare const OptionalProps: unique symbol;
|
|
|
52
50
|
export declare const EagerProps: unique symbol;
|
|
53
51
|
export declare const HiddenProps: unique symbol;
|
|
54
52
|
export declare const Config: unique symbol;
|
|
55
|
-
|
|
56
|
-
declare
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
53
|
+
export type Opt<T = unknown> = T & Opt.Brand;
|
|
54
|
+
export declare namespace Opt {
|
|
55
|
+
const __optional: unique symbol;
|
|
56
|
+
interface Brand {
|
|
57
|
+
[__optional]?: 1;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export type RequiredNullable<T = never> = (T & RequiredNullable.Brand) | null;
|
|
61
|
+
export declare namespace RequiredNullable {
|
|
62
|
+
const __requiredNullable: unique symbol;
|
|
63
|
+
interface Brand {
|
|
64
|
+
[__requiredNullable]?: 1;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export type Hidden<T = unknown> = T & Hidden.Brand;
|
|
68
|
+
export declare namespace Hidden {
|
|
69
|
+
const __hidden: unique symbol;
|
|
70
|
+
interface Brand {
|
|
71
|
+
[__hidden]?: 1;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
export type DefineConfig<T extends TypeConfig> = T & DefineConfig.Brand;
|
|
75
|
+
export declare namespace DefineConfig {
|
|
76
|
+
const __config: unique symbol;
|
|
77
|
+
interface Brand {
|
|
78
|
+
[__config]?: 1;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
67
81
|
export type CleanTypeConfig<T> = Compute<Pick<T, Extract<keyof T, keyof TypeConfig>>>;
|
|
68
82
|
export interface TypeConfig {
|
|
69
83
|
forceObject?: boolean;
|
|
@@ -75,13 +89,14 @@ type PrimaryPropToType<T, Keys extends (keyof T)[]> = {
|
|
|
75
89
|
type ReadonlyPrimary<T> = T extends any[] ? Readonly<T> : T;
|
|
76
90
|
export type Primary<T> = IsAny<T> extends true ? any : T extends {
|
|
77
91
|
[PrimaryKeyProp]?: infer PK;
|
|
78
|
-
} ?
|
|
92
|
+
} ? PK extends undefined ? Omit<T, typeof PrimaryKeyProp> : PK extends keyof T ? ReadonlyPrimary<UnwrapPrimary<T[PK]>> : PK extends (keyof T)[] ? ReadonlyPrimary<PrimaryPropToType<T, PK>> : PK : T extends {
|
|
79
93
|
_id?: infer PK;
|
|
80
94
|
} ? ReadonlyPrimary<PK> | string : T extends {
|
|
81
|
-
uuid?: infer PK;
|
|
82
|
-
} ? ReadonlyPrimary<PK> : T extends {
|
|
83
95
|
id?: infer PK;
|
|
96
|
+
} ? ReadonlyPrimary<PK> : T extends {
|
|
97
|
+
uuid?: infer PK;
|
|
84
98
|
} ? ReadonlyPrimary<PK> : T;
|
|
99
|
+
/** @internal */
|
|
85
100
|
export type PrimaryProperty<T> = T extends {
|
|
86
101
|
[PrimaryKeyProp]?: infer PK;
|
|
87
102
|
} ? (PK extends keyof T ? PK : (PK extends any[] ? PK[number] : never)) : T extends {
|
|
@@ -89,10 +104,10 @@ export type PrimaryProperty<T> = T extends {
|
|
|
89
104
|
} ? (T extends {
|
|
90
105
|
id?: any;
|
|
91
106
|
} ? 'id' | '_id' : '_id') : T extends {
|
|
92
|
-
uuid?: any;
|
|
93
|
-
} ? 'uuid' : T extends {
|
|
94
107
|
id?: any;
|
|
95
|
-
} ? 'id' :
|
|
108
|
+
} ? 'id' : T extends {
|
|
109
|
+
uuid?: any;
|
|
110
|
+
} ? 'uuid' : never;
|
|
96
111
|
export type IPrimaryKeyValue = number | string | bigint | Date | {
|
|
97
112
|
toHexString(): string;
|
|
98
113
|
};
|
|
@@ -133,7 +148,6 @@ export type FilterValue<T> = OperatorMap<FilterItemValue<T>> | FilterItemValue<T
|
|
|
133
148
|
export type FilterObject<T> = {
|
|
134
149
|
-readonly [K in EntityKey<T>]?: ExpandQuery<ExpandProperty<T[K]>> | FilterValue<ExpandProperty<T[K]>> | null;
|
|
135
150
|
};
|
|
136
|
-
export type ExpandObject<T> = T extends object ? T extends Scalar ? never : FilterObject<T> : never;
|
|
137
151
|
export type ExpandQuery<T> = T extends object ? T extends Scalar ? never : FilterQuery<T> : FilterValue<T>;
|
|
138
152
|
export type EntityProps<T> = {
|
|
139
153
|
-readonly [K in EntityKey<T>]?: T[K];
|
|
@@ -143,7 +157,6 @@ export type FilterQuery<T> = ObjectQuery<T> | NonNullable<ExpandScalar<Primary<T
|
|
|
143
157
|
export type QBFilterQuery<T = any> = ObjectQuery<T> | Dictionary;
|
|
144
158
|
export interface IWrappedEntity<Entity extends object> {
|
|
145
159
|
isInitialized(): boolean;
|
|
146
|
-
isTouched(): boolean;
|
|
147
160
|
isManaged(): boolean;
|
|
148
161
|
populated(populated?: boolean): void;
|
|
149
162
|
populate<Hint extends string = never>(populate: AutoPath<Entity, Hint>[] | false, options?: EntityLoaderOptions<Entity>): Promise<Loaded<Entity, Hint>>;
|
|
@@ -174,7 +187,6 @@ export interface IWrappedEntityInternal<Entity extends object> extends IWrappedE
|
|
|
174
187
|
__factory: EntityFactory;
|
|
175
188
|
__hydrator: IHydrator;
|
|
176
189
|
__initialized: boolean;
|
|
177
|
-
__touched: boolean;
|
|
178
190
|
__originalEntityData?: EntityData<Entity>;
|
|
179
191
|
__loadedProperties: Set<string>;
|
|
180
192
|
__identifier?: EntityIdentifier | EntityIdentifier[];
|
|
@@ -194,14 +206,10 @@ export interface IWrappedEntityInternal<Entity extends object> extends IWrappedE
|
|
|
194
206
|
};
|
|
195
207
|
}
|
|
196
208
|
export type AnyEntity<T = any> = Partial<T>;
|
|
197
|
-
export type EntityClass<T> = Function & {
|
|
209
|
+
export type EntityClass<T = any> = Function & {
|
|
198
210
|
prototype: T;
|
|
199
211
|
};
|
|
200
|
-
export type
|
|
201
|
-
entity: EntityClass<T>;
|
|
202
|
-
schema: EntityMetadata<T> | EntitySchema<T>;
|
|
203
|
-
};
|
|
204
|
-
export type EntityName<T> = string | EntityClass<T> | EntitySchema<T, any> | {
|
|
212
|
+
export type EntityName<T = any> = EntityClass<T> | EntityCtor<T> | EntitySchema<T, any> | {
|
|
205
213
|
name: string;
|
|
206
214
|
};
|
|
207
215
|
export type GetRepository<Entity extends {
|
|
@@ -217,14 +225,17 @@ type ExpandRequiredEntityPropObject<T, I = never, C extends boolean = false> = {
|
|
|
217
225
|
} & {
|
|
218
226
|
[K in keyof T as OptionalKeys<T, K, I>]?: RequiredEntityDataProp<ExpandProperty<T[K]>, T, C> | EntityDataPropValue<ExpandProperty<T[K]>> | null | undefined;
|
|
219
227
|
};
|
|
228
|
+
type NonArrayObject = object & {
|
|
229
|
+
[Symbol.iterator]?: never;
|
|
230
|
+
};
|
|
220
231
|
export type EntityDataProp<T, C extends boolean> = T extends Date ? string | Date : T extends Scalar ? T : T extends {
|
|
221
232
|
__runtime?: infer Runtime;
|
|
222
233
|
__raw?: infer Raw;
|
|
223
|
-
} ? (C extends true ? Raw : Runtime) : T extends Reference<infer U> ? EntityDataNested<U, C> : T extends ScalarReference<infer U> ? EntityDataProp<U, C> : T extends Collection<infer U, any> ? U | U[] | EntityDataNested<U, C> | EntityDataNested<U, C>[] : T extends readonly (infer U)[] ? U | U[] | EntityDataNested<U, C> | EntityDataNested<U, C>[] : EntityDataNested<T, C>;
|
|
224
|
-
export type RequiredEntityDataProp<T, O, C extends boolean> = T extends Date ? string | Date : T extends Scalar ? T : T extends {
|
|
234
|
+
} ? (C extends true ? Raw : Runtime) : T extends Reference<infer U> ? EntityDataNested<U, C> : T extends ScalarReference<infer U> ? EntityDataProp<U, C> : T extends Collection<infer U, any> ? U | U[] | EntityDataNested<U, C> | EntityDataNested<U, C>[] : T extends readonly (infer U)[] ? U extends NonArrayObject ? U | U[] | EntityDataNested<U, C> | EntityDataNested<U, C>[] : U[] | EntityDataNested<U, C>[] : EntityDataNested<T, C>;
|
|
235
|
+
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 {
|
|
225
236
|
__runtime?: infer Runtime;
|
|
226
237
|
__raw?: infer Raw;
|
|
227
|
-
} ? (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 Collection<infer U, any> ? U | U[] | RequiredEntityDataNested<U, O, C> | RequiredEntityDataNested<U, O, C>[] : T extends readonly (infer U)[] ? U | U[] | RequiredEntityDataNested<U, O, C> | RequiredEntityDataNested<U, O, C>[] : RequiredEntityDataNested<T, O, C>;
|
|
238
|
+
} ? (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 Collection<infer U, any> ? U | U[] | RequiredEntityDataNested<U, O, C> | RequiredEntityDataNested<U, 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>;
|
|
228
239
|
export type EntityDataNested<T, C extends boolean = false> = T extends undefined ? never : T extends any[] ? Readonly<T> : EntityData<T, C> | ExpandEntityProp<T, C>;
|
|
229
240
|
type EntityDataItem<T, C extends boolean> = C extends false ? T | EntityDataProp<T, C> | null : EntityDataProp<T, C> | null;
|
|
230
241
|
export type RequiredEntityDataNested<T, O, C extends boolean> = T extends any[] ? Readonly<T> : RequiredEntityData<T, O> | ExpandRequiredEntityProp<T, O, C>;
|
|
@@ -236,7 +247,10 @@ type ExplicitlyOptionalProps<T> = (T extends {
|
|
|
236
247
|
type NullableKeys<T, V = null> = {
|
|
237
248
|
[K in keyof T]: V extends T[K] ? K : never;
|
|
238
249
|
}[keyof T];
|
|
239
|
-
type
|
|
250
|
+
type RequiredNullableKeys<T> = {
|
|
251
|
+
[K in keyof T]: Exclude<T[K], null> extends RequiredNullable.Brand ? K : never;
|
|
252
|
+
}[keyof T];
|
|
253
|
+
type ProbablyOptionalProps<T> = PrimaryProperty<T> | ExplicitlyOptionalProps<T> | Exclude<NonNullable<NullableKeys<T, null | undefined>>, RequiredNullableKeys<T>>;
|
|
240
254
|
type IsOptional<T, K extends keyof T, I> = T[K] extends Collection<any, any> ? true : ExtractType<T[K]> extends I ? true : K extends ProbablyOptionalProps<T> ? true : false;
|
|
241
255
|
type RequiredKeys<T, K extends keyof T, I> = IsOptional<T, K, I> extends false ? CleanKeys<T, K> : never;
|
|
242
256
|
type OptionalKeys<T, K extends keyof T, I> = IsOptional<T, K, I> extends false ? never : CleanKeys<T, K>;
|
|
@@ -294,8 +308,14 @@ export type EntityDTO<T, C extends TypeConfig = never> = {
|
|
|
294
308
|
[K in keyof T as DTOOptionalKeys<T, K>]?: EntityDTOProp<T, T[K], C> | AddOptional<T[K]>;
|
|
295
309
|
};
|
|
296
310
|
type TargetKeys<T> = T extends EntityClass<infer P> ? keyof P : keyof T;
|
|
297
|
-
type
|
|
298
|
-
|
|
311
|
+
type PropertyName<T> = IsUnknown<T> extends false ? TargetKeys<T> : string;
|
|
312
|
+
type TableName = {
|
|
313
|
+
name: string;
|
|
314
|
+
schema?: string;
|
|
315
|
+
toString: () => string;
|
|
316
|
+
};
|
|
317
|
+
export type IndexCallback<T> = (table: TableName, columns: Record<PropertyName<T>, string>, indexName: string) => string | Raw;
|
|
318
|
+
export type CheckCallback<T> = (columns: Record<PropertyName<T>, string>) => string;
|
|
299
319
|
export type GeneratedColumnCallback<T> = (columns: Record<keyof T, string>) => string;
|
|
300
320
|
export interface CheckConstraint<T = any> {
|
|
301
321
|
name?: string;
|
|
@@ -306,6 +326,7 @@ export type AnyString = string & {};
|
|
|
306
326
|
export interface EntityProperty<Owner = any, Target = any> {
|
|
307
327
|
name: EntityKey<Owner>;
|
|
308
328
|
entity: () => EntityName<Owner>;
|
|
329
|
+
target: EntityClass<Target>;
|
|
309
330
|
type: keyof typeof types | AnyString;
|
|
310
331
|
runtimeType: 'number' | 'string' | 'boolean' | 'bigint' | 'Buffer' | 'Date' | 'object' | 'any' | AnyString;
|
|
311
332
|
targetMeta?: EntityMetadata<Target>;
|
|
@@ -332,6 +353,7 @@ export interface EntityProperty<Owner = any, Target = any> {
|
|
|
332
353
|
default?: string | number | boolean | null;
|
|
333
354
|
defaultRaw?: string;
|
|
334
355
|
formula?: (alias: string) => string;
|
|
356
|
+
filters?: FilterOptions;
|
|
335
357
|
prefix?: string | boolean;
|
|
336
358
|
prefixMode?: EmbeddedPrefixMode;
|
|
337
359
|
embedded?: [EntityKey<Owner>, EntityKey<Owner>];
|
|
@@ -348,7 +370,6 @@ export interface EntityProperty<Owner = any, Target = any> {
|
|
|
348
370
|
mapToPk?: boolean;
|
|
349
371
|
persist?: boolean;
|
|
350
372
|
hydrate?: boolean;
|
|
351
|
-
trackChanges?: boolean;
|
|
352
373
|
hidden?: boolean;
|
|
353
374
|
enum?: boolean;
|
|
354
375
|
items?: (number | string)[];
|
|
@@ -359,6 +380,7 @@ export interface EntityProperty<Owner = any, Target = any> {
|
|
|
359
380
|
setter?: boolean;
|
|
360
381
|
getter?: boolean;
|
|
361
382
|
getterName?: keyof Owner;
|
|
383
|
+
accessor?: EntityKey<Owner>;
|
|
362
384
|
cascade: Cascade[];
|
|
363
385
|
orphanRemoval?: boolean;
|
|
364
386
|
onCreate?: (entity: Owner, em: EntityManager) => any;
|
|
@@ -375,7 +397,7 @@ export interface EntityProperty<Owner = any, Target = any> {
|
|
|
375
397
|
fixedOrder?: boolean;
|
|
376
398
|
fixedOrderColumn?: string;
|
|
377
399
|
pivotTable: string;
|
|
378
|
-
pivotEntity:
|
|
400
|
+
pivotEntity: EntityClass<Target>;
|
|
379
401
|
joinColumns: string[];
|
|
380
402
|
ownColumns: string[];
|
|
381
403
|
inverseJoinColumns: string[];
|
|
@@ -391,18 +413,22 @@ export interface EntityProperty<Owner = any, Target = any> {
|
|
|
391
413
|
optional?: boolean;
|
|
392
414
|
ignoreSchemaChanges?: ('type' | 'extra' | 'default')[];
|
|
393
415
|
deferMode?: DeferMode;
|
|
416
|
+
createForeignKeyConstraint: boolean;
|
|
417
|
+
foreignKeyName?: string;
|
|
394
418
|
}
|
|
395
|
-
export declare class EntityMetadata<
|
|
419
|
+
export declare class EntityMetadata<Entity = any, Class extends EntityCtor<Entity> = EntityCtor<Entity>> {
|
|
396
420
|
private static counter;
|
|
397
421
|
readonly _id: number;
|
|
398
422
|
readonly propertyOrder: Map<string, number>;
|
|
399
423
|
constructor(meta?: Partial<EntityMetadata>);
|
|
400
|
-
addProperty(prop: Partial<EntityProperty<
|
|
424
|
+
addProperty(prop: Partial<EntityProperty<Entity>>): void;
|
|
401
425
|
removeProperty(name: string, sync?: boolean): void;
|
|
402
|
-
getPrimaryProps(): EntityProperty<
|
|
403
|
-
getPrimaryProp(): EntityProperty<
|
|
426
|
+
getPrimaryProps(flatten?: boolean): EntityProperty<Entity>[];
|
|
427
|
+
getPrimaryProp(): EntityProperty<Entity>;
|
|
428
|
+
createColumnMappingObject(): Dictionary<any>;
|
|
404
429
|
get tableName(): string;
|
|
405
430
|
set tableName(name: string);
|
|
431
|
+
get uniqueName(): string;
|
|
406
432
|
sync(initIndexes?: boolean, config?: Configuration): void;
|
|
407
433
|
private initIndexes;
|
|
408
434
|
/** @internal */
|
|
@@ -412,67 +438,68 @@ export interface SimpleColumnMeta {
|
|
|
412
438
|
name: string;
|
|
413
439
|
type: string;
|
|
414
440
|
}
|
|
415
|
-
export
|
|
441
|
+
export type EntityCtor<T = any> = abstract new (...args: any[]) => T;
|
|
442
|
+
export interface EntityMetadata<Entity = any, Class extends EntityCtor<Entity> = EntityCtor<Entity>> {
|
|
416
443
|
name?: string;
|
|
417
444
|
className: string;
|
|
418
445
|
tableName: string;
|
|
419
446
|
schema?: string;
|
|
420
447
|
pivotTable?: boolean;
|
|
421
448
|
virtual?: boolean;
|
|
422
|
-
expression?: string | ((em: any, where: ObjectQuery<
|
|
423
|
-
discriminatorColumn?: EntityKey<
|
|
449
|
+
expression?: string | ((em: any, where: ObjectQuery<Entity>, options: FindOptions<Entity, any, any, any>, stream?: boolean) => MaybePromise<Raw | object | string>);
|
|
450
|
+
discriminatorColumn?: EntityKey<Entity> | AnyString;
|
|
424
451
|
discriminatorValue?: number | string;
|
|
425
|
-
discriminatorMap?: Dictionary<
|
|
452
|
+
discriminatorMap?: Dictionary<EntityClass>;
|
|
426
453
|
embeddable: boolean;
|
|
427
|
-
constructorParams
|
|
454
|
+
constructorParams?: (keyof Entity)[];
|
|
428
455
|
forceConstructor: boolean;
|
|
429
|
-
|
|
430
|
-
extends: string;
|
|
456
|
+
extends?: EntityName<Entity>;
|
|
431
457
|
collection: string;
|
|
432
458
|
path: string;
|
|
433
|
-
primaryKeys: EntityKey<
|
|
459
|
+
primaryKeys: EntityKey<Entity>[];
|
|
434
460
|
simplePK: boolean;
|
|
435
461
|
compositePK: boolean;
|
|
436
|
-
versionProperty: EntityKey<
|
|
437
|
-
concurrencyCheckKeys: Set<EntityKey<
|
|
438
|
-
serializedPrimaryKey
|
|
462
|
+
versionProperty: EntityKey<Entity>;
|
|
463
|
+
concurrencyCheckKeys: Set<EntityKey<Entity>>;
|
|
464
|
+
serializedPrimaryKey?: EntityKey<Entity>;
|
|
439
465
|
properties: {
|
|
440
|
-
[K in EntityKey<
|
|
466
|
+
[K in EntityKey<Entity>]: EntityProperty<Entity>;
|
|
441
467
|
};
|
|
442
|
-
props: EntityProperty<
|
|
443
|
-
relations: EntityProperty<
|
|
444
|
-
bidirectionalRelations: EntityProperty<
|
|
468
|
+
props: EntityProperty<Entity>[];
|
|
469
|
+
relations: EntityProperty<Entity>[];
|
|
470
|
+
bidirectionalRelations: EntityProperty<Entity>[];
|
|
445
471
|
referencingProperties: {
|
|
446
|
-
meta: EntityMetadata<
|
|
447
|
-
prop: EntityProperty<
|
|
472
|
+
meta: EntityMetadata<Entity>;
|
|
473
|
+
prop: EntityProperty<Entity>;
|
|
448
474
|
}[];
|
|
449
|
-
comparableProps: EntityProperty<
|
|
450
|
-
trackingProps: EntityProperty<
|
|
451
|
-
hydrateProps: EntityProperty<
|
|
452
|
-
|
|
453
|
-
|
|
475
|
+
comparableProps: EntityProperty<Entity>[];
|
|
476
|
+
trackingProps: EntityProperty<Entity>[];
|
|
477
|
+
hydrateProps: EntityProperty<Entity>[];
|
|
478
|
+
validateProps: EntityProperty<Entity>[];
|
|
479
|
+
uniqueProps: EntityProperty<Entity>[];
|
|
480
|
+
getterProps: EntityProperty<Entity>[];
|
|
454
481
|
indexes: {
|
|
455
|
-
properties
|
|
482
|
+
properties?: EntityKey<Entity> | EntityKey<Entity>[];
|
|
456
483
|
name?: string;
|
|
457
484
|
type?: string;
|
|
458
485
|
options?: Dictionary;
|
|
459
|
-
expression?: string
|
|
486
|
+
expression?: string | IndexCallback<Entity>;
|
|
460
487
|
}[];
|
|
461
488
|
uniques: {
|
|
462
|
-
properties
|
|
489
|
+
properties?: EntityKey<Entity> | EntityKey<Entity>[];
|
|
463
490
|
name?: string;
|
|
464
491
|
options?: Dictionary;
|
|
465
|
-
expression?: string
|
|
466
|
-
deferMode?: DeferMode
|
|
492
|
+
expression?: string | IndexCallback<Entity>;
|
|
493
|
+
deferMode?: DeferMode | `${DeferMode}`;
|
|
467
494
|
}[];
|
|
468
|
-
checks: CheckConstraint<
|
|
495
|
+
checks: CheckConstraint<Entity>[];
|
|
469
496
|
repositoryClass?: string;
|
|
470
497
|
repository: () => EntityClass<EntityRepository<any>>;
|
|
471
498
|
hooks: {
|
|
472
|
-
[K in EventType]?: (keyof
|
|
499
|
+
[K in EventType]?: (keyof Entity | EventSubscriber<Entity>[EventType])[];
|
|
473
500
|
};
|
|
474
|
-
prototype:
|
|
475
|
-
class:
|
|
501
|
+
prototype: Entity;
|
|
502
|
+
class: Class;
|
|
476
503
|
abstract: boolean;
|
|
477
504
|
filters: Dictionary<FilterDef>;
|
|
478
505
|
comment?: string;
|
|
@@ -480,8 +507,9 @@ export interface EntityMetadata<T = any> {
|
|
|
480
507
|
hasUniqueProps?: boolean;
|
|
481
508
|
readonly?: boolean;
|
|
482
509
|
polymorphs?: EntityMetadata[];
|
|
483
|
-
root: EntityMetadata<
|
|
510
|
+
root: EntityMetadata<Entity>;
|
|
484
511
|
definedProperties: Dictionary;
|
|
512
|
+
hasTriggers?: boolean;
|
|
485
513
|
/** @internal can be used for computed numeric cache keys */
|
|
486
514
|
readonly _id: number;
|
|
487
515
|
}
|
|
@@ -492,6 +520,7 @@ export interface CreateSchemaOptions {
|
|
|
492
520
|
export interface ClearDatabaseOptions {
|
|
493
521
|
schema?: string;
|
|
494
522
|
truncate?: boolean;
|
|
523
|
+
clearIdentityMap?: boolean;
|
|
495
524
|
}
|
|
496
525
|
export interface EnsureDatabaseOptions extends CreateSchemaOptions, ClearDatabaseOptions {
|
|
497
526
|
clear?: boolean;
|
|
@@ -519,25 +548,25 @@ export interface RefreshDatabaseOptions extends CreateSchemaOptions {
|
|
|
519
548
|
createSchema?: boolean;
|
|
520
549
|
}
|
|
521
550
|
export interface ISchemaGenerator {
|
|
522
|
-
|
|
523
|
-
|
|
551
|
+
create(options?: CreateSchemaOptions): Promise<void>;
|
|
552
|
+
update(options?: UpdateSchemaOptions): Promise<void>;
|
|
553
|
+
drop(options?: DropSchemaOptions): Promise<void>;
|
|
554
|
+
refresh(options?: RefreshDatabaseOptions): Promise<void>;
|
|
555
|
+
clear(options?: ClearDatabaseOptions): Promise<void>;
|
|
556
|
+
execute(sql: string, options?: {
|
|
557
|
+
wrap?: boolean;
|
|
558
|
+
}): Promise<void>;
|
|
524
559
|
getCreateSchemaSQL(options?: CreateSchemaOptions): Promise<string>;
|
|
525
|
-
dropSchema(options?: DropSchemaOptions): Promise<void>;
|
|
526
560
|
getDropSchemaSQL(options?: Omit<DropSchemaOptions, 'dropDb'>): Promise<string>;
|
|
527
|
-
updateSchema(options?: UpdateSchemaOptions): Promise<void>;
|
|
528
561
|
getUpdateSchemaSQL(options?: UpdateSchemaOptions): Promise<string>;
|
|
529
562
|
getUpdateSchemaMigrationSQL(options?: UpdateSchemaOptions): Promise<{
|
|
530
563
|
up: string;
|
|
531
564
|
down: string;
|
|
532
565
|
}>;
|
|
566
|
+
ensureDatabase(options?: EnsureDatabaseOptions): Promise<boolean>;
|
|
533
567
|
createDatabase(name?: string): Promise<void>;
|
|
534
568
|
dropDatabase(name?: string): Promise<void>;
|
|
535
|
-
execute(sql: string, options?: {
|
|
536
|
-
wrap?: boolean;
|
|
537
|
-
}): Promise<void>;
|
|
538
569
|
ensureIndexes(): Promise<void>;
|
|
539
|
-
refreshDatabase(options?: RefreshDatabaseOptions): Promise<void>;
|
|
540
|
-
clearDatabase(options?: ClearDatabaseOptions): Promise<void>;
|
|
541
570
|
}
|
|
542
571
|
export type ImportsResolver = (alias: string, basePath: string, extension: '.js' | '', originFileName: string) => {
|
|
543
572
|
path: string;
|
|
@@ -554,7 +583,10 @@ export interface GenerateOptions {
|
|
|
554
583
|
undefinedDefaults?: boolean;
|
|
555
584
|
bidirectionalRelations?: boolean;
|
|
556
585
|
identifiedReferences?: boolean;
|
|
557
|
-
|
|
586
|
+
entityDefinition?: 'decorators' | 'defineEntity' | 'entitySchema';
|
|
587
|
+
decorators?: 'es' | 'legacy';
|
|
588
|
+
inferEntityType?: boolean;
|
|
589
|
+
enumMode?: 'ts-enum' | 'union-type' | 'dictionary';
|
|
558
590
|
esmImport?: boolean;
|
|
559
591
|
scalarTypeInDecorator?: boolean;
|
|
560
592
|
scalarPropertiesForRelations?: 'always' | 'never' | 'smart';
|
|
@@ -614,26 +646,26 @@ export interface IMigrator {
|
|
|
614
646
|
/**
|
|
615
647
|
* Checks current schema for changes, generates new migration if there are any.
|
|
616
648
|
*/
|
|
617
|
-
|
|
649
|
+
create(path?: string, blank?: boolean, initial?: boolean, name?: string): Promise<MigrationResult>;
|
|
618
650
|
/**
|
|
619
651
|
* Checks current schema for changes.
|
|
620
652
|
*/
|
|
621
|
-
|
|
653
|
+
checkSchema(): Promise<boolean>;
|
|
622
654
|
/**
|
|
623
655
|
* Creates initial migration. This generates the schema based on metadata, and checks whether all the tables
|
|
624
656
|
* are already present. If yes, it will also automatically log the migration as executed.
|
|
625
657
|
* Initial migration can be created only if the schema is already aligned with the metadata, or when no schema
|
|
626
658
|
* is present - in such case regular migration would have the same effect.
|
|
627
659
|
*/
|
|
628
|
-
|
|
660
|
+
createInitial(path?: string): Promise<MigrationResult>;
|
|
629
661
|
/**
|
|
630
662
|
* Returns list of already executed migrations.
|
|
631
663
|
*/
|
|
632
|
-
|
|
664
|
+
getExecuted(): Promise<MigrationRow[]>;
|
|
633
665
|
/**
|
|
634
666
|
* Returns list of pending (not yet executed) migrations found in the migration directory.
|
|
635
667
|
*/
|
|
636
|
-
|
|
668
|
+
getPending(): Promise<UmzugMigration[]>;
|
|
637
669
|
/**
|
|
638
670
|
* Executes specified migrations. Without parameter it will migrate up to the latest version.
|
|
639
671
|
*/
|
|
@@ -682,12 +714,17 @@ export interface MigrationObject {
|
|
|
682
714
|
name: string;
|
|
683
715
|
class: Constructor<Migration>;
|
|
684
716
|
}
|
|
685
|
-
|
|
717
|
+
type EntityFromInput<T> = T extends readonly EntityName<infer U>[] ? U : T extends EntityName<infer U> ? U : never;
|
|
718
|
+
type FilterDefResolved<T extends object = any> = {
|
|
686
719
|
name: string;
|
|
687
|
-
cond:
|
|
720
|
+
cond: FilterQuery<T> | ((args: Dictionary, type: 'read' | 'update' | 'delete', em: any, options?: FindOptions<T, any, any, any> | FindOneOptions<T, any, any, any>, entityName?: string) => MaybePromise<FilterQuery<T>>);
|
|
688
721
|
default?: boolean;
|
|
689
|
-
entity?:
|
|
722
|
+
entity?: EntityName<T> | EntityName<T>[];
|
|
690
723
|
args?: boolean;
|
|
724
|
+
strict?: boolean;
|
|
725
|
+
};
|
|
726
|
+
export type FilterDef<T extends EntityName | readonly EntityName[] = any> = FilterDefResolved<EntityFromInput<T>> & {
|
|
727
|
+
entity?: T;
|
|
691
728
|
};
|
|
692
729
|
export type Populate<T, P extends string = never> = readonly AutoPath<T, P, `${PopulatePath}`>[] | false;
|
|
693
730
|
export type PopulateOptions<T> = {
|
|
@@ -695,6 +732,7 @@ export type PopulateOptions<T> = {
|
|
|
695
732
|
strategy?: LoadStrategy;
|
|
696
733
|
all?: boolean;
|
|
697
734
|
filter?: boolean;
|
|
735
|
+
joinType?: 'inner join' | 'left join';
|
|
698
736
|
children?: PopulateOptions<T[keyof T]>[];
|
|
699
737
|
};
|
|
700
738
|
type Loadable<T extends object> = Collection<T, any> | Reference<T> | Ref<T> | readonly T[];
|
|
@@ -778,23 +816,23 @@ export interface Highlighter {
|
|
|
778
816
|
highlight(text: string): string;
|
|
779
817
|
}
|
|
780
818
|
export interface IMetadataStorage {
|
|
781
|
-
getAll():
|
|
782
|
-
get<T = any>(entity:
|
|
783
|
-
find<T = any>(entity:
|
|
784
|
-
has(entity:
|
|
785
|
-
set(entity:
|
|
786
|
-
reset(entity:
|
|
819
|
+
getAll(): Map<EntityName, EntityMetadata>;
|
|
820
|
+
get<T = any>(entity: EntityName<T>, init?: boolean, validate?: boolean): EntityMetadata<T>;
|
|
821
|
+
find<T = any>(entity: EntityName<T>): EntityMetadata<T> | undefined;
|
|
822
|
+
has<T>(entity: EntityName<T>): boolean;
|
|
823
|
+
set<T>(entity: EntityName<T>, meta: EntityMetadata): EntityMetadata;
|
|
824
|
+
reset<T>(entity: EntityName<T>): void;
|
|
787
825
|
}
|
|
788
826
|
export interface IHydrator {
|
|
789
827
|
/**
|
|
790
828
|
* Hydrates the whole entity. This process handles custom type conversions, creating missing Collection instances,
|
|
791
829
|
* mapping FKs to entity instances, as well as merging those entities.
|
|
792
830
|
*/
|
|
793
|
-
hydrate<T extends object>(entity: T, meta: EntityMetadata<T>, data: EntityData<T>, factory: EntityFactory, type: 'full' | 'reference', newEntity?: boolean, convertCustomTypes?: boolean, schema?: string, parentSchema?: string): void;
|
|
831
|
+
hydrate<T extends object>(entity: T, meta: EntityMetadata<T>, data: EntityData<T>, factory: EntityFactory, type: 'full' | 'reference', newEntity?: boolean, convertCustomTypes?: boolean, schema?: string, parentSchema?: string, normalizeAccessors?: boolean): void;
|
|
794
832
|
/**
|
|
795
833
|
* Hydrates primary keys only
|
|
796
834
|
*/
|
|
797
|
-
hydrateReference<T extends object>(entity: T, meta: EntityMetadata<T>, data: EntityData<T>, factory: EntityFactory, convertCustomTypes?: boolean, schema?: string, parentSchema?: string): void;
|
|
835
|
+
hydrateReference<T extends object>(entity: T, meta: EntityMetadata<T>, data: EntityData<T>, factory: EntityFactory, convertCustomTypes?: boolean, schema?: string, parentSchema?: string, normalizeAccessors?: boolean): void;
|
|
798
836
|
isRunning(): boolean;
|
|
799
837
|
}
|
|
800
838
|
export interface HydratorConstructor {
|
|
@@ -804,17 +842,18 @@ export interface ISeedManager {
|
|
|
804
842
|
seed(...classNames: Constructor<Seeder>[]): Promise<void>;
|
|
805
843
|
/** @internal */
|
|
806
844
|
seedString(...classNames: string[]): Promise<void>;
|
|
807
|
-
|
|
845
|
+
create(className: string): Promise<string>;
|
|
808
846
|
}
|
|
809
847
|
export interface Seeder<T extends Dictionary = Dictionary> {
|
|
810
848
|
run(em: EntityManager, context?: T): void | Promise<void>;
|
|
811
849
|
}
|
|
812
850
|
export type ConnectionType = 'read' | 'write';
|
|
813
851
|
export type MetadataProcessor = (metadata: EntityMetadata[], platform: Platform) => MaybePromise<void>;
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
}
|
|
852
|
+
export type MaybeReturnType<T> = T extends (...args: any[]) => infer R ? R : T;
|
|
853
|
+
export interface EntitySchemaWithMeta<TName extends string = string, TTableName extends string = string, TEntity = any, TBase = never, TProperties extends Record<string, any> = Record<string, any>, TClass extends EntityCtor = any> extends EntitySchema<TEntity, TBase, TClass> {
|
|
854
|
+
readonly name: TName;
|
|
855
|
+
readonly properties: TProperties;
|
|
856
|
+
readonly tableName: TTableName;
|
|
857
|
+
}
|
|
858
|
+
export type InferEntity<Schema> = Schema extends EntitySchemaWithMeta<any, any, infer Entity, any, any> ? Entity : Schema extends EntitySchema<infer Entity> ? Entity : Schema extends EntityClass<infer Entity> ? Entity : Schema;
|
|
820
859
|
export {};
|