66 RegisterHookFunctionParams ,
77 AnyOnFailureHookFunction ,
88 AnyOnSuccessHookFunction ,
9+ AnyOnCompleteHookFunction ,
910} from "./types.js" ;
1011
1112export class StandardLifecycleHooksManager implements LifecycleHooksManager {
@@ -25,6 +26,11 @@ export class StandardLifecycleHooksManager implements LifecycleHooksManager {
2526 private taskSuccessHooks : Map < string , RegisteredHookFunction < AnyOnSuccessHookFunction > > =
2627 new Map ( ) ;
2728
29+ private globalCompleteHooks : Map < string , RegisteredHookFunction < AnyOnCompleteHookFunction > > =
30+ new Map ( ) ;
31+ private taskCompleteHooks : Map < string , RegisteredHookFunction < AnyOnCompleteHookFunction > > =
32+ new Map ( ) ;
33+
2834 registerGlobalStartHook ( hook : RegisterHookFunctionParams < AnyOnStartHookFunction > ) : void {
2935 const id = generateHookId ( hook ) ;
3036
@@ -151,6 +157,37 @@ export class StandardLifecycleHooksManager implements LifecycleHooksManager {
151157 getGlobalSuccessHooks ( ) : RegisteredHookFunction < AnyOnSuccessHookFunction > [ ] {
152158 return Array . from ( this . globalSuccessHooks . values ( ) ) ;
153159 }
160+
161+ registerGlobalCompleteHook ( hook : RegisterHookFunctionParams < AnyOnCompleteHookFunction > ) : void {
162+ const id = generateHookId ( hook ) ;
163+
164+ this . globalCompleteHooks . set ( id , {
165+ id,
166+ name : hook . id ?? hook . fn . name ? ( hook . fn . name === "" ? undefined : hook . fn . name ) : undefined ,
167+ fn : hook . fn ,
168+ } ) ;
169+ }
170+
171+ registerTaskCompleteHook (
172+ taskId : string ,
173+ hook : RegisterHookFunctionParams < AnyOnCompleteHookFunction >
174+ ) : void {
175+ const id = generateHookId ( hook ) ;
176+
177+ this . taskCompleteHooks . set ( taskId , {
178+ id,
179+ name : hook . id ?? hook . fn . name ? ( hook . fn . name === "" ? undefined : hook . fn . name ) : undefined ,
180+ fn : hook . fn ,
181+ } ) ;
182+ }
183+
184+ getTaskCompleteHook ( taskId : string ) : AnyOnCompleteHookFunction | undefined {
185+ return this . taskCompleteHooks . get ( taskId ) ?. fn ;
186+ }
187+
188+ getGlobalCompleteHooks ( ) : RegisteredHookFunction < AnyOnCompleteHookFunction > [ ] {
189+ return Array . from ( this . globalCompleteHooks . values ( ) ) ;
190+ }
154191}
155192
156193export class NoopLifecycleHooksManager implements LifecycleHooksManager {
@@ -229,6 +266,25 @@ export class NoopLifecycleHooksManager implements LifecycleHooksManager {
229266 getGlobalSuccessHooks ( ) : RegisteredHookFunction < AnyOnSuccessHookFunction > [ ] {
230267 return [ ] ;
231268 }
269+
270+ registerGlobalCompleteHook ( hook : RegisterHookFunctionParams < AnyOnCompleteHookFunction > ) : void {
271+ // Noop
272+ }
273+
274+ registerTaskCompleteHook (
275+ taskId : string ,
276+ hook : RegisterHookFunctionParams < AnyOnCompleteHookFunction >
277+ ) : void {
278+ // Noop
279+ }
280+
281+ getTaskCompleteHook ( taskId : string ) : AnyOnCompleteHookFunction | undefined {
282+ return undefined ;
283+ }
284+
285+ getGlobalCompleteHooks ( ) : RegisteredHookFunction < AnyOnCompleteHookFunction > [ ] {
286+ return [ ] ;
287+ }
232288}
233289
234290function generateHookId ( hook : RegisterHookFunctionParams < any > ) : string {
0 commit comments