| import { getMetadataArgsStorage } from "../../"; | 
| /** | 
|  * Many-to-many is a type of relationship when Entity1 can have multiple instances of Entity2, and Entity2 can have | 
|  * multiple instances of Entity1. To achieve it, this type of relation creates a junction table, where it storage | 
|  * entity1 and entity2 ids. This is owner side of the relationship. | 
|  */ | 
| export function ManyToMany(typeFunction, inverseSideOrOptions, options) { | 
|     // normalize parameters | 
|     var inverseSideProperty; | 
|     if (typeof inverseSideOrOptions === "object") { | 
|         options = inverseSideOrOptions; | 
|     } | 
|     else { | 
|         inverseSideProperty = inverseSideOrOptions; | 
|     } | 
|     return function (object, propertyName) { | 
|         if (!options) | 
|             options = {}; | 
|         // now try to determine it its lazy relation | 
|         var isLazy = options.lazy === true; | 
|         if (!isLazy && Reflect && Reflect.getMetadata) { // automatic determination | 
|             var reflectedType = Reflect.getMetadata("design:type", object, propertyName); | 
|             if (reflectedType && typeof reflectedType.name === "string" && reflectedType.name.toLowerCase() === "promise") | 
|                 isLazy = true; | 
|         } | 
|         getMetadataArgsStorage().relations.push({ | 
|             target: object.constructor, | 
|             propertyName: propertyName, | 
|             // propertyType: reflectedType, | 
|             relationType: "many-to-many", | 
|             isLazy: isLazy, | 
|             type: typeFunction, | 
|             inverseSideProperty: inverseSideProperty, | 
|             options: options | 
|         }); | 
|     }; | 
| } | 
|   | 
| //# sourceMappingURL=ManyToMany.js.map |