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
@@ -4,20 +4,18 @@ var ModuleActivationStore = (function () {
4
4
  this._map = new Map();
5
5
  }
6
6
  ModuleActivationStore.prototype.remove = function (moduleId) {
7
- if (this._map.has(moduleId)) {
8
- var handlers = this._map.get(moduleId);
9
- this._map.delete(moduleId);
10
- return handlers;
7
+ var handlers = this._map.get(moduleId);
8
+ if (handlers === undefined) {
9
+ return this._getEmptyHandlersStore();
11
10
  }
12
- return this._getEmptyHandlersStore();
11
+ this._map.delete(moduleId);
12
+ return handlers;
13
13
  };
14
14
  ModuleActivationStore.prototype.addDeactivation = function (moduleId, serviceIdentifier, onDeactivation) {
15
- this._getModuleActivationHandlers(moduleId)
16
- .onDeactivations.add(serviceIdentifier, onDeactivation);
15
+ this._getModuleActivationHandlers(moduleId).onDeactivations.add(serviceIdentifier, onDeactivation);
17
16
  };
18
17
  ModuleActivationStore.prototype.addActivation = function (moduleId, serviceIdentifier, onActivation) {
19
- this._getModuleActivationHandlers(moduleId)
20
- .onActivations.add(serviceIdentifier, onActivation);
18
+ this._getModuleActivationHandlers(moduleId).onActivations.add(serviceIdentifier, onActivation);
21
19
  };
22
20
  ModuleActivationStore.prototype.clone = function () {
23
21
  var clone = new ModuleActivationStore();
@@ -40,7 +38,7 @@ var ModuleActivationStore = (function () {
40
38
  ModuleActivationStore.prototype._getEmptyHandlersStore = function () {
41
39
  var handlersStore = {
42
40
  onActivations: new Lookup(),
43
- onDeactivations: new Lookup()
41
+ onDeactivations: new Lookup(),
44
42
  };
45
43
  return handlersStore;
46
44
  };
@@ -1,5 +1 @@
1
- var interfaces;
2
- (function (interfaces) {
3
- ;
4
- })(interfaces || (interfaces = {}));
5
- export { interfaces };
1
+ export {};
package/es/inversify.js CHANGED
@@ -1,15 +1,14 @@
1
1
  import * as keys from './constants/metadata_keys';
2
+ export { LazyServiceIdentifier } from '@inversifyjs/common';
2
3
  export var METADATA_KEY = keys;
3
4
  export { Container } from './container/container';
4
- export { BindingScopeEnum, BindingTypeEnum, TargetTypeEnum } from './constants/literal_types';
5
- export { AsyncContainerModule, ContainerModule } from './container/container_module';
5
+ export { BindingScopeEnum, BindingTypeEnum, TargetTypeEnum, } from './constants/literal_types';
6
+ export { AsyncContainerModule, ContainerModule, } from './container/container_module';
6
7
  export { createTaggedDecorator } from './annotation/decorator_utils';
7
8
  export { injectable } from './annotation/injectable';
8
9
  export { tagged } from './annotation/tagged';
9
10
  export { named } from './annotation/named';
10
11
  export { inject } from './annotation/inject';
11
- export { LazyServiceIdentifier } from './annotation/lazy_service_identifier';
12
- export { LazyServiceIdentifier as LazyServiceIdentifer } from './annotation/lazy_service_identifier';
13
12
  export { optional } from './annotation/optional';
14
13
  export { unmanaged } from './annotation/unmanaged';
15
14
  export { multiInject } from './annotation/multi_inject';
@@ -18,8 +17,7 @@ export { postConstruct } from './annotation/post_construct';
18
17
  export { preDestroy } from './annotation/pre_destroy';
19
18
  export { MetadataReader } from './planning/metadata_reader';
20
19
  export { id } from './utils/id';
21
- export { interfaces } from './interfaces/interfaces';
22
20
  export { decorate } from './annotation/decorator_utils';
23
- export { traverseAncerstors, taggedConstraint, namedConstraint, typeConstraint } from './syntax/constraint_helpers';
21
+ export { traverseAncerstors, taggedConstraint, namedConstraint, typeConstraint, } from './syntax/constraint_helpers';
24
22
  export { getServiceIdentifierAsString } from './utils/serialization';
25
23
  export { multiBindToService } from './utils/binding_utils';
@@ -3,15 +3,17 @@ var MetadataReader = (function () {
3
3
  function MetadataReader() {
4
4
  }
5
5
  MetadataReader.prototype.getConstructorMetadata = function (constructorFunc) {
6
- var compilerGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.PARAM_TYPES, constructorFunc);
6
+ var _a;
7
+ var compilerGeneratedMetadata = (_a = Reflect.getMetadata(METADATA_KEY.DESIGN_PARAM_TYPES, constructorFunc)) !== null && _a !== void 0 ? _a : [];
7
8
  var userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED, constructorFunc);
8
9
  return {
9
10
  compilerGeneratedMetadata: compilerGeneratedMetadata,
10
- userGeneratedMetadata: userGeneratedMetadata || {}
11
+ userGeneratedMetadata: userGeneratedMetadata !== null && userGeneratedMetadata !== void 0 ? userGeneratedMetadata : {},
11
12
  };
12
13
  };
13
14
  MetadataReader.prototype.getPropertiesMetadata = function (constructorFunc) {
14
- var userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED_PROP, constructorFunc) || [];
15
+ var _a;
16
+ var userGeneratedMetadata = (_a = Reflect.getMetadata(METADATA_KEY.TAGGED_PROP, constructorFunc)) !== null && _a !== void 0 ? _a : {};
15
17
  return userGeneratedMetadata;
16
18
  };
17
19
  return MetadataReader;
@@ -1,35 +1,35 @@
1
+ import { ClassElementMetadataKind, getClassElementMetadataFromLegacyMetadata, LegacyTargetImpl as TargetImpl, } from '@inversifyjs/core';
1
2
  import { BindingCount } from '../bindings/binding_count';
2
3
  import * as ERROR_MSGS from '../constants/error_msgs';
3
- import { BindingTypeEnum, TargetTypeEnum } from '../constants/literal_types';
4
+ import { BindingTypeEnum } from '../constants/literal_types';
4
5
  import * as METADATA_KEY from '../constants/metadata_keys';
5
6
  import { isStackOverflowException } from '../utils/exceptions';
6
- import { circularDependencyToException, getServiceIdentifierAsString, listMetadataForTarget, listRegisteredBindingsForServiceIdentifier } from '../utils/serialization';
7
+ import { circularDependencyToException, getServiceIdentifierAsString, listMetadataForTarget, listRegisteredBindingsForServiceIdentifier, } from '../utils/serialization';
7
8
  import { Context } from './context';
8
9
  import { Metadata } from './metadata';
9
10
  import { Plan } from './plan';
10
- import { getBaseClassDependencyCount, getDependencies, getFunctionName } from './reflection_utils';
11
+ import { getBaseClassDependencyCount, getDependencies, getFunctionName, } from './reflection_utils';
11
12
  import { Request } from './request';
12
- import { Target } from './target';
13
13
  function getBindingDictionary(cntnr) {
14
14
  return cntnr._bindingDictionary;
15
15
  }
16
16
  function _createTarget(isMultiInject, targetType, serviceIdentifier, name, key, value) {
17
- var metadataKey = isMultiInject ? METADATA_KEY.MULTI_INJECT_TAG : METADATA_KEY.INJECT_TAG;
18
- var injectMetadata = new Metadata(metadataKey, serviceIdentifier);
19
- var target = new Target(targetType, name, serviceIdentifier, injectMetadata);
20
- if (key !== undefined) {
21
- var tagMetadata = new Metadata(key, value);
22
- target.metadata.push(tagMetadata);
17
+ var metadataList = _getTargetMetadata(isMultiInject, serviceIdentifier, key, value);
18
+ var classElementMetadata = getClassElementMetadataFromLegacyMetadata(metadataList);
19
+ if (classElementMetadata.kind === ClassElementMetadataKind.unmanaged) {
20
+ throw new Error('Unexpected metadata when creating target');
23
21
  }
22
+ var target = new TargetImpl(name, classElementMetadata, targetType);
24
23
  return target;
25
24
  }
26
25
  function _getActiveBindings(metadataReader, avoidConstraints, context, parentRequest, target) {
27
26
  var bindings = getBindings(context.container, target.serviceIdentifier);
28
27
  var activeBindings = [];
29
28
  if (bindings.length === BindingCount.NoBindingsAvailable &&
30
- context.container.options.autoBindInjectable &&
29
+ context.container.options.autoBindInjectable === true &&
31
30
  typeof target.serviceIdentifier === 'function' &&
32
- metadataReader.getConstructorMetadata(target.serviceIdentifier).compilerGeneratedMetadata) {
31
+ metadataReader.getConstructorMetadata(target.serviceIdentifier)
32
+ .compilerGeneratedMetadata) {
33
33
  context.container.bind(target.serviceIdentifier).toSelf();
34
34
  bindings = getBindings(context.container, target.serviceIdentifier);
35
35
  }
@@ -45,6 +45,18 @@ function _getActiveBindings(metadataReader, avoidConstraints, context, parentReq
45
45
  _validateActiveBindingCount(target.serviceIdentifier, activeBindings, target, context.container);
46
46
  return activeBindings;
47
47
  }
48
+ function _getTargetMetadata(isMultiInject, serviceIdentifier, key, value) {
49
+ var metadataKey = isMultiInject
50
+ ? METADATA_KEY.MULTI_INJECT_TAG
51
+ : METADATA_KEY.INJECT_TAG;
52
+ var metadataList = [
53
+ new Metadata(metadataKey, serviceIdentifier),
54
+ ];
55
+ if (key !== undefined) {
56
+ metadataList.push(new Metadata(key, value));
57
+ }
58
+ return metadataList;
59
+ }
48
60
  function _validateActiveBindingCount(serviceIdentifier, bindings, target, container) {
49
61
  switch (bindings.length) {
50
62
  case BindingCount.NoBindingsAvailable:
@@ -92,14 +104,15 @@ function _createSubRequests(metadataReader, avoidConstraints, serviceIdentifier,
92
104
  subChildRequest = childRequest.addChildRequest(binding.serviceIdentifier, binding, target);
93
105
  }
94
106
  else {
95
- if (binding.cache) {
107
+ if (binding.cache !== null) {
96
108
  return;
97
109
  }
98
110
  subChildRequest = childRequest;
99
111
  }
100
- if (binding.type === BindingTypeEnum.Instance && binding.implementationType !== null) {
112
+ if (binding.type === BindingTypeEnum.Instance &&
113
+ binding.implementationType !== null) {
101
114
  var dependencies = getDependencies(metadataReader, binding.implementationType);
102
- if (!context.container.options.skipBaseClassChecks) {
115
+ if (context.container.options.skipBaseClassChecks !== true) {
103
116
  var baseClassDependencyCount = getBaseClassDependencyCount(metadataReader, binding.implementationType);
104
117
  if (dependencies.length < baseClassDependencyCount) {
105
118
  var error = ERROR_MSGS.ARGUMENTS_LENGTH_MISMATCH(getFunctionName(binding.implementationType));
@@ -139,7 +152,12 @@ function plan(metadataReader, container, isMultiInject, targetType, serviceIdent
139
152
  }
140
153
  }
141
154
  function createMockRequest(container, serviceIdentifier, key, value) {
142
- var target = new Target(TargetTypeEnum.Variable, '', serviceIdentifier, new Metadata(key, value));
155
+ var metadataList = _getTargetMetadata(false, serviceIdentifier, key, value);
156
+ var classElementMetadata = getClassElementMetadataFromLegacyMetadata(metadataList);
157
+ if (classElementMetadata.kind === ClassElementMetadataKind.unmanaged) {
158
+ throw new Error('Unexpected metadata when creating target');
159
+ }
160
+ var target = new TargetImpl('', classElementMetadata, 'Variable');
143
161
  var context = new Context(container);
144
162
  var request = new Request(serviceIdentifier, context, null, [], target);
145
163
  return request;
@@ -7,12 +7,15 @@ var QueryableString = (function () {
7
7
  };
8
8
  QueryableString.prototype.endsWith = function (searchString) {
9
9
  var reverseString = '';
10
- var reverseSearchString = searchString.split('').reverse().join('');
10
+ var reverseSearchString = searchString
11
+ .split('')
12
+ .reverse()
13
+ .join('');
11
14
  reverseString = this.str.split('').reverse().join('');
12
15
  return this.startsWith.call({ str: reverseString }, reverseSearchString);
13
16
  };
14
17
  QueryableString.prototype.contains = function (searchString) {
15
- return (this.str.indexOf(searchString) !== -1);
18
+ return this.str.indexOf(searchString) !== -1;
16
19
  };
17
20
  QueryableString.prototype.equals = function (compareString) {
18
21
  return this.str === compareString;
@@ -1,112 +1,16 @@
1
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
2
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
3
- if (ar || !(i in from)) {
4
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
5
- ar[i] = from[i];
6
- }
7
- }
8
- return to.concat(ar || Array.prototype.slice.call(from));
9
- };
10
- import { LazyServiceIdentifier } from '../annotation/lazy_service_identifier';
11
- import * as ERROR_MSGS from '../constants/error_msgs';
12
- import { TargetTypeEnum } from '../constants/literal_types';
1
+ import { getTargets } from '@inversifyjs/core';
13
2
  import * as METADATA_KEY from '../constants/metadata_keys';
14
3
  import { getFunctionName } from '../utils/serialization';
15
- import { Target } from './target';
16
4
  function getDependencies(metadataReader, func) {
17
- var constructorName = getFunctionName(func);
18
- return getTargets(metadataReader, constructorName, func, false);
19
- }
20
- function getTargets(metadataReader, constructorName, func, isBaseClass) {
21
- var metadata = metadataReader.getConstructorMetadata(func);
22
- var serviceIdentifiers = metadata.compilerGeneratedMetadata;
23
- if (serviceIdentifiers === undefined) {
24
- var msg = "".concat(ERROR_MSGS.MISSING_INJECTABLE_ANNOTATION, " ").concat(constructorName, ".");
25
- throw new Error(msg);
26
- }
27
- var constructorArgsMetadata = metadata.userGeneratedMetadata;
28
- var keys = Object.keys(constructorArgsMetadata);
29
- var hasUserDeclaredUnknownInjections = (func.length === 0 && keys.length > 0);
30
- var hasOptionalParameters = keys.length > func.length;
31
- var iterations = (hasUserDeclaredUnknownInjections || hasOptionalParameters) ? keys.length : func.length;
32
- var constructorTargets = getConstructorArgsAsTargets(isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata, iterations);
33
- var propertyTargets = getClassPropsAsTargets(metadataReader, func, constructorName);
34
- var targets = __spreadArray(__spreadArray([], constructorTargets, true), propertyTargets, true);
35
- return targets;
36
- }
37
- function getConstructorArgsAsTarget(index, isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata) {
38
- var targetMetadata = constructorArgsMetadata[index.toString()] || [];
39
- var metadata = formatTargetMetadata(targetMetadata);
40
- var isManaged = metadata.unmanaged !== true;
41
- var serviceIdentifier = serviceIdentifiers[index];
42
- var injectIdentifier = metadata.inject || metadata.multiInject;
43
- serviceIdentifier = (injectIdentifier ? injectIdentifier : serviceIdentifier);
44
- if (serviceIdentifier instanceof LazyServiceIdentifier) {
45
- serviceIdentifier = serviceIdentifier.unwrap();
46
- }
47
- if (isManaged) {
48
- var isObject = serviceIdentifier === Object;
49
- var isFunction = serviceIdentifier === Function;
50
- var isUndefined = serviceIdentifier === undefined;
51
- var isUnknownType = isObject || isFunction || isUndefined;
52
- if (!isBaseClass && isUnknownType) {
53
- var msg = "".concat(ERROR_MSGS.MISSING_INJECT_ANNOTATION, " argument ").concat(index, " in class ").concat(constructorName, ".");
54
- throw new Error(msg);
55
- }
56
- var target = new Target(TargetTypeEnum.ConstructorArgument, metadata.targetName, serviceIdentifier);
57
- target.metadata = targetMetadata;
58
- return target;
59
- }
60
- return null;
61
- }
62
- function getConstructorArgsAsTargets(isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata, iterations) {
63
- var targets = [];
64
- for (var i = 0; i < iterations; i++) {
65
- var index = i;
66
- var target = getConstructorArgsAsTarget(index, isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata);
67
- if (target !== null) {
68
- targets.push(target);
69
- }
70
- }
71
- return targets;
72
- }
73
- function _getServiceIdentifierForProperty(inject, multiInject, propertyName, className) {
74
- var serviceIdentifier = (inject || multiInject);
75
- if (serviceIdentifier === undefined) {
76
- var msg = "".concat(ERROR_MSGS.MISSING_INJECTABLE_ANNOTATION, " for property ").concat(String(propertyName), " in class ").concat(className, ".");
77
- throw new Error(msg);
78
- }
79
- return serviceIdentifier;
80
- }
81
- function getClassPropsAsTargets(metadataReader, constructorFunc, constructorName) {
82
- var classPropsMetadata = metadataReader.getPropertiesMetadata(constructorFunc);
83
- var targets = [];
84
- var symbolKeys = Object.getOwnPropertySymbols(classPropsMetadata);
85
- var stringKeys = Object.keys(classPropsMetadata);
86
- var keys = stringKeys.concat(symbolKeys);
87
- for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
88
- var key = keys_1[_i];
89
- var targetMetadata = classPropsMetadata[key];
90
- var metadata = formatTargetMetadata(targetMetadata);
91
- var identifier = metadata.targetName || key;
92
- var serviceIdentifier = _getServiceIdentifierForProperty(metadata.inject, metadata.multiInject, key, constructorName);
93
- var target = new Target(TargetTypeEnum.ClassProperty, identifier, serviceIdentifier);
94
- target.metadata = targetMetadata;
95
- targets.push(target);
96
- }
97
- var baseConstructor = Object.getPrototypeOf(constructorFunc.prototype).constructor;
98
- if (baseConstructor !== Object) {
99
- var baseTargets = getClassPropsAsTargets(metadataReader, baseConstructor, constructorName);
100
- targets = __spreadArray(__spreadArray([], targets, true), baseTargets, true);
101
- }
102
- return targets;
5
+ return getTargets(metadataReader)(func);
103
6
  }
104
7
  function getBaseClassDependencyCount(metadataReader, func) {
105
8
  var baseConstructor = Object.getPrototypeOf(func.prototype).constructor;
106
9
  if (baseConstructor !== Object) {
107
- var baseConstructorName = getFunctionName(baseConstructor);
108
- var targets = getTargets(metadataReader, baseConstructorName, baseConstructor, true);
109
- var metadata = targets.map(function (t) { return t.metadata.filter(function (m) { return m.key === METADATA_KEY.UNMANAGED_TAG; }); });
10
+ var targets = getTargets(metadataReader)(baseConstructor);
11
+ var metadata = targets.map(function (t) {
12
+ return t.metadata.filter(function (m) { return m.key === METADATA_KEY.UNMANAGED_TAG; });
13
+ });
110
14
  var unmanagedCount = [].concat.apply([], metadata).length;
111
15
  var dependencyCount = targets.length - unmanagedCount;
112
16
  if (dependencyCount > 0) {
@@ -120,16 +24,4 @@ function getBaseClassDependencyCount(metadataReader, func) {
120
24
  return 0;
121
25
  }
122
26
  }
123
- function formatTargetMetadata(targetMetadata) {
124
- var targetMetadataMap = {};
125
- targetMetadata.forEach(function (m) {
126
- targetMetadataMap[m.key.toString()] = m.value;
127
- });
128
- return {
129
- inject: targetMetadataMap[METADATA_KEY.INJECT_TAG],
130
- multiInject: targetMetadataMap[METADATA_KEY.MULTI_INJECT_TAG],
131
- targetName: targetMetadataMap[METADATA_KEY.NAME_TAG],
132
- unmanaged: targetMetadataMap[METADATA_KEY.UNMANAGED_TAG]
133
- };
134
- }
135
27
  export { getDependencies, getBaseClassDependencyCount, getFunctionName };
@@ -7,10 +7,8 @@ var Request = (function () {
7
7
  this.parentRequest = parentRequest;
8
8
  this.target = target;
9
9
  this.childRequests = [];
10
- this.bindings = (Array.isArray(bindings) ? bindings : [bindings]);
11
- this.requestScope = parentRequest === null
12
- ? new Map()
13
- : null;
10
+ this.bindings = Array.isArray(bindings) ? bindings : [bindings];
11
+ this.requestScope = parentRequest === null ? new Map() : null;
14
12
  }
15
13
  Request.prototype.addChildRequest = function (serviceIdentifier, bindings, target) {
16
14
  var child = new Request(serviceIdentifier, this.parentContext, this, bindings, target);
@@ -8,7 +8,9 @@ var Target = (function () {
8
8
  this.id = id();
9
9
  this.type = type;
10
10
  this.serviceIdentifier = serviceIdentifier;
11
- var queryableName = typeof identifier === 'symbol' ? getSymbolDescription(identifier) : identifier;
11
+ var queryableName = typeof identifier === 'symbol'
12
+ ? getSymbolDescription(identifier)
13
+ : identifier;
12
14
  this.name = new QueryableString(queryableName || '');
13
15
  this.identifier = identifier;
14
16
  this.metadata = new Array();
@@ -42,7 +44,9 @@ var Target = (function () {
42
44
  return this.hasTag(METADATA_KEY.NAMED_TAG);
43
45
  };
44
46
  Target.prototype.isTagged = function () {
45
- return this.metadata.some(function (metadata) { return METADATA_KEY.NON_CUSTOM_TAG_KEYS.every(function (key) { return metadata.key !== key; }); });
47
+ return this.metadata.some(function (metadata) {
48
+ return METADATA_KEY.NON_CUSTOM_TAG_KEYS.every(function (key) { return metadata.key !== key; });
49
+ });
46
50
  };
47
51
  Target.prototype.isOptional = function () {
48
52
  return this.matchesTag(METADATA_KEY.OPTIONAL_TAG)(true);
@@ -55,7 +59,9 @@ var Target = (function () {
55
59
  };
56
60
  Target.prototype.getCustomTags = function () {
57
61
  if (this.isTagged()) {
58
- return this.metadata.filter(function (metadata) { return METADATA_KEY.NON_CUSTOM_TAG_KEYS.every(function (key) { return metadata.key !== key; }); });
62
+ return this.metadata.filter(function (metadata) {
63
+ return METADATA_KEY.NON_CUSTOM_TAG_KEYS.every(function (key) { return metadata.key !== key; });
64
+ });
59
65
  }
60
66
  else {
61
67
  return null;
@@ -54,7 +54,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
54
54
  }
55
55
  return to.concat(ar || Array.prototype.slice.call(from));
56
56
  };
57
- import { ON_DEACTIVATION_ERROR, POST_CONSTRUCT_ERROR, PRE_DESTROY_ERROR } from '../constants/error_msgs';
57
+ import { ON_DEACTIVATION_ERROR, POST_CONSTRUCT_ERROR, PRE_DESTROY_ERROR, } from '../constants/error_msgs';
58
58
  import { BindingScopeEnum, TargetTypeEnum } from '../constants/literal_types';
59
59
  import * as METADATA_KEY from '../constants/metadata_keys';
60
60
  import { isPromise, isPromiseOrContainsPromise } from '../utils/async';
@@ -73,7 +73,12 @@ function _resolveRequests(childRequests, resolveRequest) {
73
73
  resolvedRequests.isAsync = isPromiseOrContainsPromise(injection);
74
74
  }
75
75
  return resolvedRequests;
76
- }, { constructorInjections: [], propertyInjections: [], propertyRequests: [], isAsync: false });
76
+ }, {
77
+ constructorInjections: [],
78
+ isAsync: false,
79
+ propertyInjections: [],
80
+ propertyRequests: [],
81
+ });
77
82
  }
78
83
  function _createInstance(constr, childRequests, resolveRequest) {
79
84
  var result;
@@ -167,9 +172,7 @@ function _validateInstanceResolution(binding, constr) {
167
172
  }
168
173
  }
169
174
  function _throwIfHandlingDeactivation(binding, constr) {
170
- var scopeErrorMessage = "Class cannot be instantiated in ".concat(binding.scope === BindingScopeEnum.Request ?
171
- 'request' :
172
- 'transient', " scope.");
175
+ var scopeErrorMessage = "Class cannot be instantiated in ".concat(binding.scope === BindingScopeEnum.Request ? 'request' : 'transient', " scope.");
173
176
  if (typeof binding.onDeactivation === 'function') {
174
177
  throw new Error(ON_DEACTIVATION_ERROR(constr.name, scopeErrorMessage));
175
178
  }
@@ -181,7 +184,9 @@ function resolveInstance(binding, constr, childRequests, resolveRequest) {
181
184
  _validateInstanceResolution(binding, constr);
182
185
  var result = _createInstance(constr, childRequests, resolveRequest);
183
186
  if (isPromise(result)) {
184
- return result.then(function (resolvedResult) { return _getInstanceAfterPostConstruct(constr, resolvedResult); });
187
+ return result.then(function (resolvedResult) {
188
+ return _getInstanceAfterPostConstruct(constr, resolvedResult);
189
+ });
185
190
  }
186
191
  else {
187
192
  return _getInstanceAfterPostConstruct(constr, result);
@@ -39,7 +39,7 @@ import { BindingTypeEnum } from '../constants/literal_types';
39
39
  import { getBindingDictionary } from '../planning/planner';
40
40
  import { saveToScope, tryGetFromScope } from '../scope/scope';
41
41
  import { isPromise } from '../utils/async';
42
- import { getFactoryDetails, ensureFullyBound } from '../utils/binding_utils';
42
+ import { ensureFullyBound, getFactoryDetails } from '../utils/binding_utils';
43
43
  import { tryAndThrowErrorIfStackOverflow } from '../utils/exceptions';
44
44
  import { resolveInstance } from './instantiation';
45
45
  var _resolveRequest = function (requestScope) {
@@ -54,8 +54,8 @@ var _resolveRequest = function (requestScope) {
54
54
  !request.parentRequest.target.matchesArray(request.target.serviceIdentifier);
55
55
  if (targetIsAnArray && targetParentIsNotAnArray) {
56
56
  return childRequests.map(function (childRequest) {
57
- var _f = _resolveRequest(requestScope);
58
- return _f(childRequest);
57
+ var resolveRequest = _resolveRequest(requestScope);
58
+ return resolveRequest(childRequest);
59
59
  });
60
60
  }
61
61
  else {
@@ -69,7 +69,11 @@ var _resolveRequest = function (requestScope) {
69
69
  };
70
70
  var _resolveFactoryFromBinding = function (binding, context) {
71
71
  var factoryDetails = getFactoryDetails(binding);
72
- return tryAndThrowErrorIfStackOverflow(function () { return factoryDetails.factory.bind(binding)(context); }, function () { return new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY_IN_FACTORY(factoryDetails.factoryType, context.currentRequest.serviceIdentifier.toString())); });
72
+ return tryAndThrowErrorIfStackOverflow(function () {
73
+ return factoryDetails.factory.bind(binding)(context);
74
+ }, function () {
75
+ return new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY_IN_FACTORY(factoryDetails.factoryType, context.currentRequest.serviceIdentifier.toString()));
76
+ });
73
77
  };
74
78
  var _getResolvedFromBinding = function (requestScope, request, binding) {
75
79
  var result;
@@ -104,7 +108,9 @@ var _resolveBinding = function (requestScope, request, binding) {
104
108
  return _resolveInScope(requestScope, binding, function () {
105
109
  var result = _getResolvedFromBinding(requestScope, request, binding);
106
110
  if (isPromise(result)) {
107
- result = result.then(function (resolved) { return _onActivation(request, binding, resolved); });
111
+ result = result.then(function (resolved) {
112
+ return _onActivation(request, binding, resolved);
113
+ });
108
114
  }
109
115
  else {
110
116
  result = _onActivation(request, binding, result);
@@ -129,7 +135,8 @@ function _onActivation(request, binding, resolved) {
129
135
  result = _activateContainer(activationsIterator, context_1, result);
130
136
  }
131
137
  containersIteratorResult = containersIterator.next();
132
- } while (containersIteratorResult.done !== true && !getBindingDictionary(container).hasKey(request.serviceIdentifier));
138
+ } while (containersIteratorResult.done !== true &&
139
+ !getBindingDictionary(container).hasKey(request.serviceIdentifier));
133
140
  return result;
134
141
  }
135
142
  var _bindingActivation = function (context, binding, previousResult) {
@@ -144,7 +151,7 @@ var _bindingActivation = function (context, binding, previousResult) {
144
151
  };
145
152
  var _activateContainer = function (activationsIterator, context, result) {
146
153
  var activation = activationsIterator.next();
147
- while (!activation.done) {
154
+ while (activation.done !== true) {
148
155
  result = activation.value(context, result);
149
156
  if (isPromise(result)) {
150
157
  return _activateContainerAsync(activationsIterator, context, result);
@@ -163,7 +170,7 @@ var _activateContainerAsync = function (activationsIterator, context, resultProm
163
170
  activation = activationsIterator.next();
164
171
  _a.label = 2;
165
172
  case 2:
166
- if (!!activation.done) return [3, 4];
173
+ if (!(activation.done !== true)) return [3, 4];
167
174
  return [4, activation.value(context, result)];
168
175
  case 3:
169
176
  result = _a.sent();
@@ -175,7 +182,9 @@ var _activateContainerAsync = function (activationsIterator, context, resultProm
175
182
  }); };
176
183
  var _getContainerActivationsForService = function (container, serviceIdentifier) {
177
184
  var activations = container._activations;
178
- return activations.hasKey(serviceIdentifier) ? activations.get(serviceIdentifier).values() : [].values();
185
+ return activations.hasKey(serviceIdentifier)
186
+ ? activations.get(serviceIdentifier).values()
187
+ : [].values();
179
188
  };
180
189
  var _getContainersIterator = function (container) {
181
190
  var containersStack = [container];
@@ -199,7 +208,7 @@ var _getContainersIterator = function (container) {
199
208
  return containersIterator;
200
209
  };
201
210
  function resolve(context) {
202
- var _f = _resolveRequest(context.plan.rootRequest.requestScope);
203
- return _f(context.plan.rootRequest);
211
+ var resolveRequestFunction = _resolveRequest(context.plan.rootRequest.requestScope);
212
+ return resolveRequestFunction(context.plan.rootRequest);
204
213
  }
205
214
  export { resolve };
package/es/scope/scope.js CHANGED
@@ -37,7 +37,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
37
37
  import { BindingScopeEnum } from '../constants/literal_types';
38
38
  import { isPromise } from '../utils/async';
39
39
  export var tryGetFromScope = function (requestScope, binding) {
40
- if ((binding.scope === BindingScopeEnum.Singleton) && binding.activated) {
40
+ if (binding.scope === BindingScopeEnum.Singleton && binding.activated) {
41
41
  return binding.cache;
42
42
  }
43
43
  if (binding.scope === BindingScopeEnum.Request &&
@@ -1,7 +1,7 @@
1
- import * as ERROR_MSGS from "../constants/error_msgs";
2
- import { BindingScopeEnum, BindingTypeEnum } from "../constants/literal_types";
3
- import { BindingInWhenOnSyntax } from "./binding_in_when_on_syntax";
4
- import { BindingWhenOnSyntax } from "./binding_when_on_syntax";
1
+ import * as ERROR_MSGS from '../constants/error_msgs';
2
+ import { BindingScopeEnum, BindingTypeEnum } from '../constants/literal_types';
3
+ import { BindingInWhenOnSyntax } from './binding_in_when_on_syntax';
4
+ import { BindingWhenOnSyntax } from './binding_when_on_syntax';
5
5
  var BindingToSyntax = (function () {
6
6
  function BindingToSyntax(binding) {
7
7
  this._binding = binding;
@@ -12,10 +12,11 @@ var BindingToSyntax = (function () {
12
12
  return new BindingInWhenOnSyntax(this._binding);
13
13
  };
14
14
  BindingToSyntax.prototype.toSelf = function () {
15
- if (typeof this._binding.serviceIdentifier !== "function") {
16
- throw new Error("".concat(ERROR_MSGS.INVALID_TO_SELF_VALUE));
15
+ if (typeof this._binding.serviceIdentifier !== 'function') {
16
+ throw new Error(ERROR_MSGS.INVALID_TO_SELF_VALUE);
17
17
  }
18
- var self = this._binding.serviceIdentifier;
18
+ var self = this._binding
19
+ .serviceIdentifier;
19
20
  return this.to(self);
20
21
  };
21
22
  BindingToSyntax.prototype.toConstantValue = function (value) {
@@ -46,7 +47,7 @@ var BindingToSyntax = (function () {
46
47
  return new BindingWhenOnSyntax(this._binding);
47
48
  };
48
49
  BindingToSyntax.prototype.toFunction = function (func) {
49
- if (typeof func !== "function") {
50
+ if (typeof func !== 'function') {
50
51
  throw new Error(ERROR_MSGS.INVALID_FUNCTION_BINDING);
51
52
  }
52
53
  var bindingWhenOnSyntax = this.toConstantValue(func);
@@ -57,7 +58,9 @@ var BindingToSyntax = (function () {
57
58
  BindingToSyntax.prototype.toAutoFactory = function (serviceIdentifier) {
58
59
  this._binding.type = BindingTypeEnum.Factory;
59
60
  this._binding.factory = function (context) {
60
- var autofactory = function () { return context.container.get(serviceIdentifier); };
61
+ var autofactory = function () {
62
+ return context.container.get(serviceIdentifier);
63
+ };
61
64
  return autofactory;
62
65
  };
63
66
  this._binding.scope = BindingScopeEnum.Singleton;
@@ -66,7 +69,9 @@ var BindingToSyntax = (function () {
66
69
  BindingToSyntax.prototype.toAutoNamedFactory = function (serviceIdentifier) {
67
70
  this._binding.type = BindingTypeEnum.Factory;
68
71
  this._binding.factory = function (context) {
69
- return function (named) { return context.container.getNamed(serviceIdentifier, named); };
72
+ return function (named) {
73
+ return context.container.getNamed(serviceIdentifier, named);
74
+ };
70
75
  };
71
76
  return new BindingWhenOnSyntax(this._binding);
72
77
  };
@@ -77,7 +82,9 @@ var BindingToSyntax = (function () {
77
82
  return new BindingWhenOnSyntax(this._binding);
78
83
  };
79
84
  BindingToSyntax.prototype.toService = function (service) {
80
- this.toDynamicValue(function (context) { return context.container.get(service); });
85
+ this.toDynamicValue(function (context) {
86
+ return context.container.get(service);
87
+ });
81
88
  };
82
89
  return BindingToSyntax;
83
90
  }());