Project

General

Profile

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[];