Files
2026-07-08 23:01:55 +04:00

26 lines
628 B
Python

from punq import Container
from typing import TypeVar
from pyee import EventEmitter
from kernel.event.listener import Listener
T = TypeVar('T')
class Registrar:
_container: Container
def __init__(self, container: Container) -> None:
self._container = container
def add_event_listener(
self,
event: str,
listener: type[Listener[T]]
) -> None:
async def callback(payload: T) -> None:
listener_instance = listener(self._container)
await listener_instance.handle(event, payload)
self._container.resolve(EventEmitter).on(event, callback)