inversify 6.1.4 → 6.1.5-beta.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 (267) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/README.md +6 -15
  3. package/es/container/container.d.ts +2 -0
  4. package/es/container/module_activation_store.d.ts +2 -2
  5. package/es/interfaces/interfaces.d.ts +2 -2
  6. package/es/inversify.d.ts +1 -0
  7. package/es/inversify.js +3 -2
  8. package/es/inversify.js.LICENSE.txt +14 -0
  9. package/lib/annotation/decorator_utils.js +31 -25
  10. package/lib/annotation/inject.js +20 -10
  11. package/lib/annotation/inject_base.js +6 -6
  12. package/lib/annotation/injectable.js +20 -10
  13. package/lib/annotation/multi_inject.js +20 -10
  14. package/lib/annotation/named.js +20 -10
  15. package/lib/annotation/optional.js +20 -10
  16. package/lib/annotation/post_construct.js +21 -11
  17. package/lib/annotation/pre_destroy.js +21 -11
  18. package/lib/annotation/property_event_decorator.js +4 -4
  19. package/lib/annotation/tagged.js +2 -2
  20. package/lib/annotation/target_name.js +21 -11
  21. package/lib/annotation/unmanaged.js +21 -11
  22. package/lib/bindings/binding.js +23 -10
  23. package/lib/constants/error_msgs.js +15 -29
  24. package/lib/constants/literal_types.js +3 -3
  25. package/lib/container/container.d.ts +2 -0
  26. package/lib/container/container.js +317 -566
  27. package/lib/container/container_module.js +11 -9
  28. package/lib/container/container_snapshot.js +10 -8
  29. package/lib/container/lookup.js +61 -56
  30. package/lib/container/module_activation_store.d.ts +2 -2
  31. package/lib/container/module_activation_store.js +21 -24
  32. package/lib/interfaces/interfaces.d.ts +2 -2
  33. package/lib/inversify.d.ts +1 -0
  34. package/lib/inversify.js +19 -8
  35. package/lib/planning/context.js +12 -9
  36. package/lib/planning/metadata.js +27 -16
  37. package/lib/planning/metadata_reader.js +29 -24
  38. package/lib/planning/plan.js +5 -4
  39. package/lib/planning/planner.js +62 -53
  40. package/lib/planning/queryable_string.js +16 -16
  41. package/lib/planning/reflection_utils.js +25 -17
  42. package/lib/planning/request.js +15 -8
  43. package/lib/resolution/instantiation.js +59 -119
  44. package/lib/resolution/resolver.js +89 -134
  45. package/lib/scope/scope.js +17 -62
  46. package/lib/syntax/binding_in_syntax.js +12 -12
  47. package/lib/syntax/binding_in_when_on_syntax.js +50 -47
  48. package/lib/syntax/binding_on_syntax.js +9 -9
  49. package/lib/syntax/binding_to_syntax.js +70 -49
  50. package/lib/syntax/binding_when_on_syntax.js +42 -40
  51. package/lib/syntax/binding_when_syntax.js +54 -76
  52. package/lib/syntax/constraint_helpers.js +31 -23
  53. package/lib/utils/async.js +1 -1
  54. package/lib/utils/binding_utils.js +31 -29
  55. package/lib/utils/exceptions.js +19 -9
  56. package/lib/utils/id.js +1 -1
  57. package/lib/utils/js.js +2 -3
  58. package/lib/utils/serialization.js +42 -33
  59. package/package.json +14 -15
  60. package/amd/annotation/decorator_utils.d.ts +0 -16
  61. package/amd/annotation/decorator_utils.js +0 -119
  62. package/amd/annotation/inject.d.ts +0 -5
  63. package/amd/annotation/inject.js +0 -31
  64. package/amd/annotation/inject_base.d.ts +0 -4
  65. package/amd/annotation/inject_base.js +0 -16
  66. package/amd/annotation/injectable.d.ts +0 -2
  67. package/amd/annotation/injectable.js +0 -40
  68. package/amd/annotation/lazy_service_identifier.js +0 -4
  69. package/amd/annotation/multi_inject.d.ts +0 -5
  70. package/amd/annotation/multi_inject.js +0 -31
  71. package/amd/annotation/named.d.ts +0 -2
  72. package/amd/annotation/named.js +0 -32
  73. package/amd/annotation/optional.d.ts +0 -2
  74. package/amd/annotation/optional.js +0 -32
  75. package/amd/annotation/post_construct.d.ts +0 -4
  76. package/amd/annotation/post_construct.js +0 -32
  77. package/amd/annotation/pre_destroy.d.ts +0 -4
  78. package/amd/annotation/pre_destroy.js +0 -32
  79. package/amd/annotation/property_event_decorator.d.ts +0 -4
  80. package/amd/annotation/property_event_decorator.js +0 -16
  81. package/amd/annotation/tagged.d.ts +0 -2
  82. package/amd/annotation/tagged.js +0 -8
  83. package/amd/annotation/target_name.d.ts +0 -3
  84. package/amd/annotation/target_name.js +0 -35
  85. package/amd/annotation/unmanaged.d.ts +0 -3
  86. package/amd/annotation/unmanaged.js +0 -35
  87. package/amd/bindings/binding.d.ts +0 -20
  88. package/amd/bindings/binding.js +0 -40
  89. package/amd/bindings/binding_count.d.ts +0 -5
  90. package/amd/bindings/binding_count.js +0 -11
  91. package/amd/constants/error_msgs.d.ts +0 -30
  92. package/amd/constants/error_msgs.js +0 -75
  93. package/amd/constants/literal_types.d.ts +0 -5
  94. package/amd/constants/literal_types.js +0 -28
  95. package/amd/constants/metadata_keys.d.ts +0 -13
  96. package/amd/constants/metadata_keys.js +0 -28
  97. package/amd/container/container.d.ts +0 -73
  98. package/amd/container/container.js +0 -766
  99. package/amd/container/container_module.d.ts +0 -11
  100. package/amd/container/container_module.js +0 -21
  101. package/amd/container/container_snapshot.d.ts +0 -10
  102. package/amd/container/container_snapshot.js +0 -20
  103. package/amd/container/lookup.d.ts +0 -17
  104. package/amd/container/lookup.js +0 -132
  105. package/amd/container/module_activation_store.d.ts +0 -10
  106. package/amd/container/module_activation_store.js +0 -51
  107. package/amd/interfaces/interfaces.d.ts +0 -269
  108. package/amd/interfaces/interfaces.js +0 -4
  109. package/amd/inversify.d.ts +0 -24
  110. package/amd/inversify.js +0 -57
  111. package/amd/planning/context.d.ts +0 -11
  112. package/amd/planning/context.js +0 -19
  113. package/amd/planning/metadata.d.ts +0 -8
  114. package/amd/planning/metadata.js +0 -45
  115. package/amd/planning/metadata_reader.d.ts +0 -6
  116. package/amd/planning/metadata_reader.js +0 -49
  117. package/amd/planning/plan.d.ts +0 -7
  118. package/amd/planning/plan.js +0 -13
  119. package/amd/planning/planner.d.ts +0 -5
  120. package/amd/planning/planner.js +0 -187
  121. package/amd/planning/queryable_string.d.ts +0 -10
  122. package/amd/planning/queryable_string.js +0 -33
  123. package/amd/planning/reflection_utils.d.ts +0 -5
  124. package/amd/planning/reflection_utils.js +0 -55
  125. package/amd/planning/request.d.ts +0 -14
  126. package/amd/planning/request.js +0 -24
  127. package/amd/planning/target.js +0 -111
  128. package/amd/resolution/instantiation.d.ts +0 -3
  129. package/amd/resolution/instantiation.js +0 -219
  130. package/amd/resolution/resolver.d.ts +0 -3
  131. package/amd/resolution/resolver.js +0 -234
  132. package/amd/scope/scope.d.ts +0 -3
  133. package/amd/scope/scope.js +0 -93
  134. package/amd/syntax/binding_in_syntax.d.ts +0 -9
  135. package/amd/syntax/binding_in_syntax.js +0 -24
  136. package/amd/syntax/binding_in_when_on_syntax.d.ts +0 -29
  137. package/amd/syntax/binding_in_when_on_syntax.js +0 -75
  138. package/amd/syntax/binding_on_syntax.d.ts +0 -8
  139. package/amd/syntax/binding_on_syntax.js +0 -20
  140. package/amd/syntax/binding_to_syntax.d.ts +0 -18
  141. package/amd/syntax/binding_to_syntax.js +0 -116
  142. package/amd/syntax/binding_when_on_syntax.d.ts +0 -25
  143. package/amd/syntax/binding_when_on_syntax.js +0 -65
  144. package/amd/syntax/binding_when_syntax.d.ts +0 -21
  145. package/amd/syntax/binding_when_syntax.js +0 -107
  146. package/amd/syntax/constraint_helpers.d.ts +0 -6
  147. package/amd/syntax/constraint_helpers.js +0 -66
  148. package/amd/utils/async.d.ts +0 -3
  149. package/amd/utils/async.js +0 -17
  150. package/amd/utils/binding_utils.d.ts +0 -4
  151. package/amd/utils/binding_utils.js +0 -86
  152. package/amd/utils/clonable.d.ts +0 -3
  153. package/amd/utils/clonable.js +0 -11
  154. package/amd/utils/exceptions.d.ts +0 -2
  155. package/amd/utils/exceptions.js +0 -46
  156. package/amd/utils/factory_type.d.ts +0 -5
  157. package/amd/utils/factory_type.js +0 -11
  158. package/amd/utils/id.d.ts +0 -2
  159. package/amd/utils/id.js +0 -9
  160. package/amd/utils/js.d.ts +0 -1
  161. package/amd/utils/js.js +0 -18
  162. package/amd/utils/serialization.d.ts +0 -10
  163. package/amd/utils/serialization.js +0 -135
  164. package/es6/annotation/decorator_utils.d.ts +0 -16
  165. package/es6/annotation/decorator_utils.js +0 -114
  166. package/es6/annotation/inject.d.ts +0 -5
  167. package/es6/annotation/inject.js +0 -30
  168. package/es6/annotation/inject_base.d.ts +0 -4
  169. package/es6/annotation/inject_base.js +0 -17
  170. package/es6/annotation/injectable.d.ts +0 -2
  171. package/es6/annotation/injectable.js +0 -38
  172. package/es6/annotation/lazy_service_identifier.js +0 -2
  173. package/es6/annotation/multi_inject.d.ts +0 -5
  174. package/es6/annotation/multi_inject.js +0 -30
  175. package/es6/annotation/named.d.ts +0 -2
  176. package/es6/annotation/named.js +0 -32
  177. package/es6/annotation/optional.d.ts +0 -2
  178. package/es6/annotation/optional.js +0 -32
  179. package/es6/annotation/post_construct.d.ts +0 -4
  180. package/es6/annotation/post_construct.js +0 -31
  181. package/es6/annotation/pre_destroy.d.ts +0 -4
  182. package/es6/annotation/pre_destroy.js +0 -31
  183. package/es6/annotation/property_event_decorator.d.ts +0 -4
  184. package/es6/annotation/property_event_decorator.js +0 -15
  185. package/es6/annotation/tagged.d.ts +0 -2
  186. package/es6/annotation/tagged.js +0 -8
  187. package/es6/annotation/target_name.d.ts +0 -3
  188. package/es6/annotation/target_name.js +0 -35
  189. package/es6/annotation/unmanaged.d.ts +0 -3
  190. package/es6/annotation/unmanaged.js +0 -35
  191. package/es6/bindings/binding.d.ts +0 -20
  192. package/es6/bindings/binding.js +0 -39
  193. package/es6/bindings/binding_count.d.ts +0 -5
  194. package/es6/bindings/binding_count.js +0 -9
  195. package/es6/constants/error_msgs.d.ts +0 -30
  196. package/es6/constants/error_msgs.js +0 -59
  197. package/es6/constants/literal_types.d.ts +0 -5
  198. package/es6/constants/literal_types.js +0 -26
  199. package/es6/constants/metadata_keys.d.ts +0 -13
  200. package/es6/constants/metadata_keys.js +0 -26
  201. package/es6/container/container.d.ts +0 -73
  202. package/es6/container/container.js +0 -545
  203. package/es6/container/container_module.d.ts +0 -11
  204. package/es6/container/container_module.js +0 -18
  205. package/es6/container/container_snapshot.d.ts +0 -10
  206. package/es6/container/container_snapshot.js +0 -15
  207. package/es6/container/lookup.d.ts +0 -17
  208. package/es6/container/lookup.js +0 -125
  209. package/es6/container/module_activation_store.d.ts +0 -10
  210. package/es6/container/module_activation_store.js +0 -49
  211. package/es6/interfaces/interfaces.d.ts +0 -269
  212. package/es6/interfaces/interfaces.js +0 -2
  213. package/es6/inversify.d.ts +0 -24
  214. package/es6/inversify.js +0 -76
  215. package/es6/planning/context.d.ts +0 -11
  216. package/es6/planning/context.js +0 -17
  217. package/es6/planning/metadata.d.ts +0 -8
  218. package/es6/planning/metadata.js +0 -42
  219. package/es6/planning/metadata_reader.d.ts +0 -6
  220. package/es6/planning/metadata_reader.js +0 -44
  221. package/es6/planning/plan.d.ts +0 -7
  222. package/es6/planning/plan.js +0 -10
  223. package/es6/planning/planner.d.ts +0 -5
  224. package/es6/planning/planner.js +0 -194
  225. package/es6/planning/queryable_string.d.ts +0 -10
  226. package/es6/planning/queryable_string.js +0 -30
  227. package/es6/planning/reflection_utils.d.ts +0 -5
  228. package/es6/planning/reflection_utils.js +0 -53
  229. package/es6/planning/request.d.ts +0 -14
  230. package/es6/planning/request.js +0 -22
  231. package/es6/planning/target.js +0 -105
  232. package/es6/resolution/instantiation.d.ts +0 -3
  233. package/es6/resolution/instantiation.js +0 -158
  234. package/es6/resolution/resolver.d.ts +0 -3
  235. package/es6/resolution/resolver.js +0 -193
  236. package/es6/scope/scope.d.ts +0 -3
  237. package/es6/scope/scope.js +0 -57
  238. package/es6/syntax/binding_in_syntax.d.ts +0 -9
  239. package/es6/syntax/binding_in_syntax.js +0 -23
  240. package/es6/syntax/binding_in_when_on_syntax.d.ts +0 -29
  241. package/es6/syntax/binding_in_when_on_syntax.js +0 -75
  242. package/es6/syntax/binding_on_syntax.d.ts +0 -8
  243. package/es6/syntax/binding_on_syntax.js +0 -18
  244. package/es6/syntax/binding_to_syntax.d.ts +0 -18
  245. package/es6/syntax/binding_to_syntax.js +0 -110
  246. package/es6/syntax/binding_when_on_syntax.d.ts +0 -25
  247. package/es6/syntax/binding_when_on_syntax.js +0 -64
  248. package/es6/syntax/binding_when_syntax.d.ts +0 -21
  249. package/es6/syntax/binding_when_syntax.js +0 -84
  250. package/es6/syntax/constraint_helpers.d.ts +0 -6
  251. package/es6/syntax/constraint_helpers.js +0 -63
  252. package/es6/utils/async.d.ts +0 -3
  253. package/es6/utils/async.js +0 -15
  254. package/es6/utils/binding_utils.d.ts +0 -4
  255. package/es6/utils/binding_utils.js +0 -79
  256. package/es6/utils/clonable.d.ts +0 -3
  257. package/es6/utils/clonable.js +0 -9
  258. package/es6/utils/exceptions.d.ts +0 -2
  259. package/es6/utils/exceptions.js +0 -44
  260. package/es6/utils/factory_type.d.ts +0 -5
  261. package/es6/utils/factory_type.js +0 -9
  262. package/es6/utils/id.d.ts +0 -2
  263. package/es6/utils/id.js +0 -7
  264. package/es6/utils/js.d.ts +0 -1
  265. package/es6/utils/js.js +0 -15
  266. package/es6/utils/serialization.d.ts +0 -10
  267. package/es6/utils/serialization.js +0 -132
@@ -1,110 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.BindingToSyntax = void 0;
27
- const ERROR_MSGS = __importStar(require("../constants/error_msgs"));
28
- const literal_types_1 = require("../constants/literal_types");
29
- const binding_in_when_on_syntax_1 = require("./binding_in_when_on_syntax");
30
- const binding_when_on_syntax_1 = require("./binding_when_on_syntax");
31
- class BindingToSyntax {
32
- constructor(binding) {
33
- this._binding = binding;
34
- }
35
- to(constructor) {
36
- this._binding.type = literal_types_1.BindingTypeEnum.Instance;
37
- this._binding.implementationType = constructor;
38
- return new binding_in_when_on_syntax_1.BindingInWhenOnSyntax(this._binding);
39
- }
40
- toSelf() {
41
- if (typeof this._binding.serviceIdentifier !== 'function') {
42
- throw new Error(ERROR_MSGS.INVALID_TO_SELF_VALUE);
43
- }
44
- const self = this._binding
45
- .serviceIdentifier;
46
- return this.to(self);
47
- }
48
- toConstantValue(value) {
49
- this._binding.type = literal_types_1.BindingTypeEnum.ConstantValue;
50
- this._binding.cache = value;
51
- this._binding.dynamicValue = null;
52
- this._binding.implementationType = null;
53
- this._binding.scope = literal_types_1.BindingScopeEnum.Singleton;
54
- return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
55
- }
56
- toDynamicValue(func) {
57
- this._binding.type = literal_types_1.BindingTypeEnum.DynamicValue;
58
- this._binding.cache = null;
59
- this._binding.dynamicValue = func;
60
- this._binding.implementationType = null;
61
- return new binding_in_when_on_syntax_1.BindingInWhenOnSyntax(this._binding);
62
- }
63
- toConstructor(constructor) {
64
- this._binding.type = literal_types_1.BindingTypeEnum.Constructor;
65
- this._binding.implementationType = constructor;
66
- this._binding.scope = literal_types_1.BindingScopeEnum.Singleton;
67
- return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
68
- }
69
- toFactory(factory) {
70
- this._binding.type = literal_types_1.BindingTypeEnum.Factory;
71
- this._binding.factory = factory;
72
- this._binding.scope = literal_types_1.BindingScopeEnum.Singleton;
73
- return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
74
- }
75
- toFunction(func) {
76
- if (typeof func !== 'function') {
77
- throw new Error(ERROR_MSGS.INVALID_FUNCTION_BINDING);
78
- }
79
- const bindingWhenOnSyntax = this.toConstantValue(func);
80
- this._binding.type = literal_types_1.BindingTypeEnum.Function;
81
- this._binding.scope = literal_types_1.BindingScopeEnum.Singleton;
82
- return bindingWhenOnSyntax;
83
- }
84
- toAutoFactory(serviceIdentifier) {
85
- this._binding.type = literal_types_1.BindingTypeEnum.Factory;
86
- this._binding.factory = (context) => {
87
- const autofactory = () => context.container.get(serviceIdentifier);
88
- return autofactory;
89
- };
90
- this._binding.scope = literal_types_1.BindingScopeEnum.Singleton;
91
- return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
92
- }
93
- toAutoNamedFactory(serviceIdentifier) {
94
- this._binding.type = literal_types_1.BindingTypeEnum.Factory;
95
- this._binding.factory = (context) => {
96
- return (named) => context.container.getNamed(serviceIdentifier, named);
97
- };
98
- return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
99
- }
100
- toProvider(provider) {
101
- this._binding.type = literal_types_1.BindingTypeEnum.Provider;
102
- this._binding.provider = provider;
103
- this._binding.scope = literal_types_1.BindingScopeEnum.Singleton;
104
- return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
105
- }
106
- toService(service) {
107
- this.toDynamicValue((context) => context.container.get(service));
108
- }
109
- }
110
- exports.BindingToSyntax = BindingToSyntax;
@@ -1,25 +0,0 @@
1
- import { interfaces } from '../interfaces/interfaces';
2
- declare class BindingWhenOnSyntax<T> implements interfaces.BindingWhenSyntax<T>, interfaces.BindingOnSyntax<T> {
3
- private readonly _bindingWhenSyntax;
4
- private readonly _bindingOnSyntax;
5
- private readonly _binding;
6
- constructor(binding: interfaces.Binding<T>);
7
- when(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T>;
8
- whenTargetNamed(name: string): interfaces.BindingOnSyntax<T>;
9
- whenTargetIsDefault(): interfaces.BindingOnSyntax<T>;
10
- whenTargetTagged(tag: string, value: unknown): interfaces.BindingOnSyntax<T>;
11
- whenInjectedInto(parent: NewableFunction | string): interfaces.BindingOnSyntax<T>;
12
- whenParentNamed(name: string): interfaces.BindingOnSyntax<T>;
13
- whenParentTagged(tag: string, value: unknown): interfaces.BindingOnSyntax<T>;
14
- whenAnyAncestorIs(ancestor: NewableFunction | string): interfaces.BindingOnSyntax<T>;
15
- whenNoAncestorIs(ancestor: NewableFunction | string): interfaces.BindingOnSyntax<T>;
16
- whenAnyAncestorNamed(name: string): interfaces.BindingOnSyntax<T>;
17
- whenAnyAncestorTagged(tag: string, value: unknown): interfaces.BindingOnSyntax<T>;
18
- whenNoAncestorNamed(name: string): interfaces.BindingOnSyntax<T>;
19
- whenNoAncestorTagged(tag: string, value: unknown): interfaces.BindingOnSyntax<T>;
20
- whenAnyAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T>;
21
- whenNoAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T>;
22
- onActivation(handler: (context: interfaces.Context, injectable: T) => T): interfaces.BindingWhenSyntax<T>;
23
- onDeactivation(handler: (injectable: T) => Promise<void> | void): interfaces.BindingWhenSyntax<T>;
24
- }
25
- export { BindingWhenOnSyntax };
@@ -1,64 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BindingWhenOnSyntax = void 0;
4
- const binding_on_syntax_1 = require("./binding_on_syntax");
5
- const binding_when_syntax_1 = require("./binding_when_syntax");
6
- class BindingWhenOnSyntax {
7
- constructor(binding) {
8
- this._binding = binding;
9
- this._bindingWhenSyntax = new binding_when_syntax_1.BindingWhenSyntax(this._binding);
10
- this._bindingOnSyntax = new binding_on_syntax_1.BindingOnSyntax(this._binding);
11
- }
12
- when(constraint) {
13
- return this._bindingWhenSyntax.when(constraint);
14
- }
15
- whenTargetNamed(name) {
16
- return this._bindingWhenSyntax.whenTargetNamed(name);
17
- }
18
- whenTargetIsDefault() {
19
- return this._bindingWhenSyntax.whenTargetIsDefault();
20
- }
21
- whenTargetTagged(tag, value) {
22
- return this._bindingWhenSyntax.whenTargetTagged(tag, value);
23
- }
24
- whenInjectedInto(parent) {
25
- return this._bindingWhenSyntax.whenInjectedInto(parent);
26
- }
27
- whenParentNamed(name) {
28
- return this._bindingWhenSyntax.whenParentNamed(name);
29
- }
30
- whenParentTagged(tag, value) {
31
- return this._bindingWhenSyntax.whenParentTagged(tag, value);
32
- }
33
- whenAnyAncestorIs(ancestor) {
34
- return this._bindingWhenSyntax.whenAnyAncestorIs(ancestor);
35
- }
36
- whenNoAncestorIs(ancestor) {
37
- return this._bindingWhenSyntax.whenNoAncestorIs(ancestor);
38
- }
39
- whenAnyAncestorNamed(name) {
40
- return this._bindingWhenSyntax.whenAnyAncestorNamed(name);
41
- }
42
- whenAnyAncestorTagged(tag, value) {
43
- return this._bindingWhenSyntax.whenAnyAncestorTagged(tag, value);
44
- }
45
- whenNoAncestorNamed(name) {
46
- return this._bindingWhenSyntax.whenNoAncestorNamed(name);
47
- }
48
- whenNoAncestorTagged(tag, value) {
49
- return this._bindingWhenSyntax.whenNoAncestorTagged(tag, value);
50
- }
51
- whenAnyAncestorMatches(constraint) {
52
- return this._bindingWhenSyntax.whenAnyAncestorMatches(constraint);
53
- }
54
- whenNoAncestorMatches(constraint) {
55
- return this._bindingWhenSyntax.whenNoAncestorMatches(constraint);
56
- }
57
- onActivation(handler) {
58
- return this._bindingOnSyntax.onActivation(handler);
59
- }
60
- onDeactivation(handler) {
61
- return this._bindingOnSyntax.onDeactivation(handler);
62
- }
63
- }
64
- exports.BindingWhenOnSyntax = BindingWhenOnSyntax;
@@ -1,21 +0,0 @@
1
- import { interfaces } from '../interfaces/interfaces';
2
- declare class BindingWhenSyntax<T> implements interfaces.BindingWhenSyntax<T> {
3
- private readonly _binding;
4
- constructor(binding: interfaces.Binding<T>);
5
- when(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T>;
6
- whenTargetNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T>;
7
- whenTargetIsDefault(): interfaces.BindingOnSyntax<T>;
8
- whenTargetTagged(tag: string | number | symbol, value: unknown): interfaces.BindingOnSyntax<T>;
9
- whenInjectedInto(parent: NewableFunction | string): interfaces.BindingOnSyntax<T>;
10
- whenParentNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T>;
11
- whenParentTagged(tag: string | number | symbol, value: unknown): interfaces.BindingOnSyntax<T>;
12
- whenAnyAncestorIs(ancestor: NewableFunction | string): interfaces.BindingOnSyntax<T>;
13
- whenNoAncestorIs(ancestor: NewableFunction | string): interfaces.BindingOnSyntax<T>;
14
- whenAnyAncestorNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T>;
15
- whenNoAncestorNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T>;
16
- whenAnyAncestorTagged(tag: string | number | symbol, value: unknown): interfaces.BindingOnSyntax<T>;
17
- whenNoAncestorTagged(tag: string | number | symbol, value: unknown): interfaces.BindingOnSyntax<T>;
18
- whenAnyAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T>;
19
- whenNoAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T>;
20
- }
21
- export { BindingWhenSyntax };
@@ -1,84 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BindingWhenSyntax = void 0;
4
- const binding_on_syntax_1 = require("./binding_on_syntax");
5
- const constraint_helpers_1 = require("./constraint_helpers");
6
- class BindingWhenSyntax {
7
- constructor(binding) {
8
- this._binding = binding;
9
- }
10
- when(constraint) {
11
- this._binding.constraint = constraint;
12
- return new binding_on_syntax_1.BindingOnSyntax(this._binding);
13
- }
14
- whenTargetNamed(name) {
15
- this._binding.constraint = (0, constraint_helpers_1.namedConstraint)(name);
16
- return new binding_on_syntax_1.BindingOnSyntax(this._binding);
17
- }
18
- whenTargetIsDefault() {
19
- this._binding.constraint = (request) => {
20
- if (request === null) {
21
- return false;
22
- }
23
- const targetIsDefault = request.target !== null &&
24
- !request.target.isNamed() &&
25
- !request.target.isTagged();
26
- return targetIsDefault;
27
- };
28
- return new binding_on_syntax_1.BindingOnSyntax(this._binding);
29
- }
30
- whenTargetTagged(tag, value) {
31
- this._binding.constraint = (0, constraint_helpers_1.taggedConstraint)(tag)(value);
32
- return new binding_on_syntax_1.BindingOnSyntax(this._binding);
33
- }
34
- whenInjectedInto(parent) {
35
- this._binding.constraint = (request) => request !== null && (0, constraint_helpers_1.typeConstraint)(parent)(request.parentRequest);
36
- return new binding_on_syntax_1.BindingOnSyntax(this._binding);
37
- }
38
- whenParentNamed(name) {
39
- this._binding.constraint = (request) => request !== null && (0, constraint_helpers_1.namedConstraint)(name)(request.parentRequest);
40
- return new binding_on_syntax_1.BindingOnSyntax(this._binding);
41
- }
42
- whenParentTagged(tag, value) {
43
- this._binding.constraint = (request) => request !== null && (0, constraint_helpers_1.taggedConstraint)(tag)(value)(request.parentRequest);
44
- return new binding_on_syntax_1.BindingOnSyntax(this._binding);
45
- }
46
- whenAnyAncestorIs(ancestor) {
47
- this._binding.constraint = (request) => request !== null && (0, constraint_helpers_1.traverseAncerstors)(request, (0, constraint_helpers_1.typeConstraint)(ancestor));
48
- return new binding_on_syntax_1.BindingOnSyntax(this._binding);
49
- }
50
- whenNoAncestorIs(ancestor) {
51
- this._binding.constraint = (request) => request !== null &&
52
- !(0, constraint_helpers_1.traverseAncerstors)(request, (0, constraint_helpers_1.typeConstraint)(ancestor));
53
- return new binding_on_syntax_1.BindingOnSyntax(this._binding);
54
- }
55
- whenAnyAncestorNamed(name) {
56
- this._binding.constraint = (request) => request !== null && (0, constraint_helpers_1.traverseAncerstors)(request, (0, constraint_helpers_1.namedConstraint)(name));
57
- return new binding_on_syntax_1.BindingOnSyntax(this._binding);
58
- }
59
- whenNoAncestorNamed(name) {
60
- this._binding.constraint = (request) => request !== null && !(0, constraint_helpers_1.traverseAncerstors)(request, (0, constraint_helpers_1.namedConstraint)(name));
61
- return new binding_on_syntax_1.BindingOnSyntax(this._binding);
62
- }
63
- whenAnyAncestorTagged(tag, value) {
64
- this._binding.constraint = (request) => request !== null &&
65
- (0, constraint_helpers_1.traverseAncerstors)(request, (0, constraint_helpers_1.taggedConstraint)(tag)(value));
66
- return new binding_on_syntax_1.BindingOnSyntax(this._binding);
67
- }
68
- whenNoAncestorTagged(tag, value) {
69
- this._binding.constraint = (request) => request !== null &&
70
- !(0, constraint_helpers_1.traverseAncerstors)(request, (0, constraint_helpers_1.taggedConstraint)(tag)(value));
71
- return new binding_on_syntax_1.BindingOnSyntax(this._binding);
72
- }
73
- whenAnyAncestorMatches(constraint) {
74
- this._binding.constraint = (request) => request !== null &&
75
- (0, constraint_helpers_1.traverseAncerstors)(request, constraint);
76
- return new binding_on_syntax_1.BindingOnSyntax(this._binding);
77
- }
78
- whenNoAncestorMatches(constraint) {
79
- this._binding.constraint = (request) => request !== null &&
80
- !(0, constraint_helpers_1.traverseAncerstors)(request, constraint);
81
- return new binding_on_syntax_1.BindingOnSyntax(this._binding);
82
- }
83
- }
84
- exports.BindingWhenSyntax = BindingWhenSyntax;
@@ -1,6 +0,0 @@
1
- import { interfaces } from '../interfaces/interfaces';
2
- declare const traverseAncerstors: (request: interfaces.Request, constraint: interfaces.ConstraintFunction) => boolean;
3
- declare const taggedConstraint: (key: string | number | symbol) => (value: unknown) => interfaces.ConstraintFunction;
4
- declare const namedConstraint: (value: unknown) => interfaces.ConstraintFunction;
5
- declare const typeConstraint: (type: NewableFunction | string) => (request: interfaces.Request | null) => boolean;
6
- export { traverseAncerstors, taggedConstraint, namedConstraint, typeConstraint, };
@@ -1,63 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.typeConstraint = exports.namedConstraint = exports.taggedConstraint = exports.traverseAncerstors = void 0;
27
- const METADATA_KEY = __importStar(require("../constants/metadata_keys"));
28
- const metadata_1 = require("../planning/metadata");
29
- const traverseAncerstors = (request, constraint) => {
30
- const parent = request.parentRequest;
31
- if (parent !== null) {
32
- return constraint(parent) ? true : traverseAncerstors(parent, constraint);
33
- }
34
- else {
35
- return false;
36
- }
37
- };
38
- exports.traverseAncerstors = traverseAncerstors;
39
- const taggedConstraint = (key) => (value) => {
40
- const constraint = (request) => request !== null &&
41
- request.target !== null &&
42
- request.target.matchesTag(key)(value);
43
- constraint.metaData = new metadata_1.Metadata(key, value);
44
- return constraint;
45
- };
46
- exports.taggedConstraint = taggedConstraint;
47
- const namedConstraint = taggedConstraint(METADATA_KEY.NAMED_TAG);
48
- exports.namedConstraint = namedConstraint;
49
- const typeConstraint = (type) => (request) => {
50
- let binding = null;
51
- if (request !== null) {
52
- binding = request.bindings[0];
53
- if (typeof type === 'string') {
54
- return binding.serviceIdentifier === type;
55
- }
56
- else {
57
- const constructor = request.bindings[0].implementationType;
58
- return type === constructor;
59
- }
60
- }
61
- return false;
62
- };
63
- exports.typeConstraint = typeConstraint;
@@ -1,3 +0,0 @@
1
- declare function isPromise<T>(object: unknown): object is Promise<T>;
2
- declare function isPromiseOrContainsPromise<T>(object: unknown): object is Promise<T> | (T | Promise<T>)[];
3
- export { isPromise, isPromiseOrContainsPromise };
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isPromise = isPromise;
4
- exports.isPromiseOrContainsPromise = isPromiseOrContainsPromise;
5
- function isPromise(object) {
6
- const isObjectOrFunction = (typeof object === 'object' && object !== null) ||
7
- typeof object === 'function';
8
- return (isObjectOrFunction && typeof object.then === 'function');
9
- }
10
- function isPromiseOrContainsPromise(object) {
11
- if (isPromise(object)) {
12
- return true;
13
- }
14
- return Array.isArray(object) && object.some(isPromise);
15
- }
@@ -1,4 +0,0 @@
1
- import type { interfaces } from '../interfaces/interfaces';
2
- export declare const multiBindToService: (container: interfaces.Container) => (service: interfaces.ServiceIdentifier) => (...types: interfaces.ServiceIdentifier[]) => void;
3
- export declare const ensureFullyBound: <T = unknown>(binding: interfaces.Binding<T>) => void;
4
- export declare const getFactoryDetails: <T = unknown>(binding: interfaces.Binding<T>) => interfaces.FactoryDetails;
@@ -1,79 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.getFactoryDetails = exports.ensureFullyBound = exports.multiBindToService = void 0;
27
- const ERROR_MSGS = __importStar(require("../constants/error_msgs"));
28
- const literal_types_1 = require("../constants/literal_types");
29
- const serialization_1 = require("../utils/serialization");
30
- const factory_type_1 = require("./factory_type");
31
- const multiBindToService = (container) => (service) => (...types) => {
32
- types.forEach((t) => {
33
- container.bind(t).toService(service);
34
- });
35
- };
36
- exports.multiBindToService = multiBindToService;
37
- const ensureFullyBound = (binding) => {
38
- let boundValue = null;
39
- switch (binding.type) {
40
- case literal_types_1.BindingTypeEnum.ConstantValue:
41
- case literal_types_1.BindingTypeEnum.Function:
42
- boundValue = binding.cache;
43
- break;
44
- case literal_types_1.BindingTypeEnum.Constructor:
45
- case literal_types_1.BindingTypeEnum.Instance:
46
- boundValue = binding.implementationType;
47
- break;
48
- case literal_types_1.BindingTypeEnum.DynamicValue:
49
- boundValue = binding.dynamicValue;
50
- break;
51
- case literal_types_1.BindingTypeEnum.Provider:
52
- boundValue = binding.provider;
53
- break;
54
- case literal_types_1.BindingTypeEnum.Factory:
55
- boundValue = binding.factory;
56
- break;
57
- }
58
- if (boundValue === null) {
59
- const serviceIdentifierAsString = (0, serialization_1.getServiceIdentifierAsString)(binding.serviceIdentifier);
60
- throw new Error(`${ERROR_MSGS.INVALID_BINDING_TYPE} ${serviceIdentifierAsString}`);
61
- }
62
- };
63
- exports.ensureFullyBound = ensureFullyBound;
64
- const getFactoryDetails = (binding) => {
65
- switch (binding.type) {
66
- case literal_types_1.BindingTypeEnum.Factory:
67
- return { factory: binding.factory, factoryType: factory_type_1.FactoryType.Factory };
68
- case literal_types_1.BindingTypeEnum.Provider:
69
- return { factory: binding.provider, factoryType: factory_type_1.FactoryType.Provider };
70
- case literal_types_1.BindingTypeEnum.DynamicValue:
71
- return {
72
- factory: binding.dynamicValue,
73
- factoryType: factory_type_1.FactoryType.DynamicValue,
74
- };
75
- default:
76
- throw new Error(`Unexpected factory type ${binding.type}`);
77
- }
78
- };
79
- exports.getFactoryDetails = getFactoryDetails;
@@ -1,3 +0,0 @@
1
- import { interfaces } from '../interfaces/interfaces';
2
- declare function isClonable<T>(obj: unknown): obj is interfaces.Clonable<T>;
3
- export { isClonable };
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isClonable = isClonable;
4
- function isClonable(obj) {
5
- return (typeof obj === 'object' &&
6
- obj !== null &&
7
- 'clone' in obj &&
8
- typeof obj.clone === 'function');
9
- }
@@ -1,2 +0,0 @@
1
- export declare function isStackOverflowException(error: unknown): error is RangeError;
2
- export declare const tryAndThrowErrorIfStackOverflow: <T>(fn: () => T, errorCallback: () => Error) => T;
@@ -1,44 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.tryAndThrowErrorIfStackOverflow = void 0;
27
- exports.isStackOverflowException = isStackOverflowException;
28
- const ERROR_MSGS = __importStar(require("../constants/error_msgs"));
29
- function isStackOverflowException(error) {
30
- return (error instanceof RangeError ||
31
- error.message === ERROR_MSGS.STACK_OVERFLOW);
32
- }
33
- const tryAndThrowErrorIfStackOverflow = (fn, errorCallback) => {
34
- try {
35
- return fn();
36
- }
37
- catch (error) {
38
- if (isStackOverflowException(error)) {
39
- throw errorCallback();
40
- }
41
- throw error;
42
- }
43
- };
44
- exports.tryAndThrowErrorIfStackOverflow = tryAndThrowErrorIfStackOverflow;
@@ -1,5 +0,0 @@
1
- export declare enum FactoryType {
2
- DynamicValue = "toDynamicValue",
3
- Factory = "toFactory",
4
- Provider = "toProvider"
5
- }
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FactoryType = void 0;
4
- var FactoryType;
5
- (function (FactoryType) {
6
- FactoryType["DynamicValue"] = "toDynamicValue";
7
- FactoryType["Factory"] = "toFactory";
8
- FactoryType["Provider"] = "toProvider";
9
- })(FactoryType || (exports.FactoryType = FactoryType = {}));
package/es6/utils/id.d.ts DELETED
@@ -1,2 +0,0 @@
1
- declare function id(): number;
2
- export { id };
package/es6/utils/id.js DELETED
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.id = id;
4
- let idCounter = 0;
5
- function id() {
6
- return idCounter++;
7
- }
package/es6/utils/js.d.ts DELETED
@@ -1 +0,0 @@
1
- export declare function getFirstArrayDuplicate<T>(array: T[]): T | undefined;
package/es6/utils/js.js DELETED
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getFirstArrayDuplicate = getFirstArrayDuplicate;
4
- function getFirstArrayDuplicate(array) {
5
- const seenValues = new Set();
6
- for (const entry of array) {
7
- if (seenValues.has(entry)) {
8
- return entry;
9
- }
10
- else {
11
- seenValues.add(entry);
12
- }
13
- }
14
- return undefined;
15
- }
@@ -1,10 +0,0 @@
1
- import { interfaces } from '../interfaces/interfaces';
2
- declare function getServiceIdentifierAsString(serviceIdentifier: interfaces.ServiceIdentifier): string;
3
- declare function listRegisteredBindingsForServiceIdentifier(container: interfaces.Container, serviceIdentifier: string, getBindings: <T>(container: interfaces.Container, serviceIdentifier: interfaces.ServiceIdentifier<T>) => interfaces.Binding<T>[]): string;
4
- declare function circularDependencyToException(request: interfaces.Request): void;
5
- declare function listMetadataForTarget(serviceIdentifierString: string, target: interfaces.Target): string;
6
- declare function getFunctionName(func: {
7
- name: string | null | undefined;
8
- }): string;
9
- declare function getSymbolDescription(symbol: symbol): string;
10
- export { getFunctionName, getServiceIdentifierAsString, listRegisteredBindingsForServiceIdentifier, listMetadataForTarget, circularDependencyToException, getSymbolDescription, };