@mikro-orm/core 7.0.4-dev.8 → 7.0.4
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 +884 -583
- package/EntityManager.js +1922 -1895
- package/MikroORM.d.ts +103 -74
- package/MikroORM.js +178 -179
- package/README.md +1 -1
- package/cache/CacheAdapter.d.ts +36 -36
- package/cache/FileCacheAdapter.d.ts +30 -24
- package/cache/FileCacheAdapter.js +80 -78
- package/cache/GeneratedCacheAdapter.d.ts +18 -20
- package/cache/GeneratedCacheAdapter.js +30 -30
- package/cache/MemoryCacheAdapter.d.ts +18 -20
- package/cache/MemoryCacheAdapter.js +35 -36
- package/cache/NullCacheAdapter.d.ts +16 -16
- package/cache/NullCacheAdapter.js +24 -24
- package/connections/Connection.d.ts +95 -84
- package/connections/Connection.js +165 -168
- package/drivers/DatabaseDriver.d.ts +186 -80
- package/drivers/DatabaseDriver.js +450 -443
- package/drivers/IDatabaseDriver.d.ts +440 -301
- package/entity/BaseEntity.d.ts +120 -83
- package/entity/BaseEntity.js +43 -43
- package/entity/Collection.d.ts +212 -179
- package/entity/Collection.js +727 -721
- package/entity/EntityAssigner.d.ts +88 -77
- package/entity/EntityAssigner.js +231 -230
- package/entity/EntityFactory.d.ts +66 -54
- package/entity/EntityFactory.js +425 -383
- package/entity/EntityHelper.d.ts +34 -22
- package/entity/EntityHelper.js +280 -267
- package/entity/EntityIdentifier.d.ts +4 -4
- package/entity/EntityIdentifier.js +10 -10
- package/entity/EntityLoader.d.ts +98 -72
- package/entity/EntityLoader.js +753 -723
- package/entity/EntityRepository.d.ts +316 -201
- package/entity/EntityRepository.js +213 -213
- package/entity/PolymorphicRef.d.ts +5 -5
- package/entity/PolymorphicRef.js +10 -10
- package/entity/Reference.d.ts +126 -82
- package/entity/Reference.js +278 -274
- package/entity/WrappedEntity.d.ts +115 -72
- package/entity/WrappedEntity.js +168 -166
- package/entity/defineEntity.d.ts +1315 -636
- package/entity/defineEntity.js +527 -518
- package/entity/utils.d.ts +13 -3
- package/entity/utils.js +71 -73
- package/entity/validators.js +43 -43
- package/entity/wrap.js +8 -8
- package/enums.d.ts +258 -253
- package/enums.js +251 -252
- package/errors.d.ts +114 -72
- package/errors.js +350 -253
- package/events/EventManager.d.ts +26 -14
- package/events/EventManager.js +79 -77
- package/events/EventSubscriber.d.ts +29 -29
- package/events/TransactionEventBroadcaster.d.ts +15 -8
- package/events/TransactionEventBroadcaster.js +14 -14
- package/exceptions.d.ts +23 -40
- package/exceptions.js +35 -52
- package/hydration/Hydrator.d.ts +42 -17
- package/hydration/Hydrator.js +43 -43
- package/hydration/ObjectHydrator.d.ts +50 -17
- package/hydration/ObjectHydrator.js +481 -416
- package/index.d.ts +116 -2
- package/index.js +10 -1
- package/logging/DefaultLogger.d.ts +34 -32
- package/logging/DefaultLogger.js +86 -86
- package/logging/Logger.d.ts +41 -41
- package/logging/SimpleLogger.d.ts +13 -11
- package/logging/SimpleLogger.js +22 -22
- package/logging/colors.d.ts +6 -6
- package/logging/colors.js +11 -10
- package/logging/inspect.js +7 -7
- package/metadata/EntitySchema.d.ts +211 -127
- package/metadata/EntitySchema.js +397 -398
- package/metadata/MetadataDiscovery.d.ts +114 -114
- package/metadata/MetadataDiscovery.js +1951 -1863
- package/metadata/MetadataProvider.d.ts +24 -21
- package/metadata/MetadataProvider.js +82 -84
- package/metadata/MetadataStorage.d.ts +38 -32
- package/metadata/MetadataStorage.js +118 -118
- package/metadata/MetadataValidator.d.ts +39 -39
- package/metadata/MetadataValidator.js +381 -338
- package/metadata/discover-entities.d.ts +5 -2
- package/metadata/discover-entities.js +35 -27
- package/metadata/types.d.ts +615 -531
- package/naming-strategy/AbstractNamingStrategy.d.ts +54 -39
- package/naming-strategy/AbstractNamingStrategy.js +90 -85
- package/naming-strategy/EntityCaseNamingStrategy.d.ts +6 -6
- package/naming-strategy/EntityCaseNamingStrategy.js +22 -22
- package/naming-strategy/MongoNamingStrategy.d.ts +6 -6
- package/naming-strategy/MongoNamingStrategy.js +18 -18
- package/naming-strategy/NamingStrategy.d.ts +109 -99
- package/naming-strategy/UnderscoreNamingStrategy.d.ts +7 -7
- package/naming-strategy/UnderscoreNamingStrategy.js +21 -21
- package/not-supported.js +7 -4
- package/package.json +1 -1
- package/platforms/ExceptionConverter.d.ts +1 -1
- package/platforms/ExceptionConverter.js +4 -4
- package/platforms/Platform.d.ts +310 -299
- package/platforms/Platform.js +663 -636
- package/serialization/EntitySerializer.d.ts +49 -26
- package/serialization/EntitySerializer.js +224 -218
- package/serialization/EntityTransformer.d.ts +10 -6
- package/serialization/EntityTransformer.js +219 -217
- package/serialization/SerializationContext.d.ts +27 -23
- package/serialization/SerializationContext.js +105 -105
- package/types/ArrayType.d.ts +8 -8
- package/types/ArrayType.js +33 -33
- package/types/BigIntType.d.ts +17 -10
- package/types/BigIntType.js +37 -37
- package/types/BlobType.d.ts +3 -3
- package/types/BlobType.js +13 -13
- package/types/BooleanType.d.ts +4 -4
- package/types/BooleanType.js +12 -12
- package/types/CharacterType.d.ts +2 -2
- package/types/CharacterType.js +6 -6
- package/types/DateTimeType.d.ts +5 -5
- package/types/DateTimeType.js +15 -15
- package/types/DateType.d.ts +5 -5
- package/types/DateType.js +15 -15
- package/types/DecimalType.d.ts +7 -7
- package/types/DecimalType.js +26 -26
- package/types/DoubleType.d.ts +3 -3
- package/types/DoubleType.js +12 -12
- package/types/EnumArrayType.d.ts +5 -5
- package/types/EnumArrayType.js +24 -24
- package/types/EnumType.d.ts +3 -3
- package/types/EnumType.js +11 -11
- package/types/FloatType.d.ts +3 -3
- package/types/FloatType.js +9 -9
- package/types/IntegerType.d.ts +3 -3
- package/types/IntegerType.js +9 -9
- package/types/IntervalType.d.ts +4 -4
- package/types/IntervalType.js +12 -12
- package/types/JsonType.d.ts +8 -8
- package/types/JsonType.js +32 -32
- package/types/MediumIntType.d.ts +1 -1
- package/types/MediumIntType.js +3 -3
- package/types/SmallIntType.d.ts +3 -3
- package/types/SmallIntType.js +9 -9
- package/types/StringType.d.ts +4 -4
- package/types/StringType.js +12 -12
- package/types/TextType.d.ts +3 -3
- package/types/TextType.js +9 -9
- package/types/TimeType.d.ts +5 -5
- package/types/TimeType.js +17 -17
- package/types/TinyIntType.d.ts +3 -3
- package/types/TinyIntType.js +10 -10
- package/types/Type.d.ts +83 -79
- package/types/Type.js +82 -82
- package/types/Uint8ArrayType.d.ts +4 -4
- package/types/Uint8ArrayType.js +21 -21
- package/types/UnknownType.d.ts +4 -4
- package/types/UnknownType.js +12 -12
- package/types/UuidType.d.ts +5 -5
- package/types/UuidType.js +19 -19
- package/types/index.d.ts +75 -49
- package/types/index.js +52 -26
- package/typings.d.ts +1250 -737
- package/typings.js +244 -231
- package/unit-of-work/ChangeSet.d.ts +26 -26
- package/unit-of-work/ChangeSet.js +56 -56
- package/unit-of-work/ChangeSetComputer.d.ts +12 -12
- package/unit-of-work/ChangeSetComputer.js +178 -170
- package/unit-of-work/ChangeSetPersister.d.ts +63 -44
- package/unit-of-work/ChangeSetPersister.js +442 -421
- package/unit-of-work/CommitOrderCalculator.d.ts +40 -40
- package/unit-of-work/CommitOrderCalculator.js +89 -88
- package/unit-of-work/IdentityMap.d.ts +31 -31
- package/unit-of-work/IdentityMap.js +105 -105
- package/unit-of-work/UnitOfWork.d.ts +181 -141
- package/unit-of-work/UnitOfWork.js +1200 -1183
- package/utils/AbstractMigrator.d.ts +111 -91
- package/utils/AbstractMigrator.js +275 -275
- package/utils/AbstractSchemaGenerator.d.ts +43 -34
- package/utils/AbstractSchemaGenerator.js +121 -122
- package/utils/AsyncContext.d.ts +3 -3
- package/utils/AsyncContext.js +34 -35
- package/utils/Configuration.d.ts +852 -808
- package/utils/Configuration.js +359 -344
- package/utils/Cursor.d.ts +40 -22
- package/utils/Cursor.js +135 -127
- package/utils/DataloaderUtils.d.ts +58 -43
- package/utils/DataloaderUtils.js +203 -198
- package/utils/EntityComparator.d.ts +98 -81
- package/utils/EntityComparator.js +828 -728
- package/utils/NullHighlighter.d.ts +1 -1
- package/utils/NullHighlighter.js +3 -3
- package/utils/QueryHelper.d.ts +79 -51
- package/utils/QueryHelper.js +372 -361
- package/utils/RawQueryFragment.d.ts +50 -34
- package/utils/RawQueryFragment.js +107 -105
- package/utils/RequestContext.d.ts +32 -32
- package/utils/RequestContext.js +52 -53
- package/utils/TransactionContext.d.ts +16 -16
- package/utils/TransactionContext.js +27 -27
- package/utils/TransactionManager.d.ts +58 -58
- package/utils/TransactionManager.js +199 -197
- package/utils/Utils.d.ts +204 -145
- package/utils/Utils.js +812 -810
- package/utils/clone.js +104 -113
- package/utils/env-vars.js +90 -88
- package/utils/fs-utils.d.ts +15 -15
- package/utils/fs-utils.js +180 -181
- package/utils/upsert-utils.d.ts +20 -5
- package/utils/upsert-utils.js +114 -116
|
@@ -1,141 +1,225 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
EntityMetadata,
|
|
3
|
+
type AnyEntity,
|
|
4
|
+
type EntityKey,
|
|
5
|
+
type Constructor,
|
|
6
|
+
type DeepPartial,
|
|
7
|
+
type EntityName,
|
|
8
|
+
type EntityProperty,
|
|
9
|
+
type CleanKeys,
|
|
10
|
+
type ExpandProperty,
|
|
11
|
+
type IsNever,
|
|
12
|
+
type EntityCtor,
|
|
13
|
+
} from '../typings.js';
|
|
2
14
|
import { type EventType, ReferenceKind } from '../enums.js';
|
|
3
15
|
import type { EventArgs } from '../events/EventSubscriber.js';
|
|
4
16
|
import { Type } from '../types/Type.js';
|
|
5
|
-
import type {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
+
import type {
|
|
18
|
+
PropertyOptions,
|
|
19
|
+
ManyToOneOptions,
|
|
20
|
+
OneToOneOptions,
|
|
21
|
+
OneToManyOptions,
|
|
22
|
+
ManyToManyOptions,
|
|
23
|
+
EmbeddedOptions,
|
|
24
|
+
EnumOptions,
|
|
25
|
+
PrimaryKeyOptions,
|
|
26
|
+
SerializedPrimaryKeyOptions,
|
|
27
|
+
IndexOptions,
|
|
28
|
+
UniqueOptions,
|
|
29
|
+
} from './types.js';
|
|
30
|
+
type TypeType =
|
|
31
|
+
| string
|
|
32
|
+
| NumberConstructor
|
|
33
|
+
| StringConstructor
|
|
34
|
+
| BooleanConstructor
|
|
35
|
+
| DateConstructor
|
|
36
|
+
| ArrayConstructor
|
|
37
|
+
| Constructor<Type<any>>
|
|
38
|
+
| Type<any>;
|
|
39
|
+
type TypeDef<Target> =
|
|
40
|
+
| {
|
|
41
|
+
type: TypeType;
|
|
42
|
+
}
|
|
43
|
+
| {
|
|
44
|
+
entity: () => EntityName<Target> | EntityName[];
|
|
45
|
+
};
|
|
46
|
+
type EmbeddedTypeDef<Target> =
|
|
47
|
+
| {
|
|
48
|
+
type: TypeType;
|
|
49
|
+
}
|
|
50
|
+
| {
|
|
51
|
+
entity: () => EntityName<Target> | EntityName[];
|
|
52
|
+
};
|
|
17
53
|
/** Union type representing all possible property definition shapes in an EntitySchema. */
|
|
18
|
-
export type EntitySchemaProperty<Target, Owner> =
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
54
|
+
export type EntitySchemaProperty<Target, Owner> =
|
|
55
|
+
| ({
|
|
56
|
+
kind: ReferenceKind.MANY_TO_ONE | 'm:1';
|
|
57
|
+
} & TypeDef<Target> &
|
|
58
|
+
ManyToOneOptions<Owner, Target>)
|
|
59
|
+
| ({
|
|
60
|
+
kind: ReferenceKind.ONE_TO_ONE | '1:1';
|
|
61
|
+
} & TypeDef<Target> &
|
|
62
|
+
OneToOneOptions<Owner, Target>)
|
|
63
|
+
| ({
|
|
64
|
+
kind: ReferenceKind.ONE_TO_MANY | '1:m';
|
|
65
|
+
} & TypeDef<Target> &
|
|
66
|
+
OneToManyOptions<Owner, Target>)
|
|
67
|
+
| ({
|
|
68
|
+
kind: ReferenceKind.MANY_TO_MANY | 'm:n';
|
|
69
|
+
} & TypeDef<Target> &
|
|
70
|
+
ManyToManyOptions<Owner, Target>)
|
|
71
|
+
| ({
|
|
72
|
+
kind: ReferenceKind.EMBEDDED | 'embedded';
|
|
73
|
+
} & EmbeddedTypeDef<Target> &
|
|
74
|
+
EmbeddedOptions<Owner, Target> &
|
|
75
|
+
PropertyOptions<Owner>)
|
|
76
|
+
| ({
|
|
77
|
+
enum: true;
|
|
78
|
+
} & EnumOptions<Owner>)
|
|
79
|
+
| (TypeDef<Target> & PropertyOptions<Owner>);
|
|
31
80
|
type OmitBaseProps<Entity, Base> = IsNever<Base> extends true ? Entity : Omit<Entity, keyof Base>;
|
|
32
81
|
/** Configuration object for defining an entity via EntitySchema. */
|
|
33
|
-
export type EntitySchemaMetadata<Entity, Base = never, Class extends EntityCtor = EntityCtor<Entity>> = Omit<
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
82
|
+
export type EntitySchemaMetadata<Entity, Base = never, Class extends EntityCtor = EntityCtor<Entity>> = Omit<
|
|
83
|
+
Partial<EntityMetadata<Entity>>,
|
|
84
|
+
'name' | 'properties' | 'extends'
|
|
85
|
+
> &
|
|
86
|
+
(
|
|
87
|
+
| {
|
|
88
|
+
name: string;
|
|
89
|
+
}
|
|
90
|
+
| {
|
|
91
|
+
class: Class;
|
|
92
|
+
name?: string;
|
|
93
|
+
}
|
|
94
|
+
) & {
|
|
39
95
|
extends?: EntityName<Base>;
|
|
40
|
-
} & {
|
|
96
|
+
} & {
|
|
41
97
|
properties?: {
|
|
42
|
-
|
|
98
|
+
[Key in keyof OmitBaseProps<Entity, Base> as CleanKeys<OmitBaseProps<Entity, Base>, Key>]-?: EntitySchemaProperty<
|
|
99
|
+
ExpandProperty<NonNullable<Entity[Key]>>,
|
|
100
|
+
Entity
|
|
101
|
+
>;
|
|
43
102
|
};
|
|
44
|
-
} & {
|
|
103
|
+
} & {
|
|
45
104
|
inheritance?: 'tpt';
|
|
46
|
-
};
|
|
105
|
+
};
|
|
47
106
|
/** Class-less entity definition that provides a programmatic API for defining entities without decorators. */
|
|
48
107
|
export declare class EntitySchema<Entity = any, Base = never, Class extends EntityCtor = EntityCtor<Entity>> {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
108
|
+
/**
|
|
109
|
+
* When schema links the entity class via `class` option, this registry allows the lookup from opposite side,
|
|
110
|
+
* so we can use the class in `entities` option just like the EntitySchema instance.
|
|
111
|
+
*/
|
|
112
|
+
static REGISTRY: Map<AnyEntity, EntitySchema>;
|
|
113
|
+
/** @internal Type-level marker for fast entity type inference */
|
|
114
|
+
readonly '~entity': Entity;
|
|
115
|
+
private readonly _meta;
|
|
116
|
+
private internal;
|
|
117
|
+
private initialized;
|
|
118
|
+
constructor(meta: EntitySchemaMetadata<Entity, Base, Class>);
|
|
119
|
+
/**
|
|
120
|
+
* Checks if the given value is an EntitySchema instance, using duck-typing
|
|
121
|
+
* as a fallback when `instanceof` fails due to CJS/ESM dual-package hazard
|
|
122
|
+
* (e.g. when using `tsx` or `@swc-node/register` with `"type": "commonjs"` projects).
|
|
123
|
+
*/
|
|
124
|
+
static is(item: unknown): item is EntitySchema;
|
|
125
|
+
/** Creates an EntitySchema from existing EntityMetadata (used internally). */
|
|
126
|
+
static fromMetadata<T = AnyEntity, U = never>(
|
|
127
|
+
meta: EntityMetadata<T> | DeepPartial<EntityMetadata<T>>,
|
|
128
|
+
): EntitySchema<T, U>;
|
|
129
|
+
/** Adds a scalar property to the entity schema. */
|
|
130
|
+
addProperty(
|
|
131
|
+
name: EntityKey<Entity>,
|
|
132
|
+
type?: TypeType,
|
|
133
|
+
options?: PropertyOptions<Entity> | EntityProperty<Entity>,
|
|
134
|
+
): void;
|
|
135
|
+
/** Adds an enum property to the entity schema. */
|
|
136
|
+
addEnum(name: EntityKey<Entity>, type?: TypeType, options?: EnumOptions<Entity>): void;
|
|
137
|
+
/** Adds a version property for optimistic locking. */
|
|
138
|
+
addVersion(name: EntityKey<Entity>, type: TypeType, options?: PropertyOptions<Entity>): void;
|
|
139
|
+
/** Adds a primary key property to the entity schema. */
|
|
140
|
+
addPrimaryKey(name: EntityKey<Entity>, type: TypeType, options?: PrimaryKeyOptions<Entity>): void;
|
|
141
|
+
/** Adds a serialized primary key property (e.g. for MongoDB ObjectId). */
|
|
142
|
+
addSerializedPrimaryKey(name: EntityKey<Entity>, type: TypeType, options?: SerializedPrimaryKeyOptions<Entity>): void;
|
|
143
|
+
/** Adds an embedded property to the entity schema. */
|
|
144
|
+
addEmbedded<Target = AnyEntity>(name: EntityKey<Entity>, options: EmbeddedOptions<Entity, Target>): void;
|
|
145
|
+
/** Adds a many-to-one relation to the entity schema. */
|
|
146
|
+
addManyToOne<Target = AnyEntity>(
|
|
147
|
+
name: EntityKey<Entity>,
|
|
148
|
+
type: TypeType,
|
|
149
|
+
options: ManyToOneOptions<Entity, Target>,
|
|
150
|
+
): void;
|
|
151
|
+
/** Adds a many-to-many relation to the entity schema. */
|
|
152
|
+
addManyToMany<Target = AnyEntity>(
|
|
153
|
+
name: EntityKey<Entity>,
|
|
154
|
+
type: TypeType,
|
|
155
|
+
options: ManyToManyOptions<Entity, Target>,
|
|
156
|
+
): void;
|
|
157
|
+
/** Adds a one-to-many relation to the entity schema. */
|
|
158
|
+
addOneToMany<Target = AnyEntity>(
|
|
159
|
+
name: EntityKey<Entity>,
|
|
160
|
+
type: TypeType,
|
|
161
|
+
options: OneToManyOptions<Entity, Target>,
|
|
162
|
+
): void;
|
|
163
|
+
/** Adds a one-to-one relation to the entity schema. */
|
|
164
|
+
addOneToOne<Target = AnyEntity>(
|
|
165
|
+
name: EntityKey<Entity>,
|
|
166
|
+
type: TypeType,
|
|
167
|
+
options: OneToOneOptions<Entity, Target>,
|
|
168
|
+
): void;
|
|
169
|
+
/** Adds an index definition to the entity schema. */
|
|
170
|
+
addIndex<Key extends string>(options: IndexOptions<Entity, Key>): void;
|
|
171
|
+
/** Adds a unique constraint definition to the entity schema. */
|
|
172
|
+
addUnique<Key extends string>(options: UniqueOptions<Entity, Key>): void;
|
|
173
|
+
/** Sets a custom repository class for this entity. */
|
|
174
|
+
setCustomRepository(repository: () => Constructor): void;
|
|
175
|
+
/** Sets the base entity that this schema extends. */
|
|
176
|
+
setExtends(base: EntityName): void;
|
|
177
|
+
/** Sets or replaces the entity class associated with this schema. */
|
|
178
|
+
setClass(cls: Class): void;
|
|
179
|
+
/** Returns the underlying EntityMetadata. */
|
|
180
|
+
get meta(): EntityMetadata<Entity, Class>;
|
|
181
|
+
/** Returns the entity class name. */
|
|
182
|
+
get name(): string | EntityName<Entity>;
|
|
183
|
+
/** Returns the database table name. */
|
|
184
|
+
get tableName(): string;
|
|
185
|
+
get class(): Class;
|
|
186
|
+
get properties(): Record<string, any>;
|
|
187
|
+
new(...params: ConstructorParameters<Class>): Entity;
|
|
188
|
+
/**
|
|
189
|
+
* @internal
|
|
190
|
+
*/
|
|
191
|
+
init(): this;
|
|
192
|
+
/**
|
|
193
|
+
* Check if this entity is part of a TPT hierarchy by walking up the extends chain.
|
|
194
|
+
* This handles mid-level abstract entities (e.g., Animal -> Mammal -> Dog where Mammal is abstract).
|
|
195
|
+
*/
|
|
196
|
+
private isPartOfTPTHierarchy;
|
|
197
|
+
private initProperties;
|
|
198
|
+
private initPrimaryKeys;
|
|
199
|
+
private normalizeType;
|
|
200
|
+
private createProperty;
|
|
201
|
+
private rename;
|
|
202
|
+
private renameCompositeOptions;
|
|
203
|
+
/**
|
|
204
|
+
* Adds a lifecycle hook handler to the entity schema.
|
|
205
|
+
* This method allows registering hooks after the entity is defined,
|
|
206
|
+
* which can be useful for avoiding circular type references.
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* ```ts
|
|
210
|
+
* export const Article = defineEntity({
|
|
211
|
+
* name: 'Article',
|
|
212
|
+
* properties: { ... },
|
|
213
|
+
* });
|
|
214
|
+
*
|
|
215
|
+
* Article.addHook('beforeCreate', async args => {
|
|
216
|
+
* args.entity.slug = args.entity.title.toLowerCase();
|
|
217
|
+
* });
|
|
218
|
+
* ```
|
|
219
|
+
*/
|
|
220
|
+
addHook<T extends Entity = Entity>(
|
|
221
|
+
event: EventType | `${EventType}`,
|
|
222
|
+
handler: (args: EventArgs<T>) => void | Promise<void>,
|
|
223
|
+
): this;
|
|
140
224
|
}
|
|
141
225
|
export {};
|