(
entity?: ManyToManyOptions<Owner, Target> | (() => EntityName<Target> | EntityName<Target>[]),
mappedBy?: (string & keyof Target) | ((e: Target) => any),
options: Partial<ManyToManyOptions<Owner, Target>> = {},
)
| 18 | options?: ManyToManyOptions<Owner, Target>, |
| 19 | ): (target: Owner, propertyName: keyof Owner) => void; |
| 20 | export function ManyToMany<Target extends object, Owner extends object>( |
| 21 | entity?: ManyToManyOptions<Owner, Target> | (() => EntityName<Target> | EntityName<Target>[]), |
| 22 | mappedBy?: (string & keyof Target) | ((e: Target) => any), |
| 23 | options: Partial<ManyToManyOptions<Owner, Target>> = {}, |
| 24 | ) { |
| 25 | return function (target: Owner, propertyName: keyof Owner) { |
| 26 | options = processDecoratorParameters<ManyToManyOptions<Owner, Target>>({ entity, mappedBy, options }); |
| 27 | const meta = getMetadataFromDecorator(target.constructor as Owner); |
| 28 | validateSingleDecorator(meta, propertyName as string, ReferenceKind.MANY_TO_MANY); |
| 29 | const property = { name: propertyName, kind: ReferenceKind.MANY_TO_MANY } as EntityProperty<Owner, Target>; |
| 30 | meta.properties[propertyName as EntityKey<Owner>] = Object.assign( |
| 31 | meta.properties[propertyName as EntityKey<Owner>] ?? {}, |
| 32 | property, |
| 33 | options, |
| 34 | ); |
| 35 | }; |
| 36 | } |
no test coverage detected