NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #2207 most downloaded on pub.dev
Create lightweight custom Events, that allow interested subscribers to be notified that something has happened.
Last release 2 years ago
no release in 18 months
Ships unpredictably
gaps range from 8 days to 2.6 years
Nearly every release is documented
notes for 19 of 21 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
21 releases · first in 2020
One column per quarter.
Diagnostic logging is available. See the new Diagnostics section in README.md and the example application for further information.
Diagnostics section in README.md and the example application for further information.subscribe() and broadcast() Event methods produce diagnostic messages at Severity debug. To output these messages use the showLog() method with Severity debug. See the example application.// Example diagnostics logging output
Event (debug): 2024-09-10 11:37:49.665124Z Subscribed to Event "countChanged:Event<EventArgs>"
Event (debug): 2024-09-10 11:37:49.675925Z Broadcast Event "countChanged:Event<EventArgs>"
Nothing published for this version
This version has BREAKING CHANGES
This version has BREAKING CHANGES
var e = Event();
// is equivalent to...
var e = Event<EventArgs>();
var e = Event("CountUpdatedEvent");
e.subscribe((args) => print(args.eventName));
// outputs "null" until the event is broadcast.
e.broadcast();
// outputs "CountUpdatedEvent"
null, and are only populated when the Event is broadcast. // Example without Event name
var e = Event();
e.subscribe((args) {
print(args.eventName); // outputs null
print(args.whenOccurred); // outputs time of broadcast
};
e.broadcast();
// Example specifying an Event name
var e = Event("myEvent");
e.subscribe((args) {
print(args.eventName); // outputs "myEvent"
print(args.whenOccurred); // outputs time of broadcast
};
e.broadcast();
var e = Event<CustomEventArgs>();
// following throws an ArgsError because broadcast()
// specifies no CustomEventArgs
e.broadcast();
// In this case, the ArgsError message shown would be...
// "Incorrect args being broadcast - args should be a CustomEventArgs"
// instead, following is correct
e.broadcast(CustomEventArgs("hello"));
var e = Event<Value<int>>();
assert(e.genericType == Value<int>);
var e = Event();
// no subscribers
var hadEffect = e.broadcast();
assert(hadEffect == false);
broadcast method - notifySubscribers - has been added.- Small README changes
Nothing published for this version
StdEventArgs renamed to WhenWhy to better indicate what the arguments represent.
Improved README
** Breaking Changes **
StdEventArgs renamed to WhenWhy to better indicate what the arguments represent. var e = Event<WhenWhy>();
e.broadcast(WhenWhy(description: 'some info'));
Value and Values now derive from EventArgs rather than WhenWhy (formerly StdEventArgs).Fix issue #5. Support the ability to unsubscribeAll within an Event handler.
GenericEventArg1 and GenericEventArg2 Event argument types renamed to Value and Values. Better reflects common usage. Values supports two values, whil
GenericEventArg1 and GenericEventArg2 Event argument types renamed to Value and Values. Better reflects common usage. Values supports two values, while Value supports one. var e = Event<Value>(); // Event will include a value as an argument
e.broadcast(Value(39)); // type of the Value inferred to be an int
// equivalent to
var e = Event<Value<int>>(); // type of the Value can also be explicit
e.broadcast(Value(39));
Make the list of handlers a non-nullable Type that is created lazily using the new 'late' keyword.
This simplifies the code substantially, because no null checks etc. are required.
Fixed issue #7 https://github.com/aryehof/dart-event/issues/7
Fixed incorrect link to Changelog in README.
Null safe. (Min SDK version 2.12.0)
Minor changes to README content and layout.
Added a subscribeStream method to Event, which supports the broadcasting of Events to a Dart Stream [StreamSink].
Added a subscribeStream method to Event, which supports the broadcasting of Events to a Dart Stream [StreamSink].
This allows a sequence of broadcast Events to be represented and manipulated as a Dart Stream. The rich range of mechanisms to filter and manipulate Streams become available.
Remember that the supplied [StreamSink] should be closed when no longer needed.
// Example
var e = Event();
var sc = StreamController();
e.subscribeStream(sc.sink);
e.broadcast();
sc.stream.listen((e) => print('boom'));
sc.close();
BasicEventArgs renamed to StdEventArgs for clarity.
Added BasicEventArgs as a standard EventArgs derived type. It includes a whenOccurred field that contains the date and time the Event was broadcast, a
BasicEventArgs as a standard EventArgs derived type. It includes a whenOccurred field that contains the date and time the Event was broadcast, as well as an optional description field.EventArgs1 and EventArgs2 to GenericEventArgs1 and GenericEventArgs2 respectively, to better indicate their purpose. Both are now derived from BasicEventArgs, meaning that they have whenOccurred and (optional) description fields.Add new method unsubscribeAll, to unsubscribe all subscribers (handlers).
unsubscribeAll, to unsubscribe all subscribers (handlers).The function signature for an Event has been simplified. The sender argument has been removed, leaving only the need to provide an optional argument d
The function signature for an Event has been simplified. The sender argument has been removed, leaving only the need to provide an optional argument derived from type EventArgs.
The sender argument was previously intended to be used to provide the source of the Event, or the object in which the Event was declared, to a subscriber. This can be equally well done within an EventArg passed as an argument to a subscriber.
// Before
// subscribe to onValueChanged Event
myCounter.onValueChanged + (sender, args) => print('before');
// Now
// subscribe to onValueChanged Event
myCounter.onValueChanged + (args) => print('after');
addHandler and removeHandler methods to subscribe and unsubscribe respectively.raise methods to broadcast.broadcastWithSubject removed to reflect to removal of sender described above.count method has been renamed to `subscriberCount'EventArgs1 and EventArgs2) have been included, which offers a quick alternative to producing your own custom EventArgs class.EventArgs1 supports one generic value, while EventArgs2 supports two. Example:-
// EventArgs1 (one value)
var e = Event<EventArgs1<String>>();
e.subscribe((args) => print(args.value));
e.broadcast(EventArgs1('hello'));
// prints hello
// EventArgs2 (two values)
var e = Event<EventArgs2<String, int>>();
e.subscribe((args) => print('${args.value1} - ${args.value2}'));
e.broadcast(EventArgs2('boom', 37));
// prints boom - 37
Added image of elevator example to README.
Updated reference to Flutter [EventSubscriber] in the README.
[eventsubscriber]: https://pub.dev/packages/eventsubscriber
48
likes
150
points
22.7k
downloads
API reference
aryehoffman.com
Create lightweight custom Events, that allow interested subscribers to be notified that something has happened.
Repository (GitHub)
View/report issues
Apache-2.0 ( license )
Packages that depend on event
48
likes
150
points
22.7k
downloads
API reference
aryehoffman.com
Create lightweight custom Events, that allow interested subscribers to be notified that something has happened.
Repository (GitHub)
View/report issues
Apache-2.0 ( license )
Packages that depend on event
Back
Your coding agent can read these notes before it upgrades. Set up the MCP server →