1 |
|
2 |
|
3 |
|
4 |
|
5 | var defaultContainer = new ( (function () {
|
6 | function class_1() {
|
7 | this.instances = [];
|
8 | }
|
9 | class_1.prototype.get = function (someClass) {
|
10 | var instance = this.instances.find(function (instance) { return instance.type === someClass; });
|
11 | if (!instance) {
|
12 | instance = { type: someClass, object: new someClass() };
|
13 | this.instances.push(instance);
|
14 | }
|
15 | return instance.object;
|
16 | };
|
17 | return class_1;
|
18 | }()))();
|
19 | var userContainer;
|
20 | var userContainerOptions;
|
21 |
|
22 |
|
23 |
|
24 | export function useContainer(iocContainer, options) {
|
25 | userContainer = iocContainer;
|
26 | userContainerOptions = options;
|
27 | }
|
28 |
|
29 |
|
30 |
|
31 | export function getFromContainer(someClass) {
|
32 | if (userContainer) {
|
33 | try {
|
34 | var instance = userContainer.get(someClass);
|
35 | if (instance)
|
36 | return instance;
|
37 | if (!userContainerOptions || !userContainerOptions.fallback)
|
38 | return instance;
|
39 | }
|
40 | catch (error) {
|
41 | if (!userContainerOptions || !userContainerOptions.fallbackOnErrors)
|
42 | throw error;
|
43 | }
|
44 | }
|
45 | return defaultContainer.get(someClass);
|
46 | }
|
47 |
|
\ | No newline at end of file |