MCPcopy Create free account
hub / github.com/mikro-orm/mikro-orm / ManyToMany

Function ManyToMany

packages/decorators/src/es/ManyToMany.ts:13–25  ·  view source on GitHub ↗
(
  entity?: ManyToManyOptions<Owner, Target> | string | (() => EntityName<Target> | EntityName<Target>[]),
  mappedBy?: (string & keyof Target) | ((e: Target) => any),
  options: Partial<ManyToManyOptions<Owner, Target>> = {},
)

Source from the content-addressed store, hash-verified

11
12/** Defines a many-to-many relationship (TC39 decorator). */
13export function ManyToMany<Target extends object, Owner extends object>(
14 entity?: ManyToManyOptions<Owner, Target> | string | (() => EntityName<Target> | EntityName<Target>[]),
15 mappedBy?: (string & keyof Target) | ((e: Target) => any),
16 options: Partial<ManyToManyOptions<Owner, Target>> = {},
17): (_: unknown, context: ClassFieldDecoratorContext<Owner, Collection<Target> | undefined>) => void {
18 return function (_: unknown, context: ClassFieldDecoratorContext<Owner, Collection<Target> | undefined>): void {
19 const meta = prepareMetadataContext(context, ReferenceKind.MANY_TO_MANY);
20 options = processDecoratorParameters<ManyToManyOptions<Owner, Target>>({ entity, mappedBy, options });
21 const property = { name: context.name, kind: ReferenceKind.MANY_TO_MANY } as EntityProperty<Owner>;
22 meta.properties[context.name as EntityKey<Owner>] ??= {} as any;
23 Utils.mergeConfig(meta.properties[context.name as EntityKey<Owner>], property, options);
24 };
25}

Callers 4

CClass · 0.90
AuthorClass · 0.90
FruitClass · 0.90
BowlClass · 0.90

Calls 3

prepareMetadataContextFunction · 0.85
mergeConfigMethod · 0.80

Tested by

no test coverage detected