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,13 +1,13 @@
1
- export declare const NAMED_TAG = "named";
2
- export declare const NAME_TAG = "name";
3
- export declare const UNMANAGED_TAG = "unmanaged";
4
- export declare const OPTIONAL_TAG = "optional";
5
- export declare const INJECT_TAG = "inject";
6
- export declare const MULTI_INJECT_TAG = "multi_inject";
7
- export declare const TAGGED = "inversify:tagged";
8
- export declare const TAGGED_PROP = "inversify:tagged_props";
9
- export declare const PARAM_TYPES = "inversify:paramtypes";
10
- export declare const DESIGN_PARAM_TYPES = "design:paramtypes";
11
- export declare const POST_CONSTRUCT = "post_construct";
12
- export declare const PRE_DESTROY = "pre_destroy";
13
- export declare const NON_CUSTOM_TAG_KEYS: string[];
1
+ export declare const NAMED_TAG: string;
2
+ export declare const NAME_TAG: string;
3
+ export declare const UNMANAGED_TAG: string;
4
+ export declare const OPTIONAL_TAG: string;
5
+ export declare const INJECT_TAG: string;
6
+ export declare const MULTI_INJECT_TAG: string;
7
+ export declare const TAGGED: string;
8
+ export declare const TAGGED_PROP: string;
9
+ export declare const PARAM_TYPES: string;
10
+ export declare const DESIGN_PARAM_TYPES: string;
11
+ export declare const POST_CONSTRUCT: string;
12
+ export declare const PRE_DESTROY: string;
13
+ export declare const NON_CUSTOM_TAG_KEYS: string[];
@@ -1,26 +1,26 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NON_CUSTOM_TAG_KEYS = exports.PRE_DESTROY = exports.POST_CONSTRUCT = exports.DESIGN_PARAM_TYPES = exports.PARAM_TYPES = exports.TAGGED_PROP = exports.TAGGED = exports.MULTI_INJECT_TAG = exports.INJECT_TAG = exports.OPTIONAL_TAG = exports.UNMANAGED_TAG = exports.NAME_TAG = exports.NAMED_TAG = void 0;
4
- exports.NAMED_TAG = 'named';
5
- exports.NAME_TAG = 'name';
6
- exports.UNMANAGED_TAG = 'unmanaged';
7
- exports.OPTIONAL_TAG = 'optional';
8
- exports.INJECT_TAG = 'inject';
9
- exports.MULTI_INJECT_TAG = 'multi_inject';
10
- exports.TAGGED = 'inversify:tagged';
11
- exports.TAGGED_PROP = 'inversify:tagged_props';
12
- exports.PARAM_TYPES = 'inversify:paramtypes';
13
- exports.DESIGN_PARAM_TYPES = 'design:paramtypes';
14
- exports.POST_CONSTRUCT = 'post_construct';
15
- exports.PRE_DESTROY = 'pre_destroy';
16
- function getNonCustomTagKeys() {
17
- return [
18
- exports.INJECT_TAG,
19
- exports.MULTI_INJECT_TAG,
20
- exports.NAME_TAG,
21
- exports.UNMANAGED_TAG,
22
- exports.NAMED_TAG,
23
- exports.OPTIONAL_TAG,
24
- ];
25
- }
26
- exports.NON_CUSTOM_TAG_KEYS = getNonCustomTagKeys();
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NON_CUSTOM_TAG_KEYS = exports.PRE_DESTROY = exports.POST_CONSTRUCT = exports.DESIGN_PARAM_TYPES = exports.PARAM_TYPES = exports.TAGGED_PROP = exports.TAGGED = exports.MULTI_INJECT_TAG = exports.INJECT_TAG = exports.OPTIONAL_TAG = exports.UNMANAGED_TAG = exports.NAME_TAG = exports.NAMED_TAG = void 0;
4
+ exports.NAMED_TAG = 'named';
5
+ exports.NAME_TAG = 'name';
6
+ exports.UNMANAGED_TAG = 'unmanaged';
7
+ exports.OPTIONAL_TAG = 'optional';
8
+ exports.INJECT_TAG = 'inject';
9
+ exports.MULTI_INJECT_TAG = 'multi_inject';
10
+ exports.TAGGED = 'inversify:tagged';
11
+ exports.TAGGED_PROP = 'inversify:tagged_props';
12
+ exports.PARAM_TYPES = 'inversify:paramtypes';
13
+ exports.DESIGN_PARAM_TYPES = 'design:paramtypes';
14
+ exports.POST_CONSTRUCT = 'post_construct';
15
+ exports.PRE_DESTROY = 'pre_destroy';
16
+ function getNonCustomTagKeys() {
17
+ return [
18
+ exports.INJECT_TAG,
19
+ exports.MULTI_INJECT_TAG,
20
+ exports.NAME_TAG,
21
+ exports.UNMANAGED_TAG,
22
+ exports.NAMED_TAG,
23
+ exports.OPTIONAL_TAG,
24
+ ];
25
+ }
26
+ exports.NON_CUSTOM_TAG_KEYS = getNonCustomTagKeys();
@@ -1,73 +1,73 @@
1
- import { interfaces } from '../interfaces/interfaces';
2
- declare class Container implements interfaces.Container {
3
- id: number;
4
- parent: interfaces.Container | null;
5
- readonly options: interfaces.ContainerOptions;
6
- private _middleware;
7
- private _bindingDictionary;
8
- private _activations;
9
- private _deactivations;
10
- private _snapshots;
11
- private _metadataReader;
12
- private _moduleActivationStore;
13
- static merge(container1: interfaces.Container, container2: interfaces.Container, ...containers: interfaces.Container[]): interfaces.Container;
14
- constructor(containerOptions?: interfaces.ContainerOptions);
15
- load(...modules: interfaces.ContainerModule[]): void;
16
- loadAsync(...modules: interfaces.AsyncContainerModule[]): Promise<void>;
17
- unload(...modules: interfaces.ContainerModuleBase[]): void;
18
- unloadAsync(...modules: interfaces.ContainerModuleBase[]): Promise<void>;
19
- bind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T>;
20
- rebind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T>;
21
- rebindAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<interfaces.BindingToSyntax<T>>;
22
- unbind(serviceIdentifier: interfaces.ServiceIdentifier): void;
23
- unbindAsync(serviceIdentifier: interfaces.ServiceIdentifier): Promise<void>;
24
- unbindAll(): void;
25
- unbindAllAsync(): Promise<void>;
26
- onActivation<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, onActivation: interfaces.BindingActivation<T>): void;
27
- onDeactivation<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, onDeactivation: interfaces.BindingDeactivation<T>): void;
28
- isBound(serviceIdentifier: interfaces.ServiceIdentifier<unknown>): boolean;
29
- isCurrentBound<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): boolean;
30
- isBoundNamed(serviceIdentifier: interfaces.ServiceIdentifier, named: string | number | symbol): boolean;
31
- isBoundTagged(serviceIdentifier: interfaces.ServiceIdentifier, key: string | number | symbol, value: unknown): boolean;
32
- snapshot(): void;
33
- restore(): void;
34
- createChild(containerOptions?: interfaces.ContainerOptions): Container;
35
- applyMiddleware(...middlewares: interfaces.Middleware[]): void;
36
- applyCustomMetadataReader(metadataReader: interfaces.MetadataReader): void;
37
- get<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T;
38
- getAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<T>;
39
- getTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T;
40
- getTaggedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): Promise<T>;
41
- getNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T;
42
- getNamedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): Promise<T>;
43
- getAll<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T[];
44
- getAllAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<T[]>;
45
- getAllTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T[];
46
- getAllTaggedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): Promise<T[]>;
47
- getAllNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T[];
48
- getAllNamedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): Promise<T[]>;
49
- resolve<T>(constructorFunction: interfaces.Newable<T>): T;
50
- private _preDestroy;
51
- private _removeModuleHandlers;
52
- private _removeModuleBindings;
53
- private _deactivate;
54
- private _handleDeactivationError;
55
- private _deactivateContainer;
56
- private _deactivateContainerAsync;
57
- private _getContainerModuleHelpersFactory;
58
- private _getAll;
59
- private _get;
60
- private _getButThrowIfAsync;
61
- private _getAllArgs;
62
- private _getNotAllArgs;
63
- private _planAndResolve;
64
- private _deactivateIfSingleton;
65
- private _deactivateSingletons;
66
- private _deactivateSingletonsAsync;
67
- private _propagateContainerDeactivationThenBindingAndPreDestroy;
68
- private _propagateContainerDeactivationThenBindingAndPreDestroyAsync;
69
- private _removeServiceFromDictionary;
70
- private _bindingDeactivationAndPreDestroy;
71
- private _bindingDeactivationAndPreDestroyAsync;
72
- }
73
- export { Container };
1
+ import { interfaces } from '../interfaces/interfaces';
2
+ declare class Container implements interfaces.Container {
3
+ id: number;
4
+ parent: interfaces.Container | null;
5
+ readonly options: interfaces.ContainerOptions;
6
+ private _middleware;
7
+ private _bindingDictionary;
8
+ private _activations;
9
+ private _deactivations;
10
+ private readonly _snapshots;
11
+ private _metadataReader;
12
+ private _moduleActivationStore;
13
+ constructor(containerOptions?: interfaces.ContainerOptions);
14
+ static merge(container1: interfaces.Container, container2: interfaces.Container, ...containers: interfaces.Container[]): interfaces.Container;
15
+ load(...modules: interfaces.ContainerModule[]): void;
16
+ loadAsync(...modules: interfaces.AsyncContainerModule[]): Promise<void>;
17
+ unload(...modules: interfaces.ContainerModuleBase[]): void;
18
+ unloadAsync(...modules: interfaces.ContainerModuleBase[]): Promise<void>;
19
+ bind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T>;
20
+ rebind<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): interfaces.BindingToSyntax<T>;
21
+ rebindAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<interfaces.BindingToSyntax<T>>;
22
+ unbind(serviceIdentifier: interfaces.ServiceIdentifier): void;
23
+ unbindAsync(serviceIdentifier: interfaces.ServiceIdentifier): Promise<void>;
24
+ unbindAll(): void;
25
+ unbindAllAsync(): Promise<void>;
26
+ onActivation<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, onActivation: interfaces.BindingActivation<T>): void;
27
+ onDeactivation<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, onDeactivation: interfaces.BindingDeactivation<T>): void;
28
+ isBound(serviceIdentifier: interfaces.ServiceIdentifier<unknown>): boolean;
29
+ isCurrentBound<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): boolean;
30
+ isBoundNamed(serviceIdentifier: interfaces.ServiceIdentifier, named: string | number | symbol): boolean;
31
+ isBoundTagged(serviceIdentifier: interfaces.ServiceIdentifier, key: string | number | symbol, value: unknown): boolean;
32
+ snapshot(): void;
33
+ restore(): void;
34
+ createChild(containerOptions?: interfaces.ContainerOptions): Container;
35
+ applyMiddleware(...middlewares: interfaces.Middleware[]): void;
36
+ applyCustomMetadataReader(metadataReader: interfaces.MetadataReader): void;
37
+ get<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T;
38
+ getAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<T>;
39
+ getTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T;
40
+ getTaggedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): Promise<T>;
41
+ getNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T;
42
+ getNamedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): Promise<T>;
43
+ getAll<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): T[];
44
+ getAllAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>): Promise<T[]>;
45
+ getAllTagged<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): T[];
46
+ getAllTaggedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, key: string | number | symbol, value: unknown): Promise<T[]>;
47
+ getAllNamed<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): T[];
48
+ getAllNamedAsync<T>(serviceIdentifier: interfaces.ServiceIdentifier<T>, named: string | number | symbol): Promise<T[]>;
49
+ resolve<T>(constructorFunction: interfaces.Newable<T>): T;
50
+ private _preDestroy;
51
+ private _removeModuleHandlers;
52
+ private _removeModuleBindings;
53
+ private _deactivate;
54
+ private _handleDeactivationError;
55
+ private _deactivateContainer;
56
+ private _deactivateContainerAsync;
57
+ private _getContainerModuleHelpersFactory;
58
+ private _getAll;
59
+ private _get;
60
+ private _getButThrowIfAsync;
61
+ private _getAllArgs;
62
+ private _getNotAllArgs;
63
+ private _planAndResolve;
64
+ private _deactivateIfSingleton;
65
+ private _deactivateSingletons;
66
+ private _deactivateSingletonsAsync;
67
+ private _propagateContainerDeactivationThenBindingAndPreDestroy;
68
+ private _propagateContainerDeactivationThenBindingAndPreDestroyAsync;
69
+ private _removeServiceFromDictionary;
70
+ private _bindingDeactivationAndPreDestroy;
71
+ private _bindingDeactivationAndPreDestroyAsync;
72
+ }
73
+ export { Container };