@mikro-orm/core 7.0.0-dev.2 → 7.0.0-dev.200

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.
Files changed (210) hide show
  1. package/EntityManager.d.ts +111 -61
  2. package/EntityManager.js +346 -300
  3. package/MikroORM.d.ts +44 -35
  4. package/MikroORM.js +103 -143
  5. package/README.md +3 -2
  6. package/cache/FileCacheAdapter.d.ts +1 -1
  7. package/cache/FileCacheAdapter.js +8 -7
  8. package/cache/GeneratedCacheAdapter.d.ts +0 -1
  9. package/cache/GeneratedCacheAdapter.js +0 -2
  10. package/cache/index.d.ts +0 -1
  11. package/cache/index.js +0 -1
  12. package/connections/Connection.d.ts +16 -7
  13. package/connections/Connection.js +23 -14
  14. package/drivers/DatabaseDriver.d.ts +25 -16
  15. package/drivers/DatabaseDriver.js +80 -35
  16. package/drivers/IDatabaseDriver.d.ts +47 -17
  17. package/entity/BaseEntity.d.ts +2 -2
  18. package/entity/BaseEntity.js +0 -3
  19. package/entity/Collection.d.ts +95 -31
  20. package/entity/Collection.js +444 -102
  21. package/entity/EntityAssigner.d.ts +1 -1
  22. package/entity/EntityAssigner.js +26 -18
  23. package/entity/EntityFactory.d.ts +13 -1
  24. package/entity/EntityFactory.js +88 -54
  25. package/entity/EntityHelper.d.ts +2 -2
  26. package/entity/EntityHelper.js +38 -15
  27. package/entity/EntityLoader.d.ts +8 -7
  28. package/entity/EntityLoader.js +134 -80
  29. package/entity/EntityRepository.d.ts +24 -4
  30. package/entity/EntityRepository.js +8 -2
  31. package/entity/Reference.d.ts +9 -12
  32. package/entity/Reference.js +34 -9
  33. package/entity/WrappedEntity.d.ts +2 -7
  34. package/entity/WrappedEntity.js +3 -8
  35. package/entity/defineEntity.d.ts +585 -0
  36. package/entity/defineEntity.js +533 -0
  37. package/entity/index.d.ts +3 -2
  38. package/entity/index.js +3 -2
  39. package/entity/utils.d.ts +7 -0
  40. package/entity/utils.js +16 -4
  41. package/entity/validators.d.ts +11 -0
  42. package/entity/validators.js +65 -0
  43. package/enums.d.ts +22 -6
  44. package/enums.js +15 -1
  45. package/errors.d.ts +23 -9
  46. package/errors.js +59 -21
  47. package/events/EventManager.d.ts +2 -1
  48. package/events/EventManager.js +19 -11
  49. package/events/EventSubscriber.d.ts +3 -1
  50. package/hydration/Hydrator.js +1 -2
  51. package/hydration/ObjectHydrator.d.ts +4 -4
  52. package/hydration/ObjectHydrator.js +53 -33
  53. package/index.d.ts +2 -2
  54. package/index.js +1 -2
  55. package/logging/DefaultLogger.d.ts +1 -1
  56. package/logging/DefaultLogger.js +1 -0
  57. package/logging/SimpleLogger.d.ts +1 -1
  58. package/logging/colors.d.ts +1 -1
  59. package/logging/colors.js +7 -6
  60. package/logging/index.d.ts +1 -0
  61. package/logging/index.js +1 -0
  62. package/logging/inspect.d.ts +2 -0
  63. package/logging/inspect.js +11 -0
  64. package/metadata/EntitySchema.d.ts +26 -26
  65. package/metadata/EntitySchema.js +82 -51
  66. package/metadata/MetadataDiscovery.d.ts +7 -10
  67. package/metadata/MetadataDiscovery.js +408 -335
  68. package/metadata/MetadataProvider.d.ts +11 -2
  69. package/metadata/MetadataProvider.js +46 -2
  70. package/metadata/MetadataStorage.d.ts +13 -11
  71. package/metadata/MetadataStorage.js +70 -37
  72. package/metadata/MetadataValidator.d.ts +17 -9
  73. package/metadata/MetadataValidator.js +100 -42
  74. package/metadata/discover-entities.d.ts +5 -0
  75. package/metadata/discover-entities.js +40 -0
  76. package/metadata/index.d.ts +1 -1
  77. package/metadata/index.js +1 -1
  78. package/metadata/types.d.ts +502 -0
  79. package/metadata/types.js +1 -0
  80. package/naming-strategy/AbstractNamingStrategy.d.ts +12 -4
  81. package/naming-strategy/AbstractNamingStrategy.js +14 -2
  82. package/naming-strategy/EntityCaseNamingStrategy.d.ts +3 -3
  83. package/naming-strategy/EntityCaseNamingStrategy.js +6 -5
  84. package/naming-strategy/MongoNamingStrategy.d.ts +3 -3
  85. package/naming-strategy/MongoNamingStrategy.js +6 -6
  86. package/naming-strategy/NamingStrategy.d.ts +24 -4
  87. package/naming-strategy/UnderscoreNamingStrategy.d.ts +3 -3
  88. package/naming-strategy/UnderscoreNamingStrategy.js +6 -6
  89. package/not-supported.d.ts +2 -0
  90. package/not-supported.js +4 -0
  91. package/package.json +19 -11
  92. package/platforms/ExceptionConverter.js +1 -1
  93. package/platforms/Platform.d.ts +7 -13
  94. package/platforms/Platform.js +20 -43
  95. package/serialization/EntitySerializer.d.ts +5 -0
  96. package/serialization/EntitySerializer.js +47 -27
  97. package/serialization/EntityTransformer.js +28 -18
  98. package/serialization/SerializationContext.d.ts +6 -6
  99. package/serialization/SerializationContext.js +16 -13
  100. package/types/ArrayType.d.ts +1 -1
  101. package/types/ArrayType.js +2 -3
  102. package/types/BigIntType.d.ts +9 -6
  103. package/types/BigIntType.js +4 -1
  104. package/types/BlobType.d.ts +0 -1
  105. package/types/BlobType.js +0 -3
  106. package/types/BooleanType.d.ts +2 -1
  107. package/types/BooleanType.js +3 -0
  108. package/types/DecimalType.d.ts +6 -4
  109. package/types/DecimalType.js +3 -3
  110. package/types/DoubleType.js +2 -2
  111. package/types/EnumArrayType.js +1 -2
  112. package/types/JsonType.d.ts +1 -1
  113. package/types/JsonType.js +7 -2
  114. package/types/TinyIntType.js +1 -1
  115. package/types/Type.d.ts +2 -4
  116. package/types/Type.js +3 -3
  117. package/types/Uint8ArrayType.d.ts +0 -1
  118. package/types/Uint8ArrayType.js +1 -4
  119. package/types/index.d.ts +1 -1
  120. package/typings.d.ts +300 -140
  121. package/typings.js +62 -44
  122. package/unit-of-work/ChangeSet.d.ts +2 -6
  123. package/unit-of-work/ChangeSet.js +4 -5
  124. package/unit-of-work/ChangeSetComputer.d.ts +1 -3
  125. package/unit-of-work/ChangeSetComputer.js +26 -13
  126. package/unit-of-work/ChangeSetPersister.d.ts +5 -4
  127. package/unit-of-work/ChangeSetPersister.js +77 -35
  128. package/unit-of-work/CommitOrderCalculator.d.ts +12 -10
  129. package/unit-of-work/CommitOrderCalculator.js +13 -13
  130. package/unit-of-work/IdentityMap.d.ts +12 -0
  131. package/unit-of-work/IdentityMap.js +39 -1
  132. package/unit-of-work/UnitOfWork.d.ts +23 -3
  133. package/unit-of-work/UnitOfWork.js +199 -106
  134. package/utils/AbstractSchemaGenerator.d.ts +5 -5
  135. package/utils/AbstractSchemaGenerator.js +22 -17
  136. package/utils/AsyncContext.d.ts +6 -0
  137. package/utils/AsyncContext.js +42 -0
  138. package/utils/Configuration.d.ts +779 -207
  139. package/utils/Configuration.js +146 -190
  140. package/utils/ConfigurationLoader.d.ts +1 -54
  141. package/utils/ConfigurationLoader.js +1 -352
  142. package/utils/Cursor.d.ts +3 -6
  143. package/utils/Cursor.js +27 -11
  144. package/utils/DataloaderUtils.d.ts +15 -5
  145. package/utils/DataloaderUtils.js +65 -17
  146. package/utils/EntityComparator.d.ts +13 -9
  147. package/utils/EntityComparator.js +164 -89
  148. package/utils/QueryHelper.d.ts +14 -6
  149. package/utils/QueryHelper.js +88 -26
  150. package/utils/RawQueryFragment.d.ts +48 -25
  151. package/utils/RawQueryFragment.js +67 -66
  152. package/utils/RequestContext.js +2 -2
  153. package/utils/TransactionContext.js +2 -2
  154. package/utils/TransactionManager.d.ts +65 -0
  155. package/utils/TransactionManager.js +223 -0
  156. package/utils/Utils.d.ts +13 -120
  157. package/utils/Utils.js +104 -375
  158. package/utils/clone.js +8 -23
  159. package/utils/env-vars.d.ts +7 -0
  160. package/utils/env-vars.js +97 -0
  161. package/utils/fs-utils.d.ts +32 -0
  162. package/utils/fs-utils.js +178 -0
  163. package/utils/index.d.ts +2 -1
  164. package/utils/index.js +2 -1
  165. package/utils/upsert-utils.d.ts +9 -4
  166. package/utils/upsert-utils.js +55 -4
  167. package/decorators/Check.d.ts +0 -3
  168. package/decorators/Check.js +0 -13
  169. package/decorators/CreateRequestContext.d.ts +0 -3
  170. package/decorators/CreateRequestContext.js +0 -29
  171. package/decorators/Embeddable.d.ts +0 -8
  172. package/decorators/Embeddable.js +0 -11
  173. package/decorators/Embedded.d.ts +0 -18
  174. package/decorators/Embedded.js +0 -18
  175. package/decorators/Entity.d.ts +0 -18
  176. package/decorators/Entity.js +0 -13
  177. package/decorators/Enum.d.ts +0 -9
  178. package/decorators/Enum.js +0 -16
  179. package/decorators/Filter.d.ts +0 -2
  180. package/decorators/Filter.js +0 -8
  181. package/decorators/Formula.d.ts +0 -5
  182. package/decorators/Formula.js +0 -15
  183. package/decorators/Indexed.d.ts +0 -17
  184. package/decorators/Indexed.js +0 -20
  185. package/decorators/ManyToMany.d.ts +0 -40
  186. package/decorators/ManyToMany.js +0 -14
  187. package/decorators/ManyToOne.d.ts +0 -30
  188. package/decorators/ManyToOne.js +0 -14
  189. package/decorators/OneToMany.d.ts +0 -28
  190. package/decorators/OneToMany.js +0 -17
  191. package/decorators/OneToOne.d.ts +0 -24
  192. package/decorators/OneToOne.js +0 -7
  193. package/decorators/PrimaryKey.d.ts +0 -9
  194. package/decorators/PrimaryKey.js +0 -20
  195. package/decorators/Property.d.ts +0 -250
  196. package/decorators/Property.js +0 -32
  197. package/decorators/Transactional.d.ts +0 -13
  198. package/decorators/Transactional.js +0 -28
  199. package/decorators/hooks.d.ts +0 -16
  200. package/decorators/hooks.js +0 -47
  201. package/decorators/index.d.ts +0 -17
  202. package/decorators/index.js +0 -17
  203. package/entity/ArrayCollection.d.ts +0 -116
  204. package/entity/ArrayCollection.js +0 -395
  205. package/entity/EntityValidator.d.ts +0 -19
  206. package/entity/EntityValidator.js +0 -150
  207. package/metadata/ReflectMetadataProvider.d.ts +0 -8
  208. package/metadata/ReflectMetadataProvider.js +0 -44
  209. package/utils/resolveContextProvider.d.ts +0 -10
  210. package/utils/resolveContextProvider.js +0 -28
@@ -10,7 +10,7 @@ export class EntitySchema {
10
10
  * so we can use the class in `entities` option just like the EntitySchema instance.
11
11
  */
12
12
  static REGISTRY = new Map();
13
- _meta = new EntityMetadata();
13
+ _meta;
14
14
  internal = false;
15
15
  initialized = false;
16
16
  constructor(meta) {
@@ -18,15 +18,14 @@ export class EntitySchema {
18
18
  if (meta.name) {
19
19
  meta.abstract ??= false;
20
20
  }
21
+ this._meta = new EntityMetadata({
22
+ className: meta.name,
23
+ ...meta,
24
+ });
25
+ this._meta.root ??= this._meta;
21
26
  if (meta.class && !meta.internal) {
22
27
  EntitySchema.REGISTRY.set(meta.class, this);
23
28
  }
24
- if (meta.tableName || meta.collection) {
25
- Utils.renameKey(meta, 'tableName', 'collection');
26
- meta.tableName = meta.collection;
27
- }
28
- Object.assign(this._meta, { className: meta.name }, meta);
29
- this._meta.root ??= this._meta;
30
29
  }
31
30
  static fromMetadata(meta) {
32
31
  const schema = new EntitySchema({ ...meta, internal: true });
@@ -34,29 +33,13 @@ export class EntitySchema {
34
33
  return schema;
35
34
  }
36
35
  addProperty(name, type, options = {}) {
37
- const rename = (data, from, to) => {
38
- if (from in options && !(to in options)) {
39
- // @ts-ignore
40
- options[to] = [options[from]];
41
- // @ts-ignore
42
- delete options[from];
43
- }
44
- };
45
- if (name !== options.name) {
46
- Utils.renameKey(options, 'name', 'fieldName');
47
- }
48
- rename(options, 'fieldName', 'fieldNames');
49
- rename(options, 'ref', 'ref');
50
- rename(options, 'joinColumn', 'joinColumns');
51
- rename(options, 'inverseJoinColumn', 'inverseJoinColumns');
52
- rename(options, 'referenceColumnName', 'referencedColumnNames');
53
- rename(options, 'columnType', 'columnTypes');
54
- const prop = { name, kind: ReferenceKind.SCALAR, ...options, type: this.normalizeType(options, type) };
36
+ this.renameCompositeOptions(name, options);
37
+ const prop = { name, kind: ReferenceKind.SCALAR, ...options, ...this.normalizeType(options, type) };
55
38
  if (type && Type.isMappedType(type.prototype)) {
56
39
  prop.type = type;
57
40
  }
58
- if (Utils.isString(prop.formula)) {
59
- const formula = prop.formula; // tmp var is needed here
41
+ if (typeof prop.formula === 'string') {
42
+ const formula = prop.formula;
60
43
  prop.formula = () => formula;
61
44
  }
62
45
  if (prop.formula) {
@@ -91,17 +74,18 @@ export class EntitySchema {
91
74
  }
92
75
  addSerializedPrimaryKey(name, type, options = {}) {
93
76
  this._meta.serializedPrimaryKey = name;
94
- this.addProperty(name, type, options);
77
+ this.addProperty(name, type, { serializedPrimaryKey: true, ...options });
95
78
  }
96
79
  addEmbedded(name, options) {
80
+ this.renameCompositeOptions(name, options);
97
81
  Utils.defaultValue(options, 'prefix', true);
98
82
  if (options.array) {
99
83
  options.object = true; // force object mode for arrays
100
84
  }
101
85
  this._meta.properties[name] = {
102
86
  name,
103
- type: this.normalizeType(options),
104
87
  kind: ReferenceKind.EMBEDDED,
88
+ ...this.normalizeType(options),
105
89
  ...options,
106
90
  };
107
91
  }
@@ -114,6 +98,8 @@ export class EntitySchema {
114
98
  if (prop.fieldNames && !prop.joinColumns) {
115
99
  prop.joinColumns = prop.fieldNames;
116
100
  }
101
+ // By default, the foreign key constraint is created on the relation
102
+ Utils.defaultValue(prop, 'createForeignKeyConstraint', true);
117
103
  this.addProperty(name, type, prop);
118
104
  }
119
105
  addManyToMany(name, type, options) {
@@ -123,6 +109,8 @@ export class EntitySchema {
123
109
  }
124
110
  if (options.owner) {
125
111
  Utils.renameKey(options, 'mappedBy', 'inversedBy');
112
+ // By default, the foreign key constraint is created on the relation
113
+ Utils.defaultValue(options, 'createForeignKeyConstraint', true);
126
114
  }
127
115
  const prop = this.createProperty(ReferenceKind.MANY_TO_MANY, options);
128
116
  this.addProperty(name, type, prop);
@@ -135,8 +123,12 @@ export class EntitySchema {
135
123
  const prop = this.createProperty(ReferenceKind.ONE_TO_ONE, options);
136
124
  Utils.defaultValue(prop, 'owner', !!prop.inversedBy || !prop.mappedBy);
137
125
  Utils.defaultValue(prop, 'unique', prop.owner);
138
- if (prop.owner && options.mappedBy) {
139
- Utils.renameKey(prop, 'mappedBy', 'inversedBy');
126
+ if (prop.owner) {
127
+ if (options.mappedBy) {
128
+ Utils.renameKey(prop, 'mappedBy', 'inversedBy');
129
+ }
130
+ // By default, the foreign key constraint is created on the relation
131
+ Utils.defaultValue(prop, 'createForeignKeyConstraint', true);
140
132
  }
141
133
  if (prop.joinColumns && !prop.fieldNames) {
142
134
  prop.fieldNames = prop.joinColumns;
@@ -158,21 +150,29 @@ export class EntitySchema {
158
150
  setExtends(base) {
159
151
  this._meta.extends = base;
160
152
  }
161
- setClass(proto) {
162
- const sameClass = this._meta.className === proto.name;
163
- this._meta.class = proto;
164
- this._meta.prototype = proto.prototype;
165
- this._meta.className = proto.name;
153
+ setClass(cls) {
154
+ const oldClass = this._meta.class;
155
+ const sameClass = this._meta.class === cls;
156
+ this._meta.class = cls;
157
+ this._meta.prototype = cls.prototype;
158
+ this._meta.className = this._meta.name ?? cls.name;
166
159
  if (!sameClass || !this._meta.constructorParams) {
167
- const tokens = Utils.tokenize(proto);
168
- this._meta.constructorParams = Utils.getParamNames(tokens, 'constructor');
169
- this._meta.toJsonParams = Utils.getParamNames(tokens, 'toJSON').filter(p => p !== '...args');
160
+ this._meta.constructorParams = Utils.getConstructorParams(cls);
170
161
  }
171
162
  if (!this.internal) {
172
- EntitySchema.REGISTRY.set(proto, this);
163
+ // Remove old class from registry if it's being replaced with a different class
164
+ if (oldClass && oldClass !== cls && EntitySchema.REGISTRY.get(oldClass) === this) {
165
+ EntitySchema.REGISTRY.delete(oldClass);
166
+ }
167
+ EntitySchema.REGISTRY.set(cls, this);
173
168
  }
174
- if (Object.getPrototypeOf(proto) !== BaseEntity) {
175
- this._meta.extends = this._meta.extends || Object.getPrototypeOf(proto).name || undefined;
169
+ const base = Object.getPrototypeOf(cls);
170
+ // Only set extends if the parent is NOT the auto-generated class for this same entity.
171
+ // When the user extends the auto-generated class (from defineEntity without a class option)
172
+ // and registers their custom class via setClass, we don't want to discover the
173
+ // auto-generated class as a separate parent entity.
174
+ if (base !== BaseEntity && base.name !== this._meta.className) {
175
+ this._meta.extends ??= base.name ? base : undefined;
176
176
  }
177
177
  }
178
178
  get meta() {
@@ -181,6 +181,18 @@ export class EntitySchema {
181
181
  get name() {
182
182
  return this._meta.className;
183
183
  }
184
+ get tableName() {
185
+ return this._meta.tableName;
186
+ }
187
+ get class() {
188
+ return this._meta.class;
189
+ }
190
+ get properties() {
191
+ return this._meta.properties;
192
+ }
193
+ new(...params) {
194
+ return new this._meta.class(...params);
195
+ }
184
196
  /**
185
197
  * @internal
186
198
  */
@@ -188,11 +200,6 @@ export class EntitySchema {
188
200
  if (this.initialized) {
189
201
  return this;
190
202
  }
191
- if (!this._meta.class) {
192
- const name = this.name;
193
- this._meta.class = ({ [name]: class {
194
- } })[name];
195
- }
196
203
  this.setClass(this._meta.class);
197
204
  if (this._meta.abstract && !this._meta.discriminatorColumn) {
198
205
  delete this._meta.name;
@@ -200,7 +207,7 @@ export class EntitySchema {
200
207
  const tableName = this._meta.collection ?? this._meta.tableName;
201
208
  if (tableName?.includes('.') && !this._meta.schema) {
202
209
  this._meta.schema = tableName.substring(0, tableName.indexOf('.'));
203
- this._meta.collection = tableName.substring(tableName.indexOf('.') + 1);
210
+ this._meta.tableName = tableName.substring(tableName.indexOf('.') + 1);
204
211
  }
205
212
  this.initProperties();
206
213
  this.initPrimaryKeys();
@@ -266,12 +273,15 @@ export class EntitySchema {
266
273
  }
267
274
  normalizeType(options, type) {
268
275
  if ('entity' in options) {
269
- if (Utils.isString(options.entity)) {
270
- type = options.type = options.entity;
276
+ /* v8 ignore next */
277
+ if (typeof options.entity === 'string') {
278
+ throw new Error(`Relation target needs to be an entity class or EntitySchema instance, string '${options.entity}' given instead for ${this._meta.className}.${options.name}.`);
271
279
  }
272
280
  else if (options.entity) {
273
281
  const tmp = options.entity();
274
282
  type = options.type = Array.isArray(tmp) ? tmp.map(t => Utils.className(t)).sort().join(' | ') : Utils.className(tmp);
283
+ const target = tmp instanceof EntitySchema ? tmp.meta.class : tmp;
284
+ return { type, target };
275
285
  }
276
286
  }
277
287
  if (type instanceof Function) {
@@ -280,7 +290,7 @@ export class EntitySchema {
280
290
  if (['String', 'Number', 'Boolean', 'Array'].includes(type)) {
281
291
  type = type.toLowerCase();
282
292
  }
283
- return type;
293
+ return { type };
284
294
  }
285
295
  createProperty(kind, options) {
286
296
  return {
@@ -289,4 +299,25 @@ export class EntitySchema {
289
299
  ...options,
290
300
  };
291
301
  }
302
+ rename(data, from, to) {
303
+ if (from in data && !(to in data)) {
304
+ // @ts-ignore
305
+ data[to] = [data[from]];
306
+ // @ts-ignore
307
+ delete data[from];
308
+ }
309
+ }
310
+ renameCompositeOptions(name, options = {}) {
311
+ if (name !== options.name && !options.fieldNames) {
312
+ Utils.renameKey(options, 'name', 'fieldName');
313
+ }
314
+ else if (options.name && (options.fieldNames?.length ?? 0) > 1) {
315
+ delete options.name;
316
+ }
317
+ this.rename(options, 'fieldName', 'fieldNames');
318
+ this.rename(options, 'joinColumn', 'joinColumns');
319
+ this.rename(options, 'inverseJoinColumn', 'inverseJoinColumns');
320
+ this.rename(options, 'referenceColumnName', 'referencedColumnNames');
321
+ this.rename(options, 'columnType', 'columnTypes');
322
+ }
292
323
  }
@@ -1,4 +1,4 @@
1
- import { type Constructor, EntityMetadata } from '../typings.js';
1
+ import { type EntityClass, EntityMetadata, type EntityName } from '../typings.js';
2
2
  import type { Configuration } from '../utils/Configuration.js';
3
3
  import { MetadataStorage } from './MetadataStorage.js';
4
4
  import { EntitySchema } from './EntitySchema.js';
@@ -9,26 +9,24 @@ export declare class MetadataDiscovery {
9
9
  private readonly config;
10
10
  private readonly namingStrategy;
11
11
  private readonly metadataProvider;
12
- private readonly cache;
13
12
  private readonly logger;
14
13
  private readonly schemaHelper;
15
14
  private readonly validator;
16
15
  private readonly discovered;
17
16
  constructor(metadata: MetadataStorage, platform: Platform, config: Configuration);
18
17
  discover(preferTs?: boolean): Promise<MetadataStorage>;
19
- discoverSync(preferTs?: boolean): MetadataStorage;
18
+ discoverSync(): MetadataStorage;
20
19
  private mapDiscoveredEntities;
20
+ private initAccessors;
21
21
  processDiscoveredEntities(discovered: EntityMetadata[]): EntityMetadata[];
22
22
  private findEntities;
23
23
  private discoverMissingTargets;
24
24
  private tryDiscoverTargets;
25
- private discoverDirectories;
26
- discoverReferences<T>(refs: (Constructor<T> | EntitySchema<T>)[]): EntityMetadata<T>[];
27
- reset(className: string): void;
28
- private prepare;
25
+ discoverReferences<T>(refs: Iterable<EntityClass<T> | EntitySchema<T>>, validate?: boolean): EntityMetadata<T>[];
26
+ reset<T>(entityName: EntityName<T>): void;
29
27
  private getSchema;
28
+ private getRootEntity;
30
29
  private discoverEntity;
31
- private saveToCache;
32
30
  private initNullability;
33
31
  private applyNamingStrategy;
34
32
  private initOwnColumns;
@@ -36,6 +34,7 @@ export declare class MetadataDiscovery {
36
34
  private initManyToOneFieldName;
37
35
  private initManyToManyFieldName;
38
36
  private initManyToManyFields;
37
+ private isExplicitTableName;
39
38
  private initManyToOneFields;
40
39
  private initOneToManyFields;
41
40
  private processEntity;
@@ -54,7 +53,6 @@ export declare class MetadataDiscovery {
54
53
  private initAutoincrement;
55
54
  private initCheckConstraints;
56
55
  private initGeneratedColumn;
57
- private createColumnMappingObject;
58
56
  private getDefaultVersionValue;
59
57
  private inferDefaultValue;
60
58
  private initDefaultValue;
@@ -67,6 +65,5 @@ export declare class MetadataDiscovery {
67
65
  private getPrefix;
68
66
  private initUnsigned;
69
67
  private initIndexes;
70
- private getEntityClassOrSchema;
71
68
  private shouldForceConstructorUsage;
72
69
  }