11import {
22 AnyOnInitHookFunction ,
3+ AnyOnStartHookFunction ,
34 LifecycleHooksManager ,
45 RegisteredHookFunction ,
56 RegisterHookFunctionParams ,
@@ -9,6 +10,40 @@ export class StandardLifecycleHooksManager implements LifecycleHooksManager {
910 private globalInitHooks : Map < string , RegisteredHookFunction < AnyOnInitHookFunction > > = new Map ( ) ;
1011 private taskInitHooks : Map < string , RegisteredHookFunction < AnyOnInitHookFunction > > = new Map ( ) ;
1112
13+ private globalStartHooks : Map < string , RegisteredHookFunction < AnyOnStartHookFunction > > = new Map ( ) ;
14+ private taskStartHooks : Map < string , RegisteredHookFunction < AnyOnStartHookFunction > > = new Map ( ) ;
15+
16+ registerGlobalStartHook ( hook : RegisterHookFunctionParams < AnyOnStartHookFunction > ) : void {
17+ const id = generateHookId ( hook ) ;
18+
19+ this . globalStartHooks . set ( id , {
20+ id,
21+ name : hook . id ?? hook . fn . name ? ( hook . fn . name === "" ? undefined : hook . fn . name ) : undefined ,
22+ fn : hook . fn ,
23+ } ) ;
24+ }
25+
26+ registerTaskStartHook (
27+ taskId : string ,
28+ hook : RegisterHookFunctionParams < AnyOnStartHookFunction >
29+ ) : void {
30+ const id = generateHookId ( hook ) ;
31+
32+ this . taskStartHooks . set ( taskId , {
33+ id,
34+ name : hook . id ?? hook . fn . name ? ( hook . fn . name === "" ? undefined : hook . fn . name ) : undefined ,
35+ fn : hook . fn ,
36+ } ) ;
37+ }
38+
39+ getTaskStartHook ( taskId : string ) : AnyOnStartHookFunction | undefined {
40+ return this . taskStartHooks . get ( taskId ) ?. fn ;
41+ }
42+
43+ getGlobalStartHooks ( ) : RegisteredHookFunction < AnyOnStartHookFunction > [ ] {
44+ return Array . from ( this . globalStartHooks . values ( ) ) ;
45+ }
46+
1247 registerGlobalInitHook ( hook : RegisterHookFunctionParams < AnyOnInitHookFunction > ) : void {
1348 // if there is no id, lets generate one based on the contents of the function
1449 const id = generateHookId ( hook ) ;
@@ -63,6 +98,25 @@ export class NoopLifecycleHooksManager implements LifecycleHooksManager {
6398 getGlobalInitHooks ( ) : RegisteredHookFunction < AnyOnInitHookFunction > [ ] {
6499 return [ ] ;
65100 }
101+
102+ registerGlobalStartHook ( hook : RegisterHookFunctionParams < AnyOnStartHookFunction > ) : void {
103+ // Noop
104+ }
105+
106+ registerTaskStartHook (
107+ taskId : string ,
108+ hook : RegisterHookFunctionParams < AnyOnStartHookFunction >
109+ ) : void {
110+ // Noop
111+ }
112+
113+ getTaskStartHook ( taskId : string ) : AnyOnStartHookFunction | undefined {
114+ return undefined ;
115+ }
116+
117+ getGlobalStartHooks ( ) : RegisteredHookFunction < AnyOnStartHookFunction > [ ] {
118+ return [ ] ;
119+ }
66120}
67121
68122function generateHookId ( hook : RegisterHookFunctionParams < any > ) : string {
0 commit comments