refactor(core): removed getter and changed to readonly variable (#19117)
PR Close #19117
This commit is contained in:
parent
549f2254b4
commit
b14c2d1568
|
@ -27,11 +27,11 @@ export class ApplicationInitStatus {
|
|||
private resolve: Function;
|
||||
private reject: Function;
|
||||
private initialized = false;
|
||||
private _donePromise: Promise<any>;
|
||||
private _done = false;
|
||||
public readonly donePromise: Promise<any>;
|
||||
public readonly done = false;
|
||||
|
||||
constructor(@Inject(APP_INITIALIZER) @Optional() private appInits: (() => any)[]) {
|
||||
this._donePromise = new Promise((res, rej) => {
|
||||
this.donePromise = new Promise((res, rej) => {
|
||||
this.resolve = res;
|
||||
this.reject = rej;
|
||||
});
|
||||
|
@ -46,7 +46,7 @@ export class ApplicationInitStatus {
|
|||
const asyncInitPromises: Promise<any>[] = [];
|
||||
|
||||
const complete = () => {
|
||||
this._done = true;
|
||||
(this as{done: boolean}).done = true;
|
||||
this.resolve();
|
||||
};
|
||||
|
||||
|
@ -66,8 +66,4 @@ export class ApplicationInitStatus {
|
|||
}
|
||||
this.initialized = true;
|
||||
}
|
||||
|
||||
get done(): boolean { return this._done; }
|
||||
|
||||
get donePromise(): Promise<any> { return this._donePromise; }
|
||||
}
|
||||
|
|
|
@ -335,14 +335,27 @@ export class ApplicationRef {
|
|||
/** @internal */
|
||||
static _tickScope: WtfScopeFn = wtfCreateScope('ApplicationRef#tick()');
|
||||
private _bootstrapListeners: ((compRef: ComponentRef<any>) => void)[] = [];
|
||||
private _rootComponents: ComponentRef<any>[] = [];
|
||||
private _rootComponentTypes: Type<any>[] = [];
|
||||
private _views: InternalViewRef[] = [];
|
||||
private _runningTick: boolean = false;
|
||||
private _enforceNoNewChanges: boolean = false;
|
||||
private _isStable: Observable<boolean>;
|
||||
private _stable = true;
|
||||
|
||||
/**
|
||||
* Get a list of component types registered to this application.
|
||||
* This list is populated even before the component is created.
|
||||
*/
|
||||
public readonly componentTypes: Type<any>[] = [];
|
||||
|
||||
/**
|
||||
* Get a list of components registered to this application.
|
||||
*/
|
||||
public readonly components: ComponentRef<any>[] = [];
|
||||
|
||||
/**
|
||||
* Returns an Observable that indicates when the application is stable or unstable.
|
||||
*/
|
||||
public readonly isStable: Observable<boolean>;
|
||||
|
||||
/** @internal */
|
||||
constructor(
|
||||
private _zone: NgZone, private _console: Console, private _injector: Injector,
|
||||
|
@ -397,7 +410,8 @@ export class ApplicationRef {
|
|||
};
|
||||
});
|
||||
|
||||
this._isStable = merge(isCurrentlyStable, share.call(isStable));
|
||||
(this as{isStable: Observable<boolean>}).isStable =
|
||||
merge(isCurrentlyStable, share.call(isStable));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -428,7 +442,7 @@ export class ApplicationRef {
|
|||
componentFactory =
|
||||
this._componentFactoryResolver.resolveComponentFactory(componentOrFactory) !;
|
||||
}
|
||||
this._rootComponentTypes.push(componentFactory.componentType);
|
||||
this.componentTypes.push(componentFactory.componentType);
|
||||
|
||||
// Create a factory associated with the current module if it's not bound to some other
|
||||
const ngModule = componentFactory instanceof ComponentFactoryBoundToModule ?
|
||||
|
@ -483,17 +497,6 @@ export 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 this._rootComponentTypes; }
|
||||
|
||||
/**
|
||||
* Get a list of components registered to this application.
|
||||
*/
|
||||
get components(): ComponentRef<any>[] { return this._rootComponents; }
|
||||
|
||||
/**
|
||||
* Attaches a view so that it will be dirty checked.
|
||||
* The view will be automatically detached when it is destroyed.
|
||||
|
@ -517,7 +520,7 @@ export class ApplicationRef {
|
|||
private _loadComponent(componentRef: ComponentRef<any>): void {
|
||||
this.attachView(componentRef.hostView);
|
||||
this.tick();
|
||||
this._rootComponents.push(componentRef);
|
||||
this.components.push(componentRef);
|
||||
// Get the listeners lazily to prevent DI cycles.
|
||||
const listeners =
|
||||
this._injector.get(APP_BOOTSTRAP_LISTENER, []).concat(this._bootstrapListeners);
|
||||
|
@ -526,7 +529,7 @@ export class ApplicationRef {
|
|||
|
||||
private _unloadComponent(componentRef: ComponentRef<any>): void {
|
||||
this.detachView(componentRef.hostView);
|
||||
remove(this._rootComponents, componentRef);
|
||||
remove(this.components, componentRef);
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
|
@ -539,11 +542,6 @@ export class ApplicationRef {
|
|||
* Returns the number of attached views.
|
||||
*/
|
||||
get viewCount() { return this._views.length; }
|
||||
|
||||
/**
|
||||
* Returns an Observable that indicates when the application is stable or unstable.
|
||||
*/
|
||||
get isStable(): Observable<boolean> { return this._isStable; }
|
||||
}
|
||||
|
||||
function remove<T>(list: T[], el: T): void {
|
||||
|
|
|
@ -26,8 +26,8 @@ const trackByIdentity = (index: number, item: any) => item;
|
|||
* @deprecated v4.0.0 - Should not be part of public API.
|
||||
*/
|
||||
export class DefaultIterableDiffer<V> implements IterableDiffer<V>, IterableChanges<V> {
|
||||
private _length: number = 0;
|
||||
private _collection: NgIterable<V>|null = null;
|
||||
public readonly length: number = 0;
|
||||
public readonly collection: V[]|Iterable<V>|null;
|
||||
// Keeps track of the used records at any point in time (during & across `_check()` calls)
|
||||
private _linkedRecords: _DuplicateMap<V>|null = null;
|
||||
// Keeps track of the removed records at any point in time during `_check()` calls.
|
||||
|
@ -48,10 +48,6 @@ export class DefaultIterableDiffer<V> implements IterableDiffer<V>, IterableChan
|
|||
|
||||
constructor(trackByFn?: TrackByFunction<V>) { this._trackByFn = trackByFn || trackByIdentity; }
|
||||
|
||||
get collection() { return this._collection; }
|
||||
|
||||
get length(): number { return this._length; }
|
||||
|
||||
forEachItem(fn: (record: IterableChangeRecord_<V>) => void) {
|
||||
let record: IterableChangeRecord_<V>|null;
|
||||
for (record = this._itHead; record !== null; record = record._next) {
|
||||
|
@ -171,9 +167,9 @@ export class DefaultIterableDiffer<V> implements IterableDiffer<V>, IterableChan
|
|||
let item: V;
|
||||
let itemTrackBy: any;
|
||||
if (Array.isArray(collection)) {
|
||||
this._length = collection.length;
|
||||
(this as{length: number}).length = collection.length;
|
||||
|
||||
for (let index = 0; index < this._length; index++) {
|
||||
for (let index = 0; index < this.length; index++) {
|
||||
item = collection[index];
|
||||
itemTrackBy = this._trackByFn(index, item);
|
||||
if (record === null || !looseIdentical(record.trackById, itemTrackBy)) {
|
||||
|
@ -206,11 +202,11 @@ export class DefaultIterableDiffer<V> implements IterableDiffer<V>, IterableChan
|
|||
record = record._next;
|
||||
index++;
|
||||
});
|
||||
this._length = index;
|
||||
(this as{length: number}).length = index;
|
||||
}
|
||||
|
||||
this._truncate(record);
|
||||
this._collection = collection;
|
||||
(this as{collection: V[] | Iterable<V>}).collection = collection;
|
||||
return this.isDirty;
|
||||
}
|
||||
|
||||
|
|
|
@ -29,10 +29,10 @@
|
|||
* @stable
|
||||
*/
|
||||
export class InjectionToken<T> {
|
||||
/** @internal */
|
||||
readonly ngMetadataName = 'InjectionToken';
|
||||
|
||||
constructor(protected _desc: string) {}
|
||||
|
||||
toString(): string { return `InjectionToken ${this._desc}`; }
|
||||
|
||||
/** @internal */
|
||||
get ngMetadataName() { return 'InjectionToken'; }
|
||||
}
|
||||
|
|
|
@ -282,8 +282,7 @@ export class ReflectiveInjector_ implements ReflectiveInjector {
|
|||
_constructionCounter: number = 0;
|
||||
/** @internal */
|
||||
public _providers: ResolvedReflectiveProvider[];
|
||||
/** @internal */
|
||||
public _parent: Injector|null;
|
||||
public readonly parent: Injector|null;
|
||||
|
||||
keyIds: number[];
|
||||
objs: any[];
|
||||
|
@ -292,7 +291,7 @@ export class ReflectiveInjector_ implements ReflectiveInjector {
|
|||
*/
|
||||
constructor(_providers: ResolvedReflectiveProvider[], _parent?: Injector) {
|
||||
this._providers = _providers;
|
||||
this._parent = _parent || null;
|
||||
this.parent = _parent || null;
|
||||
|
||||
const len = _providers.length;
|
||||
|
||||
|
@ -309,8 +308,6 @@ export class ReflectiveInjector_ implements ReflectiveInjector {
|
|||
return this._getByKey(ReflectiveKey.get(token), null, notFoundValue);
|
||||
}
|
||||
|
||||
get parent(): Injector|null { return this._parent; }
|
||||
|
||||
resolveAndCreateChild(providers: Provider[]): ReflectiveInjector {
|
||||
const ResolvedReflectiveProviders = ReflectiveInjector.resolve(providers);
|
||||
return this.createChildFromResolved(ResolvedReflectiveProviders);
|
||||
|
@ -318,7 +315,7 @@ export class ReflectiveInjector_ implements ReflectiveInjector {
|
|||
|
||||
createChildFromResolved(providers: ResolvedReflectiveProvider[]): ReflectiveInjector {
|
||||
const inj = new ReflectiveInjector_(providers);
|
||||
inj._parent = this;
|
||||
(inj as{parent: Injector | null}).parent = this;
|
||||
return inj;
|
||||
}
|
||||
|
||||
|
@ -436,7 +433,7 @@ export class ReflectiveInjector_ implements ReflectiveInjector {
|
|||
let inj: Injector|null;
|
||||
|
||||
if (visibility instanceof SkipSelf) {
|
||||
inj = this._parent;
|
||||
inj = this.parent;
|
||||
} else {
|
||||
inj = this;
|
||||
}
|
||||
|
@ -445,7 +442,7 @@ export class ReflectiveInjector_ implements ReflectiveInjector {
|
|||
const inj_ = <ReflectiveInjector_>inj;
|
||||
const obj = inj_._getObjByKeyId(key.id);
|
||||
if (obj !== UNDEFINED) return obj;
|
||||
inj = inj_._parent;
|
||||
inj = inj_.parent;
|
||||
}
|
||||
if (inj !== null) {
|
||||
return inj.get(key.token, notFoundValue);
|
||||
|
|
|
@ -27,6 +27,7 @@ import {resolveForwardRef} from './forward_ref';
|
|||
* @deprecated No replacement
|
||||
*/
|
||||
export class ReflectiveKey {
|
||||
public readonly displayName: string;
|
||||
/**
|
||||
* Private
|
||||
*/
|
||||
|
@ -34,13 +35,9 @@ export class ReflectiveKey {
|
|||
if (!token) {
|
||||
throw new Error('Token must be defined!');
|
||||
}
|
||||
this.displayName = stringify(this.token);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a stringified token.
|
||||
*/
|
||||
get displayName(): string { return stringify(this.token); }
|
||||
|
||||
/**
|
||||
* Retrieves a `Key` for a token.
|
||||
*/
|
||||
|
|
|
@ -37,11 +37,10 @@ import {getSymbolIterator} from '../util';
|
|||
* @stable
|
||||
*/
|
||||
export class QueryList<T>/* implements Iterable<T> */ {
|
||||
private _dirty = true;
|
||||
public readonly dirty = true;
|
||||
private _results: Array<T> = [];
|
||||
private _emitter = new EventEmitter();
|
||||
public readonly changes: Observable<any> = new EventEmitter();
|
||||
|
||||
get changes(): Observable<any> { return this._emitter; }
|
||||
get length(): number { return this._results.length; }
|
||||
get first(): T { return this._results[0]; }
|
||||
get last(): T { return this._results[this.length - 1]; }
|
||||
|
@ -98,21 +97,18 @@ export class QueryList<T>/* implements Iterable<T> */ {
|
|||
|
||||
reset(res: Array<T|any[]>): void {
|
||||
this._results = flatten(res);
|
||||
this._dirty = false;
|
||||
(this as{dirty: boolean}).dirty = false;
|
||||
}
|
||||
|
||||
notifyOnChanges(): void { this._emitter.emit(this); }
|
||||
notifyOnChanges(): void { (this.changes as EventEmitter<any>).emit(this); }
|
||||
|
||||
/** internal */
|
||||
setDirty() { this._dirty = true; }
|
||||
|
||||
/** internal */
|
||||
get dirty() { return this._dirty; }
|
||||
setDirty() { (this as{dirty: boolean}).dirty = true; }
|
||||
|
||||
/** internal */
|
||||
destroy(): void {
|
||||
this._emitter.complete();
|
||||
this._emitter.unsubscribe();
|
||||
(this.changes as EventEmitter<any>).complete();
|
||||
(this.changes as EventEmitter<any>).unsubscribe();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -12,13 +12,15 @@
|
|||
* @stable
|
||||
*/
|
||||
export class Version {
|
||||
constructor(public full: string) {}
|
||||
public readonly major: string;
|
||||
public readonly minor: string;
|
||||
public readonly patch: string;
|
||||
|
||||
get major(): string { return this.full.split('.')[0]; }
|
||||
|
||||
get minor(): string { return this.full.split('.')[1]; }
|
||||
|
||||
get patch(): string { return this.full.split('.').slice(2).join('.'); }
|
||||
constructor(public full: string) {
|
||||
this.major = full.split('.')[0];
|
||||
this.minor = full.split('.')[1];
|
||||
this.patch = full.split('.').slice(2).join('.');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -101,18 +101,21 @@ class ComponentFactory_ extends ComponentFactory<any> {
|
|||
}
|
||||
|
||||
class ComponentRef_ extends ComponentRef<any> {
|
||||
public readonly hostView: ViewRef;
|
||||
public readonly instance: any;
|
||||
public readonly changeDetectorRef: ChangeDetectorRef;
|
||||
private _elDef: NodeDef;
|
||||
constructor(private _view: ViewData, private _viewRef: ViewRef, private _component: any) {
|
||||
super();
|
||||
this._elDef = this._view.def.nodes[0];
|
||||
this.hostView = _viewRef;
|
||||
this.changeDetectorRef = _viewRef;
|
||||
this.instance = _component;
|
||||
}
|
||||
get location(): ElementRef {
|
||||
return new ElementRef(asElementData(this._view, this._elDef.index).renderElement);
|
||||
}
|
||||
get injector(): Injector { return new Injector_(this._view, this._elDef); }
|
||||
get instance(): any { return this._component; };
|
||||
get hostView(): ViewRef { return this._viewRef; };
|
||||
get changeDetectorRef(): ChangeDetectorRef { return this._viewRef; };
|
||||
get componentType(): Type<any> { return <any>this._component.constructor; }
|
||||
|
||||
destroy(): void { this._viewRef.destroy(); }
|
||||
|
|
Loading…
Reference in New Issue