You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					49 lines
				
				1.5 KiB
			
		
		
			
		
	
	
					49 lines
				
				1.5 KiB
			| 
											11 months ago
										 | /**
 | ||
|  |  * Container to be used by this library for inversion control. If container was not implicitly set then by default
 | ||
|  |  * container simply creates a new instance of the given class.
 | ||
|  |  */
 | ||
|  | var defaultContainer = new (/** @class */ (function () {
 | ||
|  |     function class_1() {
 | ||
|  |         this.instances = [];
 | ||
|  |     }
 | ||
|  |     class_1.prototype.get = function (someClass) {
 | ||
|  |         var instance = this.instances.find(function (instance) { return instance.type === someClass; });
 | ||
|  |         if (!instance) {
 | ||
|  |             instance = { type: someClass, object: new someClass() };
 | ||
|  |             this.instances.push(instance);
 | ||
|  |         }
 | ||
|  |         return instance.object;
 | ||
|  |     };
 | ||
|  |     return class_1;
 | ||
|  | }()))();
 | ||
|  | var userContainer;
 | ||
|  | var userContainerOptions;
 | ||
|  | /**
 | ||
|  |  * Sets container to be used by this library.
 | ||
|  |  */
 | ||
|  | export function useContainer(iocContainer, options) {
 | ||
|  |     userContainer = iocContainer;
 | ||
|  |     userContainerOptions = options;
 | ||
|  | }
 | ||
|  | /**
 | ||
|  |  * Gets the IOC container used by this library.
 | ||
|  |  */
 | ||
|  | export function getFromContainer(someClass) {
 | ||
|  |     if (userContainer) {
 | ||
|  |         try {
 | ||
|  |             var instance = userContainer.get(someClass);
 | ||
|  |             if (instance)
 | ||
|  |                 return instance;
 | ||
|  |             if (!userContainerOptions || !userContainerOptions.fallback)
 | ||
|  |                 return instance;
 | ||
|  |         }
 | ||
|  |         catch (error) {
 | ||
|  |             if (!userContainerOptions || !userContainerOptions.fallbackOnErrors)
 | ||
|  |                 throw error;
 | ||
|  |         }
 | ||
|  |     }
 | ||
|  |     return defaultContainer.get(someClass);
 | ||
|  | }
 | ||
|  | 
 | ||
|  | //# sourceMappingURL=container.js.map
 |