MoleculeLifecycle
The @MoleculeLifecycle
-Decorator creates rxjs streams for all Angular and Ionic lifecycle hooks.
Hooks will only be overridden when requesting their stream, in order to reduce unnecessary overhead.
@MoleculeLifecycle()
@Component({
template: '{{latestDescription$|async}}'
})
export class YourComponent implements OnMoleculeLifecycle {
@Input() description: Observable<string> | string;
readonly latestDescription$: Observable<string>;
readonly ngOnChanges$: Observable<SimpleChanges>;
readonly ngOnDestroy$: Observable<void>;
constructor() {
this.latestDescription$ = this.ngOnChanges$.pluck('description', 'currentValue')
.switchMap(newValue => {
if (newValue instanceof Observable) {
return <Observable<string>>newValue;
} else {
return Observable.of(newValue);
}
})
.takeUntil(this.ngOnDestroy$)
.subsrcibe();
}
}
Installation
$ npm install --save @molecule/lifecycle-decorator
Author
Valentin Knabel, @vknabel, dev@vknabel.com
License
@molecule/lifecycle-decorator is available under the MIT license.