inversify 4.11.1 → 5.0.5

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 (129) hide show
  1. package/.auditignore +2 -0
  2. package/.nyc_output/24cbca0e-b065-453e-9d1e-2a381e69663d.json +1 -0
  3. package/.nyc_output/processinfo/24cbca0e-b065-453e-9d1e-2a381e69663d.json +1 -0
  4. package/.nyc_output/processinfo/index.json +1 -0
  5. package/CHANGELOG.md +24 -0
  6. package/README.md +8 -8
  7. package/amd/annotation/decorator_utils.js +2 -1
  8. package/amd/annotation/inject.js +1 -0
  9. package/amd/annotation/injectable.js +1 -0
  10. package/amd/annotation/multi_inject.js +1 -0
  11. package/amd/annotation/named.js +1 -0
  12. package/amd/annotation/optional.js +1 -0
  13. package/amd/annotation/post_construct.js +1 -0
  14. package/amd/annotation/tagged.js +1 -0
  15. package/amd/annotation/target_name.js +1 -0
  16. package/amd/annotation/unmanaged.js +1 -0
  17. package/amd/bindings/binding.js +3 -2
  18. package/amd/bindings/binding_count.js +1 -0
  19. package/amd/constants/error_msgs.js +11 -2
  20. package/amd/constants/literal_types.js +1 -0
  21. package/amd/constants/metadata_keys.js +1 -0
  22. package/amd/container/container.js +40 -37
  23. package/amd/container/container_module.js +4 -3
  24. package/amd/container/container_snapshot.js +1 -0
  25. package/amd/container/lookup.js +1 -0
  26. package/amd/inversify.js +27 -26
  27. package/amd/planning/context.js +3 -2
  28. package/amd/planning/metadata.js +1 -0
  29. package/amd/planning/metadata_reader.js +1 -0
  30. package/amd/planning/plan.js +1 -0
  31. package/amd/planning/planner.js +8 -0
  32. package/amd/planning/queryable_string.js +1 -0
  33. package/amd/planning/reflection_utils.js +12 -8
  34. package/amd/planning/request.js +3 -2
  35. package/amd/planning/target.js +3 -2
  36. package/amd/resolution/instantiation.js +9 -1
  37. package/amd/resolution/resolver.js +5 -4
  38. package/amd/syntax/binding_in_syntax.js +1 -0
  39. package/amd/syntax/binding_in_when_on_syntax.js +1 -0
  40. package/amd/syntax/binding_on_syntax.js +1 -0
  41. package/amd/syntax/binding_to_syntax.js +1 -0
  42. package/amd/syntax/binding_when_on_syntax.js +1 -0
  43. package/amd/syntax/binding_when_syntax.js +1 -0
  44. package/amd/syntax/constraint_helpers.js +1 -0
  45. package/amd/utils/binding_utils.js +1 -0
  46. package/amd/utils/exceptions.js +1 -0
  47. package/amd/utils/id.js +10 -0
  48. package/amd/utils/serialization.js +1 -0
  49. package/dts/annotation/inject.d.ts +1 -1
  50. package/dts/bindings/binding.d.ts +1 -1
  51. package/dts/constants/error_msgs.d.ts +2 -2
  52. package/dts/container/container.d.ts +5 -5
  53. package/dts/container/container_module.d.ts +2 -2
  54. package/dts/container/lookup.d.ts +1 -1
  55. package/dts/interfaces/interfaces.d.ts +12 -13
  56. package/dts/inversify.d.ts +1 -1
  57. package/dts/planning/context.d.ts +1 -1
  58. package/dts/planning/reflection_utils.d.ts +3 -1
  59. package/dts/planning/request.d.ts +1 -1
  60. package/dts/planning/target.d.ts +1 -1
  61. package/dts/syntax/binding_to_syntax.d.ts +1 -3
  62. package/dts/syntax/constraint_helpers.d.ts +2 -2
  63. package/dts/utils/binding_utils.d.ts +1 -1
  64. package/dts/utils/cat.d.ts +5 -0
  65. package/dts/utils/dog.d.ts +3 -0
  66. package/dts/utils/id.d.ts +2 -0
  67. package/es/annotation/decorator_utils.js +1 -1
  68. package/es/bindings/binding.js +2 -2
  69. package/es/constants/error_msgs.js +10 -2
  70. package/es/container/container.js +39 -37
  71. package/es/container/container_module.js +3 -3
  72. package/es/inversify.js +1 -1
  73. package/es/planning/context.js +2 -2
  74. package/es/planning/planner.js +8 -1
  75. package/es/planning/reflection_utils.js +10 -9
  76. package/es/planning/request.js +2 -2
  77. package/es/planning/target.js +2 -2
  78. package/es/resolution/instantiation.js +8 -1
  79. package/es/resolution/resolver.js +4 -4
  80. package/es/utils/id.js +5 -0
  81. package/lib/annotation/decorator_utils.js +2 -1
  82. package/lib/annotation/inject.js +1 -0
  83. package/lib/annotation/injectable.js +1 -0
  84. package/lib/annotation/multi_inject.js +1 -0
  85. package/lib/annotation/named.js +1 -0
  86. package/lib/annotation/optional.js +1 -0
  87. package/lib/annotation/post_construct.js +1 -0
  88. package/lib/annotation/tagged.js +1 -0
  89. package/lib/annotation/target_name.js +1 -0
  90. package/lib/annotation/unmanaged.js +1 -0
  91. package/lib/bindings/binding.js +3 -2
  92. package/lib/bindings/binding_count.js +1 -0
  93. package/lib/constants/error_msgs.js +11 -2
  94. package/lib/constants/literal_types.js +1 -0
  95. package/lib/constants/metadata_keys.js +1 -0
  96. package/lib/container/container.js +40 -37
  97. package/lib/container/container_module.js +4 -3
  98. package/lib/container/container_snapshot.js +1 -0
  99. package/lib/container/lookup.js +1 -0
  100. package/lib/inversify.js +27 -26
  101. package/lib/planning/context.js +3 -2
  102. package/lib/planning/metadata.js +1 -0
  103. package/lib/planning/metadata_reader.js +1 -0
  104. package/lib/planning/plan.js +1 -0
  105. package/lib/planning/planner.js +8 -0
  106. package/lib/planning/queryable_string.js +1 -0
  107. package/lib/planning/reflection_utils.js +12 -8
  108. package/lib/planning/request.js +3 -2
  109. package/lib/planning/target.js +3 -2
  110. package/lib/resolution/instantiation.js +9 -1
  111. package/lib/resolution/resolver.js +5 -4
  112. package/lib/syntax/binding_in_syntax.js +1 -0
  113. package/lib/syntax/binding_in_when_on_syntax.js +1 -0
  114. package/lib/syntax/binding_on_syntax.js +1 -0
  115. package/lib/syntax/binding_to_syntax.js +1 -0
  116. package/lib/syntax/binding_when_on_syntax.js +1 -0
  117. package/lib/syntax/binding_when_syntax.js +1 -0
  118. package/lib/syntax/constraint_helpers.js +1 -0
  119. package/lib/utils/binding_utils.js +1 -0
  120. package/lib/utils/exceptions.js +1 -0
  121. package/lib/utils/id.js +8 -0
  122. package/lib/utils/serialization.js +1 -0
  123. package/mocha.opts +3 -0
  124. package/package.json +39 -33
  125. package/amd/utils/guid.js +0 -14
  126. package/appveyor.yml +0 -34
  127. package/dts/utils/guid.d.ts +0 -2
  128. package/es/utils/guid.js +0 -10
  129. package/lib/utils/guid.js +0 -12
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var guid_1 = require("../utils/guid");
3
+ exports.AsyncContainerModule = exports.ContainerModule = void 0;
4
+ var id_1 = require("../utils/id");
4
5
  var ContainerModule = (function () {
5
6
  function ContainerModule(registry) {
6
- this.guid = guid_1.guid();
7
+ this.id = id_1.id();
7
8
  this.registry = registry;
8
9
  }
9
10
  return ContainerModule;
@@ -11,7 +12,7 @@ var ContainerModule = (function () {
11
12
  exports.ContainerModule = ContainerModule;
12
13
  var AsyncContainerModule = (function () {
13
14
  function AsyncContainerModule(registry) {
14
- this.guid = guid_1.guid();
15
+ this.id = id_1.id();
15
16
  this.registry = registry;
16
17
  }
17
18
  return AsyncContainerModule;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContainerSnapshot = void 0;
3
4
  var ContainerSnapshot = (function () {
4
5
  function ContainerSnapshot() {
5
6
  }
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Lookup = void 0;
3
4
  var ERROR_MSGS = require("../constants/error_msgs");
4
5
  var Lookup = (function () {
5
6
  function Lookup() {
package/lib/inversify.js CHANGED
@@ -1,47 +1,48 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.METADATA_KEY = void 0;
3
4
  var keys = require("./constants/metadata_keys");
4
5
  exports.METADATA_KEY = keys;
5
6
  var container_1 = require("./container/container");
6
- exports.Container = container_1.Container;
7
+ Object.defineProperty(exports, "Container", { enumerable: true, get: function () { return container_1.Container; } });
7
8
  var literal_types_1 = require("./constants/literal_types");
8
- exports.BindingScopeEnum = literal_types_1.BindingScopeEnum;
9
- exports.BindingTypeEnum = literal_types_1.BindingTypeEnum;
10
- exports.TargetTypeEnum = literal_types_1.TargetTypeEnum;
9
+ Object.defineProperty(exports, "BindingScopeEnum", { enumerable: true, get: function () { return literal_types_1.BindingScopeEnum; } });
10
+ Object.defineProperty(exports, "BindingTypeEnum", { enumerable: true, get: function () { return literal_types_1.BindingTypeEnum; } });
11
+ Object.defineProperty(exports, "TargetTypeEnum", { enumerable: true, get: function () { return literal_types_1.TargetTypeEnum; } });
11
12
  var container_module_1 = require("./container/container_module");
12
- exports.AsyncContainerModule = container_module_1.AsyncContainerModule;
13
- exports.ContainerModule = container_module_1.ContainerModule;
13
+ Object.defineProperty(exports, "AsyncContainerModule", { enumerable: true, get: function () { return container_module_1.AsyncContainerModule; } });
14
+ Object.defineProperty(exports, "ContainerModule", { enumerable: true, get: function () { return container_module_1.ContainerModule; } });
14
15
  var injectable_1 = require("./annotation/injectable");
15
- exports.injectable = injectable_1.injectable;
16
+ Object.defineProperty(exports, "injectable", { enumerable: true, get: function () { return injectable_1.injectable; } });
16
17
  var tagged_1 = require("./annotation/tagged");
17
- exports.tagged = tagged_1.tagged;
18
+ Object.defineProperty(exports, "tagged", { enumerable: true, get: function () { return tagged_1.tagged; } });
18
19
  var named_1 = require("./annotation/named");
19
- exports.named = named_1.named;
20
+ Object.defineProperty(exports, "named", { enumerable: true, get: function () { return named_1.named; } });
20
21
  var inject_1 = require("./annotation/inject");
21
- exports.inject = inject_1.inject;
22
- exports.LazyServiceIdentifer = inject_1.LazyServiceIdentifer;
22
+ Object.defineProperty(exports, "inject", { enumerable: true, get: function () { return inject_1.inject; } });
23
+ Object.defineProperty(exports, "LazyServiceIdentifer", { enumerable: true, get: function () { return inject_1.LazyServiceIdentifer; } });
23
24
  var optional_1 = require("./annotation/optional");
24
- exports.optional = optional_1.optional;
25
+ Object.defineProperty(exports, "optional", { enumerable: true, get: function () { return optional_1.optional; } });
25
26
  var unmanaged_1 = require("./annotation/unmanaged");
26
- exports.unmanaged = unmanaged_1.unmanaged;
27
+ Object.defineProperty(exports, "unmanaged", { enumerable: true, get: function () { return unmanaged_1.unmanaged; } });
27
28
  var multi_inject_1 = require("./annotation/multi_inject");
28
- exports.multiInject = multi_inject_1.multiInject;
29
+ Object.defineProperty(exports, "multiInject", { enumerable: true, get: function () { return multi_inject_1.multiInject; } });
29
30
  var target_name_1 = require("./annotation/target_name");
30
- exports.targetName = target_name_1.targetName;
31
+ Object.defineProperty(exports, "targetName", { enumerable: true, get: function () { return target_name_1.targetName; } });
31
32
  var post_construct_1 = require("./annotation/post_construct");
32
- exports.postConstruct = post_construct_1.postConstruct;
33
+ Object.defineProperty(exports, "postConstruct", { enumerable: true, get: function () { return post_construct_1.postConstruct; } });
33
34
  var metadata_reader_1 = require("./planning/metadata_reader");
34
- exports.MetadataReader = metadata_reader_1.MetadataReader;
35
- var guid_1 = require("./utils/guid");
36
- exports.guid = guid_1.guid;
35
+ Object.defineProperty(exports, "MetadataReader", { enumerable: true, get: function () { return metadata_reader_1.MetadataReader; } });
36
+ var id_1 = require("./utils/id");
37
+ Object.defineProperty(exports, "id", { enumerable: true, get: function () { return id_1.id; } });
37
38
  var decorator_utils_1 = require("./annotation/decorator_utils");
38
- exports.decorate = decorator_utils_1.decorate;
39
+ Object.defineProperty(exports, "decorate", { enumerable: true, get: function () { return decorator_utils_1.decorate; } });
39
40
  var constraint_helpers_1 = require("./syntax/constraint_helpers");
40
- exports.traverseAncerstors = constraint_helpers_1.traverseAncerstors;
41
- exports.taggedConstraint = constraint_helpers_1.taggedConstraint;
42
- exports.namedConstraint = constraint_helpers_1.namedConstraint;
43
- exports.typeConstraint = constraint_helpers_1.typeConstraint;
41
+ Object.defineProperty(exports, "traverseAncerstors", { enumerable: true, get: function () { return constraint_helpers_1.traverseAncerstors; } });
42
+ Object.defineProperty(exports, "taggedConstraint", { enumerable: true, get: function () { return constraint_helpers_1.taggedConstraint; } });
43
+ Object.defineProperty(exports, "namedConstraint", { enumerable: true, get: function () { return constraint_helpers_1.namedConstraint; } });
44
+ Object.defineProperty(exports, "typeConstraint", { enumerable: true, get: function () { return constraint_helpers_1.typeConstraint; } });
44
45
  var serialization_1 = require("./utils/serialization");
45
- exports.getServiceIdentifierAsString = serialization_1.getServiceIdentifierAsString;
46
+ Object.defineProperty(exports, "getServiceIdentifierAsString", { enumerable: true, get: function () { return serialization_1.getServiceIdentifierAsString; } });
46
47
  var binding_utils_1 = require("./utils/binding_utils");
47
- exports.multiBindToService = binding_utils_1.multiBindToService;
48
+ Object.defineProperty(exports, "multiBindToService", { enumerable: true, get: function () { return binding_utils_1.multiBindToService; } });
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var guid_1 = require("../utils/guid");
3
+ exports.Context = void 0;
4
+ var id_1 = require("../utils/id");
4
5
  var Context = (function () {
5
6
  function Context(container) {
6
- this.guid = guid_1.guid();
7
+ this.id = id_1.id();
7
8
  this.container = container;
8
9
  }
9
10
  Context.prototype.addPlan = function (plan) {
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Metadata = void 0;
3
4
  var METADATA_KEY = require("../constants/metadata_keys");
4
5
  var Metadata = (function () {
5
6
  function Metadata(key, value) {
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MetadataReader = void 0;
3
4
  var METADATA_KEY = require("../constants/metadata_keys");
4
5
  var MetadataReader = (function () {
5
6
  function MetadataReader() {
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Plan = void 0;
3
4
  var Plan = (function () {
4
5
  function Plan(parentContext, rootRequest) {
5
6
  this.parentContext = parentContext;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBindingDictionary = exports.createMockRequest = exports.plan = void 0;
3
4
  var binding_count_1 = require("../bindings/binding_count");
4
5
  var ERROR_MSGS = require("../constants/error_msgs");
5
6
  var literal_types_1 = require("../constants/literal_types");
@@ -104,6 +105,13 @@ function _createSubRequests(metadataReader, avoidConstraints, serviceIdentifier,
104
105
  }
105
106
  if (binding.type === literal_types_1.BindingTypeEnum.Instance && binding.implementationType !== null) {
106
107
  var dependencies = reflection_utils_1.getDependencies(metadataReader, binding.implementationType);
108
+ if (!context.container.options.skipBaseClassChecks) {
109
+ var baseClassDependencyCount = reflection_utils_1.getBaseClassDependencyCount(metadataReader, binding.implementationType);
110
+ if (dependencies.length < baseClassDependencyCount) {
111
+ var error = ERROR_MSGS.ARGUMENTS_LENGTH_MISMATCH(reflection_utils_1.getFunctionName(binding.implementationType));
112
+ throw new Error(error);
113
+ }
114
+ }
107
115
  dependencies.forEach(function (dependency) {
108
116
  _createSubRequests(metadataReader, false, dependency.serviceIdentifier, context, subChildRequest, dependency);
109
117
  });
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueryableString = void 0;
3
4
  var QueryableString = (function () {
4
5
  function QueryableString(str) {
5
6
  this.str = str;
@@ -1,10 +1,19 @@
1
1
  "use strict";
2
+ var __spreadArrays = (this && this.__spreadArrays) || function () {
3
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
4
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
5
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
6
+ r[k] = a[j];
7
+ return r;
8
+ };
2
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.getFunctionName = exports.getBaseClassDependencyCount = exports.getDependencies = void 0;
3
11
  var inject_1 = require("../annotation/inject");
4
12
  var ERROR_MSGS = require("../constants/error_msgs");
5
13
  var literal_types_1 = require("../constants/literal_types");
6
14
  var METADATA_KEY = require("../constants/metadata_keys");
7
15
  var serialization_1 = require("../utils/serialization");
16
+ Object.defineProperty(exports, "getFunctionName", { enumerable: true, get: function () { return serialization_1.getFunctionName; } });
8
17
  var target_1 = require("./target");
9
18
  function getDependencies(metadataReader, func) {
10
19
  var constructorName = serialization_1.getFunctionName(func);
@@ -25,13 +34,7 @@ function getTargets(metadataReader, constructorName, func, isBaseClass) {
25
34
  var iterations = (hasUserDeclaredUnknownInjections) ? keys.length : func.length;
26
35
  var constructorTargets = getConstructorArgsAsTargets(isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata, iterations);
27
36
  var propertyTargets = getClassPropsAsTargets(metadataReader, func);
28
- var targets = constructorTargets.concat(propertyTargets);
29
- var baseClassDependencyCount = getBaseClassDependencyCount(metadataReader, func);
30
- if (targets.length < baseClassDependencyCount) {
31
- var error = ERROR_MSGS.ARGUMENTS_LENGTH_MISMATCH_1 +
32
- constructorName + ERROR_MSGS.ARGUMENTS_LENGTH_MISMATCH_2;
33
- throw new Error(error);
34
- }
37
+ var targets = __spreadArrays(constructorTargets, propertyTargets);
35
38
  return targets;
36
39
  }
37
40
  function getConstructorArgsAsTarget(index, isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata) {
@@ -87,7 +90,7 @@ function getClassPropsAsTargets(metadataReader, constructorFunc) {
87
90
  var baseConstructor = Object.getPrototypeOf(constructorFunc.prototype).constructor;
88
91
  if (baseConstructor !== Object) {
89
92
  var baseTargets = getClassPropsAsTargets(metadataReader, baseConstructor);
90
- targets = targets.concat(baseTargets);
93
+ targets = __spreadArrays(targets, baseTargets);
91
94
  }
92
95
  return targets;
93
96
  }
@@ -114,6 +117,7 @@ function getBaseClassDependencyCount(metadataReader, func) {
114
117
  return 0;
115
118
  }
116
119
  }
120
+ exports.getBaseClassDependencyCount = getBaseClassDependencyCount;
117
121
  function formatTargetMetadata(targetMetadata) {
118
122
  var targetMetadataMap = {};
119
123
  targetMetadata.forEach(function (m) {
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var guid_1 = require("../utils/guid");
3
+ exports.Request = void 0;
4
+ var id_1 = require("../utils/id");
4
5
  var Request = (function () {
5
6
  function Request(serviceIdentifier, parentContext, parentRequest, bindings, target) {
6
- this.guid = guid_1.guid();
7
+ this.id = id_1.id();
7
8
  this.serviceIdentifier = serviceIdentifier;
8
9
  this.parentContext = parentContext;
9
10
  this.parentRequest = parentRequest;
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Target = void 0;
3
4
  var METADATA_KEY = require("../constants/metadata_keys");
4
- var guid_1 = require("../utils/guid");
5
+ var id_1 = require("../utils/id");
5
6
  var metadata_1 = require("./metadata");
6
7
  var queryable_string_1 = require("./queryable_string");
7
8
  var Target = (function () {
8
9
  function Target(type, name, serviceIdentifier, namedOrTagged) {
9
- this.guid = guid_1.guid();
10
+ this.id = id_1.id();
10
11
  this.type = type;
11
12
  this.serviceIdentifier = serviceIdentifier;
12
13
  this.name = new queryable_string_1.QueryableString(name || "");
@@ -1,5 +1,13 @@
1
1
  "use strict";
2
+ var __spreadArrays = (this && this.__spreadArrays) || function () {
3
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
4
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
5
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
6
+ r[k] = a[j];
7
+ return r;
8
+ };
2
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.resolveInstance = void 0;
3
11
  var error_msgs_1 = require("../constants/error_msgs");
4
12
  var literal_types_1 = require("../constants/literal_types");
5
13
  var METADATA_KEY = require("../constants/metadata_keys");
@@ -18,7 +26,7 @@ function _injectProperties(instance, childRequests, resolveRequest) {
18
26
  return instance;
19
27
  }
20
28
  function _createInstance(Func, injections) {
21
- return new (Func.bind.apply(Func, [void 0].concat(injections)))();
29
+ return new (Func.bind.apply(Func, __spreadArrays([void 0], injections)))();
22
30
  }
23
31
  function _postConstruct(constr, result) {
24
32
  if (Reflect.hasMetadata(METADATA_KEY.POST_CONSTRUCT, constr)) {
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolve = void 0;
3
4
  var ERROR_MSGS = require("../constants/error_msgs");
4
5
  var literal_types_1 = require("../constants/literal_types");
5
6
  var exceptions_1 = require("../utils/exceptions");
@@ -47,8 +48,8 @@ var _resolveRequest = function (requestScope) {
47
48
  }
48
49
  if (isRequestSingleton &&
49
50
  requestScope !== null &&
50
- requestScope.has(binding_1.guid)) {
51
- return requestScope.get(binding_1.guid);
51
+ requestScope.has(binding_1.id)) {
52
+ return requestScope.get(binding_1.id);
52
53
  }
53
54
  if (binding_1.type === literal_types_1.BindingTypeEnum.ConstantValue) {
54
55
  result = binding_1.cache;
@@ -84,8 +85,8 @@ var _resolveRequest = function (requestScope) {
84
85
  }
85
86
  if (isRequestSingleton &&
86
87
  requestScope !== null &&
87
- !requestScope.has(binding_1.guid)) {
88
- requestScope.set(binding_1.guid, result);
88
+ !requestScope.has(binding_1.id)) {
89
+ requestScope.set(binding_1.id, result);
89
90
  }
90
91
  return result;
91
92
  }
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BindingInSyntax = void 0;
3
4
  var literal_types_1 = require("../constants/literal_types");
4
5
  var binding_when_on_syntax_1 = require("./binding_when_on_syntax");
5
6
  var BindingInSyntax = (function () {
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BindingInWhenOnSyntax = void 0;
3
4
  var binding_in_syntax_1 = require("./binding_in_syntax");
4
5
  var binding_on_syntax_1 = require("./binding_on_syntax");
5
6
  var binding_when_syntax_1 = require("./binding_when_syntax");
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BindingOnSyntax = void 0;
3
4
  var binding_when_syntax_1 = require("./binding_when_syntax");
4
5
  var BindingOnSyntax = (function () {
5
6
  function BindingOnSyntax(binding) {
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BindingToSyntax = void 0;
3
4
  var ERROR_MSGS = require("../constants/error_msgs");
4
5
  var literal_types_1 = require("../constants/literal_types");
5
6
  var binding_in_when_on_syntax_1 = require("./binding_in_when_on_syntax");
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BindingWhenOnSyntax = void 0;
3
4
  var binding_on_syntax_1 = require("./binding_on_syntax");
4
5
  var binding_when_syntax_1 = require("./binding_when_syntax");
5
6
  var BindingWhenOnSyntax = (function () {
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BindingWhenSyntax = void 0;
3
4
  var binding_on_syntax_1 = require("./binding_on_syntax");
4
5
  var constraint_helpers_1 = require("./constraint_helpers");
5
6
  var BindingWhenSyntax = (function () {
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.typeConstraint = exports.namedConstraint = exports.taggedConstraint = exports.traverseAncerstors = void 0;
3
4
  var METADATA_KEY = require("../constants/metadata_keys");
4
5
  var metadata_1 = require("../planning/metadata");
5
6
  var traverseAncerstors = function (request, constraint) {
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.multiBindToService = void 0;
3
4
  exports.multiBindToService = function (container) {
4
5
  return function (service) {
5
6
  return function () {
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isStackOverflowExeption = void 0;
3
4
  var ERROR_MSGS = require("../constants/error_msgs");
4
5
  function isStackOverflowExeption(error) {
5
6
  return (error instanceof RangeError ||
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.id = void 0;
4
+ var idCounter = 0;
5
+ function id() {
6
+ return idCounter++;
7
+ }
8
+ exports.id = id;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.circularDependencyToException = exports.listMetadataForTarget = exports.listRegisteredBindingsForServiceIdentifier = exports.getServiceIdentifierAsString = exports.getFunctionName = void 0;
3
4
  var ERROR_MSGS = require("../constants/error_msgs");
4
5
  function getServiceIdentifierAsString(serviceIdentifier) {
5
6
  if (typeof serviceIdentifier === "function") {
package/mocha.opts ADDED
@@ -0,0 +1,3 @@
1
+ --require reflect-metadata/Reflect
2
+ --watch-extensions ts
3
+ dist/test/**/*.test.js
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "inversify",
3
- "version": "4.11.1",
3
+ "version": "5.0.5",
4
4
  "description": "A powerful and lightweight inversion of control container for JavaScript and Node.js apps powered by TypeScript.",
5
5
  "main": "lib/inversify.js",
6
6
  "jsnext:main": "es/inversify.js",
@@ -9,9 +9,12 @@
9
9
  "test": "gulp"
10
10
  },
11
11
  "scripts": {
12
- "test": "gulp",
12
+ "pretest": "tslint --project . && gulp",
13
+ "test": "nyc --require ts-node/register mocha test/**/*.test.ts --reporter spec --retries 3 --require 'node_modules/reflect-metadata/Reflect.js' --exit",
13
14
  "publish-please": "publish-please",
14
- "prepublish": "publish-please guard"
15
+ "prepublish": "publish-please guard",
16
+ "update": "updates --update --minor && npm install",
17
+ "postupdate": "git diff-files --quiet package-lock.json || npm test"
15
18
  },
16
19
  "repository": {
17
20
  "type": "git",
@@ -35,46 +38,49 @@
35
38
  "homepage": "http://inversify.io",
36
39
  "engines": {},
37
40
  "devDependencies": {
38
- "@types/chai": "4.1.2",
41
+ "@types/chai": "4.2.12",
39
42
  "@types/harmony-proxy": "1.0.29",
40
- "@types/mocha": "2.2.48",
41
- "@types/sinon": "4.1.3",
42
- "bluebird": "3.5.1",
43
- "browserify": "16.1.0",
44
- "chai": "4.1.2",
45
- "del": "3.0.0",
46
- "es6-symbol": "3.1.1",
47
- "gulp": "3.9.1",
48
- "gulp-istanbul": "1.1.3",
49
- "gulp-mocha": "5.0.0",
50
- "gulp-rename": "1.2.2",
51
- "gulp-sourcemaps": "2.6.3",
52
- "gulp-tslint": "8.1.3",
53
- "gulp-typescript": "4.0.1",
54
- "gulp-uglify": "3.0.0",
43
+ "@types/mocha": "5.2.7",
44
+ "@types/sinon": "7.5.2",
45
+ "bluebird": "3.7.2",
46
+ "browserify": "16.5.2",
47
+ "chai": "4.2.0",
48
+ "del": "5.1.0",
49
+ "es6-symbol": "3.1.3",
50
+ "gulp": "^4.0.2",
51
+ "gulp-istanbul": "^1.1.3",
52
+ "gulp-mocha": "7.0.2",
53
+ "gulp-rename": "1.4.0",
54
+ "gulp-sourcemaps": "2.6.5",
55
+ "gulp-tslint": "8.1.4",
56
+ "gulp-typescript": "5.0.1",
57
+ "gulp-uglify": "3.0.2",
55
58
  "harmonize": "2.0.0",
56
59
  "harmony-proxy": "1.0.1",
57
- "istanbul": "0.4.5",
58
- "karma": "2.0.0",
60
+ "istanbul": "^0.4.5",
61
+ "karma": "^5.2.0",
59
62
  "karma-chai": "0.1.0",
60
- "karma-chrome-launcher": "2.2.0",
63
+ "karma-chrome-launcher": "3.1.0",
61
64
  "karma-commonjs": "1.0.0",
62
65
  "karma-es6-shim": "1.0.0",
63
- "karma-firefox-launcher": "1.1.0",
66
+ "karma-firefox-launcher": "1.3.0",
64
67
  "karma-ie-launcher": "1.0.0",
65
- "karma-mocha": "1.3.0",
68
+ "karma-mocha": "^2.0.1",
66
69
  "karma-mocha-reporter": "2.2.5",
67
- "karma-phantomjs-launcher": "1.0.4",
70
+ "karma-phantomjs-launcher": "^1.0.4",
68
71
  "karma-sinon": "1.0.5",
69
- "mocha": "5.0.1",
72
+ "mocha": "6.2.3",
73
+ "nyc": "^15.1.0",
70
74
  "performance-now": "2.1.0",
71
- "publish-please": "2.3.1",
72
- "reflect-metadata": "0.1.12",
75
+ "publish-please": "^5.5.1",
76
+ "reflect-metadata": "0.1.13",
73
77
  "run-sequence": "2.2.1",
74
- "sinon": "4.4.0",
75
- "tslint": "5.9.1",
76
- "typescript": "2.6.2",
77
- "vinyl-source-stream": "2.0.0",
78
- "vinyl-buffer": "1.0.1"
78
+ "sinon": "7.5.0",
79
+ "ts-node": "^9.0.0",
80
+ "tslint": "5.20.1",
81
+ "typescript": "^3.9.7",
82
+ "updates": "^10.3.5",
83
+ "vinyl-buffer": "1.0.1",
84
+ "vinyl-source-stream": "2.0.0"
79
85
  }
80
86
  }
package/amd/utils/guid.js DELETED
@@ -1,14 +0,0 @@
1
- define(["require", "exports"], function (require, exports) {
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- function guid() {
5
- function s4() {
6
- return Math.floor((Math.random() + 1) * 0x10000)
7
- .toString(16)
8
- .substring(1);
9
- }
10
- return s4() + s4() + "-" + s4() + "-" + s4() + "-" +
11
- s4() + "-" + s4() + s4() + s4();
12
- }
13
- exports.guid = guid;
14
- });
package/appveyor.yml DELETED
@@ -1,34 +0,0 @@
1
- # AppVeyor file
2
- # http://www.appveyor.com/docs/appveyor-yml
3
-
4
- # Build version format
5
- version: "{build}"
6
-
7
- # Test against this version of Node.js
8
- environment:
9
- NODE_ENV: test
10
-
11
- matrix:
12
- - nodejs_version: "9.3.0"
13
-
14
- build: off
15
-
16
- branches:
17
- only:
18
- - master
19
-
20
- install:
21
- - ps: Install-Product node $env:nodejs_version
22
- - npm install -g npm
23
- - npm config set progress=false
24
- - npm install
25
-
26
- # Fix line endings on Windows
27
- init:
28
- - git config --global core.autocrlf true
29
-
30
- test_script:
31
- # Output useful info for debugging.
32
- - node --version && npm --version
33
- - ps: "npm --version # PowerShell" # Pass comment to PS for easier debugging
34
- - cmd: npm run test
@@ -1,2 +0,0 @@
1
- declare function guid(): string;
2
- export { guid };
package/es/utils/guid.js DELETED
@@ -1,10 +0,0 @@
1
- function guid() {
2
- function s4() {
3
- return Math.floor((Math.random() + 1) * 0x10000)
4
- .toString(16)
5
- .substring(1);
6
- }
7
- return s4() + s4() + "-" + s4() + "-" + s4() + "-" +
8
- s4() + "-" + s4() + s4() + s4();
9
- }
10
- export { guid };
package/lib/utils/guid.js DELETED
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- function guid() {
4
- function s4() {
5
- return Math.floor((Math.random() + 1) * 0x10000)
6
- .toString(16)
7
- .substring(1);
8
- }
9
- return s4() + s4() + "-" + s4() + "-" + s4() + "-" +
10
- s4() + "-" + s4() + s4() + s4();
11
- }
12
- exports.guid = guid;