refactor(Provider): remove deprecated provider/bind API (#10652)

Closes #9751

BREAKING CHANGE:

These forms of providers are no longer accepted:
  bind(MyClass).toFactory(...)
  new Provider(MyClass, toFactory: ...)

We now only accept:
  {provider: MyClass, toFactory: ...}
This commit is contained in:
Miško Hevery
2016-08-15 19:37:42 -07:00
committed by vikerman
parent 04c11bb749
commit bec5c5fdad
47 changed files with 497 additions and 639 deletions

View File

@ -9,7 +9,7 @@ export declare class AsyncPipe implements OnDestroy {
}
/** @experimental */
export declare const COMMON_DIRECTIVES: any[];
export declare const COMMON_DIRECTIVES: Provider[];
/** @experimental */
export declare const COMMON_PIPES: (typeof AsyncPipe | typeof SlicePipe | typeof I18nPluralPipe | typeof I18nSelectPipe)[];

View File

@ -185,25 +185,6 @@ export declare class BaseException extends Error {
toString(): string;
}
/** @deprecated */
export declare function bind(token: any): ProviderBuilder;
/** @deprecated */
export declare class Binding extends Provider {
/** @deprecated */ toAlias: any;
/** @deprecated */ toClass: Type<any>;
/** @deprecated */ toFactory: Function;
/** @deprecated */ toValue: any;
constructor(token: any, {toClass, toValue, toAlias, toFactory, deps, multi}: {
toClass?: Type<any>;
toValue?: any;
toAlias?: any;
toFactory: Function;
deps?: Object[];
multi?: boolean;
});
}
/** @stable */
export declare enum ChangeDetectionStrategy {
OnPush = 0,
@ -229,6 +210,13 @@ export interface ClassDefinition {
[x: string]: Type<any> | Function | any[];
}
/** @stable */
export interface ClassProvider {
multi?: boolean;
provide: any;
useClass: Type<any>;
}
/** @stable */
export declare class CollectionChangeRecord {
currentIndex: number;
@ -558,11 +546,26 @@ export declare class ExceptionHandler {
static exceptionToString(exception: any, stackTrace?: any, reason?: string): string;
}
/** @stable */
export interface ExistingProvider {
multi?: boolean;
provide: any;
useExisting: any;
}
/** @stable */
export declare class ExpressionChangedAfterItHasBeenCheckedException extends BaseException {
constructor(oldValue: any, currValue: any, context: any);
}
/** @stable */
export interface FactoryProvider {
deps: any[];
multi?: boolean;
provide: any;
useFactory: Function;
}
/** @experimental */
export declare function forwardRef(forwardRefFn: ForwardRefFn): Type<any>;
@ -967,44 +970,8 @@ export declare abstract class PlatformRef {
abstract onDestroy(callback: () => void): void;
}
/** @deprecated */
export declare function provide(token: any, {useClass, useValue, useExisting, useFactory, deps, multi}: {
useClass?: Type<any>;
useValue?: any;
useExisting?: any;
useFactory?: Function;
deps?: Object[];
multi?: boolean;
}): Provider;
/** @deprecated */
export declare class Provider {
dependencies: Object[];
multi: boolean;
token: any;
useClass: Type<any>;
useExisting: any;
useFactory: Function;
useValue: any;
constructor(token: any, {useClass, useValue, useExisting, useFactory, deps, multi}: {
useClass?: Type<any>;
useValue?: any;
useExisting?: any;
useFactory?: Function;
deps?: Object[];
multi?: boolean;
});
}
/** @deprecated */
export declare class ProviderBuilder {
token: any;
constructor(token: any);
toAlias(aliasToken: any): Provider;
toClass(type: Type<any>): Provider;
toFactory(factory: Function, dependencies?: any[]): Provider;
toValue(value: any): Provider;
}
/** @stable */
export declare type Provider = TypeProvider | ValueProvider | ClassProvider | ExistingProvider | FactoryProvider | any[];
/** @stable */
export declare class QueryList<T> {
@ -1048,18 +1015,12 @@ export declare abstract class ReflectiveInjector implements Injector {
createChildFromResolved(providers: ResolvedReflectiveProvider[]): ReflectiveInjector;
abstract get(token: any, notFoundValue?: any): any;
instantiateResolved(provider: ResolvedReflectiveProvider): any;
resolveAndCreateChild(providers: Array<Type<any> | Provider | {
[k: string]: any;
} | any[]>): ReflectiveInjector;
resolveAndInstantiate(provider: Type<any> | Provider): any;
resolveAndCreateChild(providers: Provider[]): ReflectiveInjector;
resolveAndInstantiate(provider: Provider): any;
/** @deprecated */ static fromResolvedBindings(providers: ResolvedReflectiveProvider[]): ReflectiveInjector;
/** @experimental */ static fromResolvedProviders(providers: ResolvedReflectiveProvider[], parent?: Injector): ReflectiveInjector;
static resolve(providers: Array<Type<any> | Provider | {
[k: string]: any;
} | any[]>): ResolvedReflectiveProvider[];
static resolveAndCreate(providers: Array<Type<any> | Provider | {
[k: string]: any;
} | any[]>, parent?: Injector): ReflectiveInjector;
static resolve(providers: Provider[]): ResolvedReflectiveProvider[];
static resolveAndCreate(providers: Provider[], parent?: Injector): ReflectiveInjector;
}
/** @experimental */
@ -1277,6 +1238,17 @@ export interface TypeDecorator {
Class(obj: ClassDefinition): Type<any>;
}
/** @stable */
export interface TypeProvider extends Type<any> {
}
/** @stable */
export interface ValueProvider {
multi?: boolean;
provide: any;
useValue: any;
}
/** @stable */
export declare var ViewChild: ViewChildMetadataFactory;

View File

@ -1,11 +1,11 @@
/** @deprecated */
export declare function bootstrap<C>(appComponentType: Type<C>, customProviders?: Array<any>): Promise<ComponentRef<C>>;
export declare function bootstrap<C>(appComponentType: Type<C>, customProviders?: Provider[]): Promise<ComponentRef<C>>;
/** @experimental */
export declare function bootstrapWorkerUi(workerScriptUri: string, customProviders?: Array<any>): Promise<PlatformRef>;
export declare function bootstrapWorkerUi(workerScriptUri: string, customProviders?: Provider[]): Promise<PlatformRef>;
/** @experimental */
export declare const CACHED_TEMPLATE_PROVIDER: Array<any>;
export declare const CACHED_TEMPLATE_PROVIDER: Provider[];
/** @experimental */
export declare const platformBrowserDynamic: (extraProviders?: any[]) => PlatformRef;

View File

@ -1,5 +1,5 @@
/** @experimental */
export declare const _WORKER_UI_PLATFORM_PROVIDERS: Array<any>;
export declare const _WORKER_UI_PLATFORM_PROVIDERS: Provider[];
/** @experimental */
export declare abstract class AnimationDriver {