2016-04-28 17:50:03 -07:00
|
|
|
import {LifecycleHooks} from '../core_private';
|
|
|
|
|
|
|
|
|
|
import {Type} from '../src/facade/lang';
|
|
|
|
|
|
2015-05-27 08:08:14 -07:00
|
|
|
|
2015-09-11 14:23:24 -07:00
|
|
|
export function hasLifecycleHook(lcInterface: LifecycleHooks, token): boolean {
|
|
|
|
|
if (!(token instanceof Type)) return false;
|
2015-08-31 18:32:32 -07:00
|
|
|
|
2015-09-11 14:23:24 -07:00
|
|
|
var proto = (<any>token).prototype;
|
2015-08-31 18:32:32 -07:00
|
|
|
|
|
|
|
|
switch (lcInterface) {
|
2015-09-11 14:23:24 -07:00
|
|
|
case LifecycleHooks.AfterContentInit:
|
2015-11-16 17:04:36 -08:00
|
|
|
return !!proto.ngAfterContentInit;
|
2015-09-11 14:23:24 -07:00
|
|
|
case LifecycleHooks.AfterContentChecked:
|
2015-11-16 17:04:36 -08:00
|
|
|
return !!proto.ngAfterContentChecked;
|
2015-09-11 14:23:24 -07:00
|
|
|
case LifecycleHooks.AfterViewInit:
|
2015-11-16 17:04:36 -08:00
|
|
|
return !!proto.ngAfterViewInit;
|
2015-09-11 14:23:24 -07:00
|
|
|
case LifecycleHooks.AfterViewChecked:
|
2015-11-16 17:04:36 -08:00
|
|
|
return !!proto.ngAfterViewChecked;
|
2015-09-11 14:23:24 -07:00
|
|
|
case LifecycleHooks.OnChanges:
|
2015-11-16 17:04:36 -08:00
|
|
|
return !!proto.ngOnChanges;
|
2015-09-11 14:23:24 -07:00
|
|
|
case LifecycleHooks.DoCheck:
|
2015-11-16 17:04:36 -08:00
|
|
|
return !!proto.ngDoCheck;
|
2015-09-11 14:23:24 -07:00
|
|
|
case LifecycleHooks.OnDestroy:
|
2015-11-16 17:04:36 -08:00
|
|
|
return !!proto.ngOnDestroy;
|
2015-09-11 14:23:24 -07:00
|
|
|
case LifecycleHooks.OnInit:
|
2015-11-16 17:04:36 -08:00
|
|
|
return !!proto.ngOnInit;
|
2015-08-31 18:32:32 -07:00
|
|
|
default:
|
|
|
|
|
return false;
|
2015-05-27 08:08:14 -07:00
|
|
|
}
|
2015-07-04 15:04:50 +02:00
|
|
|
}
|