77 AnyOnFailureHookFunction ,
88 AnyOnSuccessHookFunction ,
99 AnyOnCompleteHookFunction ,
10+ AnyOnWaitHookFunction ,
11+ AnyOnResumeHookFunction ,
1012} from "./types.js" ;
1113
1214export class StandardLifecycleHooksManager implements LifecycleHooksManager {
@@ -31,6 +33,13 @@ export class StandardLifecycleHooksManager implements LifecycleHooksManager {
3133 private taskCompleteHooks : Map < string , RegisteredHookFunction < AnyOnCompleteHookFunction > > =
3234 new Map ( ) ;
3335
36+ private globalWaitHooks : Map < string , RegisteredHookFunction < AnyOnWaitHookFunction > > = new Map ( ) ;
37+ private taskWaitHooks : Map < string , RegisteredHookFunction < AnyOnWaitHookFunction > > = new Map ( ) ;
38+
39+ private globalResumeHooks : Map < string , RegisteredHookFunction < AnyOnResumeHookFunction > > =
40+ new Map ( ) ;
41+ private taskResumeHooks : Map < string , RegisteredHookFunction < AnyOnResumeHookFunction > > = new Map ( ) ;
42+
3443 registerGlobalStartHook ( hook : RegisterHookFunctionParams < AnyOnStartHookFunction > ) : void {
3544 const id = generateHookId ( hook ) ;
3645
@@ -188,6 +197,68 @@ export class StandardLifecycleHooksManager implements LifecycleHooksManager {
188197 getGlobalCompleteHooks ( ) : RegisteredHookFunction < AnyOnCompleteHookFunction > [ ] {
189198 return Array . from ( this . globalCompleteHooks . values ( ) ) ;
190199 }
200+
201+ registerGlobalWaitHook ( hook : RegisterHookFunctionParams < AnyOnWaitHookFunction > ) : void {
202+ const id = generateHookId ( hook ) ;
203+
204+ this . globalWaitHooks . set ( id , {
205+ id,
206+ name : hook . id ?? hook . fn . name ? ( hook . fn . name === "" ? undefined : hook . fn . name ) : undefined ,
207+ fn : hook . fn ,
208+ } ) ;
209+ }
210+
211+ registerTaskWaitHook (
212+ taskId : string ,
213+ hook : RegisterHookFunctionParams < AnyOnWaitHookFunction >
214+ ) : void {
215+ const id = generateHookId ( hook ) ;
216+
217+ this . taskWaitHooks . set ( taskId , {
218+ id,
219+ name : hook . id ?? hook . fn . name ? ( hook . fn . name === "" ? undefined : hook . fn . name ) : undefined ,
220+ fn : hook . fn ,
221+ } ) ;
222+ }
223+
224+ getTaskWaitHook ( taskId : string ) : AnyOnWaitHookFunction | undefined {
225+ return this . taskWaitHooks . get ( taskId ) ?. fn ;
226+ }
227+
228+ getGlobalWaitHooks ( ) : RegisteredHookFunction < AnyOnWaitHookFunction > [ ] {
229+ return Array . from ( this . globalWaitHooks . values ( ) ) ;
230+ }
231+
232+ registerGlobalResumeHook ( hook : RegisterHookFunctionParams < AnyOnResumeHookFunction > ) : void {
233+ const id = generateHookId ( hook ) ;
234+
235+ this . globalResumeHooks . set ( id , {
236+ id,
237+ name : hook . id ?? hook . fn . name ? ( hook . fn . name === "" ? undefined : hook . fn . name ) : undefined ,
238+ fn : hook . fn ,
239+ } ) ;
240+ }
241+
242+ registerTaskResumeHook (
243+ taskId : string ,
244+ hook : RegisterHookFunctionParams < AnyOnResumeHookFunction >
245+ ) : void {
246+ const id = generateHookId ( hook ) ;
247+
248+ this . taskResumeHooks . set ( taskId , {
249+ id,
250+ name : hook . id ?? hook . fn . name ? ( hook . fn . name === "" ? undefined : hook . fn . name ) : undefined ,
251+ fn : hook . fn ,
252+ } ) ;
253+ }
254+
255+ getTaskResumeHook ( taskId : string ) : AnyOnResumeHookFunction | undefined {
256+ return this . taskResumeHooks . get ( taskId ) ?. fn ;
257+ }
258+
259+ getGlobalResumeHooks ( ) : RegisteredHookFunction < AnyOnResumeHookFunction > [ ] {
260+ return Array . from ( this . globalResumeHooks . values ( ) ) ;
261+ }
191262}
192263
193264export class NoopLifecycleHooksManager implements LifecycleHooksManager {
@@ -285,6 +356,44 @@ export class NoopLifecycleHooksManager implements LifecycleHooksManager {
285356 getGlobalCompleteHooks ( ) : RegisteredHookFunction < AnyOnCompleteHookFunction > [ ] {
286357 return [ ] ;
287358 }
359+
360+ registerGlobalWaitHook ( hook : RegisterHookFunctionParams < AnyOnWaitHookFunction > ) : void {
361+ // Noop
362+ }
363+
364+ registerTaskWaitHook (
365+ taskId : string ,
366+ hook : RegisterHookFunctionParams < AnyOnWaitHookFunction >
367+ ) : void {
368+ // Noop
369+ }
370+
371+ getTaskWaitHook ( taskId : string ) : AnyOnWaitHookFunction | undefined {
372+ return undefined ;
373+ }
374+
375+ getGlobalWaitHooks ( ) : RegisteredHookFunction < AnyOnWaitHookFunction > [ ] {
376+ return [ ] ;
377+ }
378+
379+ registerGlobalResumeHook ( hook : RegisterHookFunctionParams < AnyOnResumeHookFunction > ) : void {
380+ // Noop
381+ }
382+
383+ registerTaskResumeHook (
384+ taskId : string ,
385+ hook : RegisterHookFunctionParams < AnyOnResumeHookFunction >
386+ ) : void {
387+ // Noop
388+ }
389+
390+ getTaskResumeHook ( taskId : string ) : AnyOnResumeHookFunction | undefined {
391+ return undefined ;
392+ }
393+
394+ getGlobalResumeHooks ( ) : RegisteredHookFunction < AnyOnResumeHookFunction > [ ] {
395+ return [ ] ;
396+ }
288397}
289398
290399function generateHookId ( hook : RegisterHookFunctionParams < any > ) : string {
0 commit comments