1
|
import { Self, SkipSelf } from './metadata';
|
2
|
import { Provider } from './provider';
|
3
|
import { ReflectiveKey } from './reflective_key';
|
4
|
/**
|
5
|
* `Dependency` is used by the framework to extend DI.
|
6
|
* This is internal to Angular and should not be used directly.
|
7
|
*/
|
8
|
export declare class ReflectiveDependency {
|
9
|
key: ReflectiveKey;
|
10
|
optional: boolean;
|
11
|
visibility: Self | SkipSelf | null;
|
12
|
constructor(key: ReflectiveKey, optional: boolean, visibility: Self | SkipSelf | null);
|
13
|
static fromKey(key: ReflectiveKey): ReflectiveDependency;
|
14
|
}
|
15
|
/**
|
16
|
* An internal resolved representation of a {@link Provider} used by the {@link Injector}.
|
17
|
*
|
18
|
* It is usually created automatically by `Injector.resolveAndCreate`.
|
19
|
*
|
20
|
* It can be created manually, as follows:
|
21
|
*
|
22
|
* ### Example ([live demo](http://plnkr.co/edit/RfEnhh8kUEI0G3qsnIeT?p%3Dpreview&p=preview))
|
23
|
*
|
24
|
* ```typescript
|
25
|
* var resolvedProviders = Injector.resolve([{ provide: 'message', useValue: 'Hello' }]);
|
26
|
* var injector = Injector.fromResolvedProviders(resolvedProviders);
|
27
|
*
|
28
|
* expect(injector.get('message')).toEqual('Hello');
|
29
|
* ```
|
30
|
*
|
31
|
* @experimental
|
32
|
*/
|
33
|
export interface ResolvedReflectiveProvider {
|
34
|
/**
|
35
|
* A key, usually a `Type<any>`.
|
36
|
*/
|
37
|
key: ReflectiveKey;
|
38
|
/**
|
39
|
* Factory function which can return an instance of an object represented by a key.
|
40
|
*/
|
41
|
resolvedFactories: ResolvedReflectiveFactory[];
|
42
|
/**
|
43
|
* Indicates if the provider is a multi-provider or a regular provider.
|
44
|
*/
|
45
|
multiProvider: boolean;
|
46
|
}
|
47
|
export declare class ResolvedReflectiveProvider_ implements ResolvedReflectiveProvider {
|
48
|
key: ReflectiveKey;
|
49
|
resolvedFactories: ResolvedReflectiveFactory[];
|
50
|
multiProvider: boolean;
|
51
|
constructor(key: ReflectiveKey, resolvedFactories: ResolvedReflectiveFactory[], multiProvider: boolean);
|
52
|
readonly resolvedFactory: ResolvedReflectiveFactory;
|
53
|
}
|
54
|
/**
|
55
|
* An internal resolved representation of a factory function created by resolving {@link
|
56
|
* Provider}.
|
57
|
* @experimental
|
58
|
*/
|
59
|
export declare class ResolvedReflectiveFactory {
|
60
|
/**
|
61
|
* Factory function which can return an instance of an object represented by a key.
|
62
|
*/
|
63
|
factory: Function;
|
64
|
/**
|
65
|
* Arguments (dependencies) to the `factory` function.
|
66
|
*/
|
67
|
dependencies: ReflectiveDependency[];
|
68
|
constructor(
|
69
|
/**
|
70
|
* Factory function which can return an instance of an object represented by a key.
|
71
|
*/
|
72
|
factory: Function,
|
73
|
/**
|
74
|
* Arguments (dependencies) to the `factory` function.
|
75
|
*/
|
76
|
dependencies: ReflectiveDependency[]);
|
77
|
}
|
78
|
/**
|
79
|
* Resolve a list of Providers.
|
80
|
*/
|
81
|
export declare function resolveReflectiveProviders(providers: Provider[]): ResolvedReflectiveProvider[];
|
82
|
/**
|
83
|
* Merges a list of ResolvedProviders into a list where
|
84
|
* each key is contained exactly once and multi providers
|
85
|
* have been merged.
|
86
|
*/
|
87
|
export declare function mergeResolvedReflectiveProviders(providers: ResolvedReflectiveProvider[], normalizedProvidersMap: Map<number, ResolvedReflectiveProvider>): Map<number, ResolvedReflectiveProvider>;
|
88
|
export declare function constructDependencies(typeOrFunc: any, dependencies?: any[]): ReflectiveDependency[];
|