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