21 lines
527 B
TypeScript
21 lines
527 B
TypeScript
export class MockAutomationLifecycleEmitter {
|
|
private callbacks: Set<(event: any) => Promise<void> | void> = new Set()
|
|
|
|
onLifecycle(cb: (event: any) => Promise<void> | void): void {
|
|
this.callbacks.add(cb)
|
|
}
|
|
|
|
offLifecycle(cb: (event: any) => Promise<void> | void): void {
|
|
this.callbacks.delete(cb)
|
|
}
|
|
|
|
async emit(event: any): Promise<void> {
|
|
for (const cb of Array.from(this.callbacks)) {
|
|
try {
|
|
await cb(event)
|
|
} catch {
|
|
// ignore subscriber errors in tests
|
|
}
|
|
}
|
|
}
|
|
} |