inversify 6.1.2 → 6.1.4-beta.0
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 +10 -0
- package/amd/annotation/decorator_utils.d.ts +16 -0
- package/amd/annotation/inject.d.ts +5 -0
- package/amd/annotation/inject_base.d.ts +4 -0
- package/amd/annotation/injectable.d.ts +2 -0
- package/amd/annotation/multi_inject.d.ts +5 -0
- package/amd/annotation/named.d.ts +2 -0
- package/amd/annotation/optional.d.ts +2 -0
- package/amd/annotation/post_construct.d.ts +4 -0
- package/amd/annotation/pre_destroy.d.ts +4 -0
- package/amd/annotation/property_event_decorator.d.ts +4 -0
- package/amd/annotation/tagged.d.ts +2 -0
- package/amd/annotation/target_name.d.ts +3 -0
- package/amd/annotation/unmanaged.d.ts +3 -0
- package/amd/bindings/binding.d.ts +20 -0
- package/amd/bindings/binding_count.d.ts +5 -0
- package/amd/constants/error_msgs.d.ts +30 -0
- package/amd/constants/error_msgs.js +3 -2
- package/amd/constants/literal_types.d.ts +5 -0
- package/amd/constants/metadata_keys.d.ts +13 -0
- package/amd/container/container.d.ts +73 -0
- package/amd/container/container_module.d.ts +11 -0
- package/amd/container/container_snapshot.d.ts +10 -0
- package/amd/container/lookup.d.ts +17 -0
- package/amd/container/module_activation_store.d.ts +10 -0
- package/amd/interfaces/interfaces.d.ts +269 -0
- package/amd/inversify.d.ts +24 -0
- package/amd/planning/context.d.ts +11 -0
- package/amd/planning/metadata.d.ts +8 -0
- package/amd/planning/metadata_reader.d.ts +6 -0
- package/amd/planning/plan.d.ts +7 -0
- package/amd/planning/planner.d.ts +5 -0
- package/amd/planning/planner.js +5 -2
- package/amd/planning/queryable_string.d.ts +10 -0
- package/amd/planning/reflection_utils.d.ts +5 -0
- package/amd/planning/request.d.ts +14 -0
- package/amd/resolution/instantiation.d.ts +3 -0
- package/amd/resolution/resolver.d.ts +3 -0
- package/amd/scope/scope.d.ts +3 -0
- package/amd/syntax/binding_in_syntax.d.ts +9 -0
- package/amd/syntax/binding_in_when_on_syntax.d.ts +29 -0
- package/amd/syntax/binding_on_syntax.d.ts +8 -0
- package/amd/syntax/binding_to_syntax.d.ts +18 -0
- package/amd/syntax/binding_when_on_syntax.d.ts +25 -0
- package/amd/syntax/binding_when_syntax.d.ts +21 -0
- package/amd/syntax/constraint_helpers.d.ts +6 -0
- package/amd/utils/async.d.ts +3 -0
- package/amd/utils/binding_utils.d.ts +4 -0
- package/amd/utils/clonable.d.ts +3 -0
- package/amd/utils/exceptions.d.ts +2 -0
- package/amd/utils/factory_type.d.ts +5 -0
- package/amd/utils/id.d.ts +2 -0
- package/amd/utils/js.d.ts +1 -0
- package/amd/utils/serialization.d.ts +10 -0
- package/es/annotation/decorator_utils.d.ts +16 -0
- package/es/annotation/inject.d.ts +5 -0
- package/es/annotation/inject_base.d.ts +4 -0
- package/es/annotation/injectable.d.ts +2 -0
- package/es/annotation/multi_inject.d.ts +5 -0
- package/es/annotation/named.d.ts +2 -0
- package/es/annotation/optional.d.ts +2 -0
- package/es/annotation/post_construct.d.ts +4 -0
- package/es/annotation/pre_destroy.d.ts +4 -0
- package/es/annotation/property_event_decorator.d.ts +4 -0
- package/es/annotation/tagged.d.ts +2 -0
- package/es/annotation/target_name.d.ts +3 -0
- package/es/annotation/unmanaged.d.ts +3 -0
- package/es/bindings/binding.d.ts +20 -0
- package/es/bindings/binding_count.d.ts +5 -0
- package/es/constants/error_msgs.d.ts +30 -0
- package/es/constants/error_msgs.js +1 -1
- package/es/constants/literal_types.d.ts +5 -0
- package/es/constants/metadata_keys.d.ts +13 -0
- package/es/container/container.d.ts +73 -0
- package/es/container/container_module.d.ts +11 -0
- package/es/container/container_snapshot.d.ts +10 -0
- package/es/container/lookup.d.ts +17 -0
- package/es/container/module_activation_store.d.ts +10 -0
- package/es/interfaces/interfaces.d.ts +269 -0
- package/es/inversify.d.ts +24 -0
- package/es/package.json +3 -0
- package/es/planning/context.d.ts +11 -0
- package/es/planning/metadata.d.ts +8 -0
- package/es/planning/metadata_reader.d.ts +6 -0
- package/es/planning/plan.d.ts +7 -0
- package/es/planning/planner.d.ts +5 -0
- package/es/planning/planner.js +5 -2
- package/es/planning/queryable_string.d.ts +10 -0
- package/es/planning/reflection_utils.d.ts +5 -0
- package/es/planning/request.d.ts +14 -0
- package/es/resolution/instantiation.d.ts +3 -0
- package/es/resolution/resolver.d.ts +3 -0
- package/es/scope/scope.d.ts +3 -0
- package/es/syntax/binding_in_syntax.d.ts +9 -0
- package/es/syntax/binding_in_when_on_syntax.d.ts +29 -0
- package/es/syntax/binding_on_syntax.d.ts +8 -0
- package/es/syntax/binding_to_syntax.d.ts +18 -0
- package/es/syntax/binding_when_on_syntax.d.ts +25 -0
- package/es/syntax/binding_when_syntax.d.ts +21 -0
- package/es/syntax/constraint_helpers.d.ts +6 -0
- package/es/utils/async.d.ts +3 -0
- package/es/utils/binding_utils.d.ts +4 -0
- package/es/utils/clonable.d.ts +3 -0
- package/es/utils/exceptions.d.ts +2 -0
- package/es/utils/factory_type.d.ts +5 -0
- package/es/utils/id.d.ts +2 -0
- package/es/utils/js.d.ts +1 -0
- package/es/utils/serialization.d.ts +10 -0
- package/es6/annotation/decorator_utils.d.ts +16 -0
- package/es6/annotation/inject.d.ts +5 -0
- package/es6/annotation/inject_base.d.ts +4 -0
- package/es6/annotation/injectable.d.ts +2 -0
- package/es6/annotation/multi_inject.d.ts +5 -0
- package/es6/annotation/named.d.ts +2 -0
- package/es6/annotation/optional.d.ts +2 -0
- package/es6/annotation/post_construct.d.ts +4 -0
- package/es6/annotation/pre_destroy.d.ts +4 -0
- package/es6/annotation/property_event_decorator.d.ts +4 -0
- package/es6/annotation/tagged.d.ts +2 -0
- package/es6/annotation/target_name.d.ts +3 -0
- package/es6/annotation/unmanaged.d.ts +3 -0
- package/es6/bindings/binding.d.ts +20 -0
- package/es6/bindings/binding_count.d.ts +5 -0
- package/es6/constants/error_msgs.d.ts +30 -0
- package/es6/constants/error_msgs.js +3 -2
- package/es6/constants/literal_types.d.ts +5 -0
- package/es6/constants/metadata_keys.d.ts +13 -0
- package/es6/container/container.d.ts +73 -0
- package/es6/container/container_module.d.ts +11 -0
- package/es6/container/container_snapshot.d.ts +10 -0
- package/es6/container/lookup.d.ts +17 -0
- package/es6/container/module_activation_store.d.ts +10 -0
- package/es6/interfaces/interfaces.d.ts +269 -0
- package/es6/inversify.d.ts +24 -0
- package/es6/planning/context.d.ts +11 -0
- package/es6/planning/metadata.d.ts +8 -0
- package/es6/planning/metadata_reader.d.ts +6 -0
- package/es6/planning/plan.d.ts +7 -0
- package/es6/planning/planner.d.ts +5 -0
- package/es6/planning/planner.js +5 -2
- package/es6/planning/queryable_string.d.ts +10 -0
- package/es6/planning/reflection_utils.d.ts +5 -0
- package/es6/planning/request.d.ts +14 -0
- package/es6/resolution/instantiation.d.ts +3 -0
- package/es6/resolution/resolver.d.ts +3 -0
- package/es6/scope/scope.d.ts +3 -0
- package/es6/syntax/binding_in_syntax.d.ts +9 -0
- package/es6/syntax/binding_in_when_on_syntax.d.ts +29 -0
- package/es6/syntax/binding_on_syntax.d.ts +8 -0
- package/es6/syntax/binding_to_syntax.d.ts +18 -0
- package/es6/syntax/binding_when_on_syntax.d.ts +25 -0
- package/es6/syntax/binding_when_syntax.d.ts +21 -0
- package/es6/syntax/constraint_helpers.d.ts +6 -0
- package/es6/utils/async.d.ts +3 -0
- package/es6/utils/binding_utils.d.ts +4 -0
- package/es6/utils/clonable.d.ts +3 -0
- package/es6/utils/exceptions.d.ts +2 -0
- package/es6/utils/factory_type.d.ts +5 -0
- package/es6/utils/id.d.ts +2 -0
- package/es6/utils/js.d.ts +1 -0
- package/es6/utils/serialization.d.ts +10 -0
- package/lib/constants/error_msgs.d.ts +1 -1
- package/lib/constants/error_msgs.js +3 -2
- package/lib/planning/planner.js +5 -2
- package/package.json +2 -2
package/es6/planning/planner.js
CHANGED
|
@@ -70,7 +70,7 @@ function _getActiveBindings(metadataReader, avoidConstraints, context, parentReq
|
|
|
70
70
|
else {
|
|
71
71
|
activeBindings = bindings;
|
|
72
72
|
}
|
|
73
|
-
_validateActiveBindingCount(target.serviceIdentifier, activeBindings, target, context.container);
|
|
73
|
+
_validateActiveBindingCount(target.serviceIdentifier, activeBindings, parentRequest, target, context.container);
|
|
74
74
|
return activeBindings;
|
|
75
75
|
}
|
|
76
76
|
function _getTargetMetadata(isMultiInject, serviceIdentifier, key, value) {
|
|
@@ -85,7 +85,7 @@ function _getTargetMetadata(isMultiInject, serviceIdentifier, key, value) {
|
|
|
85
85
|
}
|
|
86
86
|
return metadataList;
|
|
87
87
|
}
|
|
88
|
-
function _validateActiveBindingCount(serviceIdentifier, bindings, target, container) {
|
|
88
|
+
function _validateActiveBindingCount(serviceIdentifier, bindings, parentRequest, target, container) {
|
|
89
89
|
switch (bindings.length) {
|
|
90
90
|
case binding_count_1.BindingCount.NoBindingsAvailable:
|
|
91
91
|
if (target.isOptional()) {
|
|
@@ -96,6 +96,9 @@ function _validateActiveBindingCount(serviceIdentifier, bindings, target, contai
|
|
|
96
96
|
let msg = ERROR_MSGS.NOT_REGISTERED;
|
|
97
97
|
msg += (0, serialization_1.listMetadataForTarget)(serviceIdentifierString, target);
|
|
98
98
|
msg += (0, serialization_1.listRegisteredBindingsForServiceIdentifier)(container, serviceIdentifierString, getBindings);
|
|
99
|
+
if (parentRequest !== null) {
|
|
100
|
+
msg += `\n${ERROR_MSGS.TRYING_TO_RESOLVE_BINDINGS((0, serialization_1.getServiceIdentifierAsString)(parentRequest.serviceIdentifier))}`;
|
|
101
|
+
}
|
|
99
102
|
throw new Error(msg);
|
|
100
103
|
}
|
|
101
104
|
case binding_count_1.BindingCount.OnlyOneBindingAvailable:
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { interfaces } from '../interfaces/interfaces';
|
|
2
|
+
export declare class QueryableString implements interfaces.QueryableString {
|
|
3
|
+
private readonly str;
|
|
4
|
+
constructor(str: string);
|
|
5
|
+
startsWith(searchString: string): boolean;
|
|
6
|
+
endsWith(searchString: string): boolean;
|
|
7
|
+
contains(searchString: string): boolean;
|
|
8
|
+
equals(compareString: string): boolean;
|
|
9
|
+
value(): string;
|
|
10
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { interfaces } from '../interfaces/interfaces';
|
|
2
|
+
import { getFunctionName } from '../utils/serialization';
|
|
3
|
+
declare function getDependencies(metadataReader: interfaces.MetadataReader, func: NewableFunction): interfaces.Target[];
|
|
4
|
+
declare function getBaseClassDependencyCount(metadataReader: interfaces.MetadataReader, func: NewableFunction): number;
|
|
5
|
+
export { getDependencies, getBaseClassDependencyCount, getFunctionName };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { interfaces } from '../interfaces/interfaces';
|
|
2
|
+
declare class Request implements interfaces.Request {
|
|
3
|
+
id: number;
|
|
4
|
+
serviceIdentifier: interfaces.ServiceIdentifier;
|
|
5
|
+
parentContext: interfaces.Context;
|
|
6
|
+
parentRequest: interfaces.Request | null;
|
|
7
|
+
bindings: interfaces.Binding<unknown>[];
|
|
8
|
+
childRequests: interfaces.Request[];
|
|
9
|
+
target: interfaces.Target;
|
|
10
|
+
requestScope: interfaces.RequestScope | null;
|
|
11
|
+
constructor(serviceIdentifier: interfaces.ServiceIdentifier, parentContext: interfaces.Context, parentRequest: interfaces.Request | null, bindings: interfaces.Binding<any> | interfaces.Binding<any>[], target: interfaces.Target);
|
|
12
|
+
addChildRequest(serviceIdentifier: interfaces.ServiceIdentifier, bindings: interfaces.Binding<unknown> | interfaces.Binding<unknown>[], target: interfaces.Target): interfaces.Request;
|
|
13
|
+
}
|
|
14
|
+
export { Request };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { interfaces } from '../interfaces/interfaces';
|
|
2
|
+
declare function resolveInstance<T>(binding: interfaces.Binding<T>, constr: interfaces.Newable<T>, childRequests: interfaces.Request[], resolveRequest: interfaces.ResolveRequestHandler): T | Promise<T>;
|
|
3
|
+
export { resolveInstance };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { interfaces } from '../interfaces/interfaces';
|
|
2
|
+
export declare const tryGetFromScope: <T>(requestScope: interfaces.RequestScope, binding: interfaces.Binding<T>) => T | Promise<T> | null;
|
|
3
|
+
export declare const saveToScope: <T>(requestScope: interfaces.RequestScope, binding: interfaces.Binding<T>, result: T | Promise<T>) => void;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { interfaces } from '../interfaces/interfaces';
|
|
2
|
+
declare class BindingInSyntax<T> implements interfaces.BindingInSyntax<T> {
|
|
3
|
+
private readonly _binding;
|
|
4
|
+
constructor(binding: interfaces.Binding<T>);
|
|
5
|
+
inRequestScope(): interfaces.BindingWhenOnSyntax<T>;
|
|
6
|
+
inSingletonScope(): interfaces.BindingWhenOnSyntax<T>;
|
|
7
|
+
inTransientScope(): interfaces.BindingWhenOnSyntax<T>;
|
|
8
|
+
}
|
|
9
|
+
export { BindingInSyntax };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { interfaces } from '../interfaces/interfaces';
|
|
2
|
+
declare class BindingInWhenOnSyntax<T> implements interfaces.BindingInSyntax<T>, interfaces.BindingWhenSyntax<T>, interfaces.BindingOnSyntax<T> {
|
|
3
|
+
private readonly _bindingInSyntax;
|
|
4
|
+
private readonly _bindingWhenSyntax;
|
|
5
|
+
private readonly _bindingOnSyntax;
|
|
6
|
+
private readonly _binding;
|
|
7
|
+
constructor(binding: interfaces.Binding<T>);
|
|
8
|
+
inRequestScope(): interfaces.BindingWhenOnSyntax<T>;
|
|
9
|
+
inSingletonScope(): interfaces.BindingWhenOnSyntax<T>;
|
|
10
|
+
inTransientScope(): interfaces.BindingWhenOnSyntax<T>;
|
|
11
|
+
when(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T>;
|
|
12
|
+
whenTargetNamed(name: string): interfaces.BindingOnSyntax<T>;
|
|
13
|
+
whenTargetIsDefault(): interfaces.BindingOnSyntax<T>;
|
|
14
|
+
whenTargetTagged(tag: string, value: unknown): interfaces.BindingOnSyntax<T>;
|
|
15
|
+
whenInjectedInto(parent: NewableFunction | string): interfaces.BindingOnSyntax<T>;
|
|
16
|
+
whenParentNamed(name: string): interfaces.BindingOnSyntax<T>;
|
|
17
|
+
whenParentTagged(tag: string, value: unknown): interfaces.BindingOnSyntax<T>;
|
|
18
|
+
whenAnyAncestorIs(ancestor: NewableFunction | string): interfaces.BindingOnSyntax<T>;
|
|
19
|
+
whenNoAncestorIs(ancestor: NewableFunction | string): interfaces.BindingOnSyntax<T>;
|
|
20
|
+
whenAnyAncestorNamed(name: string): interfaces.BindingOnSyntax<T>;
|
|
21
|
+
whenAnyAncestorTagged(tag: string, value: unknown): interfaces.BindingOnSyntax<T>;
|
|
22
|
+
whenNoAncestorNamed(name: string): interfaces.BindingOnSyntax<T>;
|
|
23
|
+
whenNoAncestorTagged(tag: string, value: unknown): interfaces.BindingOnSyntax<T>;
|
|
24
|
+
whenAnyAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T>;
|
|
25
|
+
whenNoAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T>;
|
|
26
|
+
onActivation(handler: (context: interfaces.Context, injectable: T) => T | Promise<T>): interfaces.BindingWhenSyntax<T>;
|
|
27
|
+
onDeactivation(handler: (injectable: T) => void | Promise<void>): interfaces.BindingWhenSyntax<T>;
|
|
28
|
+
}
|
|
29
|
+
export { BindingInWhenOnSyntax };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { interfaces } from '../interfaces/interfaces';
|
|
2
|
+
declare class BindingOnSyntax<T> implements interfaces.BindingOnSyntax<T> {
|
|
3
|
+
private readonly _binding;
|
|
4
|
+
constructor(binding: interfaces.Binding<T>);
|
|
5
|
+
onActivation(handler: interfaces.BindingActivation<T>): interfaces.BindingWhenSyntax<T>;
|
|
6
|
+
onDeactivation(handler: interfaces.BindingDeactivation<T>): interfaces.BindingWhenSyntax<T>;
|
|
7
|
+
}
|
|
8
|
+
export { BindingOnSyntax };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { interfaces } from '../interfaces/interfaces';
|
|
2
|
+
import { BindingWhenOnSyntax } from './binding_when_on_syntax';
|
|
3
|
+
declare class BindingToSyntax<T> implements interfaces.BindingToSyntax<T> {
|
|
4
|
+
private readonly _binding;
|
|
5
|
+
constructor(binding: interfaces.Binding<T>);
|
|
6
|
+
to(constructor: interfaces.Newable<T>): interfaces.BindingInWhenOnSyntax<T>;
|
|
7
|
+
toSelf(): interfaces.BindingInWhenOnSyntax<T>;
|
|
8
|
+
toConstantValue(value: T): interfaces.BindingWhenOnSyntax<T>;
|
|
9
|
+
toDynamicValue(func: interfaces.DynamicValue<T>): interfaces.BindingInWhenOnSyntax<T>;
|
|
10
|
+
toConstructor<T2>(constructor: interfaces.Newable<T2>): interfaces.BindingWhenOnSyntax<T>;
|
|
11
|
+
toFactory<T2>(factory: interfaces.FactoryCreator<T2>): interfaces.BindingWhenOnSyntax<T>;
|
|
12
|
+
toFunction(func: T): interfaces.BindingWhenOnSyntax<T>;
|
|
13
|
+
toAutoFactory<T2>(serviceIdentifier: interfaces.ServiceIdentifier<T2>): interfaces.BindingWhenOnSyntax<T>;
|
|
14
|
+
toAutoNamedFactory<T2>(serviceIdentifier: interfaces.ServiceIdentifier<T2>): BindingWhenOnSyntax<T>;
|
|
15
|
+
toProvider<T2>(provider: interfaces.ProviderCreator<T2>): interfaces.BindingWhenOnSyntax<T>;
|
|
16
|
+
toService(service: interfaces.ServiceIdentifier<T>): void;
|
|
17
|
+
}
|
|
18
|
+
export { BindingToSyntax };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { interfaces } from '../interfaces/interfaces';
|
|
2
|
+
declare class BindingWhenOnSyntax<T> implements interfaces.BindingWhenSyntax<T>, interfaces.BindingOnSyntax<T> {
|
|
3
|
+
private readonly _bindingWhenSyntax;
|
|
4
|
+
private readonly _bindingOnSyntax;
|
|
5
|
+
private readonly _binding;
|
|
6
|
+
constructor(binding: interfaces.Binding<T>);
|
|
7
|
+
when(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T>;
|
|
8
|
+
whenTargetNamed(name: string): interfaces.BindingOnSyntax<T>;
|
|
9
|
+
whenTargetIsDefault(): interfaces.BindingOnSyntax<T>;
|
|
10
|
+
whenTargetTagged(tag: string, value: unknown): interfaces.BindingOnSyntax<T>;
|
|
11
|
+
whenInjectedInto(parent: NewableFunction | string): interfaces.BindingOnSyntax<T>;
|
|
12
|
+
whenParentNamed(name: string): interfaces.BindingOnSyntax<T>;
|
|
13
|
+
whenParentTagged(tag: string, value: unknown): interfaces.BindingOnSyntax<T>;
|
|
14
|
+
whenAnyAncestorIs(ancestor: NewableFunction | string): interfaces.BindingOnSyntax<T>;
|
|
15
|
+
whenNoAncestorIs(ancestor: NewableFunction | string): interfaces.BindingOnSyntax<T>;
|
|
16
|
+
whenAnyAncestorNamed(name: string): interfaces.BindingOnSyntax<T>;
|
|
17
|
+
whenAnyAncestorTagged(tag: string, value: unknown): interfaces.BindingOnSyntax<T>;
|
|
18
|
+
whenNoAncestorNamed(name: string): interfaces.BindingOnSyntax<T>;
|
|
19
|
+
whenNoAncestorTagged(tag: string, value: unknown): interfaces.BindingOnSyntax<T>;
|
|
20
|
+
whenAnyAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T>;
|
|
21
|
+
whenNoAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T>;
|
|
22
|
+
onActivation(handler: (context: interfaces.Context, injectable: T) => T): interfaces.BindingWhenSyntax<T>;
|
|
23
|
+
onDeactivation(handler: (injectable: T) => Promise<void> | void): interfaces.BindingWhenSyntax<T>;
|
|
24
|
+
}
|
|
25
|
+
export { BindingWhenOnSyntax };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { interfaces } from '../interfaces/interfaces';
|
|
2
|
+
declare class BindingWhenSyntax<T> implements interfaces.BindingWhenSyntax<T> {
|
|
3
|
+
private readonly _binding;
|
|
4
|
+
constructor(binding: interfaces.Binding<T>);
|
|
5
|
+
when(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T>;
|
|
6
|
+
whenTargetNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T>;
|
|
7
|
+
whenTargetIsDefault(): interfaces.BindingOnSyntax<T>;
|
|
8
|
+
whenTargetTagged(tag: string | number | symbol, value: unknown): interfaces.BindingOnSyntax<T>;
|
|
9
|
+
whenInjectedInto(parent: NewableFunction | string): interfaces.BindingOnSyntax<T>;
|
|
10
|
+
whenParentNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T>;
|
|
11
|
+
whenParentTagged(tag: string | number | symbol, value: unknown): interfaces.BindingOnSyntax<T>;
|
|
12
|
+
whenAnyAncestorIs(ancestor: NewableFunction | string): interfaces.BindingOnSyntax<T>;
|
|
13
|
+
whenNoAncestorIs(ancestor: NewableFunction | string): interfaces.BindingOnSyntax<T>;
|
|
14
|
+
whenAnyAncestorNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T>;
|
|
15
|
+
whenNoAncestorNamed(name: string | number | symbol): interfaces.BindingOnSyntax<T>;
|
|
16
|
+
whenAnyAncestorTagged(tag: string | number | symbol, value: unknown): interfaces.BindingOnSyntax<T>;
|
|
17
|
+
whenNoAncestorTagged(tag: string | number | symbol, value: unknown): interfaces.BindingOnSyntax<T>;
|
|
18
|
+
whenAnyAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T>;
|
|
19
|
+
whenNoAncestorMatches(constraint: (request: interfaces.Request) => boolean): interfaces.BindingOnSyntax<T>;
|
|
20
|
+
}
|
|
21
|
+
export { BindingWhenSyntax };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { interfaces } from '../interfaces/interfaces';
|
|
2
|
+
declare const traverseAncerstors: (request: interfaces.Request, constraint: interfaces.ConstraintFunction) => boolean;
|
|
3
|
+
declare const taggedConstraint: (key: string | number | symbol) => (value: unknown) => interfaces.ConstraintFunction;
|
|
4
|
+
declare const namedConstraint: (value: unknown) => interfaces.ConstraintFunction;
|
|
5
|
+
declare const typeConstraint: (type: NewableFunction | string) => (request: interfaces.Request | null) => boolean;
|
|
6
|
+
export { traverseAncerstors, taggedConstraint, namedConstraint, typeConstraint, };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { interfaces } from '../interfaces/interfaces';
|
|
2
|
+
export declare const multiBindToService: (container: interfaces.Container) => (service: interfaces.ServiceIdentifier) => (...types: interfaces.ServiceIdentifier[]) => void;
|
|
3
|
+
export declare const ensureFullyBound: <T = unknown>(binding: interfaces.Binding<T>) => void;
|
|
4
|
+
export declare const getFactoryDetails: <T = unknown>(binding: interfaces.Binding<T>) => interfaces.FactoryDetails;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getFirstArrayDuplicate<T>(array: T[]): T | undefined;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { interfaces } from '../interfaces/interfaces';
|
|
2
|
+
declare function getServiceIdentifierAsString(serviceIdentifier: interfaces.ServiceIdentifier): string;
|
|
3
|
+
declare function listRegisteredBindingsForServiceIdentifier(container: interfaces.Container, serviceIdentifier: string, getBindings: <T>(container: interfaces.Container, serviceIdentifier: interfaces.ServiceIdentifier<T>) => interfaces.Binding<T>[]): string;
|
|
4
|
+
declare function circularDependencyToException(request: interfaces.Request): void;
|
|
5
|
+
declare function listMetadataForTarget(serviceIdentifierString: string, target: interfaces.Target): string;
|
|
6
|
+
declare function getFunctionName(func: {
|
|
7
|
+
name: string | null | undefined;
|
|
8
|
+
}): string;
|
|
9
|
+
declare function getSymbolDescription(symbol: symbol): string;
|
|
10
|
+
export { getFunctionName, getServiceIdentifierAsString, listRegisteredBindingsForServiceIdentifier, listMetadataForTarget, circularDependencyToException, getSymbolDescription, };
|
|
@@ -5,7 +5,7 @@ export declare const KEY_NOT_FOUND: string;
|
|
|
5
5
|
export declare const AMBIGUOUS_MATCH: string;
|
|
6
6
|
export declare const CANNOT_UNBIND: string;
|
|
7
7
|
export declare const NOT_REGISTERED: string;
|
|
8
|
-
export declare const
|
|
8
|
+
export declare const TRYING_TO_RESOLVE_BINDINGS: (name: string) => string;
|
|
9
9
|
export declare const UNDEFINED_INJECT_ANNOTATION: (name: string) => string;
|
|
10
10
|
export declare const CIRCULAR_DEPENDENCY: string;
|
|
11
11
|
export declare const INVALID_BINDING_TYPE: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.STACK_OVERFLOW = exports.CIRCULAR_DEPENDENCY_IN_FACTORY = exports.ON_DEACTIVATION_ERROR = exports.PRE_DESTROY_ERROR = exports.POST_CONSTRUCT_ERROR = exports.ASYNC_UNBIND_REQUIRED = exports.MULTIPLE_POST_CONSTRUCT_METHODS = exports.MULTIPLE_PRE_DESTROY_METHODS = exports.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK = exports.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE = exports.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE = exports.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT = exports.ARGUMENTS_LENGTH_MISMATCH = exports.INVALID_DECORATOR_OPERATION = exports.INVALID_TO_SELF_VALUE = exports.LAZY_IN_SYNC = exports.INVALID_FUNCTION_BINDING = exports.INVALID_MIDDLEWARE_RETURN = exports.NO_MORE_SNAPSHOTS_AVAILABLE = exports.INVALID_BINDING_TYPE = exports.CIRCULAR_DEPENDENCY = exports.UNDEFINED_INJECT_ANNOTATION = exports.
|
|
3
|
+
exports.STACK_OVERFLOW = exports.CIRCULAR_DEPENDENCY_IN_FACTORY = exports.ON_DEACTIVATION_ERROR = exports.PRE_DESTROY_ERROR = exports.POST_CONSTRUCT_ERROR = exports.ASYNC_UNBIND_REQUIRED = exports.MULTIPLE_POST_CONSTRUCT_METHODS = exports.MULTIPLE_PRE_DESTROY_METHODS = exports.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK = exports.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE = exports.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE = exports.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT = exports.ARGUMENTS_LENGTH_MISMATCH = exports.INVALID_DECORATOR_OPERATION = exports.INVALID_TO_SELF_VALUE = exports.LAZY_IN_SYNC = exports.INVALID_FUNCTION_BINDING = exports.INVALID_MIDDLEWARE_RETURN = exports.NO_MORE_SNAPSHOTS_AVAILABLE = exports.INVALID_BINDING_TYPE = exports.CIRCULAR_DEPENDENCY = exports.UNDEFINED_INJECT_ANNOTATION = exports.TRYING_TO_RESOLVE_BINDINGS = exports.NOT_REGISTERED = exports.CANNOT_UNBIND = exports.AMBIGUOUS_MATCH = exports.KEY_NOT_FOUND = exports.NULL_ARGUMENT = exports.DUPLICATED_METADATA = exports.DUPLICATED_INJECTABLE_DECORATOR = void 0;
|
|
4
4
|
exports.DUPLICATED_INJECTABLE_DECORATOR = 'Cannot apply @injectable decorator multiple times.';
|
|
5
5
|
exports.DUPLICATED_METADATA = 'Metadata key was used more than once in a parameter:';
|
|
6
6
|
exports.NULL_ARGUMENT = 'NULL argument';
|
|
@@ -8,7 +8,8 @@ exports.KEY_NOT_FOUND = 'Key Not Found';
|
|
|
8
8
|
exports.AMBIGUOUS_MATCH = 'Ambiguous match found for serviceIdentifier:';
|
|
9
9
|
exports.CANNOT_UNBIND = 'Could not unbind serviceIdentifier:';
|
|
10
10
|
exports.NOT_REGISTERED = 'No matching bindings found for serviceIdentifier:';
|
|
11
|
-
|
|
11
|
+
var TRYING_TO_RESOLVE_BINDINGS = function (name) { return "Trying to resolve bindings for \"".concat(name, "\""); };
|
|
12
|
+
exports.TRYING_TO_RESOLVE_BINDINGS = TRYING_TO_RESOLVE_BINDINGS;
|
|
12
13
|
var UNDEFINED_INJECT_ANNOTATION = function (name) {
|
|
13
14
|
return "@inject called with undefined this could mean that the class ".concat(name, " has ") +
|
|
14
15
|
'a circular dependency problem. You can use a LazyServiceIdentifer to ' +
|
package/lib/planning/planner.js
CHANGED
|
@@ -70,7 +70,7 @@ function _getActiveBindings(metadataReader, avoidConstraints, context, parentReq
|
|
|
70
70
|
else {
|
|
71
71
|
activeBindings = bindings;
|
|
72
72
|
}
|
|
73
|
-
_validateActiveBindingCount(target.serviceIdentifier, activeBindings, target, context.container);
|
|
73
|
+
_validateActiveBindingCount(target.serviceIdentifier, activeBindings, parentRequest, target, context.container);
|
|
74
74
|
return activeBindings;
|
|
75
75
|
}
|
|
76
76
|
function _getTargetMetadata(isMultiInject, serviceIdentifier, key, value) {
|
|
@@ -85,7 +85,7 @@ function _getTargetMetadata(isMultiInject, serviceIdentifier, key, value) {
|
|
|
85
85
|
}
|
|
86
86
|
return metadataList;
|
|
87
87
|
}
|
|
88
|
-
function _validateActiveBindingCount(serviceIdentifier, bindings, target, container) {
|
|
88
|
+
function _validateActiveBindingCount(serviceIdentifier, bindings, parentRequest, target, container) {
|
|
89
89
|
switch (bindings.length) {
|
|
90
90
|
case binding_count_1.BindingCount.NoBindingsAvailable:
|
|
91
91
|
if (target.isOptional()) {
|
|
@@ -96,6 +96,9 @@ function _validateActiveBindingCount(serviceIdentifier, bindings, target, contai
|
|
|
96
96
|
var msg = ERROR_MSGS.NOT_REGISTERED;
|
|
97
97
|
msg += (0, serialization_1.listMetadataForTarget)(serviceIdentifierString, target);
|
|
98
98
|
msg += (0, serialization_1.listRegisteredBindingsForServiceIdentifier)(container, serviceIdentifierString, getBindings);
|
|
99
|
+
if (parentRequest !== null) {
|
|
100
|
+
msg += "\n".concat(ERROR_MSGS.TRYING_TO_RESOLVE_BINDINGS((0, serialization_1.getServiceIdentifierAsString)(parentRequest.serviceIdentifier)));
|
|
101
|
+
}
|
|
99
102
|
throw new Error(msg);
|
|
100
103
|
}
|
|
101
104
|
case binding_count_1.BindingCount.OnlyOneBindingAvailable:
|
package/package.json
CHANGED
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"scripts": {
|
|
63
63
|
"build": "npm run build:lib && npm run build:amd && npm run build:es && npm run build:es6",
|
|
64
64
|
"build:amd": "tsc -p src/tsconfig-amd.json",
|
|
65
|
-
"build:es": "tsc -p src/tsconfig-es.json",
|
|
65
|
+
"build:es": "tsc -p src/tsconfig-es.json && node ./scripts/writeEsmPackageJson.mjs ./es",
|
|
66
66
|
"build:es6": "tsc -p src/tsconfig-es6.json",
|
|
67
67
|
"build:lib": "tsc -p src/tsconfig.json",
|
|
68
68
|
"clean": "rimraf amd es es6 lib",
|
|
@@ -76,5 +76,5 @@
|
|
|
76
76
|
},
|
|
77
77
|
"sideEffects": false,
|
|
78
78
|
"types": "lib/inversify.d.ts",
|
|
79
|
-
"version": "6.1.
|
|
79
|
+
"version": "6.1.4-beta.0"
|
|
80
80
|
}
|