@mikro-orm/decorators 7.0.2-dev.9 → 7.0.2

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 (74) hide show
  1. package/README.md +128 -294
  2. package/es/Check.d.ts +4 -1
  3. package/es/Check.js +7 -6
  4. package/es/CreateRequestContext.d.ts +15 -2
  5. package/es/CreateRequestContext.js +26 -22
  6. package/es/Embeddable.d.ts +4 -1
  7. package/es/Embeddable.js +10 -9
  8. package/es/Embedded.d.ts +5 -1
  9. package/es/Embedded.js +11 -10
  10. package/es/Entity.d.ts +4 -1
  11. package/es/Entity.js +10 -9
  12. package/es/Enum.d.ts +4 -1
  13. package/es/Enum.js +11 -10
  14. package/es/Filter.d.ts +1 -0
  15. package/es/Filter.js +5 -4
  16. package/es/Formula.d.ts +5 -1
  17. package/es/Formula.js +10 -9
  18. package/es/Indexed.d.ts +8 -2
  19. package/es/Indexed.js +13 -11
  20. package/es/ManyToMany.d.ts +6 -1
  21. package/es/ManyToMany.js +9 -8
  22. package/es/ManyToOne.d.ts +5 -1
  23. package/es/ManyToOne.js +8 -7
  24. package/es/OneToMany.d.ts +9 -2
  25. package/es/OneToMany.js +8 -8
  26. package/es/OneToOne.d.ts +6 -1
  27. package/es/OneToOne.js +10 -9
  28. package/es/PrimaryKey.d.ts +8 -2
  29. package/es/PrimaryKey.js +14 -12
  30. package/es/Property.d.ts +12 -1
  31. package/es/Property.js +38 -41
  32. package/es/Transactional.d.ts +8 -3
  33. package/es/Transactional.js +18 -15
  34. package/es/hooks.d.ts +40 -8
  35. package/es/hooks.js +25 -17
  36. package/legacy/Check.d.ts +4 -1
  37. package/legacy/Check.js +10 -9
  38. package/legacy/CreateRequestContext.d.ts +6 -1
  39. package/legacy/CreateRequestContext.js +28 -24
  40. package/legacy/Embeddable.d.ts +1 -0
  41. package/legacy/Embeddable.js +9 -8
  42. package/legacy/Embedded.d.ts +5 -1
  43. package/legacy/Embedded.js +12 -11
  44. package/legacy/Entity.d.ts +1 -0
  45. package/legacy/Entity.js +9 -8
  46. package/legacy/Enum.d.ts +4 -1
  47. package/legacy/Enum.js +11 -10
  48. package/legacy/Filter.d.ts +1 -0
  49. package/legacy/Filter.js +5 -4
  50. package/legacy/Formula.d.ts +5 -1
  51. package/legacy/Formula.js +10 -9
  52. package/legacy/Indexed.d.ts +8 -2
  53. package/legacy/Indexed.js +14 -12
  54. package/legacy/ManyToMany.d.ts +9 -2
  55. package/legacy/ManyToMany.js +8 -8
  56. package/legacy/ManyToOne.d.ts +8 -2
  57. package/legacy/ManyToOne.js +8 -8
  58. package/legacy/OneToMany.d.ts +9 -2
  59. package/legacy/OneToMany.js +8 -8
  60. package/legacy/OneToOne.d.ts +9 -2
  61. package/legacy/OneToOne.js +10 -10
  62. package/legacy/PrimaryKey.d.ts +8 -2
  63. package/legacy/PrimaryKey.js +15 -13
  64. package/legacy/Property.d.ts +4 -1
  65. package/legacy/Property.js +26 -25
  66. package/legacy/ReflectMetadataProvider.d.ts +3 -2
  67. package/legacy/ReflectMetadataProvider.js +49 -44
  68. package/legacy/Transactional.d.ts +2 -2
  69. package/legacy/Transactional.js +20 -17
  70. package/legacy/hooks.d.ts +8 -0
  71. package/legacy/hooks.js +23 -15
  72. package/package.json +3 -3
  73. package/utils.d.ts +41 -10
  74. package/utils.js +91 -85
package/es/hooks.js CHANGED
@@ -1,45 +1,53 @@
1
1
  import { EventType } from '@mikro-orm/core';
2
2
  function hook(type) {
3
- return function (value, context) {
4
- const meta = context.metadata;
5
- meta.hooks ??= {};
6
- meta.hooks[type] ??= [];
7
- meta.hooks[type].push(value);
8
- };
9
- }
3
+ return function (value, context) {
4
+ const meta = context.metadata;
5
+ meta.hooks ??= {};
6
+ meta.hooks[type] ??= [];
7
+ meta.hooks[type].push(value);
8
+ };
9
+ }
10
+ /** Called before a new entity is persisted to the database (TC39 decorator). */
10
11
  export function BeforeCreate() {
11
- return hook(EventType.beforeCreate);
12
+ return hook(EventType.beforeCreate);
12
13
  }
14
+ /** Called after a new entity has been persisted to the database (TC39 decorator). */
13
15
  export function AfterCreate() {
14
- return hook(EventType.afterCreate);
16
+ return hook(EventType.afterCreate);
15
17
  }
18
+ /** Called before an existing entity is updated in the database (TC39 decorator). */
16
19
  export function BeforeUpdate() {
17
- return hook(EventType.beforeUpdate);
20
+ return hook(EventType.beforeUpdate);
18
21
  }
22
+ /** Called after an existing entity has been updated in the database (TC39 decorator). */
19
23
  export function AfterUpdate() {
20
- return hook(EventType.afterUpdate);
24
+ return hook(EventType.afterUpdate);
21
25
  }
26
+ /** Called before an entity is upserted (TC39 decorator). */
22
27
  export function BeforeUpsert() {
23
- return hook(EventType.beforeUpsert);
28
+ return hook(EventType.beforeUpsert);
24
29
  }
30
+ /** Called after an entity has been upserted (TC39 decorator). */
25
31
  export function AfterUpsert() {
26
- return hook(EventType.afterUpsert);
32
+ return hook(EventType.afterUpsert);
27
33
  }
34
+ /** Called when an entity is instantiated by the EntityManager (TC39 decorator). */
28
35
  export function OnInit() {
29
- return hook(EventType.onInit);
36
+ return hook(EventType.onInit);
30
37
  }
38
+ /** Called after an entity is loaded from the database (TC39 decorator). */
31
39
  export function OnLoad() {
32
- return hook(EventType.onLoad);
40
+ return hook(EventType.onLoad);
33
41
  }
34
42
  /**
35
43
  * Called before deleting entity, but only when providing initialized entity to EM#remove()
36
44
  */
37
45
  export function BeforeDelete() {
38
- return hook(EventType.beforeDelete);
46
+ return hook(EventType.beforeDelete);
39
47
  }
40
48
  /**
41
49
  * Called after deleting entity, but only when providing initialized entity to EM#remove()
42
50
  */
43
51
  export function AfterDelete() {
44
- return hook(EventType.afterDelete);
52
+ return hook(EventType.afterDelete);
45
53
  }
package/legacy/Check.d.ts CHANGED
@@ -1,2 +1,5 @@
1
1
  import { type CheckConstraint, type EntityClass } from '@mikro-orm/core';
2
- export declare function Check<T>(options: CheckConstraint<T>): (target: T, propertyName?: T extends EntityClass<unknown> ? undefined : keyof T) => any;
2
+ /** Defines a database check constraint on a property or entity class (legacy TypeScript decorator). */
3
+ export declare function Check<T>(
4
+ options: CheckConstraint<T>,
5
+ ): (target: T, propertyName?: T extends EntityClass<unknown> ? undefined : keyof T) => any;
package/legacy/Check.js CHANGED
@@ -1,12 +1,13 @@
1
1
  import { getMetadataFromDecorator } from '../utils.js';
2
+ /** Defines a database check constraint on a property or entity class (legacy TypeScript decorator). */
2
3
  export function Check(options) {
3
- return function (target, propertyName) {
4
- const meta = getMetadataFromDecorator((propertyName ? target.constructor : target));
5
- options.property ??= propertyName;
6
- meta.checks.push(options);
7
- if (!propertyName) {
8
- return target;
9
- }
10
- return undefined;
11
- };
4
+ return function (target, propertyName) {
5
+ const meta = getMetadataFromDecorator(propertyName ? target.constructor : target);
6
+ options.property ??= propertyName;
7
+ meta.checks.push(options);
8
+ if (!propertyName) {
9
+ return target;
10
+ }
11
+ return undefined;
12
+ };
12
13
  }
@@ -1,3 +1,8 @@
1
1
  import { type ContextProvider } from '../utils.js';
2
- export declare function CreateRequestContext<T extends object>(context?: ContextProvider<T>, respectExistingContext?: boolean): MethodDecorator;
2
+ /** Wraps an async method in a new RequestContext, forking the EntityManager (legacy TypeScript decorator). */
3
+ export declare function CreateRequestContext<T extends object>(
4
+ context?: ContextProvider<T>,
5
+ respectExistingContext?: boolean,
6
+ ): MethodDecorator;
7
+ /** Like `@CreateRequestContext`, but reuses an existing RequestContext if one is available (legacy TypeScript decorator). */
3
8
  export declare function EnsureRequestContext<T extends object>(context?: ContextProvider<T>): MethodDecorator;
@@ -1,31 +1,35 @@
1
1
  import { RequestContext, TransactionContext } from '@mikro-orm/core';
2
2
  import { resolveContextProvider } from '../utils.js';
3
+ /** Wraps an async method in a new RequestContext, forking the EntityManager (legacy TypeScript decorator). */
3
4
  export function CreateRequestContext(context, respectExistingContext = false) {
4
- return function (target, propertyKey, descriptor) {
5
- const originalMethod = descriptor.value;
6
- const name = respectExistingContext ? 'EnsureRequestContext' : 'CreateRequestContext';
7
- if (originalMethod.constructor.name !== 'AsyncFunction') {
8
- throw new Error(`@${name}() should be use with async functions`);
9
- }
10
- descriptor.value = async function (...args) {
11
- const em = await resolveContextProvider(this, context);
12
- if (!em) {
13
- throw new Error(`@${name}() decorator can only be applied to methods of classes with \`orm: MikroORM\` property, \`em: EntityManager\` property, or with a callback parameter like \`@${name}(() => orm)\` that returns one of those types. The parameter will contain a reference to current \`this\`. Returning an EntityRepository from it is also supported.`);
14
- }
15
- // reuse existing context if available for given respect `contextName`
16
- if (respectExistingContext && RequestContext.getEntityManager(em.name)) {
17
- return originalMethod.apply(this, args);
18
- }
19
- // Otherwise, the outer tx context would be preferred.
20
- const txContext = TransactionContext.currentTransactionContext();
21
- const provider = txContext ? TransactionContext : RequestContext;
22
- return txContext
23
- ? provider.create(em.fork({ useContext: true }), () => originalMethod.apply(this, args))
24
- : provider.create(em, () => originalMethod.apply(this, args));
25
- };
26
- return descriptor;
5
+ return function (target, propertyKey, descriptor) {
6
+ const originalMethod = descriptor.value;
7
+ const name = respectExistingContext ? 'EnsureRequestContext' : 'CreateRequestContext';
8
+ if (originalMethod.constructor.name !== 'AsyncFunction') {
9
+ throw new Error(`@${name}() should be use with async functions`);
10
+ }
11
+ descriptor.value = async function (...args) {
12
+ const em = await resolveContextProvider(this, context);
13
+ if (!em) {
14
+ throw new Error(
15
+ `@${name}() decorator can only be applied to methods of classes with \`orm: MikroORM\` property, \`em: EntityManager\` property, or with a callback parameter like \`@${name}(() => orm)\` that returns one of those types. The parameter will contain a reference to current \`this\`. Returning an EntityRepository from it is also supported.`,
16
+ );
17
+ }
18
+ // reuse existing context if available for given respect `contextName`
19
+ if (respectExistingContext && RequestContext.getEntityManager(em.name)) {
20
+ return originalMethod.apply(this, args);
21
+ }
22
+ // Otherwise, the outer tx context would be preferred.
23
+ const txContext = TransactionContext.currentTransactionContext();
24
+ const provider = txContext ? TransactionContext : RequestContext;
25
+ return txContext
26
+ ? provider.create(em.fork({ useContext: true }), () => originalMethod.apply(this, args))
27
+ : provider.create(em, () => originalMethod.apply(this, args));
27
28
  };
29
+ return descriptor;
30
+ };
28
31
  }
32
+ /** Like `@CreateRequestContext`, but reuses an existing RequestContext if one is available (legacy TypeScript decorator). */
29
33
  export function EnsureRequestContext(context) {
30
- return CreateRequestContext(context, true);
34
+ return CreateRequestContext(context, true);
31
35
  }
@@ -1,2 +1,3 @@
1
1
  import { type EmbeddableOptions } from '@mikro-orm/core';
2
+ /** Marks a class as an embeddable type (legacy TypeScript decorator). */
2
3
  export declare function Embeddable<T>(options?: EmbeddableOptions<T>): (target: T) => T;
@@ -1,11 +1,12 @@
1
1
  import { getMetadataFromDecorator } from '../utils.js';
2
+ /** Marks a class as an embeddable type (legacy TypeScript decorator). */
2
3
  export function Embeddable(options = {}) {
3
- return function (target) {
4
- const meta = getMetadataFromDecorator(target);
5
- meta.class = target;
6
- meta.name = meta.class.name;
7
- meta.embeddable = true;
8
- Object.assign(meta, options);
9
- return target;
10
- };
4
+ return function (target) {
5
+ const meta = getMetadataFromDecorator(target);
6
+ meta.class = target;
7
+ meta.name = meta.class.name;
8
+ meta.embeddable = true;
9
+ Object.assign(meta, options);
10
+ return target;
11
+ };
11
12
  }
@@ -1,2 +1,6 @@
1
1
  import { type AnyEntity, type EntityName, type EmbeddedOptions } from '@mikro-orm/core';
2
- export declare function Embedded<Owner extends object, Target>(type?: EmbeddedOptions<Owner, Target> | (() => EntityName<Target> | EntityName[]), options?: EmbeddedOptions<Owner, Target>): (target: AnyEntity, propertyName: string) => void;
2
+ /** Defines an embedded property on an entity (legacy TypeScript decorator). */
3
+ export declare function Embedded<Owner extends object, Target>(
4
+ type?: EmbeddedOptions<Owner, Target> | (() => EntityName<Target> | EntityName[]),
5
+ options?: EmbeddedOptions<Owner, Target>,
6
+ ): (target: AnyEntity, propertyName: string) => void;
@@ -1,15 +1,16 @@
1
- import { ReferenceKind, Utils, } from '@mikro-orm/core';
1
+ import { ReferenceKind, Utils } from '@mikro-orm/core';
2
2
  import { validateSingleDecorator, getMetadataFromDecorator } from '../utils.js';
3
+ /** Defines an embedded property on an entity (legacy TypeScript decorator). */
3
4
  export function Embedded(type = {}, options = {}) {
4
- return function (target, propertyName) {
5
- const meta = getMetadataFromDecorator(target.constructor);
6
- validateSingleDecorator(meta, propertyName, ReferenceKind.EMBEDDED);
7
- options = type instanceof Function ? { entity: type, ...options } : { ...type, ...options };
8
- Utils.defaultValue(options, 'prefix', true);
9
- meta.properties[propertyName] = {
10
- name: propertyName,
11
- kind: ReferenceKind.EMBEDDED,
12
- ...options,
13
- };
5
+ return function (target, propertyName) {
6
+ const meta = getMetadataFromDecorator(target.constructor);
7
+ validateSingleDecorator(meta, propertyName, ReferenceKind.EMBEDDED);
8
+ options = type instanceof Function ? { entity: type, ...options } : { ...type, ...options };
9
+ Utils.defaultValue(options, 'prefix', true);
10
+ meta.properties[propertyName] = {
11
+ name: propertyName,
12
+ kind: ReferenceKind.EMBEDDED,
13
+ ...options,
14
14
  };
15
+ };
15
16
  }
@@ -1,2 +1,3 @@
1
1
  import { type EntityClass, type EntityOptions } from '@mikro-orm/core';
2
+ /** Marks a class as a MikroORM entity (legacy TypeScript decorator). */
2
3
  export declare function Entity<T extends EntityClass<unknown>>(options?: EntityOptions<T>): (target: T) => void;
package/legacy/Entity.js CHANGED
@@ -1,12 +1,13 @@
1
1
  import { Utils } from '@mikro-orm/core';
2
2
  import { getMetadataFromDecorator } from '../utils.js';
3
+ /** Marks a class as a MikroORM entity (legacy TypeScript decorator). */
3
4
  export function Entity(options = {}) {
4
- return function (target) {
5
- const meta = getMetadataFromDecorator(target);
6
- Utils.mergeConfig(meta, options);
7
- meta.class = target;
8
- if (!options.abstract || meta.discriminatorColumn) {
9
- meta.name = target.name;
10
- }
11
- };
5
+ return function (target) {
6
+ const meta = getMetadataFromDecorator(target);
7
+ Utils.mergeConfig(meta, options);
8
+ meta.class = target;
9
+ if (!options.abstract || meta.discriminatorColumn) {
10
+ meta.name = target.name;
11
+ }
12
+ };
12
13
  }
package/legacy/Enum.d.ts CHANGED
@@ -1,2 +1,5 @@
1
1
  import { type EnumOptions, type AnyEntity, type Dictionary } from '@mikro-orm/core';
2
- export declare function Enum<T extends object>(options?: EnumOptions<AnyEntity> | (() => Dictionary)): (target: T, propertyName: string) => void;
2
+ /** Defines an enum property on an entity (legacy TypeScript decorator). */
3
+ export declare function Enum<T extends object>(
4
+ options?: EnumOptions<AnyEntity> | (() => Dictionary),
5
+ ): (target: T, propertyName: string) => void;
package/legacy/Enum.js CHANGED
@@ -1,14 +1,15 @@
1
- import { ReferenceKind, } from '@mikro-orm/core';
1
+ import { ReferenceKind } from '@mikro-orm/core';
2
2
  import { getMetadataFromDecorator } from '../utils.js';
3
+ /** Defines an enum property on an entity (legacy TypeScript decorator). */
3
4
  export function Enum(options = {}) {
4
- return function (target, propertyName) {
5
- const meta = getMetadataFromDecorator(target.constructor);
6
- options = options instanceof Function ? { items: options } : options;
7
- meta.properties[propertyName] = {
8
- name: propertyName,
9
- kind: ReferenceKind.SCALAR,
10
- enum: true,
11
- ...options,
12
- };
5
+ return function (target, propertyName) {
6
+ const meta = getMetadataFromDecorator(target.constructor);
7
+ options = options instanceof Function ? { items: options } : options;
8
+ meta.properties[propertyName] = {
9
+ name: propertyName,
10
+ kind: ReferenceKind.SCALAR,
11
+ enum: true,
12
+ ...options,
13
13
  };
14
+ };
14
15
  }
@@ -1,2 +1,3 @@
1
1
  import { type FilterDef, type EntityClass } from '@mikro-orm/core';
2
+ /** Registers a named filter on an entity class (legacy TypeScript decorator). */
2
3
  export declare function Filter<T extends EntityClass<unknown>>(options: FilterDef<T>): (target: T) => void;
package/legacy/Filter.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import { getMetadataFromDecorator } from '../utils.js';
2
+ /** Registers a named filter on an entity class (legacy TypeScript decorator). */
2
3
  export function Filter(options) {
3
- return function (target) {
4
- const meta = getMetadataFromDecorator(target);
5
- meta.filters[options.name] = options;
6
- };
4
+ return function (target) {
5
+ const meta = getMetadataFromDecorator(target);
6
+ meta.filters[options.name] = options;
7
+ };
7
8
  }
@@ -1,2 +1,6 @@
1
1
  import { type FormulaCallback, type PropertyOptions } from '@mikro-orm/core';
2
- export declare function Formula<T extends object>(formula: string | FormulaCallback<T>, options?: PropertyOptions<T>): (target: T, propertyName: string) => void;
2
+ /** Defines a computed SQL formula property on an entity (legacy TypeScript decorator). */
3
+ export declare function Formula<T extends object>(
4
+ formula: string | FormulaCallback<T>,
5
+ options?: PropertyOptions<T>,
6
+ ): (target: T, propertyName: string) => void;
package/legacy/Formula.js CHANGED
@@ -1,13 +1,14 @@
1
- import { ReferenceKind, } from '@mikro-orm/core';
1
+ import { ReferenceKind } from '@mikro-orm/core';
2
2
  import { getMetadataFromDecorator } from '../utils.js';
3
+ /** Defines a computed SQL formula property on an entity (legacy TypeScript decorator). */
3
4
  export function Formula(formula, options = {}) {
4
- return function (target, propertyName) {
5
- const meta = getMetadataFromDecorator(target.constructor);
6
- meta.properties[propertyName] = {
7
- name: propertyName,
8
- kind: ReferenceKind.SCALAR,
9
- formula,
10
- ...options,
11
- };
5
+ return function (target, propertyName) {
6
+ const meta = getMetadataFromDecorator(target.constructor);
7
+ meta.properties[propertyName] = {
8
+ name: propertyName,
9
+ kind: ReferenceKind.SCALAR,
10
+ formula,
11
+ ...options,
12
12
  };
13
+ };
13
14
  }
@@ -1,3 +1,9 @@
1
1
  import { type EntityClass, type IndexOptions, type UniqueOptions } from '@mikro-orm/core';
2
- export declare function Index<T extends object, H extends string>(options?: IndexOptions<T, H>): (target: T, propertyName?: T extends EntityClass<unknown> ? undefined : keyof T) => any;
3
- export declare function Unique<T extends object, H extends string>(options?: UniqueOptions<T, H>): (target: T, propertyName?: T extends EntityClass<unknown> ? undefined : keyof T) => any;
2
+ /** Defines a database index on a property or entity class (legacy TypeScript decorator). */
3
+ export declare function Index<T extends object, H extends string>(
4
+ options?: IndexOptions<T, H>,
5
+ ): (target: T, propertyName?: T extends EntityClass<unknown> ? undefined : keyof T) => any;
6
+ /** Defines a unique constraint on a property or entity class (legacy TypeScript decorator). */
7
+ export declare function Unique<T extends object, H extends string>(
8
+ options?: UniqueOptions<T, H>,
9
+ ): (target: T, propertyName?: T extends EntityClass<unknown> ? undefined : keyof T) => any;
package/legacy/Indexed.js CHANGED
@@ -1,19 +1,21 @@
1
1
  import { getMetadataFromDecorator } from '../utils.js';
2
2
  function createDecorator(options, unique) {
3
- return function (target, propertyName) {
4
- const meta = getMetadataFromDecorator(propertyName ? target.constructor : target);
5
- options.properties ??= propertyName;
6
- const key = unique ? 'uniques' : 'indexes';
7
- meta[key].push(options);
8
- if (!propertyName) {
9
- return target;
10
- }
11
- return undefined;
12
- };
3
+ return function (target, propertyName) {
4
+ const meta = getMetadataFromDecorator(propertyName ? target.constructor : target);
5
+ options.properties ??= propertyName;
6
+ const key = unique ? 'uniques' : 'indexes';
7
+ meta[key].push(options);
8
+ if (!propertyName) {
9
+ return target;
10
+ }
11
+ return undefined;
12
+ };
13
13
  }
14
+ /** Defines a database index on a property or entity class (legacy TypeScript decorator). */
14
15
  export function Index(options = {}) {
15
- return createDecorator(options, false);
16
+ return createDecorator(options, false);
16
17
  }
18
+ /** Defines a unique constraint on a property or entity class (legacy TypeScript decorator). */
17
19
  export function Unique(options = {}) {
18
- return createDecorator(options, true);
20
+ return createDecorator(options, true);
19
21
  }
@@ -1,4 +1,11 @@
1
1
  import { type EntityName, type ManyToManyOptions } from '@mikro-orm/core';
2
- export declare function ManyToMany<Target extends object, Owner extends object>(entity: () => EntityName<Target>, mappedBy?: (string & keyof Target) | ((e: Target) => any), options?: Partial<ManyToManyOptions<Owner, Target>>): (target: Owner, propertyName: keyof Owner) => void;
2
+ /** Defines a many-to-many relationship (legacy TypeScript decorator). */
3
+ export declare function ManyToMany<Target extends object, Owner extends object>(
4
+ entity: () => EntityName<Target>,
5
+ mappedBy?: (string & keyof Target) | ((e: Target) => any),
6
+ options?: Partial<ManyToManyOptions<Owner, Target>>,
7
+ ): (target: Owner, propertyName: keyof Owner) => void;
3
8
  export declare function ManyToMany<Target extends object, Owner extends object>(entity: string, options?: any): never;
4
- export declare function ManyToMany<Target extends object, Owner extends object>(options?: ManyToManyOptions<Owner, Target>): (target: Owner, propertyName: keyof Owner) => void;
9
+ export declare function ManyToMany<Target extends object, Owner extends object>(
10
+ options?: ManyToManyOptions<Owner, Target>,
11
+ ): (target: Owner, propertyName: keyof Owner) => void;
@@ -1,11 +1,11 @@
1
- import { ReferenceKind, } from '@mikro-orm/core';
1
+ import { ReferenceKind } from '@mikro-orm/core';
2
2
  import { processDecoratorParameters, validateSingleDecorator, getMetadataFromDecorator } from '../utils.js';
3
3
  export function ManyToMany(entity, mappedBy, options = {}) {
4
- return function (target, propertyName) {
5
- options = processDecoratorParameters({ entity, mappedBy, options });
6
- const meta = getMetadataFromDecorator(target.constructor);
7
- validateSingleDecorator(meta, propertyName, ReferenceKind.MANY_TO_MANY);
8
- const property = { name: propertyName, kind: ReferenceKind.MANY_TO_MANY };
9
- meta.properties[propertyName] = Object.assign(meta.properties[propertyName] ?? {}, property, options);
10
- };
4
+ return function (target, propertyName) {
5
+ options = processDecoratorParameters({ entity, mappedBy, options });
6
+ const meta = getMetadataFromDecorator(target.constructor);
7
+ validateSingleDecorator(meta, propertyName, ReferenceKind.MANY_TO_MANY);
8
+ const property = { name: propertyName, kind: ReferenceKind.MANY_TO_MANY };
9
+ meta.properties[propertyName] = Object.assign(meta.properties[propertyName] ?? {}, property, options);
10
+ };
11
11
  }
@@ -1,4 +1,10 @@
1
1
  import { type ManyToOneOptions, type EntityName } from '@mikro-orm/core';
2
- export declare function ManyToOne<Target extends object, Owner extends object>(entity: (e?: any) => EntityName<Target> | EntityName[], options?: Partial<ManyToOneOptions<Owner, Target>>): (target: Owner, propertyName: string) => void;
2
+ /** Defines a many-to-one relationship (legacy TypeScript decorator). */
3
+ export declare function ManyToOne<Target extends object, Owner extends object>(
4
+ entity: (e?: any) => EntityName<Target> | EntityName[],
5
+ options?: Partial<ManyToOneOptions<Owner, Target>>,
6
+ ): (target: Owner, propertyName: string) => void;
3
7
  export declare function ManyToOne<Target extends object, Owner extends object>(entity: string, options?: any): never;
4
- export declare function ManyToOne<Target extends object, Owner extends object>(options?: ManyToOneOptions<Owner, Target>): (target: Owner, propertyName: string) => void;
8
+ export declare function ManyToOne<Target extends object, Owner extends object>(
9
+ options?: ManyToOneOptions<Owner, Target>,
10
+ ): (target: Owner, propertyName: string) => void;
@@ -1,11 +1,11 @@
1
- import { ReferenceKind, } from '@mikro-orm/core';
1
+ import { ReferenceKind } from '@mikro-orm/core';
2
2
  import { processDecoratorParameters, validateSingleDecorator, getMetadataFromDecorator } from '../utils.js';
3
3
  export function ManyToOne(entity = {}, options = {}) {
4
- return function (target, propertyName) {
5
- options = processDecoratorParameters({ entity, options });
6
- const meta = getMetadataFromDecorator(target.constructor);
7
- validateSingleDecorator(meta, propertyName, ReferenceKind.MANY_TO_ONE);
8
- const property = { name: propertyName, kind: ReferenceKind.MANY_TO_ONE };
9
- meta.properties[propertyName] = Object.assign(meta.properties[propertyName] ?? {}, property, options);
10
- };
4
+ return function (target, propertyName) {
5
+ options = processDecoratorParameters({ entity, options });
6
+ const meta = getMetadataFromDecorator(target.constructor);
7
+ validateSingleDecorator(meta, propertyName, ReferenceKind.MANY_TO_ONE);
8
+ const property = { name: propertyName, kind: ReferenceKind.MANY_TO_ONE };
9
+ meta.properties[propertyName] = Object.assign(meta.properties[propertyName] ?? {}, property, options);
10
+ };
11
11
  }
@@ -1,3 +1,10 @@
1
1
  import { type EntityName, type OneToManyOptions } from '@mikro-orm/core';
2
- export declare function OneToMany<Target extends object, Owner extends object>(entity: (e?: any) => EntityName<Target>, mappedBy: (string & keyof Target) | ((e: Target) => any), options?: Partial<OneToManyOptions<Owner, Target>>): (target: Owner, propertyName: string) => void;
3
- export declare function OneToMany<Target extends object, Owner extends object>(options: OneToManyOptions<Owner, Target>): (target: Owner, propertyName: string) => void;
2
+ /** Defines a one-to-many relationship (legacy TypeScript decorator). */
3
+ export declare function OneToMany<Target extends object, Owner extends object>(
4
+ entity: (e?: any) => EntityName<Target>,
5
+ mappedBy: (string & keyof Target) | ((e: Target) => any),
6
+ options?: Partial<OneToManyOptions<Owner, Target>>,
7
+ ): (target: Owner, propertyName: string) => void;
8
+ export declare function OneToMany<Target extends object, Owner extends object>(
9
+ options: OneToManyOptions<Owner, Target>,
10
+ ): (target: Owner, propertyName: string) => void;
@@ -1,11 +1,11 @@
1
- import { ReferenceKind, } from '@mikro-orm/core';
1
+ import { ReferenceKind } from '@mikro-orm/core';
2
2
  import { processDecoratorParameters, validateSingleDecorator, getMetadataFromDecorator } from '../utils.js';
3
3
  export function OneToMany(entity, mappedBy, options = {}) {
4
- return function (target, propertyName) {
5
- options = processDecoratorParameters({ entity, mappedBy, options });
6
- const meta = getMetadataFromDecorator(target.constructor);
7
- validateSingleDecorator(meta, propertyName, ReferenceKind.ONE_TO_MANY);
8
- const property = { name: propertyName, kind: ReferenceKind.ONE_TO_MANY };
9
- meta.properties[propertyName] = Object.assign(meta.properties[propertyName] ?? {}, property, options);
10
- };
4
+ return function (target, propertyName) {
5
+ options = processDecoratorParameters({ entity, mappedBy, options });
6
+ const meta = getMetadataFromDecorator(target.constructor);
7
+ validateSingleDecorator(meta, propertyName, ReferenceKind.ONE_TO_MANY);
8
+ const property = { name: propertyName, kind: ReferenceKind.ONE_TO_MANY };
9
+ meta.properties[propertyName] = Object.assign(meta.properties[propertyName] ?? {}, property, options);
10
+ };
11
11
  }
@@ -1,3 +1,10 @@
1
1
  import { type EntityName, type OneToOneOptions } from '@mikro-orm/core';
2
- export declare function OneToOne<Target, Owner>(entity: (e: Owner) => EntityName<Target> | EntityName[], mappedByOrOptions?: (string & keyof Target) | ((e: Target) => any) | Partial<OneToOneOptions<Owner, Target>>, options?: Partial<OneToOneOptions<Owner, Target>>): (target: Owner, propertyName: string) => void;
3
- export declare function OneToOne<Target, Owner>(entity?: OneToOneOptions<Owner, Target>): (target: Owner, propertyName: string) => void;
2
+ /** Defines a one-to-one relationship (legacy TypeScript decorator). */
3
+ export declare function OneToOne<Target, Owner>(
4
+ entity: (e: Owner) => EntityName<Target> | EntityName[],
5
+ mappedByOrOptions?: (string & keyof Target) | ((e: Target) => any) | Partial<OneToOneOptions<Owner, Target>>,
6
+ options?: Partial<OneToOneOptions<Owner, Target>>,
7
+ ): (target: Owner, propertyName: string) => void;
8
+ export declare function OneToOne<Target, Owner>(
9
+ entity?: OneToOneOptions<Owner, Target>,
10
+ ): (target: Owner, propertyName: string) => void;
@@ -1,13 +1,13 @@
1
- import { ReferenceKind, } from '@mikro-orm/core';
1
+ import { ReferenceKind } from '@mikro-orm/core';
2
2
  import { processDecoratorParameters, validateSingleDecorator, getMetadataFromDecorator } from '../utils.js';
3
3
  export function OneToOne(entity, mappedByOrOptions, options = {}) {
4
- const mappedBy = typeof mappedByOrOptions === 'object' ? mappedByOrOptions.mappedBy : mappedByOrOptions;
5
- options = typeof mappedByOrOptions === 'object' ? { ...mappedByOrOptions, ...options } : options;
6
- return function (target, propertyName) {
7
- options = processDecoratorParameters({ entity, mappedBy, options });
8
- const meta = getMetadataFromDecorator(target.constructor);
9
- validateSingleDecorator(meta, propertyName, ReferenceKind.ONE_TO_ONE);
10
- const property = { name: propertyName, kind: ReferenceKind.ONE_TO_ONE };
11
- meta.properties[propertyName] = Object.assign(meta.properties[propertyName] ?? {}, property, options);
12
- };
4
+ const mappedBy = typeof mappedByOrOptions === 'object' ? mappedByOrOptions.mappedBy : mappedByOrOptions;
5
+ options = typeof mappedByOrOptions === 'object' ? { ...mappedByOrOptions, ...options } : options;
6
+ return function (target, propertyName) {
7
+ options = processDecoratorParameters({ entity, mappedBy, options });
8
+ const meta = getMetadataFromDecorator(target.constructor);
9
+ validateSingleDecorator(meta, propertyName, ReferenceKind.ONE_TO_ONE);
10
+ const property = { name: propertyName, kind: ReferenceKind.ONE_TO_ONE };
11
+ meta.properties[propertyName] = Object.assign(meta.properties[propertyName] ?? {}, property, options);
12
+ };
13
13
  }
@@ -1,3 +1,9 @@
1
1
  import { type PrimaryKeyOptions, type SerializedPrimaryKeyOptions } from '@mikro-orm/core';
2
- export declare function PrimaryKey<T extends object>(options?: PrimaryKeyOptions<T>): (target: T, propertyName: string) => void;
3
- export declare function SerializedPrimaryKey<T extends object>(options?: SerializedPrimaryKeyOptions<T>): (target: T, propertyName: string) => void;
2
+ /** Marks a property as the primary key of an entity (legacy TypeScript decorator). */
3
+ export declare function PrimaryKey<T extends object>(
4
+ options?: PrimaryKeyOptions<T>,
5
+ ): (target: T, propertyName: string) => void;
6
+ /** Marks a property as the serialized form of the primary key, e.g. for MongoDB ObjectId (legacy TypeScript decorator). */
7
+ export declare function SerializedPrimaryKey<T extends object>(
8
+ options?: SerializedPrimaryKeyOptions<T>,
9
+ ): (target: T, propertyName: string) => void;
@@ -1,21 +1,23 @@
1
- import { ReferenceKind, } from '@mikro-orm/core';
1
+ import { ReferenceKind } from '@mikro-orm/core';
2
2
  import { validateSingleDecorator, getMetadataFromDecorator } from '../utils.js';
3
3
  function createDecorator(options, serialized) {
4
- return function (target, propertyName) {
5
- const meta = getMetadataFromDecorator(target.constructor);
6
- validateSingleDecorator(meta, propertyName, ReferenceKind.SCALAR);
7
- const k = serialized ? 'serializedPrimaryKey' : 'primary';
8
- options[k] = true;
9
- meta.properties[propertyName] = {
10
- name: propertyName,
11
- kind: ReferenceKind.SCALAR,
12
- ...options,
13
- };
4
+ return function (target, propertyName) {
5
+ const meta = getMetadataFromDecorator(target.constructor);
6
+ validateSingleDecorator(meta, propertyName, ReferenceKind.SCALAR);
7
+ const k = serialized ? 'serializedPrimaryKey' : 'primary';
8
+ options[k] = true;
9
+ meta.properties[propertyName] = {
10
+ name: propertyName,
11
+ kind: ReferenceKind.SCALAR,
12
+ ...options,
14
13
  };
14
+ };
15
15
  }
16
+ /** Marks a property as the primary key of an entity (legacy TypeScript decorator). */
16
17
  export function PrimaryKey(options = {}) {
17
- return createDecorator(options, false);
18
+ return createDecorator(options, false);
18
19
  }
20
+ /** Marks a property as the serialized form of the primary key, e.g. for MongoDB ObjectId (legacy TypeScript decorator). */
19
21
  export function SerializedPrimaryKey(options = {}) {
20
- return createDecorator(options, true);
22
+ return createDecorator(options, true);
21
23
  }
@@ -1,2 +1,5 @@
1
1
  import { type PropertyOptions } from '@mikro-orm/core';
2
- export declare function Property<T extends object>(options?: PropertyOptions<T>): (target: T, propertyName: string) => void;
2
+ /** Defines a scalar property on an entity (legacy TypeScript decorator). */
3
+ export declare function Property<T extends object>(
4
+ options?: PropertyOptions<T>,
5
+ ): (target: T, propertyName: string) => void;