inversify 6.0.2 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/CHANGELOG.md +95 -81
  2. package/LICENSE +22 -22
  3. package/README.md +311 -309
  4. package/amd/annotation/decorator_utils.js +119 -114
  5. package/amd/annotation/inject.js +31 -27
  6. package/amd/annotation/inject_base.js +16 -17
  7. package/amd/annotation/injectable.js +40 -37
  8. package/amd/annotation/lazy_service_identifier.js +4 -15
  9. package/amd/annotation/multi_inject.js +31 -27
  10. package/amd/annotation/named.js +32 -29
  11. package/amd/annotation/optional.js +32 -29
  12. package/amd/annotation/post_construct.js +32 -28
  13. package/amd/annotation/pre_destroy.js +32 -28
  14. package/amd/annotation/property_event_decorator.js +16 -17
  15. package/amd/annotation/tagged.js +8 -9
  16. package/amd/annotation/target_name.js +35 -32
  17. package/amd/annotation/unmanaged.js +35 -32
  18. package/amd/bindings/binding.js +40 -39
  19. package/amd/bindings/binding_count.js +11 -10
  20. package/amd/constants/error_msgs.js +74 -64
  21. package/amd/constants/literal_types.js +28 -28
  22. package/amd/constants/metadata_keys.js +28 -28
  23. package/amd/container/container.js +762 -719
  24. package/amd/container/container_module.js +21 -21
  25. package/amd/container/container_snapshot.js +20 -20
  26. package/amd/container/lookup.js +132 -127
  27. package/amd/container/module_activation_store.js +51 -53
  28. package/amd/interfaces/interfaces.js +4 -10
  29. package/amd/inversify.js +57 -55
  30. package/amd/planning/context.js +19 -19
  31. package/amd/planning/metadata.js +45 -41
  32. package/amd/planning/metadata_reader.js +49 -43
  33. package/amd/planning/plan.js +13 -13
  34. package/amd/planning/planner.js +184 -163
  35. package/amd/planning/queryable_string.js +33 -30
  36. package/amd/planning/reflection_utils.js +55 -157
  37. package/amd/planning/request.js +24 -26
  38. package/amd/planning/target.js +111 -101
  39. package/amd/resolution/instantiation.js +219 -211
  40. package/amd/resolution/resolver.js +234 -222
  41. package/amd/scope/scope.js +93 -93
  42. package/amd/syntax/binding_in_syntax.js +24 -24
  43. package/amd/syntax/binding_in_when_on_syntax.js +75 -75
  44. package/amd/syntax/binding_on_syntax.js +20 -20
  45. package/amd/syntax/binding_to_syntax.js +116 -105
  46. package/amd/syntax/binding_when_on_syntax.js +65 -65
  47. package/amd/syntax/binding_when_syntax.js +107 -102
  48. package/amd/syntax/constraint_helpers.js +66 -61
  49. package/amd/utils/async.js +17 -17
  50. package/amd/utils/binding_utils.js +86 -77
  51. package/amd/utils/clonable.js +11 -12
  52. package/amd/utils/exceptions.js +46 -42
  53. package/amd/utils/factory_type.js +11 -11
  54. package/amd/utils/id.js +9 -10
  55. package/amd/utils/js.js +18 -19
  56. package/amd/utils/serialization.js +135 -129
  57. package/es/annotation/decorator_utils.js +90 -88
  58. package/es/annotation/inject.js +4 -4
  59. package/es/annotation/inject_base.js +14 -14
  60. package/es/annotation/injectable.js +13 -13
  61. package/es/annotation/lazy_service_identifier.js +1 -10
  62. package/es/annotation/multi_inject.js +4 -4
  63. package/es/annotation/named.js +7 -7
  64. package/es/annotation/optional.js +7 -7
  65. package/es/annotation/post_construct.js +5 -5
  66. package/es/annotation/pre_destroy.js +5 -5
  67. package/es/annotation/property_event_decorator.js +13 -13
  68. package/es/annotation/tagged.js +6 -6
  69. package/es/annotation/target_name.js +10 -10
  70. package/es/annotation/unmanaged.js +10 -10
  71. package/es/bindings/binding.js +37 -36
  72. package/es/bindings/binding_count.js +6 -5
  73. package/es/constants/error_msgs.js +62 -52
  74. package/es/constants/literal_types.js +21 -21
  75. package/es/constants/metadata_keys.js +23 -23
  76. package/es/container/container.js +746 -707
  77. package/es/container/container_module.js +17 -17
  78. package/es/container/container_snapshot.js +15 -15
  79. package/es/container/lookup.js +105 -104
  80. package/es/container/module_activation_store.js +47 -49
  81. package/es/interfaces/interfaces.js +1 -5
  82. package/es/inversify.js +23 -25
  83. package/es/planning/context.js +15 -15
  84. package/es/planning/metadata.js +17 -17
  85. package/es/planning/metadata_reader.js +21 -19
  86. package/es/planning/plan.js +8 -8
  87. package/es/planning/planner.js +165 -147
  88. package/es/planning/queryable_string.js +28 -25
  89. package/es/planning/reflection_utils.js +27 -135
  90. package/es/planning/request.js +20 -22
  91. package/es/planning/target.js +87 -81
  92. package/es/resolution/instantiation.js +195 -190
  93. package/es/resolution/resolver.js +214 -205
  94. package/es/scope/scope.js +88 -88
  95. package/es/syntax/binding_in_syntax.js +21 -21
  96. package/es/syntax/binding_in_when_on_syntax.js +73 -73
  97. package/es/syntax/binding_on_syntax.js +16 -16
  98. package/es/syntax/binding_to_syntax.js +91 -84
  99. package/es/syntax/binding_when_on_syntax.js +62 -62
  100. package/es/syntax/binding_when_syntax.js +104 -99
  101. package/es/syntax/constraint_helpers.js +36 -35
  102. package/es/utils/async.js +12 -11
  103. package/es/utils/binding_utils.js +58 -53
  104. package/es/utils/clonable.js +7 -7
  105. package/es/utils/exceptions.js +16 -16
  106. package/es/utils/factory_type.js +6 -6
  107. package/es/utils/id.js +5 -5
  108. package/es/utils/js.js +13 -13
  109. package/es/utils/serialization.js +103 -100
  110. package/es6/annotation/decorator_utils.js +114 -109
  111. package/es6/annotation/inject.js +30 -26
  112. package/es6/annotation/inject_base.js +17 -18
  113. package/es6/annotation/injectable.js +38 -35
  114. package/es6/annotation/lazy_service_identifier.js +2 -12
  115. package/es6/annotation/multi_inject.js +30 -26
  116. package/es6/annotation/named.js +32 -29
  117. package/es6/annotation/optional.js +32 -29
  118. package/es6/annotation/post_construct.js +31 -27
  119. package/es6/annotation/pre_destroy.js +31 -27
  120. package/es6/annotation/property_event_decorator.js +15 -16
  121. package/es6/annotation/tagged.js +8 -9
  122. package/es6/annotation/target_name.js +35 -32
  123. package/es6/annotation/unmanaged.js +35 -32
  124. package/es6/bindings/binding.js +39 -38
  125. package/es6/bindings/binding_count.js +9 -8
  126. package/es6/constants/error_msgs.js +58 -53
  127. package/es6/constants/literal_types.js +26 -26
  128. package/es6/constants/metadata_keys.js +26 -26
  129. package/es6/container/container.js +541 -520
  130. package/es6/container/container_module.js +18 -18
  131. package/es6/container/container_snapshot.js +15 -15
  132. package/es6/container/lookup.js +125 -120
  133. package/es6/container/module_activation_store.js +49 -51
  134. package/es6/interfaces/interfaces.js +2 -8
  135. package/es6/inversify.js +76 -76
  136. package/es6/planning/context.js +17 -17
  137. package/es6/planning/metadata.js +42 -38
  138. package/es6/planning/metadata_reader.js +44 -38
  139. package/es6/planning/plan.js +10 -10
  140. package/es6/planning/planner.js +191 -170
  141. package/es6/planning/queryable_string.js +30 -27
  142. package/es6/planning/reflection_utils.js +53 -155
  143. package/es6/planning/request.js +22 -24
  144. package/es6/planning/target.js +105 -99
  145. package/es6/resolution/instantiation.js +158 -151
  146. package/es6/resolution/resolver.js +193 -187
  147. package/es6/scope/scope.js +57 -57
  148. package/es6/syntax/binding_in_syntax.js +23 -23
  149. package/es6/syntax/binding_in_when_on_syntax.js +75 -75
  150. package/es6/syntax/binding_on_syntax.js +18 -18
  151. package/es6/syntax/binding_to_syntax.js +110 -105
  152. package/es6/syntax/binding_when_on_syntax.js +64 -64
  153. package/es6/syntax/binding_when_syntax.js +84 -79
  154. package/es6/syntax/constraint_helpers.js +63 -58
  155. package/es6/utils/async.js +15 -15
  156. package/es6/utils/binding_utils.js +79 -68
  157. package/es6/utils/clonable.js +9 -10
  158. package/es6/utils/exceptions.js +44 -40
  159. package/es6/utils/factory_type.js +9 -9
  160. package/es6/utils/id.js +7 -8
  161. package/es6/utils/js.js +15 -16
  162. package/es6/utils/serialization.js +132 -126
  163. package/lib/annotation/decorator_utils.d.ts +16 -16
  164. package/lib/annotation/decorator_utils.js +118 -113
  165. package/lib/annotation/inject.d.ts +5 -2
  166. package/lib/annotation/inject.js +30 -26
  167. package/lib/annotation/inject_base.d.ts +4 -3
  168. package/lib/annotation/inject_base.js +17 -18
  169. package/lib/annotation/injectable.d.ts +2 -2
  170. package/lib/annotation/injectable.js +38 -35
  171. package/lib/annotation/lazy_service_identifier.d.ts +3 -7
  172. package/lib/annotation/lazy_service_identifier.js +2 -13
  173. package/lib/annotation/multi_inject.d.ts +5 -2
  174. package/lib/annotation/multi_inject.js +30 -26
  175. package/lib/annotation/named.d.ts +2 -2
  176. package/lib/annotation/named.js +32 -29
  177. package/lib/annotation/optional.d.ts +2 -2
  178. package/lib/annotation/optional.js +32 -29
  179. package/lib/annotation/post_construct.d.ts +4 -4
  180. package/lib/annotation/post_construct.js +31 -27
  181. package/lib/annotation/pre_destroy.d.ts +4 -4
  182. package/lib/annotation/pre_destroy.js +31 -27
  183. package/lib/annotation/property_event_decorator.d.ts +4 -4
  184. package/lib/annotation/property_event_decorator.js +15 -16
  185. package/lib/annotation/tagged.d.ts +2 -2
  186. package/lib/annotation/tagged.js +8 -9
  187. package/lib/annotation/target_name.d.ts +3 -3
  188. package/lib/annotation/target_name.js +35 -32
  189. package/lib/annotation/unmanaged.d.ts +3 -3
  190. package/lib/annotation/unmanaged.js +35 -32
  191. package/lib/bindings/binding.d.ts +20 -20
  192. package/lib/bindings/binding.js +40 -39
  193. package/lib/bindings/binding_count.d.ts +5 -5
  194. package/lib/bindings/binding_count.js +9 -8
  195. package/lib/constants/error_msgs.d.ts +30 -32
  196. package/lib/constants/error_msgs.js +72 -62
  197. package/lib/constants/literal_types.d.ts +5 -5
  198. package/lib/constants/literal_types.js +26 -26
  199. package/lib/constants/metadata_keys.d.ts +13 -13
  200. package/lib/constants/metadata_keys.js +26 -26
  201. package/lib/container/container.d.ts +73 -73
  202. package/lib/container/container.js +772 -729
  203. package/lib/container/container_module.d.ts +11 -11
  204. package/lib/container/container_module.js +20 -20
  205. package/lib/container/container_snapshot.d.ts +10 -10
  206. package/lib/container/container_snapshot.js +18 -18
  207. package/lib/container/lookup.d.ts +17 -16
  208. package/lib/container/lookup.js +131 -126
  209. package/lib/container/module_activation_store.d.ts +10 -10
  210. package/lib/container/module_activation_store.js +50 -52
  211. package/lib/interfaces/interfaces.d.ts +269 -284
  212. package/lib/interfaces/interfaces.js +2 -8
  213. package/lib/inversify.d.ts +24 -25
  214. package/lib/inversify.js +76 -76
  215. package/lib/planning/context.d.ts +11 -11
  216. package/lib/planning/context.js +18 -18
  217. package/lib/planning/metadata.d.ts +8 -8
  218. package/lib/planning/metadata.js +43 -39
  219. package/lib/planning/metadata_reader.d.ts +6 -6
  220. package/lib/planning/metadata_reader.js +47 -41
  221. package/lib/planning/plan.d.ts +7 -7
  222. package/lib/planning/plan.js +11 -11
  223. package/lib/planning/planner.d.ts +5 -5
  224. package/lib/planning/planner.js +192 -171
  225. package/lib/planning/queryable_string.d.ts +10 -11
  226. package/lib/planning/queryable_string.js +31 -28
  227. package/lib/planning/reflection_utils.d.ts +5 -5
  228. package/lib/planning/reflection_utils.js +55 -159
  229. package/lib/planning/request.d.ts +14 -14
  230. package/lib/planning/request.js +23 -25
  231. package/lib/planning/target.d.ts +23 -23
  232. package/lib/planning/target.js +113 -103
  233. package/lib/resolution/instantiation.d.ts +3 -3
  234. package/lib/resolution/instantiation.js +220 -212
  235. package/lib/resolution/resolver.d.ts +3 -3
  236. package/lib/resolution/resolver.js +239 -227
  237. package/lib/scope/scope.d.ts +3 -3
  238. package/lib/scope/scope.js +93 -93
  239. package/lib/syntax/binding_in_syntax.d.ts +9 -9
  240. package/lib/syntax/binding_in_syntax.js +24 -24
  241. package/lib/syntax/binding_in_when_on_syntax.d.ts +29 -29
  242. package/lib/syntax/binding_in_when_on_syntax.js +76 -76
  243. package/lib/syntax/binding_on_syntax.d.ts +8 -8
  244. package/lib/syntax/binding_on_syntax.js +19 -19
  245. package/lib/syntax/binding_to_syntax.d.ts +18 -18
  246. package/lib/syntax/binding_to_syntax.js +117 -106
  247. package/lib/syntax/binding_when_on_syntax.d.ts +25 -25
  248. package/lib/syntax/binding_when_on_syntax.js +65 -65
  249. package/lib/syntax/binding_when_syntax.d.ts +21 -21
  250. package/lib/syntax/binding_when_syntax.js +107 -102
  251. package/lib/syntax/constraint_helpers.d.ts +6 -6
  252. package/lib/syntax/constraint_helpers.js +65 -60
  253. package/lib/tsconfig.tsbuildinfo +1 -1
  254. package/lib/utils/async.d.ts +3 -3
  255. package/lib/utils/async.js +15 -15
  256. package/lib/utils/binding_utils.d.ts +4 -4
  257. package/lib/utils/binding_utils.js +87 -78
  258. package/lib/utils/clonable.d.ts +3 -3
  259. package/lib/utils/clonable.js +9 -10
  260. package/lib/utils/exceptions.d.ts +2 -2
  261. package/lib/utils/exceptions.js +44 -40
  262. package/lib/utils/factory_type.d.ts +5 -5
  263. package/lib/utils/factory_type.js +9 -9
  264. package/lib/utils/id.d.ts +2 -2
  265. package/lib/utils/id.js +7 -8
  266. package/lib/utils/js.d.ts +1 -1
  267. package/lib/utils/js.js +16 -17
  268. package/lib/utils/serialization.d.ts +10 -10
  269. package/lib/utils/serialization.js +133 -127
  270. package/package.json +74 -61
  271. package/.nyc_output/16b95af9-19b9-451c-8475-9a8585677128.json +0 -1
  272. package/.nyc_output/processinfo/16b95af9-19b9-451c-8475-9a8585677128.json +0 -1
  273. package/.nyc_output/processinfo/index.json +0 -1
@@ -1,21 +1,21 @@
1
- define(["require", "exports", "../utils/id"], function (require, exports, id_1) {
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.AsyncContainerModule = exports.ContainerModule = void 0;
5
- var ContainerModule = (function () {
6
- function ContainerModule(registry) {
7
- this.id = (0, id_1.id)();
8
- this.registry = registry;
9
- }
10
- return ContainerModule;
11
- }());
12
- exports.ContainerModule = ContainerModule;
13
- var AsyncContainerModule = (function () {
14
- function AsyncContainerModule(registry) {
15
- this.id = (0, id_1.id)();
16
- this.registry = registry;
17
- }
18
- return AsyncContainerModule;
19
- }());
20
- exports.AsyncContainerModule = AsyncContainerModule;
21
- });
1
+ define(["require", "exports", "../utils/id"], function (require, exports, id_1) {
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.AsyncContainerModule = exports.ContainerModule = void 0;
5
+ var ContainerModule = (function () {
6
+ function ContainerModule(registry) {
7
+ this.id = (0, id_1.id)();
8
+ this.registry = registry;
9
+ }
10
+ return ContainerModule;
11
+ }());
12
+ exports.ContainerModule = ContainerModule;
13
+ var AsyncContainerModule = (function () {
14
+ function AsyncContainerModule(registry) {
15
+ this.id = (0, id_1.id)();
16
+ this.registry = registry;
17
+ }
18
+ return AsyncContainerModule;
19
+ }());
20
+ exports.AsyncContainerModule = AsyncContainerModule;
21
+ });
@@ -1,20 +1,20 @@
1
- define(["require", "exports"], function (require, exports) {
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.ContainerSnapshot = void 0;
5
- var ContainerSnapshot = (function () {
6
- function ContainerSnapshot() {
7
- }
8
- ContainerSnapshot.of = function (bindings, middleware, activations, deactivations, moduleActivationStore) {
9
- var snapshot = new ContainerSnapshot();
10
- snapshot.bindings = bindings;
11
- snapshot.middleware = middleware;
12
- snapshot.deactivations = deactivations;
13
- snapshot.activations = activations;
14
- snapshot.moduleActivationStore = moduleActivationStore;
15
- return snapshot;
16
- };
17
- return ContainerSnapshot;
18
- }());
19
- exports.ContainerSnapshot = ContainerSnapshot;
20
- });
1
+ define(["require", "exports"], function (require, exports) {
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ContainerSnapshot = void 0;
5
+ var ContainerSnapshot = (function () {
6
+ function ContainerSnapshot() {
7
+ }
8
+ ContainerSnapshot.of = function (bindings, middleware, activations, deactivations, moduleActivationStore) {
9
+ var snapshot = new ContainerSnapshot();
10
+ snapshot.bindings = bindings;
11
+ snapshot.middleware = middleware;
12
+ snapshot.deactivations = deactivations;
13
+ snapshot.activations = activations;
14
+ snapshot.moduleActivationStore = moduleActivationStore;
15
+ return snapshot;
16
+ };
17
+ return ContainerSnapshot;
18
+ }());
19
+ exports.ContainerSnapshot = ContainerSnapshot;
20
+ });
@@ -1,127 +1,132 @@
1
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2
- if (k2 === undefined) k2 = k;
3
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
- }) : (function(o, m, k, k2) {
5
- if (k2 === undefined) k2 = k;
6
- o[k2] = m[k];
7
- }));
8
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
9
- Object.defineProperty(o, "default", { enumerable: true, value: v });
10
- }) : function(o, v) {
11
- o["default"] = v;
12
- });
13
- var __importStar = (this && this.__importStar) || function (mod) {
14
- if (mod && mod.__esModule) return mod;
15
- var result = {};
16
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
17
- __setModuleDefault(result, mod);
18
- return result;
19
- };
20
- define(["require", "exports", "../constants/error_msgs", "../utils/clonable"], function (require, exports, ERROR_MSGS, clonable_1) {
21
- "use strict";
22
- Object.defineProperty(exports, "__esModule", { value: true });
23
- exports.Lookup = void 0;
24
- ERROR_MSGS = __importStar(ERROR_MSGS);
25
- var Lookup = (function () {
26
- function Lookup() {
27
- this._map = new Map();
28
- }
29
- Lookup.prototype.getMap = function () {
30
- return this._map;
31
- };
32
- Lookup.prototype.add = function (serviceIdentifier, value) {
33
- if (serviceIdentifier === null || serviceIdentifier === undefined) {
34
- throw new Error(ERROR_MSGS.NULL_ARGUMENT);
35
- }
36
- if (value === null || value === undefined) {
37
- throw new Error(ERROR_MSGS.NULL_ARGUMENT);
38
- }
39
- var entry = this._map.get(serviceIdentifier);
40
- if (entry !== undefined) {
41
- entry.push(value);
42
- }
43
- else {
44
- this._map.set(serviceIdentifier, [value]);
45
- }
46
- };
47
- Lookup.prototype.get = function (serviceIdentifier) {
48
- if (serviceIdentifier === null || serviceIdentifier === undefined) {
49
- throw new Error(ERROR_MSGS.NULL_ARGUMENT);
50
- }
51
- var entry = this._map.get(serviceIdentifier);
52
- if (entry !== undefined) {
53
- return entry;
54
- }
55
- else {
56
- throw new Error(ERROR_MSGS.KEY_NOT_FOUND);
57
- }
58
- };
59
- Lookup.prototype.remove = function (serviceIdentifier) {
60
- if (serviceIdentifier === null || serviceIdentifier === undefined) {
61
- throw new Error(ERROR_MSGS.NULL_ARGUMENT);
62
- }
63
- if (!this._map.delete(serviceIdentifier)) {
64
- throw new Error(ERROR_MSGS.KEY_NOT_FOUND);
65
- }
66
- };
67
- Lookup.prototype.removeIntersection = function (lookup) {
68
- var _this = this;
69
- this.traverse(function (serviceIdentifier, value) {
70
- var lookupActivations = lookup.hasKey(serviceIdentifier) ? lookup.get(serviceIdentifier) : undefined;
71
- if (lookupActivations !== undefined) {
72
- var filteredValues = value.filter(function (lookupValue) {
73
- return !lookupActivations.some(function (moduleActivation) { return lookupValue === moduleActivation; });
74
- });
75
- _this._setValue(serviceIdentifier, filteredValues);
76
- }
77
- });
78
- };
79
- Lookup.prototype.removeByCondition = function (condition) {
80
- var _this = this;
81
- var removals = [];
82
- this._map.forEach(function (entries, key) {
83
- var updatedEntries = [];
84
- for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {
85
- var entry = entries_1[_i];
86
- var remove = condition(entry);
87
- if (remove) {
88
- removals.push(entry);
89
- }
90
- else {
91
- updatedEntries.push(entry);
92
- }
93
- }
94
- _this._setValue(key, updatedEntries);
95
- });
96
- return removals;
97
- };
98
- Lookup.prototype.hasKey = function (serviceIdentifier) {
99
- if (serviceIdentifier === null || serviceIdentifier === undefined) {
100
- throw new Error(ERROR_MSGS.NULL_ARGUMENT);
101
- }
102
- return this._map.has(serviceIdentifier);
103
- };
104
- Lookup.prototype.clone = function () {
105
- var copy = new Lookup();
106
- this._map.forEach(function (value, key) {
107
- value.forEach(function (b) { return copy.add(key, (0, clonable_1.isClonable)(b) ? b.clone() : b); });
108
- });
109
- return copy;
110
- };
111
- Lookup.prototype.traverse = function (func) {
112
- this._map.forEach(function (value, key) {
113
- func(key, value);
114
- });
115
- };
116
- Lookup.prototype._setValue = function (serviceIdentifier, value) {
117
- if (value.length > 0) {
118
- this._map.set(serviceIdentifier, value);
119
- }
120
- else {
121
- this._map.delete(serviceIdentifier);
122
- }
123
- };
124
- return Lookup;
125
- }());
126
- exports.Lookup = Lookup;
127
- });
1
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2
+ if (k2 === undefined) k2 = k;
3
+ var desc = Object.getOwnPropertyDescriptor(m, k);
4
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
5
+ desc = { enumerable: true, get: function() { return m[k]; } };
6
+ }
7
+ Object.defineProperty(o, k2, desc);
8
+ }) : (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ o[k2] = m[k];
11
+ }));
12
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
13
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
14
+ }) : function(o, v) {
15
+ o["default"] = v;
16
+ });
17
+ var __importStar = (this && this.__importStar) || function (mod) {
18
+ if (mod && mod.__esModule) return mod;
19
+ var result = {};
20
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
21
+ __setModuleDefault(result, mod);
22
+ return result;
23
+ };
24
+ define(["require", "exports", "../constants/error_msgs", "../utils/clonable"], function (require, exports, ERROR_MSGS, clonable_1) {
25
+ "use strict";
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.Lookup = void 0;
28
+ ERROR_MSGS = __importStar(ERROR_MSGS);
29
+ var Lookup = (function () {
30
+ function Lookup() {
31
+ this._map = new Map();
32
+ }
33
+ Lookup.prototype.getMap = function () {
34
+ return this._map;
35
+ };
36
+ Lookup.prototype.add = function (serviceIdentifier, value) {
37
+ this._checkNonNulish(serviceIdentifier);
38
+ if (value === null || value === undefined) {
39
+ throw new Error(ERROR_MSGS.NULL_ARGUMENT);
40
+ }
41
+ var entry = this._map.get(serviceIdentifier);
42
+ if (entry !== undefined) {
43
+ entry.push(value);
44
+ }
45
+ else {
46
+ this._map.set(serviceIdentifier, [value]);
47
+ }
48
+ };
49
+ Lookup.prototype.get = function (serviceIdentifier) {
50
+ this._checkNonNulish(serviceIdentifier);
51
+ var entry = this._map.get(serviceIdentifier);
52
+ if (entry !== undefined) {
53
+ return entry;
54
+ }
55
+ else {
56
+ throw new Error(ERROR_MSGS.KEY_NOT_FOUND);
57
+ }
58
+ };
59
+ Lookup.prototype.remove = function (serviceIdentifier) {
60
+ this._checkNonNulish(serviceIdentifier);
61
+ if (!this._map.delete(serviceIdentifier)) {
62
+ throw new Error(ERROR_MSGS.KEY_NOT_FOUND);
63
+ }
64
+ };
65
+ Lookup.prototype.removeIntersection = function (lookup) {
66
+ var _this = this;
67
+ this.traverse(function (serviceIdentifier, value) {
68
+ var lookupActivations = lookup.hasKey(serviceIdentifier)
69
+ ? lookup.get(serviceIdentifier)
70
+ : undefined;
71
+ if (lookupActivations !== undefined) {
72
+ var filteredValues = value.filter(function (lookupValue) {
73
+ return !lookupActivations.some(function (moduleActivation) { return lookupValue === moduleActivation; });
74
+ });
75
+ _this._setValue(serviceIdentifier, filteredValues);
76
+ }
77
+ });
78
+ };
79
+ Lookup.prototype.removeByCondition = function (condition) {
80
+ var _this = this;
81
+ var removals = [];
82
+ this._map.forEach(function (entries, key) {
83
+ var updatedEntries = [];
84
+ for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {
85
+ var entry = entries_1[_i];
86
+ var remove = condition(entry);
87
+ if (remove) {
88
+ removals.push(entry);
89
+ }
90
+ else {
91
+ updatedEntries.push(entry);
92
+ }
93
+ }
94
+ _this._setValue(key, updatedEntries);
95
+ });
96
+ return removals;
97
+ };
98
+ Lookup.prototype.hasKey = function (serviceIdentifier) {
99
+ this._checkNonNulish(serviceIdentifier);
100
+ return this._map.has(serviceIdentifier);
101
+ };
102
+ Lookup.prototype.clone = function () {
103
+ var copy = new Lookup();
104
+ this._map.forEach(function (value, key) {
105
+ value.forEach(function (b) {
106
+ copy.add(key, (0, clonable_1.isClonable)(b) ? b.clone() : b);
107
+ });
108
+ });
109
+ return copy;
110
+ };
111
+ Lookup.prototype.traverse = function (func) {
112
+ this._map.forEach(function (value, key) {
113
+ func(key, value);
114
+ });
115
+ };
116
+ Lookup.prototype._checkNonNulish = function (value) {
117
+ if (value == null) {
118
+ throw new Error(ERROR_MSGS.NULL_ARGUMENT);
119
+ }
120
+ };
121
+ Lookup.prototype._setValue = function (serviceIdentifier, value) {
122
+ if (value.length > 0) {
123
+ this._map.set(serviceIdentifier, value);
124
+ }
125
+ else {
126
+ this._map.delete(serviceIdentifier);
127
+ }
128
+ };
129
+ return Lookup;
130
+ }());
131
+ exports.Lookup = Lookup;
132
+ });
@@ -1,53 +1,51 @@
1
- define(["require", "exports", "./lookup"], function (require, exports, lookup_1) {
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.ModuleActivationStore = void 0;
5
- var ModuleActivationStore = (function () {
6
- function ModuleActivationStore() {
7
- this._map = new Map();
8
- }
9
- ModuleActivationStore.prototype.remove = function (moduleId) {
10
- if (this._map.has(moduleId)) {
11
- var handlers = this._map.get(moduleId);
12
- this._map.delete(moduleId);
13
- return handlers;
14
- }
15
- return this._getEmptyHandlersStore();
16
- };
17
- ModuleActivationStore.prototype.addDeactivation = function (moduleId, serviceIdentifier, onDeactivation) {
18
- this._getModuleActivationHandlers(moduleId)
19
- .onDeactivations.add(serviceIdentifier, onDeactivation);
20
- };
21
- ModuleActivationStore.prototype.addActivation = function (moduleId, serviceIdentifier, onActivation) {
22
- this._getModuleActivationHandlers(moduleId)
23
- .onActivations.add(serviceIdentifier, onActivation);
24
- };
25
- ModuleActivationStore.prototype.clone = function () {
26
- var clone = new ModuleActivationStore();
27
- this._map.forEach(function (handlersStore, moduleId) {
28
- clone._map.set(moduleId, {
29
- onActivations: handlersStore.onActivations.clone(),
30
- onDeactivations: handlersStore.onDeactivations.clone(),
31
- });
32
- });
33
- return clone;
34
- };
35
- ModuleActivationStore.prototype._getModuleActivationHandlers = function (moduleId) {
36
- var moduleActivationHandlers = this._map.get(moduleId);
37
- if (moduleActivationHandlers === undefined) {
38
- moduleActivationHandlers = this._getEmptyHandlersStore();
39
- this._map.set(moduleId, moduleActivationHandlers);
40
- }
41
- return moduleActivationHandlers;
42
- };
43
- ModuleActivationStore.prototype._getEmptyHandlersStore = function () {
44
- var handlersStore = {
45
- onActivations: new lookup_1.Lookup(),
46
- onDeactivations: new lookup_1.Lookup()
47
- };
48
- return handlersStore;
49
- };
50
- return ModuleActivationStore;
51
- }());
52
- exports.ModuleActivationStore = ModuleActivationStore;
53
- });
1
+ define(["require", "exports", "./lookup"], function (require, exports, lookup_1) {
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ModuleActivationStore = void 0;
5
+ var ModuleActivationStore = (function () {
6
+ function ModuleActivationStore() {
7
+ this._map = new Map();
8
+ }
9
+ ModuleActivationStore.prototype.remove = function (moduleId) {
10
+ var handlers = this._map.get(moduleId);
11
+ if (handlers === undefined) {
12
+ return this._getEmptyHandlersStore();
13
+ }
14
+ this._map.delete(moduleId);
15
+ return handlers;
16
+ };
17
+ ModuleActivationStore.prototype.addDeactivation = function (moduleId, serviceIdentifier, onDeactivation) {
18
+ this._getModuleActivationHandlers(moduleId).onDeactivations.add(serviceIdentifier, onDeactivation);
19
+ };
20
+ ModuleActivationStore.prototype.addActivation = function (moduleId, serviceIdentifier, onActivation) {
21
+ this._getModuleActivationHandlers(moduleId).onActivations.add(serviceIdentifier, onActivation);
22
+ };
23
+ ModuleActivationStore.prototype.clone = function () {
24
+ var clone = new ModuleActivationStore();
25
+ this._map.forEach(function (handlersStore, moduleId) {
26
+ clone._map.set(moduleId, {
27
+ onActivations: handlersStore.onActivations.clone(),
28
+ onDeactivations: handlersStore.onDeactivations.clone(),
29
+ });
30
+ });
31
+ return clone;
32
+ };
33
+ ModuleActivationStore.prototype._getModuleActivationHandlers = function (moduleId) {
34
+ var moduleActivationHandlers = this._map.get(moduleId);
35
+ if (moduleActivationHandlers === undefined) {
36
+ moduleActivationHandlers = this._getEmptyHandlersStore();
37
+ this._map.set(moduleId, moduleActivationHandlers);
38
+ }
39
+ return moduleActivationHandlers;
40
+ };
41
+ ModuleActivationStore.prototype._getEmptyHandlersStore = function () {
42
+ var handlersStore = {
43
+ onActivations: new lookup_1.Lookup(),
44
+ onDeactivations: new lookup_1.Lookup(),
45
+ };
46
+ return handlersStore;
47
+ };
48
+ return ModuleActivationStore;
49
+ }());
50
+ exports.ModuleActivationStore = ModuleActivationStore;
51
+ });
@@ -1,10 +1,4 @@
1
- define(["require", "exports"], function (require, exports) {
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.interfaces = void 0;
5
- var interfaces;
6
- (function (interfaces) {
7
- ;
8
- })(interfaces || (interfaces = {}));
9
- exports.interfaces = interfaces;
10
- });
1
+ define(["require", "exports"], function (require, exports) {
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ });
package/amd/inversify.js CHANGED
@@ -1,55 +1,57 @@
1
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2
- if (k2 === undefined) k2 = k;
3
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
- }) : (function(o, m, k, k2) {
5
- if (k2 === undefined) k2 = k;
6
- o[k2] = m[k];
7
- }));
8
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
9
- Object.defineProperty(o, "default", { enumerable: true, value: v });
10
- }) : function(o, v) {
11
- o["default"] = v;
12
- });
13
- var __importStar = (this && this.__importStar) || function (mod) {
14
- if (mod && mod.__esModule) return mod;
15
- var result = {};
16
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
17
- __setModuleDefault(result, mod);
18
- return result;
19
- };
20
- define(["require", "exports", "./constants/metadata_keys", "./container/container", "./constants/literal_types", "./container/container_module", "./annotation/decorator_utils", "./annotation/injectable", "./annotation/tagged", "./annotation/named", "./annotation/inject", "./annotation/lazy_service_identifier", "./annotation/lazy_service_identifier", "./annotation/optional", "./annotation/unmanaged", "./annotation/multi_inject", "./annotation/target_name", "./annotation/post_construct", "./annotation/pre_destroy", "./planning/metadata_reader", "./utils/id", "./interfaces/interfaces", "./annotation/decorator_utils", "./syntax/constraint_helpers", "./utils/serialization", "./utils/binding_utils"], function (require, exports, keys, container_1, literal_types_1, container_module_1, decorator_utils_1, injectable_1, tagged_1, named_1, inject_1, lazy_service_identifier_1, lazy_service_identifier_2, optional_1, unmanaged_1, multi_inject_1, target_name_1, post_construct_1, pre_destroy_1, metadata_reader_1, id_1, interfaces_1, decorator_utils_2, constraint_helpers_1, serialization_1, binding_utils_1) {
21
- "use strict";
22
- Object.defineProperty(exports, "__esModule", { value: true });
23
- exports.multiBindToService = exports.getServiceIdentifierAsString = exports.typeConstraint = exports.namedConstraint = exports.taggedConstraint = exports.traverseAncerstors = exports.decorate = exports.interfaces = exports.id = exports.MetadataReader = exports.preDestroy = exports.postConstruct = exports.targetName = exports.multiInject = exports.unmanaged = exports.optional = exports.LazyServiceIdentifer = exports.LazyServiceIdentifier = exports.inject = exports.named = exports.tagged = exports.injectable = exports.createTaggedDecorator = exports.ContainerModule = exports.AsyncContainerModule = exports.TargetTypeEnum = exports.BindingTypeEnum = exports.BindingScopeEnum = exports.Container = exports.METADATA_KEY = void 0;
24
- keys = __importStar(keys);
25
- exports.METADATA_KEY = keys;
26
- Object.defineProperty(exports, "Container", { enumerable: true, get: function () { return container_1.Container; } });
27
- Object.defineProperty(exports, "BindingScopeEnum", { enumerable: true, get: function () { return literal_types_1.BindingScopeEnum; } });
28
- Object.defineProperty(exports, "BindingTypeEnum", { enumerable: true, get: function () { return literal_types_1.BindingTypeEnum; } });
29
- Object.defineProperty(exports, "TargetTypeEnum", { enumerable: true, get: function () { return literal_types_1.TargetTypeEnum; } });
30
- Object.defineProperty(exports, "AsyncContainerModule", { enumerable: true, get: function () { return container_module_1.AsyncContainerModule; } });
31
- Object.defineProperty(exports, "ContainerModule", { enumerable: true, get: function () { return container_module_1.ContainerModule; } });
32
- Object.defineProperty(exports, "createTaggedDecorator", { enumerable: true, get: function () { return decorator_utils_1.createTaggedDecorator; } });
33
- Object.defineProperty(exports, "injectable", { enumerable: true, get: function () { return injectable_1.injectable; } });
34
- Object.defineProperty(exports, "tagged", { enumerable: true, get: function () { return tagged_1.tagged; } });
35
- Object.defineProperty(exports, "named", { enumerable: true, get: function () { return named_1.named; } });
36
- Object.defineProperty(exports, "inject", { enumerable: true, get: function () { return inject_1.inject; } });
37
- Object.defineProperty(exports, "LazyServiceIdentifier", { enumerable: true, get: function () { return lazy_service_identifier_1.LazyServiceIdentifier; } });
38
- Object.defineProperty(exports, "LazyServiceIdentifer", { enumerable: true, get: function () { return lazy_service_identifier_2.LazyServiceIdentifier; } });
39
- Object.defineProperty(exports, "optional", { enumerable: true, get: function () { return optional_1.optional; } });
40
- Object.defineProperty(exports, "unmanaged", { enumerable: true, get: function () { return unmanaged_1.unmanaged; } });
41
- Object.defineProperty(exports, "multiInject", { enumerable: true, get: function () { return multi_inject_1.multiInject; } });
42
- Object.defineProperty(exports, "targetName", { enumerable: true, get: function () { return target_name_1.targetName; } });
43
- Object.defineProperty(exports, "postConstruct", { enumerable: true, get: function () { return post_construct_1.postConstruct; } });
44
- Object.defineProperty(exports, "preDestroy", { enumerable: true, get: function () { return pre_destroy_1.preDestroy; } });
45
- Object.defineProperty(exports, "MetadataReader", { enumerable: true, get: function () { return metadata_reader_1.MetadataReader; } });
46
- Object.defineProperty(exports, "id", { enumerable: true, get: function () { return id_1.id; } });
47
- Object.defineProperty(exports, "interfaces", { enumerable: true, get: function () { return interfaces_1.interfaces; } });
48
- Object.defineProperty(exports, "decorate", { enumerable: true, get: function () { return decorator_utils_2.decorate; } });
49
- Object.defineProperty(exports, "traverseAncerstors", { enumerable: true, get: function () { return constraint_helpers_1.traverseAncerstors; } });
50
- Object.defineProperty(exports, "taggedConstraint", { enumerable: true, get: function () { return constraint_helpers_1.taggedConstraint; } });
51
- Object.defineProperty(exports, "namedConstraint", { enumerable: true, get: function () { return constraint_helpers_1.namedConstraint; } });
52
- Object.defineProperty(exports, "typeConstraint", { enumerable: true, get: function () { return constraint_helpers_1.typeConstraint; } });
53
- Object.defineProperty(exports, "getServiceIdentifierAsString", { enumerable: true, get: function () { return serialization_1.getServiceIdentifierAsString; } });
54
- Object.defineProperty(exports, "multiBindToService", { enumerable: true, get: function () { return binding_utils_1.multiBindToService; } });
55
- });
1
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2
+ if (k2 === undefined) k2 = k;
3
+ var desc = Object.getOwnPropertyDescriptor(m, k);
4
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
5
+ desc = { enumerable: true, get: function() { return m[k]; } };
6
+ }
7
+ Object.defineProperty(o, k2, desc);
8
+ }) : (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ o[k2] = m[k];
11
+ }));
12
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
13
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
14
+ }) : function(o, v) {
15
+ o["default"] = v;
16
+ });
17
+ var __importStar = (this && this.__importStar) || function (mod) {
18
+ if (mod && mod.__esModule) return mod;
19
+ var result = {};
20
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
21
+ __setModuleDefault(result, mod);
22
+ return result;
23
+ };
24
+ define(["require", "exports", "./constants/metadata_keys", "@inversifyjs/common", "./container/container", "./constants/literal_types", "./container/container_module", "./annotation/decorator_utils", "./annotation/injectable", "./annotation/tagged", "./annotation/named", "./annotation/inject", "./annotation/optional", "./annotation/unmanaged", "./annotation/multi_inject", "./annotation/target_name", "./annotation/post_construct", "./annotation/pre_destroy", "./planning/metadata_reader", "./utils/id", "./annotation/decorator_utils", "./syntax/constraint_helpers", "./utils/serialization", "./utils/binding_utils"], function (require, exports, keys, common_1, container_1, literal_types_1, container_module_1, decorator_utils_1, injectable_1, tagged_1, named_1, inject_1, optional_1, unmanaged_1, multi_inject_1, target_name_1, post_construct_1, pre_destroy_1, metadata_reader_1, id_1, decorator_utils_2, constraint_helpers_1, serialization_1, binding_utils_1) {
25
+ "use strict";
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.multiBindToService = exports.getServiceIdentifierAsString = exports.typeConstraint = exports.namedConstraint = exports.taggedConstraint = exports.traverseAncerstors = exports.decorate = exports.id = exports.MetadataReader = exports.preDestroy = exports.postConstruct = exports.targetName = exports.multiInject = exports.unmanaged = exports.optional = exports.inject = exports.named = exports.tagged = exports.injectable = exports.createTaggedDecorator = exports.ContainerModule = exports.AsyncContainerModule = exports.TargetTypeEnum = exports.BindingTypeEnum = exports.BindingScopeEnum = exports.Container = exports.METADATA_KEY = exports.LazyServiceIdentifier = void 0;
28
+ keys = __importStar(keys);
29
+ Object.defineProperty(exports, "LazyServiceIdentifier", { enumerable: true, get: function () { return common_1.LazyServiceIdentifier; } });
30
+ exports.METADATA_KEY = keys;
31
+ Object.defineProperty(exports, "Container", { enumerable: true, get: function () { return container_1.Container; } });
32
+ Object.defineProperty(exports, "BindingScopeEnum", { enumerable: true, get: function () { return literal_types_1.BindingScopeEnum; } });
33
+ Object.defineProperty(exports, "BindingTypeEnum", { enumerable: true, get: function () { return literal_types_1.BindingTypeEnum; } });
34
+ Object.defineProperty(exports, "TargetTypeEnum", { enumerable: true, get: function () { return literal_types_1.TargetTypeEnum; } });
35
+ Object.defineProperty(exports, "AsyncContainerModule", { enumerable: true, get: function () { return container_module_1.AsyncContainerModule; } });
36
+ Object.defineProperty(exports, "ContainerModule", { enumerable: true, get: function () { return container_module_1.ContainerModule; } });
37
+ Object.defineProperty(exports, "createTaggedDecorator", { enumerable: true, get: function () { return decorator_utils_1.createTaggedDecorator; } });
38
+ Object.defineProperty(exports, "injectable", { enumerable: true, get: function () { return injectable_1.injectable; } });
39
+ Object.defineProperty(exports, "tagged", { enumerable: true, get: function () { return tagged_1.tagged; } });
40
+ Object.defineProperty(exports, "named", { enumerable: true, get: function () { return named_1.named; } });
41
+ Object.defineProperty(exports, "inject", { enumerable: true, get: function () { return inject_1.inject; } });
42
+ Object.defineProperty(exports, "optional", { enumerable: true, get: function () { return optional_1.optional; } });
43
+ Object.defineProperty(exports, "unmanaged", { enumerable: true, get: function () { return unmanaged_1.unmanaged; } });
44
+ Object.defineProperty(exports, "multiInject", { enumerable: true, get: function () { return multi_inject_1.multiInject; } });
45
+ Object.defineProperty(exports, "targetName", { enumerable: true, get: function () { return target_name_1.targetName; } });
46
+ Object.defineProperty(exports, "postConstruct", { enumerable: true, get: function () { return post_construct_1.postConstruct; } });
47
+ Object.defineProperty(exports, "preDestroy", { enumerable: true, get: function () { return pre_destroy_1.preDestroy; } });
48
+ Object.defineProperty(exports, "MetadataReader", { enumerable: true, get: function () { return metadata_reader_1.MetadataReader; } });
49
+ Object.defineProperty(exports, "id", { enumerable: true, get: function () { return id_1.id; } });
50
+ Object.defineProperty(exports, "decorate", { enumerable: true, get: function () { return decorator_utils_2.decorate; } });
51
+ Object.defineProperty(exports, "traverseAncerstors", { enumerable: true, get: function () { return constraint_helpers_1.traverseAncerstors; } });
52
+ Object.defineProperty(exports, "taggedConstraint", { enumerable: true, get: function () { return constraint_helpers_1.taggedConstraint; } });
53
+ Object.defineProperty(exports, "namedConstraint", { enumerable: true, get: function () { return constraint_helpers_1.namedConstraint; } });
54
+ Object.defineProperty(exports, "typeConstraint", { enumerable: true, get: function () { return constraint_helpers_1.typeConstraint; } });
55
+ Object.defineProperty(exports, "getServiceIdentifierAsString", { enumerable: true, get: function () { return serialization_1.getServiceIdentifierAsString; } });
56
+ Object.defineProperty(exports, "multiBindToService", { enumerable: true, get: function () { return binding_utils_1.multiBindToService; } });
57
+ });