1 |
49598
|
stefanos.g
|
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[];
|