@mikro-orm/core 7.0.0-dev.1 → 7.0.0-dev.11

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 (261) hide show
  1. package/EntityManager.d.ts +25 -16
  2. package/EntityManager.js +219 -209
  3. package/MikroORM.d.ts +7 -6
  4. package/MikroORM.js +33 -45
  5. package/cache/CacheAdapter.js +1 -2
  6. package/cache/FileCacheAdapter.d.ts +1 -1
  7. package/cache/FileCacheAdapter.js +18 -26
  8. package/cache/GeneratedCacheAdapter.d.ts +2 -2
  9. package/cache/GeneratedCacheAdapter.js +1 -5
  10. package/cache/MemoryCacheAdapter.d.ts +1 -1
  11. package/cache/MemoryCacheAdapter.js +1 -5
  12. package/cache/NullCacheAdapter.d.ts +1 -1
  13. package/cache/NullCacheAdapter.js +1 -5
  14. package/cache/index.d.ts +5 -5
  15. package/cache/index.js +5 -21
  16. package/connections/Connection.d.ts +7 -7
  17. package/connections/Connection.js +8 -12
  18. package/connections/index.d.ts +1 -1
  19. package/connections/index.js +1 -17
  20. package/decorators/Check.d.ts +2 -2
  21. package/decorators/Check.js +5 -8
  22. package/decorators/CreateRequestContext.d.ts +1 -1
  23. package/decorators/CreateRequestContext.js +13 -14
  24. package/decorators/Embeddable.d.ts +5 -5
  25. package/decorators/Embeddable.js +4 -7
  26. package/decorators/Embedded.d.ts +3 -3
  27. package/decorators/Embedded.js +10 -12
  28. package/decorators/Entity.d.ts +6 -6
  29. package/decorators/Entity.js +5 -9
  30. package/decorators/Enum.d.ts +3 -3
  31. package/decorators/Enum.js +7 -10
  32. package/decorators/Filter.d.ts +1 -1
  33. package/decorators/Filter.js +3 -6
  34. package/decorators/Formula.d.ts +2 -3
  35. package/decorators/Formula.js +7 -10
  36. package/decorators/Indexed.d.ts +10 -8
  37. package/decorators/Indexed.js +7 -11
  38. package/decorators/ManyToMany.d.ts +4 -4
  39. package/decorators/ManyToMany.js +10 -12
  40. package/decorators/ManyToOne.d.ts +4 -4
  41. package/decorators/ManyToOne.js +10 -12
  42. package/decorators/OneToMany.d.ts +6 -6
  43. package/decorators/OneToMany.js +11 -14
  44. package/decorators/OneToOne.d.ts +4 -4
  45. package/decorators/OneToOne.js +4 -7
  46. package/decorators/PrimaryKey.d.ts +3 -4
  47. package/decorators/PrimaryKey.js +10 -13
  48. package/decorators/Property.d.ts +6 -6
  49. package/decorators/Property.js +10 -12
  50. package/decorators/Transactional.d.ts +2 -2
  51. package/decorators/Transactional.js +7 -10
  52. package/decorators/hooks.js +23 -35
  53. package/decorators/index.d.ts +17 -17
  54. package/decorators/index.js +17 -36
  55. package/drivers/DatabaseDriver.d.ts +13 -12
  56. package/drivers/DatabaseDriver.js +60 -64
  57. package/drivers/IDatabaseDriver.d.ts +16 -13
  58. package/drivers/IDatabaseDriver.js +1 -4
  59. package/drivers/index.d.ts +2 -2
  60. package/drivers/index.js +2 -18
  61. package/entity/ArrayCollection.d.ts +3 -3
  62. package/entity/ArrayCollection.js +38 -35
  63. package/entity/BaseEntity.d.ts +6 -6
  64. package/entity/BaseEntity.js +17 -21
  65. package/entity/Collection.d.ts +6 -7
  66. package/entity/Collection.js +47 -51
  67. package/entity/EntityAssigner.d.ts +2 -2
  68. package/entity/EntityAssigner.js +58 -63
  69. package/entity/EntityFactory.d.ts +3 -3
  70. package/entity/EntityFactory.js +62 -63
  71. package/entity/EntityHelper.d.ts +2 -2
  72. package/entity/EntityHelper.js +44 -45
  73. package/entity/EntityIdentifier.d.ts +1 -1
  74. package/entity/EntityIdentifier.js +1 -5
  75. package/entity/EntityLoader.d.ts +5 -5
  76. package/entity/EntityLoader.js +106 -98
  77. package/entity/EntityRepository.d.ts +7 -7
  78. package/entity/EntityRepository.js +7 -11
  79. package/entity/EntityValidator.d.ts +1 -1
  80. package/entity/EntityValidator.js +25 -29
  81. package/entity/Reference.d.ts +4 -8
  82. package/entity/Reference.js +35 -42
  83. package/entity/WrappedEntity.d.ts +12 -12
  84. package/entity/WrappedEntity.js +23 -27
  85. package/entity/index.d.ts +13 -13
  86. package/entity/index.js +13 -29
  87. package/entity/utils.d.ts +1 -1
  88. package/entity/utils.js +9 -12
  89. package/entity/wrap.d.ts +1 -1
  90. package/entity/wrap.js +2 -6
  91. package/enums.d.ts +3 -3
  92. package/enums.js +37 -41
  93. package/errors.d.ts +1 -1
  94. package/errors.js +15 -24
  95. package/events/EventManager.d.ts +3 -3
  96. package/events/EventManager.js +8 -12
  97. package/events/EventSubscriber.d.ts +8 -5
  98. package/events/EventSubscriber.js +1 -2
  99. package/events/TransactionEventBroadcaster.d.ts +3 -3
  100. package/events/TransactionEventBroadcaster.js +1 -5
  101. package/events/index.d.ts +3 -3
  102. package/events/index.js +3 -19
  103. package/exceptions.js +18 -39
  104. package/hydration/Hydrator.d.ts +5 -5
  105. package/hydration/Hydrator.js +3 -6
  106. package/hydration/ObjectHydrator.d.ts +3 -3
  107. package/hydration/ObjectHydrator.js +26 -28
  108. package/hydration/index.d.ts +2 -2
  109. package/hydration/index.js +2 -18
  110. package/index.d.ts +21 -21
  111. package/index.js +21 -46
  112. package/logging/DefaultLogger.d.ts +1 -1
  113. package/logging/DefaultLogger.js +9 -13
  114. package/logging/Logger.d.ts +1 -1
  115. package/logging/Logger.js +1 -2
  116. package/logging/SimpleLogger.d.ts +2 -2
  117. package/logging/SimpleLogger.js +2 -6
  118. package/logging/colors.js +1 -5
  119. package/logging/index.d.ts +4 -4
  120. package/logging/index.js +4 -20
  121. package/metadata/EntitySchema.d.ts +14 -6
  122. package/metadata/EntitySchema.js +41 -45
  123. package/metadata/MetadataDiscovery.d.ts +7 -7
  124. package/metadata/MetadataDiscovery.js +181 -180
  125. package/metadata/MetadataProvider.d.ts +2 -2
  126. package/metadata/MetadataProvider.js +4 -7
  127. package/metadata/MetadataStorage.d.ts +2 -2
  128. package/metadata/MetadataStorage.js +15 -19
  129. package/metadata/MetadataValidator.d.ts +4 -4
  130. package/metadata/MetadataValidator.js +52 -55
  131. package/metadata/ReflectMetadataProvider.d.ts +2 -2
  132. package/metadata/ReflectMetadataProvider.js +8 -12
  133. package/metadata/index.d.ts +6 -6
  134. package/metadata/index.js +6 -22
  135. package/naming-strategy/AbstractNamingStrategy.d.ts +2 -2
  136. package/naming-strategy/AbstractNamingStrategy.js +4 -8
  137. package/naming-strategy/EntityCaseNamingStrategy.d.ts +1 -1
  138. package/naming-strategy/EntityCaseNamingStrategy.js +2 -6
  139. package/naming-strategy/MongoNamingStrategy.d.ts +1 -1
  140. package/naming-strategy/MongoNamingStrategy.js +2 -6
  141. package/naming-strategy/NamingStrategy.d.ts +1 -1
  142. package/naming-strategy/NamingStrategy.js +1 -2
  143. package/naming-strategy/UnderscoreNamingStrategy.d.ts +1 -1
  144. package/naming-strategy/UnderscoreNamingStrategy.js +2 -6
  145. package/naming-strategy/index.d.ts +5 -5
  146. package/naming-strategy/index.js +5 -21
  147. package/package.json +6 -15
  148. package/platforms/ExceptionConverter.d.ts +2 -2
  149. package/platforms/ExceptionConverter.js +4 -8
  150. package/platforms/Platform.d.ts +10 -10
  151. package/platforms/Platform.js +57 -61
  152. package/platforms/index.d.ts +2 -2
  153. package/platforms/index.js +2 -18
  154. package/serialization/EntitySerializer.d.ts +2 -2
  155. package/serialization/EntitySerializer.js +36 -41
  156. package/serialization/EntityTransformer.d.ts +1 -1
  157. package/serialization/EntityTransformer.js +27 -31
  158. package/serialization/SerializationContext.d.ts +2 -2
  159. package/serialization/SerializationContext.js +10 -14
  160. package/serialization/index.d.ts +3 -3
  161. package/serialization/index.js +3 -19
  162. package/types/ArrayType.d.ts +3 -3
  163. package/types/ArrayType.js +7 -11
  164. package/types/BigIntType.d.ts +4 -3
  165. package/types/BigIntType.js +6 -6
  166. package/types/BlobType.d.ts +3 -3
  167. package/types/BlobType.js +2 -8
  168. package/types/BooleanType.d.ts +3 -3
  169. package/types/BooleanType.js +2 -6
  170. package/types/CharacterType.d.ts +3 -3
  171. package/types/CharacterType.js +2 -6
  172. package/types/DateTimeType.d.ts +3 -3
  173. package/types/DateTimeType.js +2 -6
  174. package/types/DateType.d.ts +3 -3
  175. package/types/DateType.js +2 -6
  176. package/types/DecimalType.d.ts +3 -3
  177. package/types/DecimalType.js +4 -7
  178. package/types/DoubleType.d.ts +3 -3
  179. package/types/DoubleType.js +3 -6
  180. package/types/EnumArrayType.d.ts +4 -4
  181. package/types/EnumArrayType.js +5 -10
  182. package/types/EnumType.d.ts +3 -3
  183. package/types/EnumType.js +2 -6
  184. package/types/FloatType.d.ts +3 -3
  185. package/types/FloatType.js +2 -6
  186. package/types/IntegerType.d.ts +3 -3
  187. package/types/IntegerType.js +2 -6
  188. package/types/IntervalType.d.ts +3 -3
  189. package/types/IntervalType.js +2 -6
  190. package/types/JsonType.d.ts +3 -3
  191. package/types/JsonType.js +2 -6
  192. package/types/MediumIntType.d.ts +3 -3
  193. package/types/MediumIntType.js +2 -6
  194. package/types/SmallIntType.d.ts +3 -3
  195. package/types/SmallIntType.js +2 -6
  196. package/types/StringType.d.ts +3 -3
  197. package/types/StringType.js +2 -6
  198. package/types/TextType.d.ts +3 -3
  199. package/types/TextType.js +2 -6
  200. package/types/TimeType.d.ts +3 -3
  201. package/types/TimeType.js +4 -8
  202. package/types/TinyIntType.d.ts +3 -3
  203. package/types/TinyIntType.js +3 -6
  204. package/types/Type.d.ts +2 -2
  205. package/types/Type.js +5 -9
  206. package/types/Uint8ArrayType.d.ts +3 -3
  207. package/types/Uint8ArrayType.js +3 -9
  208. package/types/UnknownType.d.ts +3 -3
  209. package/types/UnknownType.js +2 -6
  210. package/types/UuidType.d.ts +3 -3
  211. package/types/UuidType.js +2 -6
  212. package/types/index.d.ts +25 -25
  213. package/types/index.js +52 -79
  214. package/typings.d.ts +33 -28
  215. package/typings.js +37 -38
  216. package/unit-of-work/ChangeSet.d.ts +1 -1
  217. package/unit-of-work/ChangeSet.js +13 -17
  218. package/unit-of-work/ChangeSetComputer.d.ts +8 -7
  219. package/unit-of-work/ChangeSetComputer.js +26 -30
  220. package/unit-of-work/ChangeSetPersister.d.ts +7 -6
  221. package/unit-of-work/ChangeSetPersister.js +51 -48
  222. package/unit-of-work/CommitOrderCalculator.d.ts +1 -1
  223. package/unit-of-work/CommitOrderCalculator.js +6 -10
  224. package/unit-of-work/IdentityMap.d.ts +1 -1
  225. package/unit-of-work/IdentityMap.js +1 -5
  226. package/unit-of-work/UnitOfWork.d.ts +8 -7
  227. package/unit-of-work/UnitOfWork.js +193 -178
  228. package/unit-of-work/index.d.ts +6 -6
  229. package/unit-of-work/index.js +6 -22
  230. package/utils/AbstractSchemaGenerator.d.ts +6 -6
  231. package/utils/AbstractSchemaGenerator.js +12 -13
  232. package/utils/Configuration.d.ts +26 -27
  233. package/utils/Configuration.js +50 -55
  234. package/utils/ConfigurationLoader.d.ts +9 -8
  235. package/utils/ConfigurationLoader.js +71 -86
  236. package/utils/Cursor.d.ts +6 -6
  237. package/utils/Cursor.js +22 -25
  238. package/utils/DataloaderUtils.d.ts +4 -4
  239. package/utils/DataloaderUtils.js +12 -16
  240. package/utils/EntityComparator.d.ts +2 -2
  241. package/utils/EntityComparator.js +109 -97
  242. package/utils/NullHighlighter.d.ts +1 -1
  243. package/utils/NullHighlighter.js +1 -5
  244. package/utils/QueryHelper.d.ts +3 -3
  245. package/utils/QueryHelper.js +47 -51
  246. package/utils/RawQueryFragment.d.ts +1 -1
  247. package/utils/RawQueryFragment.js +22 -25
  248. package/utils/RequestContext.d.ts +2 -2
  249. package/utils/RequestContext.js +3 -7
  250. package/utils/TransactionContext.d.ts +1 -1
  251. package/utils/TransactionContext.js +4 -8
  252. package/utils/Utils.d.ts +16 -12
  253. package/utils/Utils.js +96 -95
  254. package/utils/clone.js +8 -11
  255. package/utils/index.d.ts +13 -13
  256. package/utils/index.js +13 -29
  257. package/utils/resolveContextProvider.d.ts +3 -3
  258. package/utils/resolveContextProvider.js +9 -12
  259. package/utils/upsert-utils.d.ts +3 -3
  260. package/utils/upsert-utils.js +5 -9
  261. package/index.mjs +0 -199
@@ -1,8 +1,8 @@
1
- import type { AnyEntity } from '../typings';
1
+ import type { AnyEntity } from '../typings.js';
2
2
  export declare function Embedded<T extends object>(type?: EmbeddedOptions | (() => AnyEntity), options?: EmbeddedOptions): (target: AnyEntity, propertyName: string) => any;
3
3
  /** With `absolute` the prefix is set at the root of the entity (regardless of the nesting level) */
4
4
  export type EmbeddedPrefixMode = 'absolute' | 'relative';
5
- export type EmbeddedOptions = {
5
+ export interface EmbeddedOptions {
6
6
  entity?: string | (() => AnyEntity | AnyEntity[]);
7
7
  type?: string;
8
8
  prefix?: string | boolean;
@@ -15,4 +15,4 @@ export type EmbeddedOptions = {
15
15
  serializedName?: string;
16
16
  groups?: string[];
17
17
  persist?: boolean;
18
- };
18
+ }
@@ -1,20 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Embedded = Embedded;
4
- const metadata_1 = require("../metadata");
5
- const utils_1 = require("../utils");
6
- const enums_1 = require("../enums");
7
- function Embedded(type = {}, options = {}) {
1
+ import { MetadataValidator } from '../metadata/MetadataValidator.js';
2
+ import { MetadataStorage } from '../metadata/MetadataStorage.js';
3
+ import { Utils } from '../utils/Utils.js';
4
+ import { ReferenceKind } from '../enums.js';
5
+ export function Embedded(type = {}, options = {}) {
8
6
  return function (target, propertyName) {
9
- const meta = metadata_1.MetadataStorage.getMetadataFromDecorator(target.constructor);
10
- metadata_1.MetadataValidator.validateSingleDecorator(meta, propertyName, enums_1.ReferenceKind.EMBEDDED);
7
+ const meta = MetadataStorage.getMetadataFromDecorator(target.constructor);
8
+ MetadataValidator.validateSingleDecorator(meta, propertyName, ReferenceKind.EMBEDDED);
11
9
  options = type instanceof Function ? { entity: type, ...options } : { ...type, ...options };
12
- utils_1.Utils.defaultValue(options, 'prefix', true);
10
+ Utils.defaultValue(options, 'prefix', true);
13
11
  meta.properties[propertyName] = {
14
12
  name: propertyName,
15
- kind: enums_1.ReferenceKind.EMBEDDED,
13
+ kind: ReferenceKind.EMBEDDED,
16
14
  ...options,
17
15
  };
18
- return utils_1.Utils.propertyDecoratorReturnValue();
16
+ return Utils.propertyDecoratorReturnValue();
19
17
  };
20
18
  }
@@ -1,11 +1,11 @@
1
- import type { Constructor, Dictionary, FilterQuery } from '../typings';
2
- import type { FindOptions } from '../drivers/IDatabaseDriver';
3
- export declare function Entity(options?: EntityOptions<any>): <T>(target: T & Dictionary) => T & Dictionary;
4
- export type EntityOptions<T> = {
1
+ import type { AnyString, Constructor, Dictionary, EntityClass, ObjectQuery } from '../typings.js';
2
+ import type { FindOptions } from '../drivers/IDatabaseDriver.js';
3
+ export declare function Entity<T extends EntityClass<unknown>>(options?: EntityOptions<T>): (target: T) => void;
4
+ export type EntityOptions<T, E = T extends EntityClass<infer P> ? P : T> = {
5
5
  tableName?: string;
6
6
  schema?: string;
7
7
  collection?: string;
8
- discriminatorColumn?: string;
8
+ discriminatorColumn?: (T extends EntityClass<infer P> ? keyof P : string) | AnyString;
9
9
  discriminatorMap?: Dictionary<string>;
10
10
  discriminatorValue?: number | string;
11
11
  forceConstructor?: boolean;
@@ -13,6 +13,6 @@ export type EntityOptions<T> = {
13
13
  abstract?: boolean;
14
14
  readonly?: boolean;
15
15
  virtual?: boolean;
16
- expression?: string | ((em: any, where: FilterQuery<T>, options: FindOptions<T, any, any, any>) => object);
16
+ expression?: string | ((em: any, where: ObjectQuery<E>, options: FindOptions<E, any, any, any>) => object);
17
17
  repository?: () => Constructor;
18
18
  };
@@ -1,16 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Entity = Entity;
4
- const metadata_1 = require("../metadata");
5
- const utils_1 = require("../utils");
6
- function Entity(options = {}) {
1
+ import { MetadataStorage } from '../metadata/MetadataStorage.js';
2
+ import { Utils } from '../utils/Utils.js';
3
+ export function Entity(options = {}) {
7
4
  return function (target) {
8
- const meta = metadata_1.MetadataStorage.getMetadataFromDecorator(target);
9
- utils_1.Utils.mergeConfig(meta, options);
5
+ const meta = MetadataStorage.getMetadataFromDecorator(target);
6
+ Utils.mergeConfig(meta, options);
10
7
  meta.class = target;
11
8
  if (!options.abstract || meta.discriminatorColumn) {
12
9
  meta.name = target.name;
13
10
  }
14
- return target;
15
11
  };
16
12
  }
@@ -1,6 +1,6 @@
1
- import type { PropertyOptions } from './Property';
2
- import type { AnyEntity, Dictionary } from '../typings';
3
- export declare function Enum<T extends object>(options?: EnumOptions<AnyEntity> | (() => Dictionary)): (target: AnyEntity, propertyName: string) => any;
1
+ import type { PropertyOptions } from './Property.js';
2
+ import type { AnyEntity, Dictionary } from '../typings.js';
3
+ export declare function Enum<T extends object>(options?: EnumOptions<AnyEntity> | (() => Dictionary)): (target: T, propertyName: string) => any;
4
4
  export interface EnumOptions<T> extends PropertyOptions<T> {
5
5
  items?: (number | string)[] | (() => Dictionary);
6
6
  array?: boolean;
@@ -1,19 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Enum = Enum;
4
- const metadata_1 = require("../metadata");
5
- const enums_1 = require("../enums");
6
- const Utils_1 = require("../utils/Utils");
7
- function Enum(options = {}) {
1
+ import { MetadataStorage } from '../metadata/MetadataStorage.js';
2
+ import { ReferenceKind } from '../enums.js';
3
+ import { Utils } from '../utils/Utils.js';
4
+ export function Enum(options = {}) {
8
5
  return function (target, propertyName) {
9
- const meta = metadata_1.MetadataStorage.getMetadataFromDecorator(target.constructor);
6
+ const meta = MetadataStorage.getMetadataFromDecorator(target.constructor);
10
7
  options = options instanceof Function ? { items: options } : options;
11
8
  meta.properties[propertyName] = {
12
9
  name: propertyName,
13
- kind: enums_1.ReferenceKind.SCALAR,
10
+ kind: ReferenceKind.SCALAR,
14
11
  enum: true,
15
12
  ...options,
16
13
  };
17
- return Utils_1.Utils.propertyDecoratorReturnValue();
14
+ return Utils.propertyDecoratorReturnValue();
18
15
  };
19
16
  }
@@ -1,2 +1,2 @@
1
- import type { Dictionary, FilterDef } from '../typings';
1
+ import type { Dictionary, FilterDef } from '../typings.js';
2
2
  export declare function Filter<T>(options: FilterDef): <U>(target: U & Dictionary) => U & Dictionary;
@@ -1,10 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Filter = Filter;
4
- const metadata_1 = require("../metadata");
5
- function Filter(options) {
1
+ import { MetadataStorage } from '../metadata/MetadataStorage.js';
2
+ export function Filter(options) {
6
3
  return function (target) {
7
- const meta = metadata_1.MetadataStorage.getMetadataFromDecorator(target);
4
+ const meta = MetadataStorage.getMetadataFromDecorator(target);
8
5
  meta.filters[options.name] = options;
9
6
  return target;
10
7
  };
@@ -1,5 +1,4 @@
1
- import type { AnyEntity } from '../typings';
2
- import type { PropertyOptions } from './Property';
3
- export declare function Formula<T extends object>(formula: string | ((alias: string) => string), options?: FormulaOptions<T>): (target: AnyEntity, propertyName: string) => any;
1
+ import type { PropertyOptions } from './Property.js';
2
+ export declare function Formula<T extends object>(formula: string | ((alias: string) => string), options?: FormulaOptions<T>): (target: T, propertyName: string) => any;
4
3
  export interface FormulaOptions<T> extends PropertyOptions<T> {
5
4
  }
@@ -1,18 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Formula = Formula;
4
- const metadata_1 = require("../metadata");
5
- const enums_1 = require("../enums");
6
- const Utils_1 = require("../utils/Utils");
7
- function Formula(formula, options = {}) {
1
+ import { MetadataStorage } from '../metadata/MetadataStorage.js';
2
+ import { ReferenceKind } from '../enums.js';
3
+ import { Utils } from '../utils/Utils.js';
4
+ export function Formula(formula, options = {}) {
8
5
  return function (target, propertyName) {
9
- const meta = metadata_1.MetadataStorage.getMetadataFromDecorator(target.constructor);
6
+ const meta = MetadataStorage.getMetadataFromDecorator(target.constructor);
10
7
  meta.properties[propertyName] = {
11
8
  name: propertyName,
12
- kind: enums_1.ReferenceKind.SCALAR,
9
+ kind: ReferenceKind.SCALAR,
13
10
  formula,
14
11
  ...options,
15
12
  };
16
- return Utils_1.Utils.propertyDecoratorReturnValue();
13
+ return Utils.propertyDecoratorReturnValue();
17
14
  };
18
15
  }
@@ -1,17 +1,19 @@
1
- import type { AnyEntity, Dictionary } from '../typings';
2
- import type { DeferMode } from '../enums';
3
- export declare function Index<T>(options?: IndexOptions<T>): (target: AnyEntity, propertyName?: string) => any;
4
- export declare function Unique<T>(options?: UniqueOptions<T>): (target: AnyEntity, propertyName?: string) => any;
5
- interface BaseOptions<T> {
1
+ import type { EntityClass, Dictionary, AutoPath } from '../typings.js';
2
+ import type { DeferMode } from '../enums.js';
3
+ export declare function Index<T extends object, H extends string>(options?: IndexOptions<T, H>): (target: T, propertyName?: (T extends EntityClass<unknown> ? undefined : keyof T) | undefined) => any;
4
+ export declare function Unique<T extends object, H extends string>(options?: UniqueOptions<T, H>): (target: T, propertyName?: (T extends EntityClass<unknown> ? undefined : keyof T) | undefined) => any;
5
+ type MaybeArray<T> = T | T[];
6
+ type Properties<T, H extends string> = MaybeArray<AutoPath<T, H>>;
7
+ interface BaseOptions<T, H extends string> {
6
8
  name?: string;
7
- properties?: keyof T | (keyof T)[];
9
+ properties?: (T extends EntityClass<infer P> ? Properties<P, H> : Properties<T, H>);
8
10
  options?: Dictionary;
9
11
  expression?: string;
10
12
  }
11
- export interface UniqueOptions<T> extends BaseOptions<T> {
13
+ export interface UniqueOptions<T, H extends string = string> extends BaseOptions<T, H> {
12
14
  deferMode?: DeferMode | `${DeferMode}`;
13
15
  }
14
- export interface IndexOptions<T> extends BaseOptions<T> {
16
+ export interface IndexOptions<T, H extends string = string> extends BaseOptions<T, H> {
15
17
  type?: string;
16
18
  }
17
19
  export {};
@@ -1,24 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Index = Index;
4
- exports.Unique = Unique;
5
- const metadata_1 = require("../metadata");
6
- const Utils_1 = require("../utils/Utils");
1
+ import { MetadataStorage } from '../metadata/MetadataStorage.js';
2
+ import { Utils } from '../utils/Utils.js';
7
3
  function createDecorator(options, unique) {
8
4
  return function (target, propertyName) {
9
- const meta = metadata_1.MetadataStorage.getMetadataFromDecorator(propertyName ? target.constructor : target);
10
- options.properties = options.properties || propertyName;
5
+ const meta = MetadataStorage.getMetadataFromDecorator(propertyName ? target.constructor : target);
6
+ options.properties ??= propertyName;
11
7
  const key = unique ? 'uniques' : 'indexes';
12
8
  meta[key].push(options);
13
9
  if (!propertyName) {
14
10
  return target;
15
11
  }
16
- return Utils_1.Utils.propertyDecoratorReturnValue();
12
+ return Utils.propertyDecoratorReturnValue();
17
13
  };
18
14
  }
19
- function Index(options = {}) {
15
+ export function Index(options = {}) {
20
16
  return createDecorator(options, false);
21
17
  }
22
- function Unique(options = {}) {
18
+ export function Unique(options = {}) {
23
19
  return createDecorator(options, true);
24
20
  }
@@ -1,7 +1,7 @@
1
- import type { ReferenceOptions } from './Property';
2
- import type { EntityName, AnyEntity, FilterQuery, AnyString } from '../typings';
3
- import { type QueryOrderMap } from '../enums';
4
- export declare function ManyToMany<T extends object, O>(entity?: ManyToManyOptions<T, O> | string | (() => EntityName<T>), mappedBy?: (string & keyof T) | ((e: T) => any), options?: Partial<ManyToManyOptions<T, O>>): (target: AnyEntity, propertyName: string) => any;
1
+ import type { ReferenceOptions } from './Property.js';
2
+ import type { EntityName, FilterQuery, AnyString } from '../typings.js';
3
+ import { type QueryOrderMap } from '../enums.js';
4
+ export declare function ManyToMany<Target extends object, Owner extends object>(entity?: ManyToManyOptions<Owner, Target> | string | (() => EntityName<Target>), mappedBy?: (string & keyof Target) | ((e: Target) => any), options?: Partial<ManyToManyOptions<Owner, Target>>): (target: Owner, propertyName: keyof Owner) => any;
5
5
  export interface ManyToManyOptions<Owner, Target> extends ReferenceOptions<Owner, Target> {
6
6
  /** Set this side as owning. Owning side is where the foreign key is defined. This option is not required if you use `inversedBy` or `mappedBy` to distinguish owning and inverse side. */
7
7
  owner?: boolean;
@@ -1,16 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ManyToMany = ManyToMany;
4
- const metadata_1 = require("../metadata");
5
- const utils_1 = require("../utils");
6
- const enums_1 = require("../enums");
7
- function ManyToMany(entity, mappedBy, options = {}) {
1
+ import { MetadataStorage } from '../metadata/MetadataStorage.js';
2
+ import { MetadataValidator } from '../metadata/MetadataValidator.js';
3
+ import { Utils } from '../utils/Utils.js';
4
+ import { ReferenceKind } from '../enums.js';
5
+ export function ManyToMany(entity, mappedBy, options = {}) {
8
6
  return function (target, propertyName) {
9
- options = utils_1.Utils.processDecoratorParameters({ entity, mappedBy, options });
10
- const meta = metadata_1.MetadataStorage.getMetadataFromDecorator(target.constructor);
11
- metadata_1.MetadataValidator.validateSingleDecorator(meta, propertyName, enums_1.ReferenceKind.MANY_TO_MANY);
12
- const property = { name: propertyName, kind: enums_1.ReferenceKind.MANY_TO_MANY };
7
+ options = Utils.processDecoratorParameters({ entity, mappedBy, options });
8
+ const meta = MetadataStorage.getMetadataFromDecorator(target.constructor);
9
+ MetadataValidator.validateSingleDecorator(meta, propertyName, ReferenceKind.MANY_TO_MANY);
10
+ const property = { name: propertyName, kind: ReferenceKind.MANY_TO_MANY };
13
11
  meta.properties[propertyName] = Object.assign(meta.properties[propertyName] ?? {}, property, options);
14
- return utils_1.Utils.propertyDecoratorReturnValue();
12
+ return Utils.propertyDecoratorReturnValue();
15
13
  };
16
14
  }
@@ -1,7 +1,7 @@
1
- import type { ReferenceOptions } from './Property';
2
- import { type DeferMode } from '../enums';
3
- import type { AnyEntity, AnyString, EntityName } from '../typings';
4
- export declare function ManyToOne<T extends object, O>(entity?: ManyToOneOptions<T, O> | string | ((e?: any) => EntityName<T>), options?: Partial<ManyToOneOptions<T, O>>): (target: AnyEntity, propertyName: string) => any;
1
+ import type { ReferenceOptions } from './Property.js';
2
+ import { type DeferMode } from '../enums.js';
3
+ import type { AnyString, EntityName } from '../typings.js';
4
+ export declare function ManyToOne<Target extends object, Owner extends object>(entity?: ManyToOneOptions<Owner, Target> | string | ((e?: any) => EntityName<Target>), options?: Partial<ManyToOneOptions<Owner, Target>>): (target: Owner, propertyName: keyof Owner) => any;
5
5
  export interface ManyToOneOptions<Owner, Target> extends ReferenceOptions<Owner, Target> {
6
6
  /** Point to the inverse side property name. */
7
7
  inversedBy?: (string & keyof Target) | ((e: Target) => any);
@@ -1,16 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ManyToOne = ManyToOne;
4
- const metadata_1 = require("../metadata");
5
- const utils_1 = require("../utils");
6
- const enums_1 = require("../enums");
7
- function ManyToOne(entity = {}, options = {}) {
1
+ import { MetadataStorage } from '../metadata/MetadataStorage.js';
2
+ import { MetadataValidator } from '../metadata/MetadataValidator.js';
3
+ import { Utils } from '../utils/Utils.js';
4
+ import { ReferenceKind } from '../enums.js';
5
+ export function ManyToOne(entity = {}, options = {}) {
8
6
  return function (target, propertyName) {
9
- options = utils_1.Utils.processDecoratorParameters({ entity, options });
10
- const meta = metadata_1.MetadataStorage.getMetadataFromDecorator(target.constructor);
11
- metadata_1.MetadataValidator.validateSingleDecorator(meta, propertyName, enums_1.ReferenceKind.MANY_TO_ONE);
12
- const property = { name: propertyName, kind: enums_1.ReferenceKind.MANY_TO_ONE };
7
+ options = Utils.processDecoratorParameters({ entity, options });
8
+ const meta = MetadataStorage.getMetadataFromDecorator(target.constructor);
9
+ MetadataValidator.validateSingleDecorator(meta, propertyName, ReferenceKind.MANY_TO_ONE);
10
+ const property = { name: propertyName, kind: ReferenceKind.MANY_TO_ONE };
13
11
  meta.properties[propertyName] = Object.assign(meta.properties[propertyName] ?? {}, property, options);
14
- return utils_1.Utils.propertyDecoratorReturnValue();
12
+ return Utils.propertyDecoratorReturnValue();
15
13
  };
16
14
  }
@@ -1,9 +1,9 @@
1
- import type { ReferenceOptions } from './Property';
2
- import { ReferenceKind, type QueryOrderMap } from '../enums';
3
- import type { EntityName, AnyEntity, FilterQuery } from '../typings';
4
- export declare function createOneToDecorator<Target, Owner>(entity: OneToManyOptions<Owner, Target> | string | ((e?: any) => EntityName<Target>), mappedBy: (string & keyof Target) | ((e: Target) => any) | undefined, options: Partial<OneToManyOptions<Owner, Target>>, kind: ReferenceKind): (target: AnyEntity, propertyName: string) => any;
5
- export declare function OneToMany<Target, Owner>(entity: string | ((e?: any) => EntityName<Target>), mappedBy: (string & keyof Target) | ((e: Target) => any), options?: Partial<OneToManyOptions<Owner, Target>>): (target: AnyEntity, propertyName: string) => void;
6
- export declare function OneToMany<Target, Owner>(options: OneToManyOptions<Owner, Target>): (target: AnyEntity, propertyName: string) => void;
1
+ import type { ReferenceOptions } from './Property.js';
2
+ import { ReferenceKind, type QueryOrderMap } from '../enums.js';
3
+ import type { EntityName, FilterQuery } from '../typings.js';
4
+ export declare function createOneToDecorator<Target, Owner>(entity: OneToManyOptions<Owner, Target> | string | ((e?: any) => EntityName<Target>), mappedBy: (string & keyof Target) | ((e: Target) => any) | undefined, options: Partial<OneToManyOptions<Owner, Target>>, kind: ReferenceKind): (target: Owner, propertyName: string) => any;
5
+ export declare function OneToMany<Target, Owner>(entity: string | ((e?: any) => EntityName<Target>), mappedBy: (string & keyof Target) | ((e: Target) => any), options?: Partial<OneToManyOptions<Owner, Target>>): (target: Owner, propertyName: string) => void;
6
+ export declare function OneToMany<Target, Owner>(options: OneToManyOptions<Owner, Target>): (target: Owner, propertyName: string) => void;
7
7
  export interface OneToManyOptions<Owner, Target> extends ReferenceOptions<Owner, Target> {
8
8
  /** Remove the entity when it gets disconnected from the relationship (see {@doclink cascading | Cascading}). */
9
9
  orphanRemoval?: boolean;
@@ -1,20 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createOneToDecorator = createOneToDecorator;
4
- exports.OneToMany = OneToMany;
5
- const metadata_1 = require("../metadata");
6
- const utils_1 = require("../utils");
7
- const enums_1 = require("../enums");
8
- function createOneToDecorator(entity, mappedBy, options, kind) {
1
+ import { MetadataStorage } from '../metadata/MetadataStorage.js';
2
+ import { MetadataValidator } from '../metadata/MetadataValidator.js';
3
+ import { Utils } from '../utils/Utils.js';
4
+ import { ReferenceKind } from '../enums.js';
5
+ export function createOneToDecorator(entity, mappedBy, options, kind) {
9
6
  return function (target, propertyName) {
10
- options = utils_1.Utils.processDecoratorParameters({ entity, mappedBy, options });
11
- const meta = metadata_1.MetadataStorage.getMetadataFromDecorator(target.constructor);
12
- metadata_1.MetadataValidator.validateSingleDecorator(meta, propertyName, kind);
7
+ options = Utils.processDecoratorParameters({ entity, mappedBy, options });
8
+ const meta = MetadataStorage.getMetadataFromDecorator(target.constructor);
9
+ MetadataValidator.validateSingleDecorator(meta, propertyName, kind);
13
10
  const property = { name: propertyName, kind };
14
11
  meta.properties[propertyName] = Object.assign(meta.properties[propertyName] ?? {}, property, options);
15
- return utils_1.Utils.propertyDecoratorReturnValue();
12
+ return Utils.propertyDecoratorReturnValue();
16
13
  };
17
14
  }
18
- function OneToMany(entity, mappedBy, options = {}) {
19
- return createOneToDecorator(entity, mappedBy, options, enums_1.ReferenceKind.ONE_TO_MANY);
15
+ export function OneToMany(entity, mappedBy, options = {}) {
16
+ return createOneToDecorator(entity, mappedBy, options, ReferenceKind.ONE_TO_MANY);
20
17
  }
@@ -1,7 +1,7 @@
1
- import { type DeferMode } from '../enums';
2
- import { type OneToManyOptions } from './OneToMany';
3
- import type { AnyString, EntityName } from '../typings';
4
- export declare function OneToOne<Target, Owner>(entity?: OneToOneOptions<Owner, Target> | string | ((e: Owner) => EntityName<Target>), mappedByOrOptions?: (string & keyof Target) | ((e: Target) => any) | Partial<OneToOneOptions<Owner, Target>>, options?: Partial<OneToOneOptions<Owner, Target>>): (target: import("../typings").AnyEntity, propertyName: string) => any;
1
+ import { type DeferMode } from '../enums.js';
2
+ import { type OneToManyOptions } from './OneToMany.js';
3
+ import type { AnyString, EntityName } from '../typings.js';
4
+ export declare function OneToOne<Target, Owner>(entity?: OneToOneOptions<Owner, Target> | string | ((e: Owner) => EntityName<Target>), mappedByOrOptions?: (string & keyof Target) | ((e: Target) => any) | Partial<OneToOneOptions<Owner, Target>>, options?: Partial<OneToOneOptions<Owner, Target>>): (target: Owner, propertyName: string) => any;
5
5
  export interface OneToOneOptions<Owner, Target> extends Partial<Omit<OneToManyOptions<Owner, Target>, 'orderBy'>> {
6
6
  /** Set this side as owning. Owning side is where the foreign key is defined. This option is not required if you use `inversedBy` or `mappedBy` to distinguish owning and inverse side. */
7
7
  owner?: boolean;
@@ -1,10 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OneToOne = OneToOne;
4
- const enums_1 = require("../enums");
5
- const OneToMany_1 = require("./OneToMany");
6
- function OneToOne(entity, mappedByOrOptions, options = {}) {
1
+ import { ReferenceKind } from '../enums.js';
2
+ import { createOneToDecorator } from './OneToMany.js';
3
+ export function OneToOne(entity, mappedByOrOptions, options = {}) {
7
4
  const mappedBy = typeof mappedByOrOptions === 'object' ? mappedByOrOptions.mappedBy : mappedByOrOptions;
8
5
  options = typeof mappedByOrOptions === 'object' ? { ...mappedByOrOptions, ...options } : options;
9
- return (0, OneToMany_1.createOneToDecorator)(entity, mappedBy, options, enums_1.ReferenceKind.ONE_TO_ONE);
6
+ return createOneToDecorator(entity, mappedBy, options, ReferenceKind.ONE_TO_ONE);
10
7
  }
@@ -1,7 +1,6 @@
1
- import type { PropertyOptions } from './Property';
2
- import type { AnyEntity } from '../typings';
3
- export declare function PrimaryKey<T extends object>(options?: PrimaryKeyOptions<T>): (target: AnyEntity, propertyName: string) => any;
4
- export declare function SerializedPrimaryKey<T extends object>(options?: SerializedPrimaryKeyOptions<T>): (target: AnyEntity, propertyName: string) => any;
1
+ import type { PropertyOptions } from './Property.js';
2
+ export declare function PrimaryKey<T extends object>(options?: PrimaryKeyOptions<T>): (target: T, propertyName: string) => any;
3
+ export declare function SerializedPrimaryKey<T extends object>(options?: SerializedPrimaryKeyOptions<T>): (target: T, propertyName: string) => any;
5
4
  export interface PrimaryKeyOptions<T> extends PropertyOptions<T> {
6
5
  }
7
6
  export interface SerializedPrimaryKeyOptions<T> extends PropertyOptions<T> {
@@ -1,23 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PrimaryKey = PrimaryKey;
4
- exports.SerializedPrimaryKey = SerializedPrimaryKey;
5
- const metadata_1 = require("../metadata");
6
- const enums_1 = require("../enums");
7
- const Utils_1 = require("../utils/Utils");
1
+ import { MetadataStorage } from '../metadata/MetadataStorage.js';
2
+ import { MetadataValidator } from '../metadata/MetadataValidator.js';
3
+ import { ReferenceKind } from '../enums.js';
4
+ import { Utils } from '../utils/Utils.js';
8
5
  function createDecorator(options, serialized) {
9
6
  return function (target, propertyName) {
10
- const meta = metadata_1.MetadataStorage.getMetadataFromDecorator(target.constructor);
11
- metadata_1.MetadataValidator.validateSingleDecorator(meta, propertyName, enums_1.ReferenceKind.SCALAR);
7
+ const meta = MetadataStorage.getMetadataFromDecorator(target.constructor);
8
+ MetadataValidator.validateSingleDecorator(meta, propertyName, ReferenceKind.SCALAR);
12
9
  const k = serialized ? 'serializedPrimaryKey' : 'primary';
13
10
  options[k] = true;
14
- meta.properties[propertyName] = { name: propertyName, kind: enums_1.ReferenceKind.SCALAR, ...options };
15
- return Utils_1.Utils.propertyDecoratorReturnValue();
11
+ meta.properties[propertyName] = { name: propertyName, kind: ReferenceKind.SCALAR, ...options };
12
+ return Utils.propertyDecoratorReturnValue();
16
13
  };
17
14
  }
18
- function PrimaryKey(options = {}) {
15
+ export function PrimaryKey(options = {}) {
19
16
  return createDecorator(options, false);
20
17
  }
21
- function SerializedPrimaryKey(options = {}) {
18
+ export function SerializedPrimaryKey(options = {}) {
22
19
  return createDecorator(options, true);
23
20
  }
@@ -1,9 +1,9 @@
1
- import { type Cascade, type LoadStrategy } from '../enums';
2
- import type { EntityName, Constructor, CheckCallback, GeneratedColumnCallback, AnyString, AnyEntity } from '../typings';
3
- import type { Type, types } from '../types';
4
- import type { EntityManager } from '../EntityManager';
5
- import type { SerializeOptions } from '../serialization/EntitySerializer';
6
- export declare function Property<T extends object>(options?: PropertyOptions<T>): (target: any, propertyName: string) => any;
1
+ import { type Cascade, type LoadStrategy } from '../enums.js';
2
+ import type { EntityName, Constructor, CheckCallback, GeneratedColumnCallback, AnyString, AnyEntity } from '../typings.js';
3
+ import type { Type, types } from '../types/index.js';
4
+ import type { EntityManager } from '../EntityManager.js';
5
+ import type { SerializeOptions } from '../serialization/EntitySerializer.js';
6
+ export declare function Property<T extends object>(options?: PropertyOptions<T>): (target: T, propertyName: string) => any;
7
7
  export interface PropertyOptions<Owner> {
8
8
  /**
9
9
  * Alias for `fieldName`.
@@ -1,21 +1,19 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Property = Property;
4
- const metadata_1 = require("../metadata");
5
- const utils_1 = require("../utils");
6
- const enums_1 = require("../enums");
7
- function Property(options = {}) {
1
+ import { MetadataStorage } from '../metadata/MetadataStorage.js';
2
+ import { MetadataValidator } from '../metadata/MetadataValidator.js';
3
+ import { Utils } from '../utils/Utils.js';
4
+ import { ReferenceKind } from '../enums.js';
5
+ export function Property(options = {}) {
8
6
  return function (target, propertyName) {
9
- const meta = metadata_1.MetadataStorage.getMetadataFromDecorator(target.constructor);
7
+ const meta = MetadataStorage.getMetadataFromDecorator(target.constructor);
10
8
  const desc = Object.getOwnPropertyDescriptor(target, propertyName) || {};
11
- metadata_1.MetadataValidator.validateSingleDecorator(meta, propertyName, enums_1.ReferenceKind.SCALAR);
9
+ MetadataValidator.validateSingleDecorator(meta, propertyName, ReferenceKind.SCALAR);
12
10
  const name = options.name || propertyName;
13
11
  if (propertyName !== name && !(desc.value instanceof Function)) {
14
- utils_1.Utils.renameKey(options, 'name', 'fieldName');
12
+ Utils.renameKey(options, 'name', 'fieldName');
15
13
  }
16
14
  options.name = propertyName;
17
15
  const { check, ...opts } = options;
18
- const prop = { kind: enums_1.ReferenceKind.SCALAR, ...opts };
16
+ const prop = { kind: ReferenceKind.SCALAR, ...opts };
19
17
  prop.getter = !!desc.get;
20
18
  prop.setter = !!desc.set;
21
19
  if (desc.value instanceof Function) {
@@ -29,6 +27,6 @@ function Property(options = {}) {
29
27
  meta.checks.push({ property: prop.name, expression: check });
30
28
  }
31
29
  meta.properties[prop.name] = prop;
32
- return utils_1.Utils.propertyDecoratorReturnValue();
30
+ return Utils.propertyDecoratorReturnValue();
33
31
  };
34
32
  }
@@ -1,5 +1,5 @@
1
- import type { TransactionOptions } from '../enums';
2
- import type { ContextProvider } from '../typings';
1
+ import type { TransactionOptions } from '../enums.js';
2
+ import type { ContextProvider } from '../typings.js';
3
3
  type TransactionalOptions<T> = TransactionOptions & {
4
4
  context?: ContextProvider<T>;
5
5
  };
@@ -1,16 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Transactional = Transactional;
4
- const RequestContext_1 = require("../utils/RequestContext");
5
- const resolveContextProvider_1 = require("../utils/resolveContextProvider");
6
- const TransactionContext_1 = require("../utils/TransactionContext");
1
+ import { RequestContext } from '../utils/RequestContext.js';
2
+ import { resolveContextProvider } from '../utils/resolveContextProvider.js';
3
+ import { TransactionContext } from '../utils/TransactionContext.js';
7
4
  /**
8
5
  * This decorator wraps the method with `em.transactional()`, so you can provide `TransactionOptions` just like with `em.transactional()`.
9
6
  * The difference is that you can specify the context in which the transaction begins by providing `context` option,
10
7
  * and if omitted, the transaction will begin in the current context implicitly.
11
8
  * It works on async functions and can be nested with `em.transactional()`.
12
9
  */
13
- function Transactional(options = {}) {
10
+ export function Transactional(options = {}) {
14
11
  return function (target, propertyKey, descriptor) {
15
12
  const originalMethod = descriptor.value;
16
13
  if (originalMethod.constructor.name !== 'AsyncFunction') {
@@ -18,9 +15,9 @@ function Transactional(options = {}) {
18
15
  }
19
16
  descriptor.value = async function (...args) {
20
17
  const { context, ...txOptions } = options;
21
- const em = await (0, resolveContextProvider_1.resolveContextProvider)(this, context)
22
- || TransactionContext_1.TransactionContext.getEntityManager()
23
- || RequestContext_1.RequestContext.getEntityManager();
18
+ const em = (await resolveContextProvider(this, context))
19
+ || TransactionContext.getEntityManager()
20
+ || RequestContext.getEntityManager();
24
21
  if (!em) {
25
22
  throw new Error(`@Transactional() decorator can only be applied to methods of classes with \`orm: MikroORM\` property, \`em: EntityManager\` property, or with a callback parameter like \`@Transactional(() => orm)\` that returns one of those types. The parameter will contain a reference to current \`this\`. Returning an EntityRepository from it is also supported.`);
26
23
  }