UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

105 lines (104 loc) 3.95 kB
import { Type } from 'angular2/src/facade/lang'; import { ReflectiveKey } from './reflective_key'; import { Provider } from './provider'; /** * `Dependency` is used by the framework to extend DI. * This is internal to Angular and should not be used directly. */ export declare class ReflectiveDependency { key: ReflectiveKey; optional: boolean; lowerBoundVisibility: any; upperBoundVisibility: any; properties: any[]; constructor(key: ReflectiveKey, optional: boolean, lowerBoundVisibility: any, upperBoundVisibility: any, properties: any[]); static fromKey(key: ReflectiveKey): ReflectiveDependency; } /** * An internal resolved representation of a {@link Provider} used by the {@link Injector}. * * It is usually created automatically by `Injector.resolveAndCreate`. * * It can be created manually, as follows: * * ### Example ([live demo](http://plnkr.co/edit/RfEnhh8kUEI0G3qsnIeT?p%3Dpreview&p=preview)) * * ```typescript * var resolvedProviders = Injector.resolve([new Provider('message', {useValue: 'Hello'})]); * var injector = Injector.fromResolvedProviders(resolvedProviders); * * expect(injector.get('message')).toEqual('Hello'); * ``` */ export interface ResolvedReflectiveProvider { /** * A key, usually a `Type`. */ key: ReflectiveKey; /** * Factory function which can return an instance of an object represented by a key. */ resolvedFactories: ResolvedReflectiveFactory[]; /** * Indicates if the provider is a multi-provider or a regular provider. */ multiProvider: boolean; } /** * See {@link ResolvedProvider} instead. * * @deprecated */ export interface ResolvedReflectiveBinding extends ResolvedReflectiveProvider { } export declare class ResolvedReflectiveProvider_ implements ResolvedReflectiveBinding { key: ReflectiveKey; resolvedFactories: ResolvedReflectiveFactory[]; multiProvider: boolean; constructor(key: ReflectiveKey, resolvedFactories: ResolvedReflectiveFactory[], multiProvider: boolean); resolvedFactory: ResolvedReflectiveFactory; } /** * An internal resolved representation of a factory function created by resolving {@link Provider}. */ export declare class ResolvedReflectiveFactory { /** * Factory function which can return an instance of an object represented by a key. */ factory: Function; /** * Arguments (dependencies) to the `factory` function. */ dependencies: ReflectiveDependency[]; constructor( /** * Factory function which can return an instance of an object represented by a key. */ factory: Function, /** * Arguments (dependencies) to the `factory` function. */ dependencies: ReflectiveDependency[]); } /** * Resolve a single provider. */ export declare function resolveReflectiveFactory(provider: Provider): ResolvedReflectiveFactory; /** * Converts the {@link Provider} into {@link ResolvedProvider}. * * {@link Injector} internally only uses {@link ResolvedProvider}, {@link Provider} contains * convenience provider syntax. */ export declare function resolveReflectiveProvider(provider: Provider): ResolvedReflectiveProvider; /** * Resolve a list of Providers. */ export declare function resolveReflectiveProviders(providers: Array<Type | Provider | any[]>): ResolvedReflectiveProvider[]; /** * Merges a list of ResolvedProviders into a list where * each key is contained exactly once and multi providers * have been merged. */ export declare function mergeResolvedReflectiveProviders(providers: ResolvedReflectiveProvider[], normalizedProvidersMap: Map<number, ResolvedReflectiveProvider>): Map<number, ResolvedReflectiveProvider>; export declare function constructDependencies(typeOrFunc: any, dependencies: any[]): ReflectiveDependency[];