inversify 6.0.3 → 6.1.1

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 (150) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +14 -14
  3. package/amd/annotation/decorator_utils.js +3 -1
  4. package/amd/annotation/inject_base.js +1 -1
  5. package/amd/annotation/lazy_service_identifier.js +0 -11
  6. package/amd/bindings/binding.js +3 -2
  7. package/amd/bindings/binding_count.js +6 -5
  8. package/amd/constants/error_msgs.js +18 -18
  9. package/amd/constants/literal_types.js +3 -3
  10. package/amd/container/container.js +73 -34
  11. package/amd/container/lookup.js +15 -14
  12. package/amd/container/module_activation_store.js +8 -10
  13. package/amd/interfaces/interfaces.js +0 -5
  14. package/amd/inversify.js +3 -5
  15. package/amd/planning/metadata_reader.js +5 -3
  16. package/amd/planning/planner.js +31 -13
  17. package/amd/planning/queryable_string.js +5 -2
  18. package/amd/planning/reflection_utils.js +6 -112
  19. package/amd/planning/request.js +2 -4
  20. package/amd/planning/target.js +9 -3
  21. package/amd/resolution/instantiation.js +10 -5
  22. package/amd/resolution/resolver.js +19 -10
  23. package/amd/scope/scope.js +1 -1
  24. package/amd/syntax/binding_to_syntax.js +14 -7
  25. package/amd/syntax/binding_when_syntax.js +13 -8
  26. package/amd/syntax/constraint_helpers.js +4 -3
  27. package/amd/utils/async.js +3 -2
  28. package/amd/utils/binding_utils.js +8 -3
  29. package/amd/utils/clonable.js +4 -4
  30. package/amd/utils/exceptions.js +1 -1
  31. package/amd/utils/serialization.js +11 -8
  32. package/es/annotation/decorator_utils.js +3 -1
  33. package/es/annotation/inject_base.js +1 -1
  34. package/es/annotation/lazy_service_identifier.js +1 -10
  35. package/es/annotation/target_name.js +3 -3
  36. package/es/bindings/binding.js +3 -2
  37. package/es/bindings/binding_count.js +6 -5
  38. package/es/constants/error_msgs.js +17 -17
  39. package/es/constants/literal_types.js +3 -3
  40. package/es/container/container.js +74 -35
  41. package/es/container/lookup.js +15 -14
  42. package/es/container/module_activation_store.js +8 -10
  43. package/es/interfaces/interfaces.js +1 -5
  44. package/es/inversify.js +4 -6
  45. package/es/planning/metadata_reader.js +5 -3
  46. package/es/planning/planner.js +34 -16
  47. package/es/planning/queryable_string.js +5 -2
  48. package/es/planning/reflection_utils.js +6 -114
  49. package/es/planning/request.js +2 -4
  50. package/es/planning/target.js +9 -3
  51. package/es/resolution/instantiation.js +11 -6
  52. package/es/resolution/resolver.js +20 -11
  53. package/es/scope/scope.js +1 -1
  54. package/es/syntax/binding_to_syntax.js +18 -11
  55. package/es/syntax/binding_when_syntax.js +14 -9
  56. package/es/syntax/constraint_helpers.js +5 -4
  57. package/es/utils/async.js +3 -2
  58. package/es/utils/binding_utils.js +8 -3
  59. package/es/utils/clonable.js +4 -4
  60. package/es/utils/exceptions.js +1 -1
  61. package/es/utils/serialization.js +12 -9
  62. package/es6/annotation/decorator_utils.js +5 -3
  63. package/es6/annotation/inject_base.js +1 -1
  64. package/es6/annotation/lazy_service_identifier.js +0 -10
  65. package/es6/bindings/binding.js +3 -2
  66. package/es6/bindings/binding_count.js +6 -5
  67. package/es6/constants/error_msgs.js +5 -9
  68. package/es6/constants/literal_types.js +3 -3
  69. package/es6/container/container.js +59 -42
  70. package/es6/container/lookup.js +15 -14
  71. package/es6/container/module_activation_store.js +8 -10
  72. package/es6/interfaces/interfaces.js +0 -5
  73. package/es6/inversify.js +3 -7
  74. package/es6/planning/metadata_reader.js +5 -3
  75. package/es6/planning/planner.js +31 -13
  76. package/es6/planning/queryable_string.js +5 -2
  77. package/es6/planning/reflection_utils.js +4 -110
  78. package/es6/planning/request.js +2 -4
  79. package/es6/planning/target.js +3 -1
  80. package/es6/resolution/instantiation.js +9 -5
  81. package/es6/resolution/resolver.js +11 -8
  82. package/es6/scope/scope.js +1 -1
  83. package/es6/syntax/binding_to_syntax.js +5 -4
  84. package/es6/syntax/binding_when_syntax.js +13 -8
  85. package/es6/syntax/constraint_helpers.js +4 -3
  86. package/es6/utils/async.js +3 -2
  87. package/es6/utils/binding_utils.js +10 -3
  88. package/es6/utils/clonable.js +4 -4
  89. package/es6/utils/exceptions.js +1 -1
  90. package/es6/utils/serialization.js +11 -8
  91. package/lib/annotation/decorator_utils.d.ts +2 -2
  92. package/lib/annotation/decorator_utils.js +3 -1
  93. package/lib/annotation/inject.d.ts +4 -1
  94. package/lib/annotation/inject_base.d.ts +3 -2
  95. package/lib/annotation/inject_base.js +1 -1
  96. package/lib/annotation/lazy_service_identifier.d.ts +1 -5
  97. package/lib/annotation/lazy_service_identifier.js +0 -11
  98. package/lib/annotation/multi_inject.d.ts +4 -1
  99. package/lib/annotation/tagged.d.ts +1 -1
  100. package/lib/annotation/target_name.d.ts +1 -1
  101. package/lib/bindings/binding.js +3 -2
  102. package/lib/bindings/binding_count.d.ts +5 -5
  103. package/lib/bindings/binding_count.js +6 -5
  104. package/lib/constants/error_msgs.d.ts +18 -20
  105. package/lib/constants/error_msgs.js +18 -18
  106. package/lib/constants/literal_types.js +3 -3
  107. package/lib/constants/metadata_keys.d.ts +12 -12
  108. package/lib/container/container.d.ts +2 -2
  109. package/lib/container/container.js +73 -34
  110. package/lib/container/lookup.d.ts +2 -1
  111. package/lib/container/lookup.js +15 -14
  112. package/lib/container/module_activation_store.d.ts +1 -1
  113. package/lib/container/module_activation_store.js +8 -10
  114. package/lib/interfaces/interfaces.d.ts +14 -29
  115. package/lib/interfaces/interfaces.js +0 -5
  116. package/lib/inversify.d.ts +5 -6
  117. package/lib/inversify.js +3 -7
  118. package/lib/planning/metadata_reader.js +5 -3
  119. package/lib/planning/planner.js +31 -13
  120. package/lib/planning/queryable_string.d.ts +2 -3
  121. package/lib/planning/queryable_string.js +5 -2
  122. package/lib/planning/reflection_utils.js +6 -114
  123. package/lib/planning/request.d.ts +2 -2
  124. package/lib/planning/request.js +2 -4
  125. package/lib/planning/target.d.ts +1 -1
  126. package/lib/planning/target.js +9 -3
  127. package/lib/resolution/instantiation.js +10 -5
  128. package/lib/resolution/resolver.js +19 -10
  129. package/lib/scope/scope.js +1 -1
  130. package/lib/syntax/binding_in_syntax.d.ts +1 -1
  131. package/lib/syntax/binding_in_when_on_syntax.d.ts +7 -7
  132. package/lib/syntax/binding_on_syntax.d.ts +1 -1
  133. package/lib/syntax/binding_to_syntax.d.ts +4 -4
  134. package/lib/syntax/binding_to_syntax.js +14 -7
  135. package/lib/syntax/binding_when_on_syntax.d.ts +6 -6
  136. package/lib/syntax/binding_when_syntax.d.ts +4 -4
  137. package/lib/syntax/binding_when_syntax.js +13 -8
  138. package/lib/syntax/constraint_helpers.d.ts +2 -2
  139. package/lib/syntax/constraint_helpers.js +4 -3
  140. package/lib/tsconfig.tsbuildinfo +1 -1
  141. package/lib/utils/async.js +3 -2
  142. package/lib/utils/binding_utils.js +8 -3
  143. package/lib/utils/clonable.js +4 -4
  144. package/lib/utils/exceptions.js +1 -1
  145. package/lib/utils/serialization.d.ts +3 -3
  146. package/lib/utils/serialization.js +11 -8
  147. package/package.json +19 -5
  148. package/.nyc_output/c29b2307-4e95-47d0-b220-9efcfa7ee49f.json +0 -1
  149. package/.nyc_output/processinfo/c29b2307-4e95-47d0-b220-9efcfa7ee49f.json +0 -1
  150. package/.nyc_output/processinfo/index.json +0 -1
@@ -26,6 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.plan = plan;
27
27
  exports.createMockRequest = createMockRequest;
28
28
  exports.getBindingDictionary = getBindingDictionary;
29
+ var core_1 = require("@inversifyjs/core");
29
30
  var binding_count_1 = require("../bindings/binding_count");
30
31
  var ERROR_MSGS = __importStar(require("../constants/error_msgs"));
31
32
  var literal_types_1 = require("../constants/literal_types");
@@ -37,27 +38,26 @@ var metadata_1 = require("./metadata");
37
38
  var plan_1 = require("./plan");
38
39
  var reflection_utils_1 = require("./reflection_utils");
39
40
  var request_1 = require("./request");
40
- var target_1 = require("./target");
41
41
  function getBindingDictionary(cntnr) {
42
42
  return cntnr._bindingDictionary;
43
43
  }
44
44
  function _createTarget(isMultiInject, targetType, serviceIdentifier, name, key, value) {
45
- var metadataKey = isMultiInject ? METADATA_KEY.MULTI_INJECT_TAG : METADATA_KEY.INJECT_TAG;
46
- var injectMetadata = new metadata_1.Metadata(metadataKey, serviceIdentifier);
47
- var target = new target_1.Target(targetType, name, serviceIdentifier, injectMetadata);
48
- if (key !== undefined) {
49
- var tagMetadata = new metadata_1.Metadata(key, value);
50
- target.metadata.push(tagMetadata);
45
+ var metadataList = _getTargetMetadata(isMultiInject, serviceIdentifier, key, value);
46
+ var classElementMetadata = (0, core_1.getClassElementMetadataFromLegacyMetadata)(metadataList);
47
+ if (classElementMetadata.kind === core_1.ClassElementMetadataKind.unmanaged) {
48
+ throw new Error('Unexpected metadata when creating target');
51
49
  }
50
+ var target = new core_1.LegacyTargetImpl(name, classElementMetadata, targetType);
52
51
  return target;
53
52
  }
54
53
  function _getActiveBindings(metadataReader, avoidConstraints, context, parentRequest, target) {
55
54
  var bindings = getBindings(context.container, target.serviceIdentifier);
56
55
  var activeBindings = [];
57
56
  if (bindings.length === binding_count_1.BindingCount.NoBindingsAvailable &&
58
- context.container.options.autoBindInjectable &&
57
+ context.container.options.autoBindInjectable === true &&
59
58
  typeof target.serviceIdentifier === 'function' &&
60
- metadataReader.getConstructorMetadata(target.serviceIdentifier).compilerGeneratedMetadata) {
59
+ metadataReader.getConstructorMetadata(target.serviceIdentifier)
60
+ .compilerGeneratedMetadata) {
61
61
  context.container.bind(target.serviceIdentifier).toSelf();
62
62
  bindings = getBindings(context.container, target.serviceIdentifier);
63
63
  }
@@ -73,6 +73,18 @@ function _getActiveBindings(metadataReader, avoidConstraints, context, parentReq
73
73
  _validateActiveBindingCount(target.serviceIdentifier, activeBindings, target, context.container);
74
74
  return activeBindings;
75
75
  }
76
+ function _getTargetMetadata(isMultiInject, serviceIdentifier, key, value) {
77
+ var metadataKey = isMultiInject
78
+ ? METADATA_KEY.MULTI_INJECT_TAG
79
+ : METADATA_KEY.INJECT_TAG;
80
+ var metadataList = [
81
+ new metadata_1.Metadata(metadataKey, serviceIdentifier),
82
+ ];
83
+ if (key !== undefined) {
84
+ metadataList.push(new metadata_1.Metadata(key, value));
85
+ }
86
+ return metadataList;
87
+ }
76
88
  function _validateActiveBindingCount(serviceIdentifier, bindings, target, container) {
77
89
  switch (bindings.length) {
78
90
  case binding_count_1.BindingCount.NoBindingsAvailable:
@@ -120,14 +132,15 @@ function _createSubRequests(metadataReader, avoidConstraints, serviceIdentifier,
120
132
  subChildRequest = childRequest.addChildRequest(binding.serviceIdentifier, binding, target);
121
133
  }
122
134
  else {
123
- if (binding.cache) {
135
+ if (binding.cache !== null) {
124
136
  return;
125
137
  }
126
138
  subChildRequest = childRequest;
127
139
  }
128
- if (binding.type === literal_types_1.BindingTypeEnum.Instance && binding.implementationType !== null) {
140
+ if (binding.type === literal_types_1.BindingTypeEnum.Instance &&
141
+ binding.implementationType !== null) {
129
142
  var dependencies = (0, reflection_utils_1.getDependencies)(metadataReader, binding.implementationType);
130
- if (!context.container.options.skipBaseClassChecks) {
143
+ if (context.container.options.skipBaseClassChecks !== true) {
131
144
  var baseClassDependencyCount = (0, reflection_utils_1.getBaseClassDependencyCount)(metadataReader, binding.implementationType);
132
145
  if (dependencies.length < baseClassDependencyCount) {
133
146
  var error = ERROR_MSGS.ARGUMENTS_LENGTH_MISMATCH((0, reflection_utils_1.getFunctionName)(binding.implementationType));
@@ -167,7 +180,12 @@ function plan(metadataReader, container, isMultiInject, targetType, serviceIdent
167
180
  }
168
181
  }
169
182
  function createMockRequest(container, serviceIdentifier, key, value) {
170
- var target = new target_1.Target(literal_types_1.TargetTypeEnum.Variable, '', serviceIdentifier, new metadata_1.Metadata(key, value));
183
+ var metadataList = _getTargetMetadata(false, serviceIdentifier, key, value);
184
+ var classElementMetadata = (0, core_1.getClassElementMetadataFromLegacyMetadata)(metadataList);
185
+ if (classElementMetadata.kind === core_1.ClassElementMetadataKind.unmanaged) {
186
+ throw new Error('Unexpected metadata when creating target');
187
+ }
188
+ var target = new core_1.LegacyTargetImpl('', classElementMetadata, 'Variable');
171
189
  var context = new context_1.Context(container);
172
190
  var request = new request_1.Request(serviceIdentifier, context, null, [], target);
173
191
  return request;
@@ -1,6 +1,6 @@
1
1
  import { interfaces } from '../interfaces/interfaces';
2
- declare class QueryableString implements interfaces.QueryableString {
3
- private str;
2
+ export declare class QueryableString implements interfaces.QueryableString {
3
+ private readonly str;
4
4
  constructor(str: string);
5
5
  startsWith(searchString: string): boolean;
6
6
  endsWith(searchString: string): boolean;
@@ -8,4 +8,3 @@ declare class QueryableString implements interfaces.QueryableString {
8
8
  equals(compareString: string): boolean;
9
9
  value(): string;
10
10
  }
11
- export { QueryableString };
@@ -10,12 +10,15 @@ var QueryableString = (function () {
10
10
  };
11
11
  QueryableString.prototype.endsWith = function (searchString) {
12
12
  var reverseString = '';
13
- var reverseSearchString = searchString.split('').reverse().join('');
13
+ var reverseSearchString = searchString
14
+ .split('')
15
+ .reverse()
16
+ .join('');
14
17
  reverseString = this.str.split('').reverse().join('');
15
18
  return this.startsWith.call({ str: reverseString }, reverseSearchString);
16
19
  };
17
20
  QueryableString.prototype.contains = function (searchString) {
18
- return (this.str.indexOf(searchString) !== -1);
21
+ return this.str.indexOf(searchString) !== -1;
19
22
  };
20
23
  QueryableString.prototype.equals = function (compareString) {
21
24
  return this.str === compareString;
@@ -22,120 +22,24 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
26
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
27
- if (ar || !(i in from)) {
28
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
29
- ar[i] = from[i];
30
- }
31
- }
32
- return to.concat(ar || Array.prototype.slice.call(from));
33
- };
34
25
  Object.defineProperty(exports, "__esModule", { value: true });
35
26
  exports.getFunctionName = void 0;
36
27
  exports.getDependencies = getDependencies;
37
28
  exports.getBaseClassDependencyCount = getBaseClassDependencyCount;
38
- var lazy_service_identifier_1 = require("../annotation/lazy_service_identifier");
39
- var ERROR_MSGS = __importStar(require("../constants/error_msgs"));
40
- var literal_types_1 = require("../constants/literal_types");
29
+ var core_1 = require("@inversifyjs/core");
41
30
  var METADATA_KEY = __importStar(require("../constants/metadata_keys"));
42
31
  var serialization_1 = require("../utils/serialization");
43
32
  Object.defineProperty(exports, "getFunctionName", { enumerable: true, get: function () { return serialization_1.getFunctionName; } });
44
- var target_1 = require("./target");
45
33
  function getDependencies(metadataReader, func) {
46
- var constructorName = (0, serialization_1.getFunctionName)(func);
47
- return getTargets(metadataReader, constructorName, func, false);
48
- }
49
- function getTargets(metadataReader, constructorName, func, isBaseClass) {
50
- var metadata = metadataReader.getConstructorMetadata(func);
51
- var serviceIdentifiers = metadata.compilerGeneratedMetadata;
52
- if (serviceIdentifiers === undefined) {
53
- var msg = "".concat(ERROR_MSGS.MISSING_INJECTABLE_ANNOTATION, " ").concat(constructorName, ".");
54
- throw new Error(msg);
55
- }
56
- var constructorArgsMetadata = metadata.userGeneratedMetadata;
57
- var keys = Object.keys(constructorArgsMetadata);
58
- var hasUserDeclaredUnknownInjections = (func.length === 0 && keys.length > 0);
59
- var hasOptionalParameters = keys.length > func.length;
60
- var iterations = (hasUserDeclaredUnknownInjections || hasOptionalParameters) ? keys.length : func.length;
61
- var constructorTargets = getConstructorArgsAsTargets(isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata, iterations);
62
- var propertyTargets = getClassPropsAsTargets(metadataReader, func, constructorName);
63
- var targets = __spreadArray(__spreadArray([], constructorTargets, true), propertyTargets, true);
64
- return targets;
65
- }
66
- function getConstructorArgsAsTarget(index, isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata) {
67
- var targetMetadata = constructorArgsMetadata[index.toString()] || [];
68
- var metadata = formatTargetMetadata(targetMetadata);
69
- var isManaged = metadata.unmanaged !== true;
70
- var serviceIdentifier = serviceIdentifiers[index];
71
- var injectIdentifier = metadata.inject || metadata.multiInject;
72
- serviceIdentifier = (injectIdentifier ? injectIdentifier : serviceIdentifier);
73
- if (serviceIdentifier instanceof lazy_service_identifier_1.LazyServiceIdentifier) {
74
- serviceIdentifier = serviceIdentifier.unwrap();
75
- }
76
- if (isManaged) {
77
- var isObject = serviceIdentifier === Object;
78
- var isFunction = serviceIdentifier === Function;
79
- var isUndefined = serviceIdentifier === undefined;
80
- var isUnknownType = isObject || isFunction || isUndefined;
81
- if (!isBaseClass && isUnknownType) {
82
- var msg = "".concat(ERROR_MSGS.MISSING_INJECT_ANNOTATION, " argument ").concat(index, " in class ").concat(constructorName, ".");
83
- throw new Error(msg);
84
- }
85
- var target = new target_1.Target(literal_types_1.TargetTypeEnum.ConstructorArgument, metadata.targetName, serviceIdentifier);
86
- target.metadata = targetMetadata;
87
- return target;
88
- }
89
- return null;
90
- }
91
- function getConstructorArgsAsTargets(isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata, iterations) {
92
- var targets = [];
93
- for (var i = 0; i < iterations; i++) {
94
- var index = i;
95
- var target = getConstructorArgsAsTarget(index, isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata);
96
- if (target !== null) {
97
- targets.push(target);
98
- }
99
- }
100
- return targets;
101
- }
102
- function _getServiceIdentifierForProperty(inject, multiInject, propertyName, className) {
103
- var serviceIdentifier = (inject || multiInject);
104
- if (serviceIdentifier === undefined) {
105
- var msg = "".concat(ERROR_MSGS.MISSING_INJECTABLE_ANNOTATION, " for property ").concat(String(propertyName), " in class ").concat(className, ".");
106
- throw new Error(msg);
107
- }
108
- return serviceIdentifier;
109
- }
110
- function getClassPropsAsTargets(metadataReader, constructorFunc, constructorName) {
111
- var classPropsMetadata = metadataReader.getPropertiesMetadata(constructorFunc);
112
- var targets = [];
113
- var symbolKeys = Object.getOwnPropertySymbols(classPropsMetadata);
114
- var stringKeys = Object.keys(classPropsMetadata);
115
- var keys = stringKeys.concat(symbolKeys);
116
- for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
117
- var key = keys_1[_i];
118
- var targetMetadata = classPropsMetadata[key];
119
- var metadata = formatTargetMetadata(targetMetadata);
120
- var identifier = metadata.targetName || key;
121
- var serviceIdentifier = _getServiceIdentifierForProperty(metadata.inject, metadata.multiInject, key, constructorName);
122
- var target = new target_1.Target(literal_types_1.TargetTypeEnum.ClassProperty, identifier, serviceIdentifier);
123
- target.metadata = targetMetadata;
124
- targets.push(target);
125
- }
126
- var baseConstructor = Object.getPrototypeOf(constructorFunc.prototype).constructor;
127
- if (baseConstructor !== Object) {
128
- var baseTargets = getClassPropsAsTargets(metadataReader, baseConstructor, constructorName);
129
- targets = __spreadArray(__spreadArray([], targets, true), baseTargets, true);
130
- }
131
- return targets;
34
+ return (0, core_1.getTargets)(metadataReader)(func);
132
35
  }
133
36
  function getBaseClassDependencyCount(metadataReader, func) {
134
37
  var baseConstructor = Object.getPrototypeOf(func.prototype).constructor;
135
38
  if (baseConstructor !== Object) {
136
- var baseConstructorName = (0, serialization_1.getFunctionName)(baseConstructor);
137
- var targets = getTargets(metadataReader, baseConstructorName, baseConstructor, true);
138
- var metadata = targets.map(function (t) { return t.metadata.filter(function (m) { return m.key === METADATA_KEY.UNMANAGED_TAG; }); });
39
+ var targets = (0, core_1.getTargets)(metadataReader)(baseConstructor);
40
+ var metadata = targets.map(function (t) {
41
+ return t.metadata.filter(function (m) { return m.key === METADATA_KEY.UNMANAGED_TAG; });
42
+ });
139
43
  var unmanagedCount = [].concat.apply([], metadata).length;
140
44
  var dependencyCount = targets.length - unmanagedCount;
141
45
  if (dependencyCount > 0) {
@@ -149,15 +53,3 @@ function getBaseClassDependencyCount(metadataReader, func) {
149
53
  return 0;
150
54
  }
151
55
  }
152
- function formatTargetMetadata(targetMetadata) {
153
- var targetMetadataMap = {};
154
- targetMetadata.forEach(function (m) {
155
- targetMetadataMap[m.key.toString()] = m.value;
156
- });
157
- return {
158
- inject: targetMetadataMap[METADATA_KEY.INJECT_TAG],
159
- multiInject: targetMetadataMap[METADATA_KEY.MULTI_INJECT_TAG],
160
- targetName: targetMetadataMap[METADATA_KEY.NAME_TAG],
161
- unmanaged: targetMetadataMap[METADATA_KEY.UNMANAGED_TAG]
162
- };
163
- }
@@ -8,7 +8,7 @@ declare class Request implements interfaces.Request {
8
8
  childRequests: interfaces.Request[];
9
9
  target: interfaces.Target;
10
10
  requestScope: interfaces.RequestScope | null;
11
- constructor(serviceIdentifier: interfaces.ServiceIdentifier, parentContext: interfaces.Context, parentRequest: interfaces.Request | null, bindings: (interfaces.Binding<any> | interfaces.Binding<any>[]), target: interfaces.Target);
12
- addChildRequest(serviceIdentifier: interfaces.ServiceIdentifier, bindings: (interfaces.Binding<unknown> | interfaces.Binding<unknown>[]), target: interfaces.Target): interfaces.Request;
11
+ constructor(serviceIdentifier: interfaces.ServiceIdentifier, parentContext: interfaces.Context, parentRequest: interfaces.Request | null, bindings: interfaces.Binding<any> | interfaces.Binding<any>[], target: interfaces.Target);
12
+ addChildRequest(serviceIdentifier: interfaces.ServiceIdentifier, bindings: interfaces.Binding<unknown> | interfaces.Binding<unknown>[], target: interfaces.Target): interfaces.Request;
13
13
  }
14
14
  export { Request };
@@ -10,10 +10,8 @@ var Request = (function () {
10
10
  this.parentRequest = parentRequest;
11
11
  this.target = target;
12
12
  this.childRequests = [];
13
- this.bindings = (Array.isArray(bindings) ? bindings : [bindings]);
14
- this.requestScope = parentRequest === null
15
- ? new Map()
16
- : null;
13
+ this.bindings = Array.isArray(bindings) ? bindings : [bindings];
14
+ this.requestScope = parentRequest === null ? new Map() : null;
17
15
  }
18
16
  Request.prototype.addChildRequest = function (serviceIdentifier, bindings, target) {
19
17
  var child = new Request(serviceIdentifier, this.parentContext, this, bindings, target);
@@ -8,7 +8,7 @@ declare class Target implements interfaces.Target {
8
8
  identifier: string | symbol;
9
9
  key: string | symbol;
10
10
  metadata: Metadata[];
11
- constructor(type: interfaces.TargetType, identifier: string | symbol, serviceIdentifier: interfaces.ServiceIdentifier, namedOrTagged?: (string | Metadata));
11
+ constructor(type: interfaces.TargetType, identifier: string | symbol, serviceIdentifier: interfaces.ServiceIdentifier, namedOrTagged?: string | Metadata);
12
12
  hasTag(key: string): boolean;
13
13
  isArray(): boolean;
14
14
  matchesArray(name: interfaces.ServiceIdentifier<unknown>): boolean;
@@ -34,7 +34,9 @@ var Target = (function () {
34
34
  this.id = (0, id_1.id)();
35
35
  this.type = type;
36
36
  this.serviceIdentifier = serviceIdentifier;
37
- var queryableName = typeof identifier === 'symbol' ? (0, serialization_1.getSymbolDescription)(identifier) : identifier;
37
+ var queryableName = typeof identifier === 'symbol'
38
+ ? (0, serialization_1.getSymbolDescription)(identifier)
39
+ : identifier;
38
40
  this.name = new queryable_string_1.QueryableString(queryableName || '');
39
41
  this.identifier = identifier;
40
42
  this.metadata = new Array();
@@ -68,7 +70,9 @@ var Target = (function () {
68
70
  return this.hasTag(METADATA_KEY.NAMED_TAG);
69
71
  };
70
72
  Target.prototype.isTagged = function () {
71
- return this.metadata.some(function (metadata) { return METADATA_KEY.NON_CUSTOM_TAG_KEYS.every(function (key) { return metadata.key !== key; }); });
73
+ return this.metadata.some(function (metadata) {
74
+ return METADATA_KEY.NON_CUSTOM_TAG_KEYS.every(function (key) { return metadata.key !== key; });
75
+ });
72
76
  };
73
77
  Target.prototype.isOptional = function () {
74
78
  return this.matchesTag(METADATA_KEY.OPTIONAL_TAG)(true);
@@ -81,7 +85,9 @@ var Target = (function () {
81
85
  };
82
86
  Target.prototype.getCustomTags = function () {
83
87
  if (this.isTagged()) {
84
- return this.metadata.filter(function (metadata) { return METADATA_KEY.NON_CUSTOM_TAG_KEYS.every(function (key) { return metadata.key !== key; }); });
88
+ return this.metadata.filter(function (metadata) {
89
+ return METADATA_KEY.NON_CUSTOM_TAG_KEYS.every(function (key) { return metadata.key !== key; });
90
+ });
85
91
  }
86
92
  else {
87
93
  return null;
@@ -99,7 +99,12 @@ function _resolveRequests(childRequests, resolveRequest) {
99
99
  resolvedRequests.isAsync = (0, async_1.isPromiseOrContainsPromise)(injection);
100
100
  }
101
101
  return resolvedRequests;
102
- }, { constructorInjections: [], propertyInjections: [], propertyRequests: [], isAsync: false });
102
+ }, {
103
+ constructorInjections: [],
104
+ isAsync: false,
105
+ propertyInjections: [],
106
+ propertyRequests: [],
107
+ });
103
108
  }
104
109
  function _createInstance(constr, childRequests, resolveRequest) {
105
110
  var result;
@@ -193,9 +198,7 @@ function _validateInstanceResolution(binding, constr) {
193
198
  }
194
199
  }
195
200
  function _throwIfHandlingDeactivation(binding, constr) {
196
- var scopeErrorMessage = "Class cannot be instantiated in ".concat(binding.scope === literal_types_1.BindingScopeEnum.Request ?
197
- 'request' :
198
- 'transient', " scope.");
201
+ var scopeErrorMessage = "Class cannot be instantiated in ".concat(binding.scope === literal_types_1.BindingScopeEnum.Request ? 'request' : 'transient', " scope.");
199
202
  if (typeof binding.onDeactivation === 'function') {
200
203
  throw new Error((0, error_msgs_1.ON_DEACTIVATION_ERROR)(constr.name, scopeErrorMessage));
201
204
  }
@@ -207,7 +210,9 @@ function resolveInstance(binding, constr, childRequests, resolveRequest) {
207
210
  _validateInstanceResolution(binding, constr);
208
211
  var result = _createInstance(constr, childRequests, resolveRequest);
209
212
  if ((0, async_1.isPromise)(result)) {
210
- return result.then(function (resolvedResult) { return _getInstanceAfterPostConstruct(constr, resolvedResult); });
213
+ return result.then(function (resolvedResult) {
214
+ return _getInstanceAfterPostConstruct(constr, resolvedResult);
215
+ });
211
216
  }
212
217
  else {
213
218
  return _getInstanceAfterPostConstruct(constr, result);
@@ -80,8 +80,8 @@ var _resolveRequest = function (requestScope) {
80
80
  !request.parentRequest.target.matchesArray(request.target.serviceIdentifier);
81
81
  if (targetIsAnArray && targetParentIsNotAnArray) {
82
82
  return childRequests.map(function (childRequest) {
83
- var _f = _resolveRequest(requestScope);
84
- return _f(childRequest);
83
+ var resolveRequest = _resolveRequest(requestScope);
84
+ return resolveRequest(childRequest);
85
85
  });
86
86
  }
87
87
  else {
@@ -95,7 +95,11 @@ var _resolveRequest = function (requestScope) {
95
95
  };
96
96
  var _resolveFactoryFromBinding = function (binding, context) {
97
97
  var factoryDetails = (0, binding_utils_1.getFactoryDetails)(binding);
98
- return (0, exceptions_1.tryAndThrowErrorIfStackOverflow)(function () { return factoryDetails.factory.bind(binding)(context); }, function () { return new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY_IN_FACTORY(factoryDetails.factoryType, context.currentRequest.serviceIdentifier.toString())); });
98
+ return (0, exceptions_1.tryAndThrowErrorIfStackOverflow)(function () {
99
+ return factoryDetails.factory.bind(binding)(context);
100
+ }, function () {
101
+ return new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY_IN_FACTORY(factoryDetails.factoryType, context.currentRequest.serviceIdentifier.toString()));
102
+ });
99
103
  };
100
104
  var _getResolvedFromBinding = function (requestScope, request, binding) {
101
105
  var result;
@@ -130,7 +134,9 @@ var _resolveBinding = function (requestScope, request, binding) {
130
134
  return _resolveInScope(requestScope, binding, function () {
131
135
  var result = _getResolvedFromBinding(requestScope, request, binding);
132
136
  if ((0, async_1.isPromise)(result)) {
133
- result = result.then(function (resolved) { return _onActivation(request, binding, resolved); });
137
+ result = result.then(function (resolved) {
138
+ return _onActivation(request, binding, resolved);
139
+ });
134
140
  }
135
141
  else {
136
142
  result = _onActivation(request, binding, result);
@@ -155,7 +161,8 @@ function _onActivation(request, binding, resolved) {
155
161
  result = _activateContainer(activationsIterator, context_1, result);
156
162
  }
157
163
  containersIteratorResult = containersIterator.next();
158
- } while (containersIteratorResult.done !== true && !(0, planner_1.getBindingDictionary)(container).hasKey(request.serviceIdentifier));
164
+ } while (containersIteratorResult.done !== true &&
165
+ !(0, planner_1.getBindingDictionary)(container).hasKey(request.serviceIdentifier));
159
166
  return result;
160
167
  }
161
168
  var _bindingActivation = function (context, binding, previousResult) {
@@ -170,7 +177,7 @@ var _bindingActivation = function (context, binding, previousResult) {
170
177
  };
171
178
  var _activateContainer = function (activationsIterator, context, result) {
172
179
  var activation = activationsIterator.next();
173
- while (!activation.done) {
180
+ while (activation.done !== true) {
174
181
  result = activation.value(context, result);
175
182
  if ((0, async_1.isPromise)(result)) {
176
183
  return _activateContainerAsync(activationsIterator, context, result);
@@ -189,7 +196,7 @@ var _activateContainerAsync = function (activationsIterator, context, resultProm
189
196
  activation = activationsIterator.next();
190
197
  _a.label = 2;
191
198
  case 2:
192
- if (!!activation.done) return [3, 4];
199
+ if (!(activation.done !== true)) return [3, 4];
193
200
  return [4, activation.value(context, result)];
194
201
  case 3:
195
202
  result = _a.sent();
@@ -201,7 +208,9 @@ var _activateContainerAsync = function (activationsIterator, context, resultProm
201
208
  }); };
202
209
  var _getContainerActivationsForService = function (container, serviceIdentifier) {
203
210
  var activations = container._activations;
204
- return activations.hasKey(serviceIdentifier) ? activations.get(serviceIdentifier).values() : [].values();
211
+ return activations.hasKey(serviceIdentifier)
212
+ ? activations.get(serviceIdentifier).values()
213
+ : [].values();
205
214
  };
206
215
  var _getContainersIterator = function (container) {
207
216
  var containersStack = [container];
@@ -225,6 +234,6 @@ var _getContainersIterator = function (container) {
225
234
  return containersIterator;
226
235
  };
227
236
  function resolve(context) {
228
- var _f = _resolveRequest(context.plan.rootRequest.requestScope);
229
- return _f(context.plan.rootRequest);
237
+ var resolveRequestFunction = _resolveRequest(context.plan.rootRequest.requestScope);
238
+ return resolveRequestFunction(context.plan.rootRequest);
230
239
  }
@@ -40,7 +40,7 @@ exports.saveToScope = exports.tryGetFromScope = void 0;
40
40
  var literal_types_1 = require("../constants/literal_types");
41
41
  var async_1 = require("../utils/async");
42
42
  var tryGetFromScope = function (requestScope, binding) {
43
- if ((binding.scope === literal_types_1.BindingScopeEnum.Singleton) && binding.activated) {
43
+ if (binding.scope === literal_types_1.BindingScopeEnum.Singleton && binding.activated) {
44
44
  return binding.cache;
45
45
  }
46
46
  if (binding.scope === literal_types_1.BindingScopeEnum.Request &&
@@ -1,6 +1,6 @@
1
1
  import { interfaces } from '../interfaces/interfaces';
2
2
  declare class BindingInSyntax<T> implements interfaces.BindingInSyntax<T> {
3
- private _binding;
3
+ private readonly _binding;
4
4
  constructor(binding: interfaces.Binding<T>);
5
5
  inRequestScope(): interfaces.BindingWhenOnSyntax<T>;
6
6
  inSingletonScope(): interfaces.BindingWhenOnSyntax<T>;
@@ -1,9 +1,9 @@
1
1
  import { interfaces } from '../interfaces/interfaces';
2
2
  declare class BindingInWhenOnSyntax<T> implements interfaces.BindingInSyntax<T>, interfaces.BindingWhenSyntax<T>, interfaces.BindingOnSyntax<T> {
3
- private _bindingInSyntax;
4
- private _bindingWhenSyntax;
5
- private _bindingOnSyntax;
6
- private _binding;
3
+ private readonly _bindingInSyntax;
4
+ private readonly _bindingWhenSyntax;
5
+ private readonly _bindingOnSyntax;
6
+ private readonly _binding;
7
7
  constructor(binding: interfaces.Binding<T>);
8
8
  inRequestScope(): interfaces.BindingWhenOnSyntax<T>;
9
9
  inSingletonScope(): interfaces.BindingWhenOnSyntax<T>;
@@ -12,11 +12,11 @@ declare class BindingInWhenOnSyntax<T> implements interfaces.BindingInSyntax<T>,
12
12
  whenTargetNamed(name: string): interfaces.BindingOnSyntax<T>;
13
13
  whenTargetIsDefault(): interfaces.BindingOnSyntax<T>;
14
14
  whenTargetTagged(tag: string, value: unknown): interfaces.BindingOnSyntax<T>;
15
- whenInjectedInto(parent: (NewableFunction | string)): interfaces.BindingOnSyntax<T>;
15
+ whenInjectedInto(parent: NewableFunction | string): interfaces.BindingOnSyntax<T>;
16
16
  whenParentNamed(name: string): interfaces.BindingOnSyntax<T>;
17
17
  whenParentTagged(tag: string, value: unknown): interfaces.BindingOnSyntax<T>;
18
- whenAnyAncestorIs(ancestor: (NewableFunction | string)): interfaces.BindingOnSyntax<T>;
19
- whenNoAncestorIs(ancestor: (NewableFunction | string)): interfaces.BindingOnSyntax<T>;
18
+ whenAnyAncestorIs(ancestor: NewableFunction | string): interfaces.BindingOnSyntax<T>;
19
+ whenNoAncestorIs(ancestor: NewableFunction | string): interfaces.BindingOnSyntax<T>;
20
20
  whenAnyAncestorNamed(name: string): interfaces.BindingOnSyntax<T>;
21
21
  whenAnyAncestorTagged(tag: string, value: unknown): interfaces.BindingOnSyntax<T>;
22
22
  whenNoAncestorNamed(name: string): interfaces.BindingOnSyntax<T>;
@@ -1,6 +1,6 @@
1
1
  import { interfaces } from '../interfaces/interfaces';
2
2
  declare class BindingOnSyntax<T> implements interfaces.BindingOnSyntax<T> {
3
- private _binding;
3
+ private readonly _binding;
4
4
  constructor(binding: interfaces.Binding<T>);
5
5
  onActivation(handler: interfaces.BindingActivation<T>): interfaces.BindingWhenSyntax<T>;
6
6
  onDeactivation(handler: interfaces.BindingDeactivation<T>): interfaces.BindingWhenSyntax<T>;
@@ -1,7 +1,7 @@
1
- import { interfaces } from "../interfaces/interfaces";
2
- import { BindingWhenOnSyntax } from "./binding_when_on_syntax";
1
+ import { interfaces } from '../interfaces/interfaces';
2
+ import { BindingWhenOnSyntax } from './binding_when_on_syntax';
3
3
  declare class BindingToSyntax<T> implements interfaces.BindingToSyntax<T> {
4
- private _binding;
4
+ private readonly _binding;
5
5
  constructor(binding: interfaces.Binding<T>);
6
6
  to(constructor: interfaces.Newable<T>): interfaces.BindingInWhenOnSyntax<T>;
7
7
  toSelf(): interfaces.BindingInWhenOnSyntax<T>;
@@ -13,6 +13,6 @@ declare class BindingToSyntax<T> implements interfaces.BindingToSyntax<T> {
13
13
  toAutoFactory<T2>(serviceIdentifier: interfaces.ServiceIdentifier<T2>): interfaces.BindingWhenOnSyntax<T>;
14
14
  toAutoNamedFactory<T2>(serviceIdentifier: interfaces.ServiceIdentifier<T2>): BindingWhenOnSyntax<T>;
15
15
  toProvider<T2>(provider: interfaces.ProviderCreator<T2>): interfaces.BindingWhenOnSyntax<T>;
16
- toService(service: string | symbol | interfaces.Newable<T> | interfaces.Abstract<T>): void;
16
+ toService(service: interfaces.ServiceIdentifier<T>): void;
17
17
  }
18
18
  export { BindingToSyntax };
@@ -38,10 +38,11 @@ var BindingToSyntax = (function () {
38
38
  return new binding_in_when_on_syntax_1.BindingInWhenOnSyntax(this._binding);
39
39
  };
40
40
  BindingToSyntax.prototype.toSelf = function () {
41
- if (typeof this._binding.serviceIdentifier !== "function") {
42
- throw new Error("".concat(ERROR_MSGS.INVALID_TO_SELF_VALUE));
41
+ if (typeof this._binding.serviceIdentifier !== 'function') {
42
+ throw new Error(ERROR_MSGS.INVALID_TO_SELF_VALUE);
43
43
  }
44
- var self = this._binding.serviceIdentifier;
44
+ var self = this._binding
45
+ .serviceIdentifier;
45
46
  return this.to(self);
46
47
  };
47
48
  BindingToSyntax.prototype.toConstantValue = function (value) {
@@ -72,7 +73,7 @@ var BindingToSyntax = (function () {
72
73
  return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
73
74
  };
74
75
  BindingToSyntax.prototype.toFunction = function (func) {
75
- if (typeof func !== "function") {
76
+ if (typeof func !== 'function') {
76
77
  throw new Error(ERROR_MSGS.INVALID_FUNCTION_BINDING);
77
78
  }
78
79
  var bindingWhenOnSyntax = this.toConstantValue(func);
@@ -83,7 +84,9 @@ var BindingToSyntax = (function () {
83
84
  BindingToSyntax.prototype.toAutoFactory = function (serviceIdentifier) {
84
85
  this._binding.type = literal_types_1.BindingTypeEnum.Factory;
85
86
  this._binding.factory = function (context) {
86
- var autofactory = function () { return context.container.get(serviceIdentifier); };
87
+ var autofactory = function () {
88
+ return context.container.get(serviceIdentifier);
89
+ };
87
90
  return autofactory;
88
91
  };
89
92
  this._binding.scope = literal_types_1.BindingScopeEnum.Singleton;
@@ -92,7 +95,9 @@ var BindingToSyntax = (function () {
92
95
  BindingToSyntax.prototype.toAutoNamedFactory = function (serviceIdentifier) {
93
96
  this._binding.type = literal_types_1.BindingTypeEnum.Factory;
94
97
  this._binding.factory = function (context) {
95
- return function (named) { return context.container.getNamed(serviceIdentifier, named); };
98
+ return function (named) {
99
+ return context.container.getNamed(serviceIdentifier, named);
100
+ };
96
101
  };
97
102
  return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
98
103
  };
@@ -103,7 +108,9 @@ var BindingToSyntax = (function () {
103
108
  return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
104
109
  };
105
110
  BindingToSyntax.prototype.toService = function (service) {
106
- this.toDynamicValue(function (context) { return context.container.get(service); });
111
+ this.toDynamicValue(function (context) {
112
+ return context.container.get(service);
113
+ });
107
114
  };
108
115
  return BindingToSyntax;
109
116
  }());
@@ -1,18 +1,18 @@
1
1
  import { interfaces } from '../interfaces/interfaces';
2
2
  declare class BindingWhenOnSyntax<T> implements interfaces.BindingWhenSyntax<T>, interfaces.BindingOnSyntax<T> {
3
- private _bindingWhenSyntax;
4
- private _bindingOnSyntax;
5
- private _binding;
3
+ private readonly _bindingWhenSyntax;
4
+ private readonly _bindingOnSyntax;
5
+ private readonly _binding;
6
6
  constructor(binding: interfaces.Binding<T>);
7
7
  when(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T>;
8
8
  whenTargetNamed(name: string): interfaces.BindingOnSyntax<T>;
9
9
  whenTargetIsDefault(): interfaces.BindingOnSyntax<T>;
10
10
  whenTargetTagged(tag: string, value: unknown): interfaces.BindingOnSyntax<T>;
11
- whenInjectedInto(parent: (NewableFunction | string)): interfaces.BindingOnSyntax<T>;
11
+ whenInjectedInto(parent: NewableFunction | string): interfaces.BindingOnSyntax<T>;
12
12
  whenParentNamed(name: string): interfaces.BindingOnSyntax<T>;
13
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>;
14
+ whenAnyAncestorIs(ancestor: NewableFunction | string): interfaces.BindingOnSyntax<T>;
15
+ whenNoAncestorIs(ancestor: NewableFunction | string): interfaces.BindingOnSyntax<T>;
16
16
  whenAnyAncestorNamed(name: string): interfaces.BindingOnSyntax<T>;
17
17
  whenAnyAncestorTagged(tag: string, value: unknown): interfaces.BindingOnSyntax<T>;
18
18
  whenNoAncestorNamed(name: string): interfaces.BindingOnSyntax<T>;
@@ -1,16 +1,16 @@
1
1
  import { interfaces } from '../interfaces/interfaces';
2
2
  declare class BindingWhenSyntax<T> implements interfaces.BindingWhenSyntax<T> {
3
- private _binding;
3
+ private readonly _binding;
4
4
  constructor(binding: interfaces.Binding<T>);
5
5
  when(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T>;
6
6
  whenTargetNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T>;
7
7
  whenTargetIsDefault(): interfaces.BindingOnSyntax<T>;
8
8
  whenTargetTagged(tag: string | number | symbol, value: unknown): interfaces.BindingOnSyntax<T>;
9
- whenInjectedInto(parent: (NewableFunction | string)): interfaces.BindingOnSyntax<T>;
9
+ whenInjectedInto(parent: NewableFunction | string): interfaces.BindingOnSyntax<T>;
10
10
  whenParentNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T>;
11
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>;
12
+ whenAnyAncestorIs(ancestor: NewableFunction | string): interfaces.BindingOnSyntax<T>;
13
+ whenNoAncestorIs(ancestor: NewableFunction | string): interfaces.BindingOnSyntax<T>;
14
14
  whenAnyAncestorNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T>;
15
15
  whenNoAncestorNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T>;
16
16
  whenAnyAncestorTagged(tag: string | number | symbol, value: unknown): interfaces.BindingOnSyntax<T>;