zam_event_bus 0.1.0 copy "zam_event_bus: ^0.1.0" to clipboard
zam_event_bus: ^0.1.0 copied to clipboard

outdated

Event bus is a event based state management package for dart.

example/lib/main.dart

import 'package:zam_event_bus/zam_event_bus.dart';

class SomeEvent {}

class SomeOtherEvent {}

class SomeOtherEvent1 extends SomeOtherEvent2 {}

class SomeOtherEvent2 {}

class BoringEvent {}

class FunEvent {}

class MyEventTransformer implements EventTransformer<BoringEvent> {
  @override
  final Type key = BoringEvent;

  const MyEventTransformer();

  @override
  void execute(BoringEvent event, EventBus bus) {
    bus.publish(FunEvent());
  }
}

void main() async {
  final bus = EventBus([
    EventTransformer(SomeEvent, (event) => SomeOtherEvent()),
    EventMultiplier.direct(
        SomeOtherEvent, [SomeOtherEvent1(), SomeOtherEvent2()]),
  ]);
  bus.publish(SomeEvent());
  final sub1 = bus.select<SomeOtherEvent1>().listen(print);
  final sub2 = bus.select<SomeOtherEvent2>().listen(bus.save);

  await Future.delayed(Duration(seconds: 1));

  print(bus.selectFromStore<SomeOtherEvent2>());
  await sub1.cancel();
  await sub2.cancel();
  await bus.dispose();
}
0
likes
0
pub points
0%
popularity

Publisher

verified publisherzamstation.com

Event bus is a event based state management package for dart.

Homepage
Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

zam_command_pattern, zam_core

More

Packages that depend on zam_event_bus