Files
privacy.sexy/tests/unit/shared/Stubs/EventSourceStub.ts
undergroundwires a721e82a4f Bump TypeScript to 5.3 with verbatimModuleSyntax
This commit upgrades TypeScript to the latest version 5.3 and introduces
`verbatimModuleSyntax` in line with the official Vue guide
recommendatinos (vuejs/docs#2592).

By enforcing `import type` for type-only imports, this commit improves
code clarity and supports tooling optimization, ensuring imports are
only bundled when necessary for runtime.

Changes:

- Bump TypeScript to 5.3.3 across the project.
- Adjust import statements to utilize `import type` where applicable,
  promoting cleaner and more efficient code.
2024-02-27 04:20:22 +01:00

23 lines
676 B
TypeScript

import type { EventHandler, IEventSource, IEventSubscription } from '@/infrastructure/Events/IEventSource';
import { EventSubscriptionStub } from './EventSubscriptionStub';
export class EventSourceStub<T> implements IEventSource<T> {
private readonly handlers = new Array<EventHandler<T>>();
public on(handler: EventHandler<T>): IEventSubscription {
this.handlers.push(handler);
return new EventSubscriptionStub(() => {
const index = this.handlers.indexOf(handler);
if (index !== -1) {
this.handlers.splice(index, 1);
}
});
}
public notify(data: T) {
for (const handler of this.handlers) {
handler(data);
}
}
}