@@ -4,13 +4,13 @@ import {
44 isPresent ,
55 CONST_EXPR ,
66 isArray ,
7+ MapWrapper ,
8+ ListWrapper
79} from '@angular/facade' ;
8- import { MapWrapper , ListWrapper } from '@angular/facade' ;
910import { reflector } from '../reflection/reflection' ;
1011import { ReflectiveKey } from './reflective_key' ;
1112import {
1213 InjectMetadata ,
13- InjectableMetadata ,
1414 OptionalMetadata ,
1515 SelfMetadata ,
1616 HostMetadata ,
@@ -24,6 +24,7 @@ import {
2424} from './reflective_exceptions' ;
2525import { resolveForwardRef } from './forward_ref' ;
2626import { Provider , ProviderBuilder , provide } from './provider' ;
27+ import { isProviderLiteral , createProvider } from './provider_util' ;
2728
2829/**
2930 * `Dependency` is used by the framework to extend DI.
@@ -142,7 +143,7 @@ export function resolveReflectiveProvider(provider: Provider): ResolvedReflectiv
142143 * Resolve a list of Providers.
143144 */
144145export function resolveReflectiveProviders (
145- providers : Array < Type | Provider | any [ ] > ) : ResolvedReflectiveProvider [ ] {
146+ providers : Array < Type | Provider | { [ k : string ] : any } | any [ ] > ) : ResolvedReflectiveProvider [ ] {
146147 var normalized = _normalizeProviders ( providers , [ ] ) ;
147148 var resolved = normalized . map ( resolveReflectiveProvider ) ;
148149 return MapWrapper . values (
@@ -186,15 +187,19 @@ export function mergeResolvedReflectiveProviders(
186187 return normalizedProvidersMap ;
187188}
188189
189- function _normalizeProviders ( providers : Array < Type | Provider | ProviderBuilder | any [ ] > ,
190- res : Provider [ ] ) : Provider [ ] {
190+ function _normalizeProviders (
191+ providers : Array < Type | Provider | { [ k : string ] : any } | ProviderBuilder | any [ ] > ,
192+ res : Provider [ ] ) : Provider [ ] {
191193 providers . forEach ( b => {
192194 if ( b instanceof Type ) {
193195 res . push ( provide ( b , { useClass : b } ) ) ;
194196
195197 } else if ( b instanceof Provider ) {
196198 res . push ( b ) ;
197199
200+ } else if ( isProviderLiteral ( b ) ) {
201+ res . push ( createProvider ( b ) ) ;
202+
198203 } else if ( b instanceof Array ) {
199204 _normalizeProviders ( b , res ) ;
200205
0 commit comments