77 isArray ,
88 isType
99} from 'angular2/src/facade/lang' ;
10- import { MapWrapper , ListWrapper } from 'angular2/src/facade/collection' ;
10+ import { MapWrapper , ListWrapper , StringMapWrapper } from 'angular2/src/facade/collection' ;
1111import { reflector } from 'angular2/src/core/reflection/reflection' ;
1212import { ReflectiveKey } from './reflective_key' ;
1313import {
@@ -26,6 +26,7 @@ import {
2626} from './reflective_exceptions' ;
2727import { resolveForwardRef } from './forward_ref' ;
2828import { Provider , ProviderBuilder , provide } from './provider' ;
29+ import { isProviderLiteral , createProvider } from './provider_util' ;
2930
3031/**
3132 * `Dependency` is used by the framework to extend DI.
@@ -144,7 +145,7 @@ export function resolveReflectiveProvider(provider: Provider): ResolvedReflectiv
144145 * Resolve a list of Providers.
145146 */
146147export function resolveReflectiveProviders (
147- providers : Array < Type | Provider | any [ ] > ) : ResolvedReflectiveProvider [ ] {
148+ providers : Array < Type | Provider | { [ k : string ] : any } | any [ ] > ) : ResolvedReflectiveProvider [ ] {
148149 var normalized = _normalizeProviders ( providers , [ ] ) ;
149150 var resolved = normalized . map ( resolveReflectiveProvider ) ;
150151 return MapWrapper . values (
@@ -188,15 +189,19 @@ export function mergeResolvedReflectiveProviders(
188189 return normalizedProvidersMap ;
189190}
190191
191- function _normalizeProviders ( providers : Array < Type | Provider | ProviderBuilder | any [ ] > ,
192- res : Provider [ ] ) : Provider [ ] {
192+ function _normalizeProviders (
193+ providers : Array < Type | Provider | { [ k : string ] : any } | ProviderBuilder | any [ ] > ,
194+ res : Provider [ ] ) : Provider [ ] {
193195 providers . forEach ( b => {
194196 if ( b instanceof Type ) {
195197 res . push ( provide ( b , { useClass : b } ) ) ;
196198
197199 } else if ( b instanceof Provider ) {
198200 res . push ( b ) ;
199201
202+ } else if ( isProviderLiteral ( b ) ) {
203+ res . push ( createProvider ( b ) ) ;
204+
200205 } else if ( b instanceof Array ) {
201206 _normalizeProviders ( b , res ) ;
202207
0 commit comments