refactor(abstract): Use abstract keyword where possible to decrease file size. (#14112)

PR Close: #14112
This commit is contained in:
Misko Hevery 2017-01-25 22:32:32 -08:00 committed by Miško Hevery
parent 827c3fe199
commit d339d8b81d
11 changed files with 43 additions and 62 deletions

View File

@ -15,10 +15,6 @@ import {LifecycleHooks, reflector} from './private_import_core';
import {CssSelector} from './selector';
import {splitAtColon} from './util';
function unimplemented(): any {
throw new Error('unimplemented');
}
// group 0: "[prop] or (event) or @trigger"
// group 1: "prop" from "[prop]"
// group 2: "event" from "(event)"

View File

@ -11,10 +11,6 @@ import {MissingTranslationStrategy, ViewEncapsulation, isDevMode} from '@angular
import {CompileIdentifierMetadata} from './compile_metadata';
import {Identifiers, createIdentifier} from './identifiers';
function unimplemented(): any {
throw new Error('unimplemented');
}
export class CompilerConfig {
public renderTypes: RenderTypes;
public defaultEncapsulation: ViewEncapsulation;
@ -55,12 +51,12 @@ export class CompilerConfig {
* to help tree shaking.
*/
export abstract class RenderTypes {
get renderer(): CompileIdentifierMetadata { return unimplemented(); }
get renderText(): CompileIdentifierMetadata { return unimplemented(); }
get renderElement(): CompileIdentifierMetadata { return unimplemented(); }
get renderComment(): CompileIdentifierMetadata { return unimplemented(); }
get renderNode(): CompileIdentifierMetadata { return unimplemented(); }
get renderEvent(): CompileIdentifierMetadata { return unimplemented(); }
abstract get renderer(): CompileIdentifierMetadata;
abstract get renderText(): CompileIdentifierMetadata;
abstract get renderElement(): CompileIdentifierMetadata;
abstract get renderComment(): CompileIdentifierMetadata;
abstract get renderNode(): CompileIdentifierMetadata;
abstract get renderEvent(): CompileIdentifierMetadata;
}
export class DefaultRenderTypes implements RenderTypes {

View File

@ -8,7 +8,6 @@
import {ErrorHandler} from '../src/error_handler';
import {ListWrapper} from '../src/facade/collection';
import {unimplemented} from '../src/facade/errors';
import {stringify} from '../src/facade/lang';
import {isPromise} from '../src/util/lang';
@ -185,9 +184,7 @@ export abstract class PlatformRef {
*
* @experimental APIs related to application bootstrap are currently under review.
*/
bootstrapModuleFactory<M>(moduleFactory: NgModuleFactory<M>): Promise<NgModuleRef<M>> {
throw unimplemented();
}
abstract bootstrapModuleFactory<M>(moduleFactory: NgModuleFactory<M>): Promise<NgModuleRef<M>>;
/**
* Creates an instance of an `@NgModule` for a given platform using the given runtime compiler.
@ -217,14 +214,14 @@ export abstract class PlatformRef {
* Retrieve the platform {@link Injector}, which is the parent injector for
* every Angular application on the page and provides singleton providers.
*/
get injector(): Injector { throw unimplemented(); };
abstract get injector(): Injector;
/**
* Destroy the Angular platform and all Angular applications on the page.
*/
abstract destroy(): void;
get destroyed(): boolean { throw unimplemented(); }
abstract get destroyed(): boolean;
}
function _callAndReportToErrorHandler(errorHandler: ErrorHandler, callback: () => any): any {
@ -381,29 +378,29 @@ export abstract class ApplicationRef {
* Get a list of component types registered to this application.
* This list is populated even before the component is created.
*/
get componentTypes(): Type<any>[] { return <Type<any>[]>unimplemented(); };
abstract get componentTypes(): Type<any>[];
/**
* Get a list of components registered to this application.
*/
get components(): ComponentRef<any>[] { return <ComponentRef<any>[]>unimplemented(); };
abstract get components(): ComponentRef<any>[];
/**
* Attaches a view so that it will be dirty checked.
* The view will be automatically detached when it is destroyed.
* This will throw if the view is already attached to a ViewContainer.
*/
attachView(view: ViewRef): void { unimplemented(); }
abstract attachView(view: ViewRef): void;
/**
* Detaches a view from dirty checking again.
*/
detachView(view: ViewRef): void { unimplemented(); }
abstract detachView(view: ViewRef): void;
/**
* Returns the number of attached views.
*/
get viewCount() { return unimplemented(); }
abstract get viewCount(): number;
}
@Injectable()

View File

@ -6,7 +6,6 @@
* found in the LICENSE file at https://angular.io/license
*/
import {unimplemented} from '../facade/errors';
import {stringify} from '../facade/lang';
import {Type} from '../type';
@ -55,10 +54,9 @@ export abstract class Injector {
* Injector.THROW_IF_NOT_FOUND is given
* - Returns the `notFoundValue` otherwise
*/
get<T>(token: Type<T>|InjectionToken<T>, notFoundValue?: T): T;
abstract get<T>(token: Type<T>|InjectionToken<T>, notFoundValue?: T): T;
/**
* @deprecated from v4.0.0 use Type<T> or InjectToken<T>
*/
get(token: any, notFoundValue?: any): any;
get(token: any, notFoundValue?: any): any { return unimplemented(); }
abstract get(token: any, notFoundValue?: any): any;
}

View File

@ -6,7 +6,6 @@
* found in the LICENSE file at https://angular.io/license
*/
import {unimplemented} from '../facade/errors';
import {Type} from '../type';
import {Injector, THROW_IF_NOT_FOUND} from './injector';
@ -467,7 +466,7 @@ export abstract class ReflectiveInjector implements Injector {
* expect(child.parent).toBe(parent);
* ```
*/
get parent(): Injector { return unimplemented(); }
abstract get parent(): Injector;
/**
* Resolves an array of providers and creates a child injector from those providers.
@ -496,7 +495,7 @@ export abstract class ReflectiveInjector implements Injector {
* because it needs to resolve the passed-in providers first.
* See {@link Injector#resolve} and {@link Injector#createChildFromResolved}.
*/
resolveAndCreateChild(providers: Provider[]): ReflectiveInjector { return unimplemented(); }
abstract resolveAndCreateChild(providers: Provider[]): ReflectiveInjector;
/**
* Creates a child injector from previously resolved providers.
@ -549,7 +548,7 @@ export abstract class ReflectiveInjector implements Injector {
* expect(car).not.toBe(injector.resolveAndInstantiate(Car));
* ```
*/
resolveAndInstantiate(provider: Provider): any { return unimplemented(); }
abstract resolveAndInstantiate(provider: Provider): any;
/**
* Instantiates an object using a resolved provider in the context of the injector.
@ -575,7 +574,7 @@ export abstract class ReflectiveInjector implements Injector {
* expect(car).not.toBe(injector.instantiateResolved(carProvider));
* ```
*/
instantiateResolved(provider: ResolvedReflectiveProvider): any { return unimplemented(); }
abstract instantiateResolved(provider: ResolvedReflectiveProvider): any;
abstract get(token: any, notFoundValue?: any): any;
}

View File

@ -8,7 +8,6 @@
import {ChangeDetectorRef} from '../change_detection/change_detection';
import {Injector} from '../di/injector';
import {unimplemented} from '../facade/errors';
import {Type} from '../type';
import {ElementRef} from './element_ref';
@ -30,32 +29,32 @@ export abstract class ComponentRef<C> {
/**
* Location of the Host Element of this Component Instance.
*/
get location(): ElementRef { return unimplemented(); }
abstract get location(): ElementRef;
/**
* The injector on which the component instance exists.
*/
get injector(): Injector { return unimplemented(); }
abstract get injector(): Injector;
/**
* The instance of the Component.
*/
get instance(): C { return unimplemented(); };
abstract get instance(): C;
/**
* The {@link ViewRef} of the Host View of this Component instance.
*/
get hostView(): ViewRef { return unimplemented(); };
abstract get hostView(): ViewRef;
/**
* The {@link ChangeDetectorRef} of the Component instance.
*/
get changeDetectorRef(): ChangeDetectorRef { return unimplemented(); }
abstract get changeDetectorRef(): ChangeDetectorRef;
/**
* The component type.
*/
get componentType(): Type<any> { return unimplemented(); }
abstract get componentType(): Type<any>;
/**
* Destroys the component instance and all of the data structures associated with it.

View File

@ -7,7 +7,6 @@
*/
import {Injector, THROW_IF_NOT_FOUND} from '../di/injector';
import {unimplemented} from '../facade/errors';
import {stringify} from '../facade/lang';
import {Type} from '../type';
import {ComponentFactory} from './component_factory';
@ -27,18 +26,18 @@ export abstract class NgModuleRef<T> {
/**
* The injector that contains all of the providers of the NgModule.
*/
get injector(): Injector { return unimplemented(); }
abstract get injector(): Injector;
/**
* The ComponentFactoryResolver to get hold of the ComponentFactories
* declared in the `entryComponents` property of the module.
*/
get componentFactoryResolver(): ComponentFactoryResolver { return unimplemented(); }
abstract get componentFactoryResolver(): ComponentFactoryResolver;
/**
* The NgModule instance.
*/
get instance(): T { return unimplemented(); }
abstract get instance(): T;
/**
* Destroys the module instance and all of the data structures associated with it.

View File

@ -37,7 +37,7 @@ export abstract class TemplateRef<C> {
*
*/
// TODO(i): rename to anchor or location
get elementRef(): ElementRef { return null; }
abstract get elementRef(): ElementRef;
abstract createEmbeddedView(context: C): EmbeddedViewRef<C>;
}

View File

@ -7,7 +7,6 @@
*/
import {Injector} from '../di/injector';
import {unimplemented} from '../facade/errors';
import {isPresent} from '../facade/lang';
import {WtfScopeFn, wtfCreateScope, wtfLeave} from '../profile/profile';
@ -42,11 +41,11 @@ export abstract class ViewContainerRef {
* Anchor element that specifies the location of this container in the containing View.
* <!-- TODO: rename to anchorElement -->
*/
get element(): ElementRef { return <ElementRef>unimplemented(); }
abstract get element(): ElementRef;
get injector(): Injector { return <Injector>unimplemented(); }
abstract get injector(): Injector;
get parentInjector(): Injector { return <Injector>unimplemented(); }
abstract get parentInjector(): Injector;
/**
* Destroys all Views in this container.
@ -61,7 +60,7 @@ export abstract class ViewContainerRef {
/**
* Returns the number of Views currently attached to this container.
*/
get length(): number { return <number>unimplemented(); };
abstract get length(): number;
/**
* Instantiates an Embedded View based on the {@link TemplateRef `templateRef`} and inserts it

View File

@ -9,7 +9,6 @@
import {AnimationQueue} from '../animation/animation_queue';
import {ChangeDetectorRef} from '../change_detection/change_detector_ref';
import {ChangeDetectorStatus} from '../change_detection/constants';
import {unimplemented} from '../facade/errors';
import {AppView} from './view';
/**
@ -21,7 +20,7 @@ export abstract class ViewRef extends ChangeDetectorRef {
*/
abstract destroy(): void;
get destroyed(): boolean { return <boolean>unimplemented(); }
abstract get destroyed(): boolean;
abstract onDestroy(callback: Function): any /** TODO #9100 */;
}
@ -81,9 +80,9 @@ export abstract class ViewRef extends ChangeDetectorRef {
* @experimental
*/
export abstract class EmbeddedViewRef<C> extends ViewRef {
get context(): C { return unimplemented(); }
abstract get context(): C;
get rootNodes(): any[] { return <any[]>unimplemented(); };
abstract get rootNodes(): any[];
}
export class ViewRef_<C> implements EmbeddedViewRef<C>, ChangeDetectorRef {

View File

@ -10,7 +10,6 @@ import {AnimationKeyframe} from '../../src/animation/animation_keyframe';
import {AnimationPlayer} from '../../src/animation/animation_player';
import {AnimationStyles} from '../../src/animation/animation_styles';
import {Injector} from '../di/injector';
import {unimplemented} from '../facade/errors';
import {ViewEncapsulation} from '../metadata/view';
/**
@ -25,12 +24,12 @@ export class RenderComponentType {
}
export abstract class RenderDebugInfo {
get injector(): Injector { return unimplemented(); }
get component(): any { return unimplemented(); }
get providerTokens(): any[] { return unimplemented(); }
get references(): {[key: string]: any} { return unimplemented(); }
get context(): any { return unimplemented(); }
get source(): string { return unimplemented(); }
abstract get injector(): Injector;
abstract get component(): any;
abstract get providerTokens(): any[];
abstract get references(): {[key: string]: any};
abstract get context(): any;
abstract get source(): string;
}
export interface DirectRenderer {