inversify 6.0.2 → 6.0.3
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.
- package/.nyc_output/c29b2307-4e95-47d0-b220-9efcfa7ee49f.json +1 -0
- package/.nyc_output/processinfo/c29b2307-4e95-47d0-b220-9efcfa7ee49f.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -1
- package/CHANGELOG.md +86 -81
- package/LICENSE +22 -22
- package/README.md +311 -309
- package/amd/annotation/decorator_utils.js +117 -114
- package/amd/annotation/inject.js +31 -27
- package/amd/annotation/inject_base.js +16 -17
- package/amd/annotation/injectable.js +40 -37
- package/amd/annotation/lazy_service_identifier.js +15 -15
- package/amd/annotation/multi_inject.js +31 -27
- package/amd/annotation/named.js +32 -29
- package/amd/annotation/optional.js +32 -29
- package/amd/annotation/post_construct.js +32 -28
- package/amd/annotation/pre_destroy.js +32 -28
- package/amd/annotation/property_event_decorator.js +16 -17
- package/amd/annotation/tagged.js +8 -9
- package/amd/annotation/target_name.js +35 -32
- package/amd/annotation/unmanaged.js +35 -32
- package/amd/bindings/binding.js +39 -39
- package/amd/bindings/binding_count.js +10 -10
- package/amd/constants/error_msgs.js +74 -64
- package/amd/constants/literal_types.js +28 -28
- package/amd/constants/metadata_keys.js +28 -28
- package/amd/container/container.js +723 -719
- package/amd/container/container_module.js +21 -21
- package/amd/container/container_snapshot.js +20 -20
- package/amd/container/lookup.js +131 -127
- package/amd/container/module_activation_store.js +53 -53
- package/amd/interfaces/interfaces.js +9 -10
- package/amd/inversify.js +59 -55
- package/amd/planning/context.js +19 -19
- package/amd/planning/metadata.js +45 -41
- package/amd/planning/metadata_reader.js +47 -43
- package/amd/planning/plan.js +13 -13
- package/amd/planning/planner.js +166 -163
- package/amd/planning/queryable_string.js +30 -30
- package/amd/planning/reflection_utils.js +161 -157
- package/amd/planning/request.js +26 -26
- package/amd/planning/target.js +105 -101
- package/amd/resolution/instantiation.js +214 -211
- package/amd/resolution/resolver.js +225 -222
- package/amd/scope/scope.js +93 -93
- package/amd/syntax/binding_in_syntax.js +24 -24
- package/amd/syntax/binding_in_when_on_syntax.js +75 -75
- package/amd/syntax/binding_on_syntax.js +20 -20
- package/amd/syntax/binding_to_syntax.js +109 -105
- package/amd/syntax/binding_when_on_syntax.js +65 -65
- package/amd/syntax/binding_when_syntax.js +102 -102
- package/amd/syntax/constraint_helpers.js +65 -61
- package/amd/utils/async.js +16 -17
- package/amd/utils/binding_utils.js +81 -77
- package/amd/utils/clonable.js +11 -12
- package/amd/utils/exceptions.js +46 -42
- package/amd/utils/factory_type.js +11 -11
- package/amd/utils/id.js +9 -10
- package/amd/utils/js.js +18 -19
- package/amd/utils/serialization.js +132 -129
- package/es/annotation/decorator_utils.js +88 -88
- package/es/annotation/inject.js +4 -4
- package/es/annotation/inject_base.js +14 -14
- package/es/annotation/injectable.js +13 -13
- package/es/annotation/lazy_service_identifier.js +10 -10
- package/es/annotation/multi_inject.js +4 -4
- package/es/annotation/named.js +7 -7
- package/es/annotation/optional.js +7 -7
- package/es/annotation/post_construct.js +5 -5
- package/es/annotation/pre_destroy.js +5 -5
- package/es/annotation/property_event_decorator.js +13 -13
- package/es/annotation/tagged.js +6 -6
- package/es/annotation/target_name.js +10 -10
- package/es/annotation/unmanaged.js +10 -10
- package/es/bindings/binding.js +36 -36
- package/es/bindings/binding_count.js +5 -5
- package/es/constants/error_msgs.js +62 -52
- package/es/constants/literal_types.js +21 -21
- package/es/constants/metadata_keys.js +23 -23
- package/es/container/container.js +707 -707
- package/es/container/container_module.js +17 -17
- package/es/container/container_snapshot.js +15 -15
- package/es/container/lookup.js +104 -104
- package/es/container/module_activation_store.js +49 -49
- package/es/interfaces/interfaces.js +5 -5
- package/es/inversify.js +25 -25
- package/es/planning/context.js +15 -15
- package/es/planning/metadata.js +17 -17
- package/es/planning/metadata_reader.js +19 -19
- package/es/planning/plan.js +8 -8
- package/es/planning/planner.js +147 -147
- package/es/planning/queryable_string.js +25 -25
- package/es/planning/reflection_utils.js +135 -135
- package/es/planning/request.js +22 -22
- package/es/planning/target.js +81 -81
- package/es/resolution/instantiation.js +190 -190
- package/es/resolution/resolver.js +205 -205
- package/es/scope/scope.js +88 -88
- package/es/syntax/binding_in_syntax.js +21 -21
- package/es/syntax/binding_in_when_on_syntax.js +73 -73
- package/es/syntax/binding_on_syntax.js +16 -16
- package/es/syntax/binding_to_syntax.js +84 -84
- package/es/syntax/binding_when_on_syntax.js +62 -62
- package/es/syntax/binding_when_syntax.js +99 -99
- package/es/syntax/constraint_helpers.js +35 -35
- package/es/utils/async.js +11 -11
- package/es/utils/binding_utils.js +53 -53
- package/es/utils/clonable.js +7 -7
- package/es/utils/exceptions.js +16 -16
- package/es/utils/factory_type.js +6 -6
- package/es/utils/id.js +5 -5
- package/es/utils/js.js +13 -13
- package/es/utils/serialization.js +100 -100
- package/es6/annotation/decorator_utils.js +112 -109
- package/es6/annotation/inject.js +30 -26
- package/es6/annotation/inject_base.js +17 -18
- package/es6/annotation/injectable.js +38 -35
- package/es6/annotation/lazy_service_identifier.js +12 -12
- package/es6/annotation/multi_inject.js +30 -26
- package/es6/annotation/named.js +32 -29
- package/es6/annotation/optional.js +32 -29
- package/es6/annotation/post_construct.js +31 -27
- package/es6/annotation/pre_destroy.js +31 -27
- package/es6/annotation/property_event_decorator.js +15 -16
- package/es6/annotation/tagged.js +8 -9
- package/es6/annotation/target_name.js +35 -32
- package/es6/annotation/unmanaged.js +35 -32
- package/es6/bindings/binding.js +38 -38
- package/es6/bindings/binding_count.js +8 -8
- package/es6/constants/error_msgs.js +62 -53
- package/es6/constants/literal_types.js +26 -26
- package/es6/constants/metadata_keys.js +26 -26
- package/es6/container/container.js +524 -520
- package/es6/container/container_module.js +18 -18
- package/es6/container/container_snapshot.js +15 -15
- package/es6/container/lookup.js +124 -120
- package/es6/container/module_activation_store.js +51 -51
- package/es6/interfaces/interfaces.js +7 -8
- package/es6/inversify.js +80 -76
- package/es6/planning/context.js +17 -17
- package/es6/planning/metadata.js +42 -38
- package/es6/planning/metadata_reader.js +42 -38
- package/es6/planning/plan.js +10 -10
- package/es6/planning/planner.js +173 -170
- package/es6/planning/queryable_string.js +27 -27
- package/es6/planning/reflection_utils.js +159 -155
- package/es6/planning/request.js +24 -24
- package/es6/planning/target.js +103 -99
- package/es6/resolution/instantiation.js +154 -151
- package/es6/resolution/resolver.js +190 -187
- package/es6/scope/scope.js +57 -57
- package/es6/syntax/binding_in_syntax.js +23 -23
- package/es6/syntax/binding_in_when_on_syntax.js +75 -75
- package/es6/syntax/binding_on_syntax.js +18 -18
- package/es6/syntax/binding_to_syntax.js +109 -105
- package/es6/syntax/binding_when_on_syntax.js +64 -64
- package/es6/syntax/binding_when_syntax.js +79 -79
- package/es6/syntax/constraint_helpers.js +62 -58
- package/es6/utils/async.js +14 -15
- package/es6/utils/binding_utils.js +72 -68
- package/es6/utils/clonable.js +9 -10
- package/es6/utils/exceptions.js +44 -40
- package/es6/utils/factory_type.js +9 -9
- package/es6/utils/id.js +7 -8
- package/es6/utils/js.js +15 -16
- package/es6/utils/serialization.js +129 -126
- package/lib/annotation/decorator_utils.d.ts +16 -16
- package/lib/annotation/decorator_utils.js +116 -113
- package/lib/annotation/inject.d.ts +2 -2
- package/lib/annotation/inject.js +30 -26
- package/lib/annotation/inject_base.d.ts +3 -3
- package/lib/annotation/inject_base.js +17 -18
- package/lib/annotation/injectable.d.ts +2 -2
- package/lib/annotation/injectable.js +38 -35
- package/lib/annotation/lazy_service_identifier.d.ts +7 -7
- package/lib/annotation/lazy_service_identifier.js +13 -13
- package/lib/annotation/multi_inject.d.ts +2 -2
- package/lib/annotation/multi_inject.js +30 -26
- package/lib/annotation/named.d.ts +2 -2
- package/lib/annotation/named.js +32 -29
- package/lib/annotation/optional.d.ts +2 -2
- package/lib/annotation/optional.js +32 -29
- package/lib/annotation/post_construct.d.ts +4 -4
- package/lib/annotation/post_construct.js +31 -27
- package/lib/annotation/pre_destroy.d.ts +4 -4
- package/lib/annotation/pre_destroy.js +31 -27
- package/lib/annotation/property_event_decorator.d.ts +4 -4
- package/lib/annotation/property_event_decorator.js +15 -16
- package/lib/annotation/tagged.d.ts +2 -2
- package/lib/annotation/tagged.js +8 -9
- package/lib/annotation/target_name.d.ts +3 -3
- package/lib/annotation/target_name.js +35 -32
- package/lib/annotation/unmanaged.d.ts +3 -3
- package/lib/annotation/unmanaged.js +35 -32
- package/lib/bindings/binding.d.ts +20 -20
- package/lib/bindings/binding.js +39 -39
- package/lib/bindings/binding_count.d.ts +5 -5
- package/lib/bindings/binding_count.js +8 -8
- package/lib/constants/error_msgs.d.ts +32 -32
- package/lib/constants/error_msgs.js +72 -62
- package/lib/constants/literal_types.d.ts +5 -5
- package/lib/constants/literal_types.js +26 -26
- package/lib/constants/metadata_keys.d.ts +13 -13
- package/lib/constants/metadata_keys.js +26 -26
- package/lib/container/container.d.ts +73 -73
- package/lib/container/container.js +733 -729
- package/lib/container/container_module.d.ts +11 -11
- package/lib/container/container_module.js +20 -20
- package/lib/container/container_snapshot.d.ts +10 -10
- package/lib/container/container_snapshot.js +18 -18
- package/lib/container/lookup.d.ts +16 -16
- package/lib/container/lookup.js +130 -126
- package/lib/container/module_activation_store.d.ts +10 -10
- package/lib/container/module_activation_store.js +52 -52
- package/lib/interfaces/interfaces.d.ts +284 -284
- package/lib/interfaces/interfaces.js +7 -8
- package/lib/inversify.d.ts +25 -25
- package/lib/inversify.js +80 -76
- package/lib/planning/context.d.ts +11 -11
- package/lib/planning/context.js +18 -18
- package/lib/planning/metadata.d.ts +8 -8
- package/lib/planning/metadata.js +43 -39
- package/lib/planning/metadata_reader.d.ts +6 -6
- package/lib/planning/metadata_reader.js +45 -41
- package/lib/planning/plan.d.ts +7 -7
- package/lib/planning/plan.js +11 -11
- package/lib/planning/planner.d.ts +5 -5
- package/lib/planning/planner.js +174 -171
- package/lib/planning/queryable_string.d.ts +11 -11
- package/lib/planning/queryable_string.js +28 -28
- package/lib/planning/reflection_utils.d.ts +5 -5
- package/lib/planning/reflection_utils.js +163 -159
- package/lib/planning/request.d.ts +14 -14
- package/lib/planning/request.js +25 -25
- package/lib/planning/target.d.ts +23 -23
- package/lib/planning/target.js +107 -103
- package/lib/resolution/instantiation.d.ts +3 -3
- package/lib/resolution/instantiation.js +215 -212
- package/lib/resolution/resolver.d.ts +3 -3
- package/lib/resolution/resolver.js +230 -227
- package/lib/scope/scope.d.ts +3 -3
- package/lib/scope/scope.js +93 -93
- package/lib/syntax/binding_in_syntax.d.ts +9 -9
- package/lib/syntax/binding_in_syntax.js +24 -24
- package/lib/syntax/binding_in_when_on_syntax.d.ts +29 -29
- package/lib/syntax/binding_in_when_on_syntax.js +76 -76
- package/lib/syntax/binding_on_syntax.d.ts +8 -8
- package/lib/syntax/binding_on_syntax.js +19 -19
- package/lib/syntax/binding_to_syntax.d.ts +18 -18
- package/lib/syntax/binding_to_syntax.js +110 -106
- package/lib/syntax/binding_when_on_syntax.d.ts +25 -25
- package/lib/syntax/binding_when_on_syntax.js +65 -65
- package/lib/syntax/binding_when_syntax.d.ts +21 -21
- package/lib/syntax/binding_when_syntax.js +102 -102
- package/lib/syntax/constraint_helpers.d.ts +6 -6
- package/lib/syntax/constraint_helpers.js +64 -60
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/utils/async.d.ts +3 -3
- package/lib/utils/async.js +14 -15
- package/lib/utils/binding_utils.d.ts +4 -4
- package/lib/utils/binding_utils.js +82 -78
- package/lib/utils/clonable.d.ts +3 -3
- package/lib/utils/clonable.js +9 -10
- package/lib/utils/exceptions.d.ts +2 -2
- package/lib/utils/exceptions.js +44 -40
- package/lib/utils/factory_type.d.ts +5 -5
- package/lib/utils/factory_type.js +9 -9
- package/lib/utils/id.d.ts +2 -2
- package/lib/utils/id.js +7 -8
- package/lib/utils/js.d.ts +1 -1
- package/lib/utils/js.js +16 -17
- package/lib/utils/serialization.d.ts +10 -10
- package/lib/utils/serialization.js +130 -127
- package/package.json +60 -61
- package/.nyc_output/16b95af9-19b9-451c-8475-9a8585677128.json +0 -1
- package/.nyc_output/processinfo/16b95af9-19b9-451c-8475-9a8585677128.json +0 -1
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
import { BindingOnSyntax } from './binding_on_syntax';
|
|
2
|
-
import { namedConstraint, taggedConstraint, traverseAncerstors, typeConstraint } from './constraint_helpers';
|
|
3
|
-
var BindingWhenSyntax = (function () {
|
|
4
|
-
function BindingWhenSyntax(binding) {
|
|
5
|
-
this._binding = binding;
|
|
6
|
-
}
|
|
7
|
-
BindingWhenSyntax.prototype.when = function (constraint) {
|
|
8
|
-
this._binding.constraint = constraint;
|
|
9
|
-
return new BindingOnSyntax(this._binding);
|
|
10
|
-
};
|
|
11
|
-
BindingWhenSyntax.prototype.whenTargetNamed = function (name) {
|
|
12
|
-
this._binding.constraint = namedConstraint(name);
|
|
13
|
-
return new BindingOnSyntax(this._binding);
|
|
14
|
-
};
|
|
15
|
-
BindingWhenSyntax.prototype.whenTargetIsDefault = function () {
|
|
16
|
-
this._binding.constraint = function (request) {
|
|
17
|
-
if (request === null) {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
var targetIsDefault = (request.target !== null) &&
|
|
21
|
-
(!request.target.isNamed()) &&
|
|
22
|
-
(!request.target.isTagged());
|
|
23
|
-
return targetIsDefault;
|
|
24
|
-
};
|
|
25
|
-
return new BindingOnSyntax(this._binding);
|
|
26
|
-
};
|
|
27
|
-
BindingWhenSyntax.prototype.whenTargetTagged = function (tag, value) {
|
|
28
|
-
this._binding.constraint = taggedConstraint(tag)(value);
|
|
29
|
-
return new BindingOnSyntax(this._binding);
|
|
30
|
-
};
|
|
31
|
-
BindingWhenSyntax.prototype.whenInjectedInto = function (parent) {
|
|
32
|
-
this._binding.constraint = function (request) {
|
|
33
|
-
return request !== null && typeConstraint(parent)(request.parentRequest);
|
|
34
|
-
};
|
|
35
|
-
return new BindingOnSyntax(this._binding);
|
|
36
|
-
};
|
|
37
|
-
BindingWhenSyntax.prototype.whenParentNamed = function (name) {
|
|
38
|
-
this._binding.constraint = function (request) {
|
|
39
|
-
return request !== null && namedConstraint(name)(request.parentRequest);
|
|
40
|
-
};
|
|
41
|
-
return new BindingOnSyntax(this._binding);
|
|
42
|
-
};
|
|
43
|
-
BindingWhenSyntax.prototype.whenParentTagged = function (tag, value) {
|
|
44
|
-
this._binding.constraint = function (request) {
|
|
45
|
-
return request !== null && taggedConstraint(tag)(value)(request.parentRequest);
|
|
46
|
-
};
|
|
47
|
-
return new BindingOnSyntax(this._binding);
|
|
48
|
-
};
|
|
49
|
-
BindingWhenSyntax.prototype.whenAnyAncestorIs = function (ancestor) {
|
|
50
|
-
this._binding.constraint = function (request) {
|
|
51
|
-
return request !== null && traverseAncerstors(request, typeConstraint(ancestor));
|
|
52
|
-
};
|
|
53
|
-
return new BindingOnSyntax(this._binding);
|
|
54
|
-
};
|
|
55
|
-
BindingWhenSyntax.prototype.whenNoAncestorIs = function (ancestor) {
|
|
56
|
-
this._binding.constraint = function (request) {
|
|
57
|
-
return request !== null && !traverseAncerstors(request, typeConstraint(ancestor));
|
|
58
|
-
};
|
|
59
|
-
return new BindingOnSyntax(this._binding);
|
|
60
|
-
};
|
|
61
|
-
BindingWhenSyntax.prototype.whenAnyAncestorNamed = function (name) {
|
|
62
|
-
this._binding.constraint = function (request) {
|
|
63
|
-
return request !== null && traverseAncerstors(request, namedConstraint(name));
|
|
64
|
-
};
|
|
65
|
-
return new BindingOnSyntax(this._binding);
|
|
66
|
-
};
|
|
67
|
-
BindingWhenSyntax.prototype.whenNoAncestorNamed = function (name) {
|
|
68
|
-
this._binding.constraint = function (request) {
|
|
69
|
-
return request !== null && !traverseAncerstors(request, namedConstraint(name));
|
|
70
|
-
};
|
|
71
|
-
return new BindingOnSyntax(this._binding);
|
|
72
|
-
};
|
|
73
|
-
BindingWhenSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {
|
|
74
|
-
this._binding.constraint = function (request) {
|
|
75
|
-
return request !== null && traverseAncerstors(request, taggedConstraint(tag)(value));
|
|
76
|
-
};
|
|
77
|
-
return new BindingOnSyntax(this._binding);
|
|
78
|
-
};
|
|
79
|
-
BindingWhenSyntax.prototype.whenNoAncestorTagged = function (tag, value) {
|
|
80
|
-
this._binding.constraint = function (request) {
|
|
81
|
-
return request !== null && !traverseAncerstors(request, taggedConstraint(tag)(value));
|
|
82
|
-
};
|
|
83
|
-
return new BindingOnSyntax(this._binding);
|
|
84
|
-
};
|
|
85
|
-
BindingWhenSyntax.prototype.whenAnyAncestorMatches = function (constraint) {
|
|
86
|
-
this._binding.constraint = function (request) {
|
|
87
|
-
return request !== null && traverseAncerstors(request, constraint);
|
|
88
|
-
};
|
|
89
|
-
return new BindingOnSyntax(this._binding);
|
|
90
|
-
};
|
|
91
|
-
BindingWhenSyntax.prototype.whenNoAncestorMatches = function (constraint) {
|
|
92
|
-
this._binding.constraint = function (request) {
|
|
93
|
-
return request !== null && !traverseAncerstors(request, constraint);
|
|
94
|
-
};
|
|
95
|
-
return new BindingOnSyntax(this._binding);
|
|
96
|
-
};
|
|
97
|
-
return BindingWhenSyntax;
|
|
98
|
-
}());
|
|
99
|
-
export { BindingWhenSyntax };
|
|
1
|
+
import { BindingOnSyntax } from './binding_on_syntax';
|
|
2
|
+
import { namedConstraint, taggedConstraint, traverseAncerstors, typeConstraint } from './constraint_helpers';
|
|
3
|
+
var BindingWhenSyntax = (function () {
|
|
4
|
+
function BindingWhenSyntax(binding) {
|
|
5
|
+
this._binding = binding;
|
|
6
|
+
}
|
|
7
|
+
BindingWhenSyntax.prototype.when = function (constraint) {
|
|
8
|
+
this._binding.constraint = constraint;
|
|
9
|
+
return new BindingOnSyntax(this._binding);
|
|
10
|
+
};
|
|
11
|
+
BindingWhenSyntax.prototype.whenTargetNamed = function (name) {
|
|
12
|
+
this._binding.constraint = namedConstraint(name);
|
|
13
|
+
return new BindingOnSyntax(this._binding);
|
|
14
|
+
};
|
|
15
|
+
BindingWhenSyntax.prototype.whenTargetIsDefault = function () {
|
|
16
|
+
this._binding.constraint = function (request) {
|
|
17
|
+
if (request === null) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
var targetIsDefault = (request.target !== null) &&
|
|
21
|
+
(!request.target.isNamed()) &&
|
|
22
|
+
(!request.target.isTagged());
|
|
23
|
+
return targetIsDefault;
|
|
24
|
+
};
|
|
25
|
+
return new BindingOnSyntax(this._binding);
|
|
26
|
+
};
|
|
27
|
+
BindingWhenSyntax.prototype.whenTargetTagged = function (tag, value) {
|
|
28
|
+
this._binding.constraint = taggedConstraint(tag)(value);
|
|
29
|
+
return new BindingOnSyntax(this._binding);
|
|
30
|
+
};
|
|
31
|
+
BindingWhenSyntax.prototype.whenInjectedInto = function (parent) {
|
|
32
|
+
this._binding.constraint = function (request) {
|
|
33
|
+
return request !== null && typeConstraint(parent)(request.parentRequest);
|
|
34
|
+
};
|
|
35
|
+
return new BindingOnSyntax(this._binding);
|
|
36
|
+
};
|
|
37
|
+
BindingWhenSyntax.prototype.whenParentNamed = function (name) {
|
|
38
|
+
this._binding.constraint = function (request) {
|
|
39
|
+
return request !== null && namedConstraint(name)(request.parentRequest);
|
|
40
|
+
};
|
|
41
|
+
return new BindingOnSyntax(this._binding);
|
|
42
|
+
};
|
|
43
|
+
BindingWhenSyntax.prototype.whenParentTagged = function (tag, value) {
|
|
44
|
+
this._binding.constraint = function (request) {
|
|
45
|
+
return request !== null && taggedConstraint(tag)(value)(request.parentRequest);
|
|
46
|
+
};
|
|
47
|
+
return new BindingOnSyntax(this._binding);
|
|
48
|
+
};
|
|
49
|
+
BindingWhenSyntax.prototype.whenAnyAncestorIs = function (ancestor) {
|
|
50
|
+
this._binding.constraint = function (request) {
|
|
51
|
+
return request !== null && traverseAncerstors(request, typeConstraint(ancestor));
|
|
52
|
+
};
|
|
53
|
+
return new BindingOnSyntax(this._binding);
|
|
54
|
+
};
|
|
55
|
+
BindingWhenSyntax.prototype.whenNoAncestorIs = function (ancestor) {
|
|
56
|
+
this._binding.constraint = function (request) {
|
|
57
|
+
return request !== null && !traverseAncerstors(request, typeConstraint(ancestor));
|
|
58
|
+
};
|
|
59
|
+
return new BindingOnSyntax(this._binding);
|
|
60
|
+
};
|
|
61
|
+
BindingWhenSyntax.prototype.whenAnyAncestorNamed = function (name) {
|
|
62
|
+
this._binding.constraint = function (request) {
|
|
63
|
+
return request !== null && traverseAncerstors(request, namedConstraint(name));
|
|
64
|
+
};
|
|
65
|
+
return new BindingOnSyntax(this._binding);
|
|
66
|
+
};
|
|
67
|
+
BindingWhenSyntax.prototype.whenNoAncestorNamed = function (name) {
|
|
68
|
+
this._binding.constraint = function (request) {
|
|
69
|
+
return request !== null && !traverseAncerstors(request, namedConstraint(name));
|
|
70
|
+
};
|
|
71
|
+
return new BindingOnSyntax(this._binding);
|
|
72
|
+
};
|
|
73
|
+
BindingWhenSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {
|
|
74
|
+
this._binding.constraint = function (request) {
|
|
75
|
+
return request !== null && traverseAncerstors(request, taggedConstraint(tag)(value));
|
|
76
|
+
};
|
|
77
|
+
return new BindingOnSyntax(this._binding);
|
|
78
|
+
};
|
|
79
|
+
BindingWhenSyntax.prototype.whenNoAncestorTagged = function (tag, value) {
|
|
80
|
+
this._binding.constraint = function (request) {
|
|
81
|
+
return request !== null && !traverseAncerstors(request, taggedConstraint(tag)(value));
|
|
82
|
+
};
|
|
83
|
+
return new BindingOnSyntax(this._binding);
|
|
84
|
+
};
|
|
85
|
+
BindingWhenSyntax.prototype.whenAnyAncestorMatches = function (constraint) {
|
|
86
|
+
this._binding.constraint = function (request) {
|
|
87
|
+
return request !== null && traverseAncerstors(request, constraint);
|
|
88
|
+
};
|
|
89
|
+
return new BindingOnSyntax(this._binding);
|
|
90
|
+
};
|
|
91
|
+
BindingWhenSyntax.prototype.whenNoAncestorMatches = function (constraint) {
|
|
92
|
+
this._binding.constraint = function (request) {
|
|
93
|
+
return request !== null && !traverseAncerstors(request, constraint);
|
|
94
|
+
};
|
|
95
|
+
return new BindingOnSyntax(this._binding);
|
|
96
|
+
};
|
|
97
|
+
return BindingWhenSyntax;
|
|
98
|
+
}());
|
|
99
|
+
export { BindingWhenSyntax };
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import * as METADATA_KEY from '../constants/metadata_keys';
|
|
2
|
-
import { Metadata } from '../planning/metadata';
|
|
3
|
-
var traverseAncerstors = function (request, constraint) {
|
|
4
|
-
var parent = request.parentRequest;
|
|
5
|
-
if (parent !== null) {
|
|
6
|
-
return constraint(parent) ? true : traverseAncerstors(parent, constraint);
|
|
7
|
-
}
|
|
8
|
-
else {
|
|
9
|
-
return false;
|
|
10
|
-
}
|
|
11
|
-
};
|
|
12
|
-
var taggedConstraint = function (key) { return function (value) {
|
|
13
|
-
var constraint = function (request) {
|
|
14
|
-
return request !== null && request.target !== null && request.target.matchesTag(key)(value);
|
|
15
|
-
};
|
|
16
|
-
constraint.metaData = new Metadata(key, value);
|
|
17
|
-
return constraint;
|
|
18
|
-
}; };
|
|
19
|
-
var namedConstraint = taggedConstraint(METADATA_KEY.NAMED_TAG);
|
|
20
|
-
var typeConstraint = function (type) { return function (request) {
|
|
21
|
-
var binding = null;
|
|
22
|
-
if (request !== null) {
|
|
23
|
-
binding = request.bindings[0];
|
|
24
|
-
if (typeof type === 'string') {
|
|
25
|
-
var serviceIdentifier = binding.serviceIdentifier;
|
|
26
|
-
return serviceIdentifier === type;
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
var constructor = request.bindings[0].implementationType;
|
|
30
|
-
return type === constructor;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return false;
|
|
34
|
-
}; };
|
|
35
|
-
export { traverseAncerstors, taggedConstraint, namedConstraint, typeConstraint };
|
|
1
|
+
import * as METADATA_KEY from '../constants/metadata_keys';
|
|
2
|
+
import { Metadata } from '../planning/metadata';
|
|
3
|
+
var traverseAncerstors = function (request, constraint) {
|
|
4
|
+
var parent = request.parentRequest;
|
|
5
|
+
if (parent !== null) {
|
|
6
|
+
return constraint(parent) ? true : traverseAncerstors(parent, constraint);
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
var taggedConstraint = function (key) { return function (value) {
|
|
13
|
+
var constraint = function (request) {
|
|
14
|
+
return request !== null && request.target !== null && request.target.matchesTag(key)(value);
|
|
15
|
+
};
|
|
16
|
+
constraint.metaData = new Metadata(key, value);
|
|
17
|
+
return constraint;
|
|
18
|
+
}; };
|
|
19
|
+
var namedConstraint = taggedConstraint(METADATA_KEY.NAMED_TAG);
|
|
20
|
+
var typeConstraint = function (type) { return function (request) {
|
|
21
|
+
var binding = null;
|
|
22
|
+
if (request !== null) {
|
|
23
|
+
binding = request.bindings[0];
|
|
24
|
+
if (typeof type === 'string') {
|
|
25
|
+
var serviceIdentifier = binding.serviceIdentifier;
|
|
26
|
+
return serviceIdentifier === type;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
var constructor = request.bindings[0].implementationType;
|
|
30
|
+
return type === constructor;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return false;
|
|
34
|
+
}; };
|
|
35
|
+
export { traverseAncerstors, taggedConstraint, namedConstraint, typeConstraint };
|
package/es/utils/async.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
function isPromise(object) {
|
|
2
|
-
var isObjectOrFunction = (typeof object === 'object' && object !== null) || typeof object === 'function';
|
|
3
|
-
return isObjectOrFunction && typeof object.then === "function";
|
|
4
|
-
}
|
|
5
|
-
function isPromiseOrContainsPromise(object) {
|
|
6
|
-
if (isPromise(object)) {
|
|
7
|
-
return true;
|
|
8
|
-
}
|
|
9
|
-
return Array.isArray(object) && object.some(isPromise);
|
|
10
|
-
}
|
|
11
|
-
export { isPromise, isPromiseOrContainsPromise };
|
|
1
|
+
function isPromise(object) {
|
|
2
|
+
var isObjectOrFunction = (typeof object === 'object' && object !== null) || typeof object === 'function';
|
|
3
|
+
return isObjectOrFunction && typeof object.then === "function";
|
|
4
|
+
}
|
|
5
|
+
function isPromiseOrContainsPromise(object) {
|
|
6
|
+
if (isPromise(object)) {
|
|
7
|
+
return true;
|
|
8
|
+
}
|
|
9
|
+
return Array.isArray(object) && object.some(isPromise);
|
|
10
|
+
}
|
|
11
|
+
export { isPromise, isPromiseOrContainsPromise };
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import { getServiceIdentifierAsString } from '../utils/serialization';
|
|
2
|
-
import * as ERROR_MSGS from '../constants/error_msgs';
|
|
3
|
-
import { BindingTypeEnum } from '../constants/literal_types';
|
|
4
|
-
import { FactoryType } from './factory_type';
|
|
5
|
-
export var multiBindToService = function (container) {
|
|
6
|
-
return function (service) {
|
|
7
|
-
return function () {
|
|
8
|
-
var types = [];
|
|
9
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
10
|
-
types[_i] = arguments[_i];
|
|
11
|
-
}
|
|
12
|
-
return types.forEach(function (t) { return container.bind(t).toService(service); });
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
export var ensureFullyBound = function (binding) {
|
|
17
|
-
var boundValue = null;
|
|
18
|
-
switch (binding.type) {
|
|
19
|
-
case BindingTypeEnum.ConstantValue:
|
|
20
|
-
case BindingTypeEnum.Function:
|
|
21
|
-
boundValue = binding.cache;
|
|
22
|
-
break;
|
|
23
|
-
case BindingTypeEnum.Constructor:
|
|
24
|
-
case BindingTypeEnum.Instance:
|
|
25
|
-
boundValue = binding.implementationType;
|
|
26
|
-
break;
|
|
27
|
-
case BindingTypeEnum.DynamicValue:
|
|
28
|
-
boundValue = binding.dynamicValue;
|
|
29
|
-
break;
|
|
30
|
-
case BindingTypeEnum.Provider:
|
|
31
|
-
boundValue = binding.provider;
|
|
32
|
-
break;
|
|
33
|
-
case BindingTypeEnum.Factory:
|
|
34
|
-
boundValue = binding.factory;
|
|
35
|
-
break;
|
|
36
|
-
}
|
|
37
|
-
if (boundValue === null) {
|
|
38
|
-
var serviceIdentifierAsString = getServiceIdentifierAsString(binding.serviceIdentifier);
|
|
39
|
-
throw new Error(ERROR_MSGS.INVALID_BINDING_TYPE
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
export var getFactoryDetails = function (binding) {
|
|
43
|
-
switch (binding.type) {
|
|
44
|
-
case BindingTypeEnum.Factory:
|
|
45
|
-
return { factory: binding.factory, factoryType: FactoryType.Factory };
|
|
46
|
-
case BindingTypeEnum.Provider:
|
|
47
|
-
return { factory: binding.provider, factoryType: FactoryType.Provider };
|
|
48
|
-
case BindingTypeEnum.DynamicValue:
|
|
49
|
-
return { factory: binding.dynamicValue, factoryType: FactoryType.DynamicValue };
|
|
50
|
-
default:
|
|
51
|
-
throw new Error("Unexpected factory type "
|
|
52
|
-
}
|
|
53
|
-
};
|
|
1
|
+
import { getServiceIdentifierAsString } from '../utils/serialization';
|
|
2
|
+
import * as ERROR_MSGS from '../constants/error_msgs';
|
|
3
|
+
import { BindingTypeEnum } from '../constants/literal_types';
|
|
4
|
+
import { FactoryType } from './factory_type';
|
|
5
|
+
export var multiBindToService = function (container) {
|
|
6
|
+
return function (service) {
|
|
7
|
+
return function () {
|
|
8
|
+
var types = [];
|
|
9
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
10
|
+
types[_i] = arguments[_i];
|
|
11
|
+
}
|
|
12
|
+
return types.forEach(function (t) { return container.bind(t).toService(service); });
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export var ensureFullyBound = function (binding) {
|
|
17
|
+
var boundValue = null;
|
|
18
|
+
switch (binding.type) {
|
|
19
|
+
case BindingTypeEnum.ConstantValue:
|
|
20
|
+
case BindingTypeEnum.Function:
|
|
21
|
+
boundValue = binding.cache;
|
|
22
|
+
break;
|
|
23
|
+
case BindingTypeEnum.Constructor:
|
|
24
|
+
case BindingTypeEnum.Instance:
|
|
25
|
+
boundValue = binding.implementationType;
|
|
26
|
+
break;
|
|
27
|
+
case BindingTypeEnum.DynamicValue:
|
|
28
|
+
boundValue = binding.dynamicValue;
|
|
29
|
+
break;
|
|
30
|
+
case BindingTypeEnum.Provider:
|
|
31
|
+
boundValue = binding.provider;
|
|
32
|
+
break;
|
|
33
|
+
case BindingTypeEnum.Factory:
|
|
34
|
+
boundValue = binding.factory;
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
if (boundValue === null) {
|
|
38
|
+
var serviceIdentifierAsString = getServiceIdentifierAsString(binding.serviceIdentifier);
|
|
39
|
+
throw new Error("".concat(ERROR_MSGS.INVALID_BINDING_TYPE, " ").concat(serviceIdentifierAsString));
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
export var getFactoryDetails = function (binding) {
|
|
43
|
+
switch (binding.type) {
|
|
44
|
+
case BindingTypeEnum.Factory:
|
|
45
|
+
return { factory: binding.factory, factoryType: FactoryType.Factory };
|
|
46
|
+
case BindingTypeEnum.Provider:
|
|
47
|
+
return { factory: binding.provider, factoryType: FactoryType.Provider };
|
|
48
|
+
case BindingTypeEnum.DynamicValue:
|
|
49
|
+
return { factory: binding.dynamicValue, factoryType: FactoryType.DynamicValue };
|
|
50
|
+
default:
|
|
51
|
+
throw new Error("Unexpected factory type ".concat(binding.type));
|
|
52
|
+
}
|
|
53
|
+
};
|
package/es/utils/clonable.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
function isClonable(obj) {
|
|
2
|
-
return (typeof obj === 'object')
|
|
3
|
-
&& (obj !== null)
|
|
4
|
-
&& ('clone' in obj)
|
|
5
|
-
&& typeof obj.clone === 'function';
|
|
6
|
-
}
|
|
7
|
-
export { isClonable };
|
|
1
|
+
function isClonable(obj) {
|
|
2
|
+
return (typeof obj === 'object')
|
|
3
|
+
&& (obj !== null)
|
|
4
|
+
&& ('clone' in obj)
|
|
5
|
+
&& typeof obj.clone === 'function';
|
|
6
|
+
}
|
|
7
|
+
export { isClonable };
|
package/es/utils/exceptions.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import * as ERROR_MSGS from '../constants/error_msgs';
|
|
2
|
-
export function
|
|
3
|
-
return (error instanceof RangeError ||
|
|
4
|
-
error.message === ERROR_MSGS.STACK_OVERFLOW);
|
|
5
|
-
}
|
|
6
|
-
export var tryAndThrowErrorIfStackOverflow = function (fn, errorCallback) {
|
|
7
|
-
try {
|
|
8
|
-
return fn();
|
|
9
|
-
}
|
|
10
|
-
catch (error) {
|
|
11
|
-
if (
|
|
12
|
-
error = errorCallback();
|
|
13
|
-
}
|
|
14
|
-
throw error;
|
|
15
|
-
}
|
|
16
|
-
};
|
|
1
|
+
import * as ERROR_MSGS from '../constants/error_msgs';
|
|
2
|
+
export function isStackOverflowException(error) {
|
|
3
|
+
return (error instanceof RangeError ||
|
|
4
|
+
error.message === ERROR_MSGS.STACK_OVERFLOW);
|
|
5
|
+
}
|
|
6
|
+
export var tryAndThrowErrorIfStackOverflow = function (fn, errorCallback) {
|
|
7
|
+
try {
|
|
8
|
+
return fn();
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
if (isStackOverflowException(error)) {
|
|
12
|
+
error = errorCallback();
|
|
13
|
+
}
|
|
14
|
+
throw error;
|
|
15
|
+
}
|
|
16
|
+
};
|
package/es/utils/factory_type.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export var FactoryType;
|
|
2
|
-
(function (FactoryType) {
|
|
3
|
-
FactoryType["DynamicValue"] = "toDynamicValue";
|
|
4
|
-
FactoryType["Factory"] = "toFactory";
|
|
5
|
-
FactoryType["Provider"] = "toProvider";
|
|
6
|
-
})(FactoryType || (FactoryType = {}));
|
|
1
|
+
export var FactoryType;
|
|
2
|
+
(function (FactoryType) {
|
|
3
|
+
FactoryType["DynamicValue"] = "toDynamicValue";
|
|
4
|
+
FactoryType["Factory"] = "toFactory";
|
|
5
|
+
FactoryType["Provider"] = "toProvider";
|
|
6
|
+
})(FactoryType || (FactoryType = {}));
|
package/es/utils/id.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var idCounter = 0;
|
|
2
|
-
function id() {
|
|
3
|
-
return idCounter++;
|
|
4
|
-
}
|
|
5
|
-
export { id };
|
|
1
|
+
var idCounter = 0;
|
|
2
|
+
function id() {
|
|
3
|
+
return idCounter++;
|
|
4
|
+
}
|
|
5
|
+
export { id };
|
package/es/utils/js.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
export function getFirstArrayDuplicate(array) {
|
|
2
|
-
var seenValues = new Set();
|
|
3
|
-
for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {
|
|
4
|
-
var entry = array_1[_i];
|
|
5
|
-
if (seenValues.has(entry)) {
|
|
6
|
-
return entry;
|
|
7
|
-
}
|
|
8
|
-
else {
|
|
9
|
-
seenValues.add(entry);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
return undefined;
|
|
13
|
-
}
|
|
1
|
+
export function getFirstArrayDuplicate(array) {
|
|
2
|
+
var seenValues = new Set();
|
|
3
|
+
for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {
|
|
4
|
+
var entry = array_1[_i];
|
|
5
|
+
if (seenValues.has(entry)) {
|
|
6
|
+
return entry;
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
seenValues.add(entry);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|