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,99 +1,104 @@
1
- import { BindingOnSyntax } from './binding_on_syntax';
2
- import { namedConstraint, taggedConstraint, traverseAncerstors, typeConstraint } from './constraint_helpers';
3
- var BindingWhenSyntax = (function () {
4
- function BindingWhenSyntax(binding) {
5
- this._binding = binding;
6
- }
7
- BindingWhenSyntax.prototype.when = function (constraint) {
8
- this._binding.constraint = constraint;
9
- return new BindingOnSyntax(this._binding);
10
- };
11
- BindingWhenSyntax.prototype.whenTargetNamed = function (name) {
12
- this._binding.constraint = namedConstraint(name);
13
- return new BindingOnSyntax(this._binding);
14
- };
15
- BindingWhenSyntax.prototype.whenTargetIsDefault = function () {
16
- this._binding.constraint = function (request) {
17
- if (request === null) {
18
- return false;
19
- }
20
- var targetIsDefault = (request.target !== null) &&
21
- (!request.target.isNamed()) &&
22
- (!request.target.isTagged());
23
- return targetIsDefault;
24
- };
25
- return new BindingOnSyntax(this._binding);
26
- };
27
- BindingWhenSyntax.prototype.whenTargetTagged = function (tag, value) {
28
- this._binding.constraint = taggedConstraint(tag)(value);
29
- return new BindingOnSyntax(this._binding);
30
- };
31
- BindingWhenSyntax.prototype.whenInjectedInto = function (parent) {
32
- this._binding.constraint = function (request) {
33
- return request !== null && typeConstraint(parent)(request.parentRequest);
34
- };
35
- return new BindingOnSyntax(this._binding);
36
- };
37
- BindingWhenSyntax.prototype.whenParentNamed = function (name) {
38
- this._binding.constraint = function (request) {
39
- return request !== null && namedConstraint(name)(request.parentRequest);
40
- };
41
- return new BindingOnSyntax(this._binding);
42
- };
43
- BindingWhenSyntax.prototype.whenParentTagged = function (tag, value) {
44
- this._binding.constraint = function (request) {
45
- return request !== null && taggedConstraint(tag)(value)(request.parentRequest);
46
- };
47
- return new BindingOnSyntax(this._binding);
48
- };
49
- BindingWhenSyntax.prototype.whenAnyAncestorIs = function (ancestor) {
50
- this._binding.constraint = function (request) {
51
- return request !== null && traverseAncerstors(request, typeConstraint(ancestor));
52
- };
53
- return new BindingOnSyntax(this._binding);
54
- };
55
- BindingWhenSyntax.prototype.whenNoAncestorIs = function (ancestor) {
56
- this._binding.constraint = function (request) {
57
- return request !== null && !traverseAncerstors(request, typeConstraint(ancestor));
58
- };
59
- return new BindingOnSyntax(this._binding);
60
- };
61
- BindingWhenSyntax.prototype.whenAnyAncestorNamed = function (name) {
62
- this._binding.constraint = function (request) {
63
- return request !== null && traverseAncerstors(request, namedConstraint(name));
64
- };
65
- return new BindingOnSyntax(this._binding);
66
- };
67
- BindingWhenSyntax.prototype.whenNoAncestorNamed = function (name) {
68
- this._binding.constraint = function (request) {
69
- return request !== null && !traverseAncerstors(request, namedConstraint(name));
70
- };
71
- return new BindingOnSyntax(this._binding);
72
- };
73
- BindingWhenSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {
74
- this._binding.constraint = function (request) {
75
- return request !== null && traverseAncerstors(request, taggedConstraint(tag)(value));
76
- };
77
- return new BindingOnSyntax(this._binding);
78
- };
79
- BindingWhenSyntax.prototype.whenNoAncestorTagged = function (tag, value) {
80
- this._binding.constraint = function (request) {
81
- return request !== null && !traverseAncerstors(request, taggedConstraint(tag)(value));
82
- };
83
- return new BindingOnSyntax(this._binding);
84
- };
85
- BindingWhenSyntax.prototype.whenAnyAncestorMatches = function (constraint) {
86
- this._binding.constraint = function (request) {
87
- return request !== null && traverseAncerstors(request, constraint);
88
- };
89
- return new BindingOnSyntax(this._binding);
90
- };
91
- BindingWhenSyntax.prototype.whenNoAncestorMatches = function (constraint) {
92
- this._binding.constraint = function (request) {
93
- return request !== null && !traverseAncerstors(request, constraint);
94
- };
95
- return new BindingOnSyntax(this._binding);
96
- };
97
- return BindingWhenSyntax;
98
- }());
99
- export { BindingWhenSyntax };
1
+ import { BindingOnSyntax } from './binding_on_syntax';
2
+ import { namedConstraint, taggedConstraint, traverseAncerstors, typeConstraint, } from './constraint_helpers';
3
+ var BindingWhenSyntax = (function () {
4
+ function BindingWhenSyntax(binding) {
5
+ this._binding = binding;
6
+ }
7
+ BindingWhenSyntax.prototype.when = function (constraint) {
8
+ this._binding.constraint = constraint;
9
+ return new BindingOnSyntax(this._binding);
10
+ };
11
+ BindingWhenSyntax.prototype.whenTargetNamed = function (name) {
12
+ this._binding.constraint = namedConstraint(name);
13
+ return new BindingOnSyntax(this._binding);
14
+ };
15
+ BindingWhenSyntax.prototype.whenTargetIsDefault = function () {
16
+ this._binding.constraint = function (request) {
17
+ if (request === null) {
18
+ return false;
19
+ }
20
+ var targetIsDefault = request.target !== null &&
21
+ !request.target.isNamed() &&
22
+ !request.target.isTagged();
23
+ return targetIsDefault;
24
+ };
25
+ return new BindingOnSyntax(this._binding);
26
+ };
27
+ BindingWhenSyntax.prototype.whenTargetTagged = function (tag, value) {
28
+ this._binding.constraint = taggedConstraint(tag)(value);
29
+ return new BindingOnSyntax(this._binding);
30
+ };
31
+ BindingWhenSyntax.prototype.whenInjectedInto = function (parent) {
32
+ this._binding.constraint = function (request) {
33
+ return request !== null && typeConstraint(parent)(request.parentRequest);
34
+ };
35
+ return new BindingOnSyntax(this._binding);
36
+ };
37
+ BindingWhenSyntax.prototype.whenParentNamed = function (name) {
38
+ this._binding.constraint = function (request) {
39
+ return request !== null && namedConstraint(name)(request.parentRequest);
40
+ };
41
+ return new BindingOnSyntax(this._binding);
42
+ };
43
+ BindingWhenSyntax.prototype.whenParentTagged = function (tag, value) {
44
+ this._binding.constraint = function (request) {
45
+ return request !== null && taggedConstraint(tag)(value)(request.parentRequest);
46
+ };
47
+ return new BindingOnSyntax(this._binding);
48
+ };
49
+ BindingWhenSyntax.prototype.whenAnyAncestorIs = function (ancestor) {
50
+ this._binding.constraint = function (request) {
51
+ return request !== null && traverseAncerstors(request, typeConstraint(ancestor));
52
+ };
53
+ return new BindingOnSyntax(this._binding);
54
+ };
55
+ BindingWhenSyntax.prototype.whenNoAncestorIs = function (ancestor) {
56
+ this._binding.constraint = function (request) {
57
+ return request !== null &&
58
+ !traverseAncerstors(request, typeConstraint(ancestor));
59
+ };
60
+ return new BindingOnSyntax(this._binding);
61
+ };
62
+ BindingWhenSyntax.prototype.whenAnyAncestorNamed = function (name) {
63
+ this._binding.constraint = function (request) {
64
+ return request !== null && traverseAncerstors(request, namedConstraint(name));
65
+ };
66
+ return new BindingOnSyntax(this._binding);
67
+ };
68
+ BindingWhenSyntax.prototype.whenNoAncestorNamed = function (name) {
69
+ this._binding.constraint = function (request) {
70
+ return request !== null && !traverseAncerstors(request, namedConstraint(name));
71
+ };
72
+ return new BindingOnSyntax(this._binding);
73
+ };
74
+ BindingWhenSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {
75
+ this._binding.constraint = function (request) {
76
+ return request !== null &&
77
+ traverseAncerstors(request, taggedConstraint(tag)(value));
78
+ };
79
+ return new BindingOnSyntax(this._binding);
80
+ };
81
+ BindingWhenSyntax.prototype.whenNoAncestorTagged = function (tag, value) {
82
+ this._binding.constraint = function (request) {
83
+ return request !== null &&
84
+ !traverseAncerstors(request, taggedConstraint(tag)(value));
85
+ };
86
+ return new BindingOnSyntax(this._binding);
87
+ };
88
+ BindingWhenSyntax.prototype.whenAnyAncestorMatches = function (constraint) {
89
+ this._binding.constraint = function (request) {
90
+ return request !== null &&
91
+ traverseAncerstors(request, constraint);
92
+ };
93
+ return new BindingOnSyntax(this._binding);
94
+ };
95
+ BindingWhenSyntax.prototype.whenNoAncestorMatches = function (constraint) {
96
+ this._binding.constraint = function (request) {
97
+ return request !== null &&
98
+ !traverseAncerstors(request, constraint);
99
+ };
100
+ return new BindingOnSyntax(this._binding);
101
+ };
102
+ return BindingWhenSyntax;
103
+ }());
104
+ export { BindingWhenSyntax };
@@ -1,35 +1,36 @@
1
- import * as METADATA_KEY from '../constants/metadata_keys';
2
- import { Metadata } from '../planning/metadata';
3
- var traverseAncerstors = function (request, constraint) {
4
- var parent = request.parentRequest;
5
- if (parent !== null) {
6
- return constraint(parent) ? true : traverseAncerstors(parent, constraint);
7
- }
8
- else {
9
- return false;
10
- }
11
- };
12
- var taggedConstraint = function (key) { return function (value) {
13
- var constraint = function (request) {
14
- return request !== null && request.target !== null && request.target.matchesTag(key)(value);
15
- };
16
- constraint.metaData = new Metadata(key, value);
17
- return constraint;
18
- }; };
19
- var namedConstraint = taggedConstraint(METADATA_KEY.NAMED_TAG);
20
- var typeConstraint = function (type) { return function (request) {
21
- var binding = null;
22
- if (request !== null) {
23
- binding = request.bindings[0];
24
- if (typeof type === 'string') {
25
- var serviceIdentifier = binding.serviceIdentifier;
26
- return serviceIdentifier === type;
27
- }
28
- else {
29
- var constructor = request.bindings[0].implementationType;
30
- return type === constructor;
31
- }
32
- }
33
- return false;
34
- }; };
35
- export { traverseAncerstors, taggedConstraint, namedConstraint, typeConstraint };
1
+ import * as METADATA_KEY from '../constants/metadata_keys';
2
+ import { Metadata } from '../planning/metadata';
3
+ var traverseAncerstors = function (request, constraint) {
4
+ var parent = request.parentRequest;
5
+ if (parent !== null) {
6
+ return constraint(parent) ? true : traverseAncerstors(parent, constraint);
7
+ }
8
+ else {
9
+ return false;
10
+ }
11
+ };
12
+ var taggedConstraint = function (key) { return function (value) {
13
+ var constraint = function (request) {
14
+ return request !== null &&
15
+ request.target !== null &&
16
+ request.target.matchesTag(key)(value);
17
+ };
18
+ constraint.metaData = new Metadata(key, value);
19
+ return constraint;
20
+ }; };
21
+ var namedConstraint = taggedConstraint(METADATA_KEY.NAMED_TAG);
22
+ var typeConstraint = function (type) { return function (request) {
23
+ var binding = null;
24
+ if (request !== null) {
25
+ binding = request.bindings[0];
26
+ if (typeof type === 'string') {
27
+ return binding.serviceIdentifier === type;
28
+ }
29
+ else {
30
+ var constructor = request.bindings[0].implementationType;
31
+ return type === constructor;
32
+ }
33
+ }
34
+ return false;
35
+ }; };
36
+ export { traverseAncerstors, taggedConstraint, namedConstraint, typeConstraint, };
package/es/utils/async.js CHANGED
@@ -1,11 +1,12 @@
1
- function isPromise(object) {
2
- var isObjectOrFunction = (typeof object === 'object' && object !== null) || typeof object === 'function';
3
- return isObjectOrFunction && typeof object.then === "function";
4
- }
5
- function isPromiseOrContainsPromise(object) {
6
- if (isPromise(object)) {
7
- return true;
8
- }
9
- return Array.isArray(object) && object.some(isPromise);
10
- }
11
- export { isPromise, isPromiseOrContainsPromise };
1
+ function isPromise(object) {
2
+ var isObjectOrFunction = (typeof object === 'object' && object !== null) ||
3
+ typeof object === 'function';
4
+ return (isObjectOrFunction && typeof object.then === 'function');
5
+ }
6
+ function isPromiseOrContainsPromise(object) {
7
+ if (isPromise(object)) {
8
+ return true;
9
+ }
10
+ return Array.isArray(object) && object.some(isPromise);
11
+ }
12
+ export { isPromise, isPromiseOrContainsPromise };
@@ -1,53 +1,58 @@
1
- import { getServiceIdentifierAsString } from '../utils/serialization';
2
- import * as ERROR_MSGS from '../constants/error_msgs';
3
- import { BindingTypeEnum } from '../constants/literal_types';
4
- import { FactoryType } from './factory_type';
5
- export var multiBindToService = function (container) {
6
- return function (service) {
7
- return function () {
8
- var types = [];
9
- for (var _i = 0; _i < arguments.length; _i++) {
10
- types[_i] = arguments[_i];
11
- }
12
- return types.forEach(function (t) { return container.bind(t).toService(service); });
13
- };
14
- };
15
- };
16
- export var ensureFullyBound = function (binding) {
17
- var boundValue = null;
18
- switch (binding.type) {
19
- case BindingTypeEnum.ConstantValue:
20
- case BindingTypeEnum.Function:
21
- boundValue = binding.cache;
22
- break;
23
- case BindingTypeEnum.Constructor:
24
- case BindingTypeEnum.Instance:
25
- boundValue = binding.implementationType;
26
- break;
27
- case BindingTypeEnum.DynamicValue:
28
- boundValue = binding.dynamicValue;
29
- break;
30
- case BindingTypeEnum.Provider:
31
- boundValue = binding.provider;
32
- break;
33
- case BindingTypeEnum.Factory:
34
- boundValue = binding.factory;
35
- break;
36
- }
37
- if (boundValue === null) {
38
- var serviceIdentifierAsString = getServiceIdentifierAsString(binding.serviceIdentifier);
39
- throw new Error(ERROR_MSGS.INVALID_BINDING_TYPE + " " + serviceIdentifierAsString);
40
- }
41
- };
42
- export var getFactoryDetails = function (binding) {
43
- switch (binding.type) {
44
- case BindingTypeEnum.Factory:
45
- return { factory: binding.factory, factoryType: FactoryType.Factory };
46
- case BindingTypeEnum.Provider:
47
- return { factory: binding.provider, factoryType: FactoryType.Provider };
48
- case BindingTypeEnum.DynamicValue:
49
- return { factory: binding.dynamicValue, factoryType: FactoryType.DynamicValue };
50
- default:
51
- throw new Error("Unexpected factory type " + binding.type);
52
- }
53
- };
1
+ import * as ERROR_MSGS from '../constants/error_msgs';
2
+ import { BindingTypeEnum } from '../constants/literal_types';
3
+ import { getServiceIdentifierAsString } from '../utils/serialization';
4
+ import { FactoryType } from './factory_type';
5
+ export var multiBindToService = function (container) {
6
+ return function (service) {
7
+ return function () {
8
+ var types = [];
9
+ for (var _i = 0; _i < arguments.length; _i++) {
10
+ types[_i] = arguments[_i];
11
+ }
12
+ types.forEach(function (t) {
13
+ container.bind(t).toService(service);
14
+ });
15
+ };
16
+ };
17
+ };
18
+ export var ensureFullyBound = function (binding) {
19
+ var boundValue = null;
20
+ switch (binding.type) {
21
+ case BindingTypeEnum.ConstantValue:
22
+ case BindingTypeEnum.Function:
23
+ boundValue = binding.cache;
24
+ break;
25
+ case BindingTypeEnum.Constructor:
26
+ case BindingTypeEnum.Instance:
27
+ boundValue = binding.implementationType;
28
+ break;
29
+ case BindingTypeEnum.DynamicValue:
30
+ boundValue = binding.dynamicValue;
31
+ break;
32
+ case BindingTypeEnum.Provider:
33
+ boundValue = binding.provider;
34
+ break;
35
+ case BindingTypeEnum.Factory:
36
+ boundValue = binding.factory;
37
+ break;
38
+ }
39
+ if (boundValue === null) {
40
+ var serviceIdentifierAsString = getServiceIdentifierAsString(binding.serviceIdentifier);
41
+ throw new Error("".concat(ERROR_MSGS.INVALID_BINDING_TYPE, " ").concat(serviceIdentifierAsString));
42
+ }
43
+ };
44
+ export var getFactoryDetails = function (binding) {
45
+ switch (binding.type) {
46
+ case BindingTypeEnum.Factory:
47
+ return { factory: binding.factory, factoryType: FactoryType.Factory };
48
+ case BindingTypeEnum.Provider:
49
+ return { factory: binding.provider, factoryType: FactoryType.Provider };
50
+ case BindingTypeEnum.DynamicValue:
51
+ return {
52
+ factory: binding.dynamicValue,
53
+ factoryType: FactoryType.DynamicValue,
54
+ };
55
+ default:
56
+ throw new Error("Unexpected factory type ".concat(binding.type));
57
+ }
58
+ };
@@ -1,7 +1,7 @@
1
- function isClonable(obj) {
2
- return (typeof obj === 'object')
3
- && (obj !== null)
4
- && ('clone' in obj)
5
- && typeof obj.clone === 'function';
6
- }
7
- export { isClonable };
1
+ function isClonable(obj) {
2
+ return (typeof obj === 'object' &&
3
+ obj !== null &&
4
+ 'clone' in obj &&
5
+ typeof obj.clone === 'function');
6
+ }
7
+ export { isClonable };
@@ -1,16 +1,16 @@
1
- import * as ERROR_MSGS from '../constants/error_msgs';
2
- export function isStackOverflowExeption(error) {
3
- return (error instanceof RangeError ||
4
- error.message === ERROR_MSGS.STACK_OVERFLOW);
5
- }
6
- export var tryAndThrowErrorIfStackOverflow = function (fn, errorCallback) {
7
- try {
8
- return fn();
9
- }
10
- catch (error) {
11
- if (isStackOverflowExeption(error)) {
12
- error = errorCallback();
13
- }
14
- throw error;
15
- }
16
- };
1
+ import * as ERROR_MSGS from '../constants/error_msgs';
2
+ export function isStackOverflowException(error) {
3
+ return (error instanceof RangeError ||
4
+ error.message === ERROR_MSGS.STACK_OVERFLOW);
5
+ }
6
+ export var tryAndThrowErrorIfStackOverflow = function (fn, errorCallback) {
7
+ try {
8
+ return fn();
9
+ }
10
+ catch (error) {
11
+ if (isStackOverflowException(error)) {
12
+ throw errorCallback();
13
+ }
14
+ throw error;
15
+ }
16
+ };
@@ -1,6 +1,6 @@
1
- export var FactoryType;
2
- (function (FactoryType) {
3
- FactoryType["DynamicValue"] = "toDynamicValue";
4
- FactoryType["Factory"] = "toFactory";
5
- FactoryType["Provider"] = "toProvider";
6
- })(FactoryType || (FactoryType = {}));
1
+ export var FactoryType;
2
+ (function (FactoryType) {
3
+ FactoryType["DynamicValue"] = "toDynamicValue";
4
+ FactoryType["Factory"] = "toFactory";
5
+ FactoryType["Provider"] = "toProvider";
6
+ })(FactoryType || (FactoryType = {}));
package/es/utils/id.js CHANGED
@@ -1,5 +1,5 @@
1
- var idCounter = 0;
2
- function id() {
3
- return idCounter++;
4
- }
5
- export { id };
1
+ var idCounter = 0;
2
+ function id() {
3
+ return idCounter++;
4
+ }
5
+ export { id };
package/es/utils/js.js CHANGED
@@ -1,13 +1,13 @@
1
- export function getFirstArrayDuplicate(array) {
2
- var seenValues = new Set();
3
- for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {
4
- var entry = array_1[_i];
5
- if (seenValues.has(entry)) {
6
- return entry;
7
- }
8
- else {
9
- seenValues.add(entry);
10
- }
11
- }
12
- return undefined;
13
- }
1
+ export function getFirstArrayDuplicate(array) {
2
+ var seenValues = new Set();
3
+ for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {
4
+ var entry = array_1[_i];
5
+ if (seenValues.has(entry)) {
6
+ return entry;
7
+ }
8
+ else {
9
+ seenValues.add(entry);
10
+ }
11
+ }
12
+ return undefined;
13
+ }