refactor(ApplicationRef): remove all previously deprecated ApplicationRef apis
BREAKING CHANGE: All previously deprecated ApplicationRef apis have been removed. Please follow the deprecation instructions to migrate your code.
This commit is contained in:
parent
44e1b23813
commit
f84c3fdc5f
|
@ -373,38 +373,6 @@ export class PlatformRef_ extends PlatformRef {
|
||||||
* @experimental APIs related to application bootstrap are currently under review.
|
* @experimental APIs related to application bootstrap are currently under review.
|
||||||
*/
|
*/
|
||||||
export abstract class ApplicationRef {
|
export abstract class ApplicationRef {
|
||||||
/**
|
|
||||||
* Register a listener to be called each time `bootstrap()` is called to bootstrap
|
|
||||||
* a new root component.
|
|
||||||
*
|
|
||||||
* @deprecated Provide a callback via a multi provider for {@link APP_BOOTSTRAP_LISTENER}
|
|
||||||
* instead.
|
|
||||||
*/
|
|
||||||
abstract registerBootstrapListener(listener: (ref: ComponentRef<any>) => void): void;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Register a listener to be called when the application is disposed.
|
|
||||||
*
|
|
||||||
* @deprecated Use `ngOnDestroy` lifecycle hook or {@link NgModuleRef}.onDestroy.
|
|
||||||
*/
|
|
||||||
abstract registerDisposeListener(dispose: () => void): void;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a promise that resolves when all asynchronous application initializers
|
|
||||||
* are done.
|
|
||||||
*
|
|
||||||
* @deprecated Use the {@link ApplicationInitStatus} class instead.
|
|
||||||
*/
|
|
||||||
abstract waitForAsyncInitializers(): Promise<any>;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Runs the given callback in the zone and returns the result of the callback.
|
|
||||||
* Exceptions will be forwarded to the ExceptionHandler and rethrown.
|
|
||||||
*
|
|
||||||
* @deprecated Use {@link NgZone}.run instead.
|
|
||||||
*/
|
|
||||||
abstract run(callback: Function): any;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bootstrap a new component at the root level of the application.
|
* Bootstrap a new component at the root level of the application.
|
||||||
*
|
*
|
||||||
|
@ -419,29 +387,6 @@ export abstract class ApplicationRef {
|
||||||
*/
|
*/
|
||||||
abstract bootstrap<C>(componentFactory: ComponentFactory<C>|Type<C>): ComponentRef<C>;
|
abstract bootstrap<C>(componentFactory: ComponentFactory<C>|Type<C>): ComponentRef<C>;
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieve the application {@link Injector}.
|
|
||||||
*
|
|
||||||
* @deprecated inject an {@link Injector} directly where needed or use {@link
|
|
||||||
* NgModuleRef}.injector.
|
|
||||||
*/
|
|
||||||
get injector(): Injector { return <Injector>unimplemented(); };
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieve the application {@link NgZone}.
|
|
||||||
*
|
|
||||||
* @deprecated inject {@link NgZone} instead of calling this getter.
|
|
||||||
*/
|
|
||||||
get zone(): NgZone { return <NgZone>unimplemented(); };
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Dispose of this application and all of its components.
|
|
||||||
*
|
|
||||||
* @deprecated Destroy the module that was created during bootstrap instead by calling
|
|
||||||
* {@link NgModuleRef}.destroy.
|
|
||||||
*/
|
|
||||||
abstract dispose(): void;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Invoke this method to explicitly process change detection and its side-effects.
|
* Invoke this method to explicitly process change detection and its side-effects.
|
||||||
*
|
*
|
||||||
|
@ -472,10 +417,6 @@ export class ApplicationRef_ extends ApplicationRef {
|
||||||
static _tickScope: WtfScopeFn = wtfCreateScope('ApplicationRef#tick()');
|
static _tickScope: WtfScopeFn = wtfCreateScope('ApplicationRef#tick()');
|
||||||
|
|
||||||
private _bootstrapListeners: Function[] = [];
|
private _bootstrapListeners: Function[] = [];
|
||||||
/**
|
|
||||||
* @deprecated
|
|
||||||
*/
|
|
||||||
private _disposeListeners: Function[] = [];
|
|
||||||
private _rootComponents: ComponentRef<any>[] = [];
|
private _rootComponents: ComponentRef<any>[] = [];
|
||||||
private _rootComponentTypes: Type<any>[] = [];
|
private _rootComponentTypes: Type<any>[] = [];
|
||||||
private _changeDetectorRefs: ChangeDetectorRef[] = [];
|
private _changeDetectorRefs: ChangeDetectorRef[] = [];
|
||||||
|
@ -496,18 +437,6 @@ export class ApplicationRef_ extends ApplicationRef {
|
||||||
{next: () => { this._zone.run(() => { this.tick(); }); }});
|
{next: () => { this._zone.run(() => { this.tick(); }); }});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @deprecated
|
|
||||||
*/
|
|
||||||
registerBootstrapListener(listener: (ref: ComponentRef<any>) => void): void {
|
|
||||||
this._bootstrapListeners.push(listener);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @deprecated
|
|
||||||
*/
|
|
||||||
registerDisposeListener(dispose: () => void): void { this._disposeListeners.push(dispose); }
|
|
||||||
|
|
||||||
registerChangeDetector(changeDetector: ChangeDetectorRef): void {
|
registerChangeDetector(changeDetector: ChangeDetectorRef): void {
|
||||||
this._changeDetectorRefs.push(changeDetector);
|
this._changeDetectorRefs.push(changeDetector);
|
||||||
}
|
}
|
||||||
|
@ -516,19 +445,6 @@ export class ApplicationRef_ extends ApplicationRef {
|
||||||
ListWrapper.remove(this._changeDetectorRefs, changeDetector);
|
ListWrapper.remove(this._changeDetectorRefs, changeDetector);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @deprecated
|
|
||||||
*/
|
|
||||||
waitForAsyncInitializers(): Promise<any> { return this._initStatus.donePromise; }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @deprecated
|
|
||||||
*/
|
|
||||||
run(callback: Function): any {
|
|
||||||
return this._zone.run(
|
|
||||||
() => _callAndReportToExceptionHandler(this._exceptionHandler, <any>callback));
|
|
||||||
}
|
|
||||||
|
|
||||||
bootstrap<C>(componentOrFactory: ComponentFactory<C>|Type<C>): ComponentRef<C> {
|
bootstrap<C>(componentOrFactory: ComponentFactory<C>|Type<C>): ComponentRef<C> {
|
||||||
if (!this._initStatus.done) {
|
if (!this._initStatus.done) {
|
||||||
throw new BaseException(
|
throw new BaseException(
|
||||||
|
@ -578,16 +494,6 @@ export class ApplicationRef_ extends ApplicationRef {
|
||||||
ListWrapper.remove(this._rootComponents, componentRef);
|
ListWrapper.remove(this._rootComponents, componentRef);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @deprecated
|
|
||||||
*/
|
|
||||||
get injector(): Injector { return this._injector; }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @deprecated
|
|
||||||
*/
|
|
||||||
get zone(): NgZone { return this._zone; }
|
|
||||||
|
|
||||||
tick(): void {
|
tick(): void {
|
||||||
if (this._runningTick) {
|
if (this._runningTick) {
|
||||||
throw new BaseException('ApplicationRef.tick is called recursively');
|
throw new BaseException('ApplicationRef.tick is called recursively');
|
||||||
|
@ -609,14 +515,8 @@ export class ApplicationRef_ extends ApplicationRef {
|
||||||
ngOnDestroy() {
|
ngOnDestroy() {
|
||||||
// TODO(alxhub): Dispose of the NgZone.
|
// TODO(alxhub): Dispose of the NgZone.
|
||||||
ListWrapper.clone(this._rootComponents).forEach((ref) => ref.destroy());
|
ListWrapper.clone(this._rootComponents).forEach((ref) => ref.destroy());
|
||||||
this._disposeListeners.forEach((dispose) => dispose());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @deprecated
|
|
||||||
*/
|
|
||||||
dispose(): void { this.ngOnDestroy(); }
|
|
||||||
|
|
||||||
get componentTypes(): Type<any>[] { return this._rootComponentTypes; }
|
get componentTypes(): Type<any>[] { return this._rootComponentTypes; }
|
||||||
|
|
||||||
get components(): ComponentRef<any>[] { return this._rootComponents; }
|
get components(): ComponentRef<any>[] { return this._rootComponents; }
|
||||||
|
|
|
@ -82,37 +82,6 @@ export function main() {
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
describe('run', () => {
|
|
||||||
it('should rethrow errors even if the exceptionHandler is not rethrowing',
|
|
||||||
inject([ApplicationRef], (ref: ApplicationRef_) => {
|
|
||||||
expect(() => ref.run(() => { throw new BaseException('Test'); })).toThrowError('Test');
|
|
||||||
}));
|
|
||||||
|
|
||||||
it('should return a promise with rejected errors even if the exceptionHandler is not rethrowing',
|
|
||||||
async(inject([ApplicationRef], (ref: ApplicationRef_) => {
|
|
||||||
var promise: Promise<any> = ref.run(() => Promise.reject('Test'));
|
|
||||||
promise.then(() => expect(false).toBe(true), (e) => { expect(e).toEqual('Test'); });
|
|
||||||
})));
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('registerBootstrapListener', () => {
|
|
||||||
it('should be called when a component is bootstrapped',
|
|
||||||
inject([ApplicationRef], (ref: ApplicationRef_) => {
|
|
||||||
const capturedCompRefs: ComponentRef<any>[] = [];
|
|
||||||
ref.registerBootstrapListener((compRef) => capturedCompRefs.push(compRef));
|
|
||||||
const compRef = ref.bootstrap(SomeComponent);
|
|
||||||
expect(capturedCompRefs).toEqual([compRef]);
|
|
||||||
}));
|
|
||||||
|
|
||||||
it('should be called immediately when a component was bootstrapped before',
|
|
||||||
inject([ApplicationRef], (ref: ApplicationRef_) => {
|
|
||||||
ref.registerBootstrapListener((compRef) => capturedCompRefs.push(compRef));
|
|
||||||
const capturedCompRefs: ComponentRef<any>[] = [];
|
|
||||||
const compRef = ref.bootstrap(SomeComponent);
|
|
||||||
expect(capturedCompRefs).toEqual([compRef]);
|
|
||||||
}));
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('APP_BOOTSTRAP_LISTENER', () => {
|
describe('APP_BOOTSTRAP_LISTENER', () => {
|
||||||
let capturedCompRefs: ComponentRef<any>[];
|
let capturedCompRefs: ComponentRef<any>[];
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
|
|
@ -147,15 +147,8 @@ export declare class ApplicationModule {
|
||||||
export declare abstract class ApplicationRef {
|
export declare abstract class ApplicationRef {
|
||||||
componentTypes: Type<any>[];
|
componentTypes: Type<any>[];
|
||||||
components: ComponentRef<any>[];
|
components: ComponentRef<any>[];
|
||||||
/** @deprecated */ injector: Injector;
|
|
||||||
/** @deprecated */ zone: NgZone;
|
|
||||||
abstract bootstrap<C>(componentFactory: ComponentFactory<C> | Type<C>): ComponentRef<C>;
|
abstract bootstrap<C>(componentFactory: ComponentFactory<C> | Type<C>): ComponentRef<C>;
|
||||||
/** @deprecated */ abstract dispose(): void;
|
|
||||||
/** @deprecated */ abstract registerBootstrapListener(listener: (ref: ComponentRef<any>) => void): void;
|
|
||||||
/** @deprecated */ abstract registerDisposeListener(dispose: () => void): void;
|
|
||||||
/** @deprecated */ abstract run(callback: Function): any;
|
|
||||||
abstract tick(): void;
|
abstract tick(): void;
|
||||||
/** @deprecated */ abstract waitForAsyncInitializers(): Promise<any>;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @experimental */
|
/** @experimental */
|
||||||
|
|
Loading…
Reference in New Issue