Skip to main content

· One min read

This release does not contain any changes to the code of the event bus itself. Rather, it facilitates improvements to the packaging, adding version and website information directly into the package.

Additionally, dependencies were updated.

Version 0.5.1 contained infrastructure fixes only.

If you find bugs, would like to see more features and discuss particular design choices, feel free to create a new issue to get in touch.

If you like my work and want to support me, please consider sponsoring me.

· One min read

This release focuses mainly on the developer experience and only has a minor change for users.

Error messages now include callback name and event name

If a callback errors, error messages would simply print the error message and a stacktrace. This has been enhanced to include the callback and event names.

Developer experience changes

To improve the developer experience, the following changes have been made:

  • The TypeScript code allows the usage of the latest syntax. The code is then transpiled to older JavaScript compatibility using Babel.
  • Explicitly define the supported browsers. Most notably, Internet Explorer 11 is not supported as it increases the code size immensely and is not officially supported by Microsoft anymore.
  • Configure StrykerJS. This is a tool that can find holes in your test coverage by mutating your code with common programming mistakes and making sure your tests catch those.

If you find bugs, would like to see more features and discuss particular design choices, feel free to create a new issue to get in touch.

If you like my work and want to support me, please consider sponsoring me.

· One min read

This release contains a number of small bits and bops here and there to finetune the package and give it some extra shine:

  • Fix a possible security issue due to prototype polution
  • Inject version number into loading log message
  • Add hack to get the Map class back
  • Move raising specialized gmcp events to the NXS package for improved visibility and document them

· One min read

The new Nexus client will be available on multiple platforms, using React Native. During testing, people noticed that the Web API for generating cryptographically secure random numbers are not available and thus the UUID package we depend on was unable to load.

A proper polyfill is curently impossible as we can not ship Java modules in Nexus packages. Luckily, the UUID package allows to supply a custom function for generating the required random values. As a workaround, this functionality was used in connection with Math.random to supply the needed information.

That means however, that our UUIDs are not as random as they usually are. But for our use case of generating random names, this should be good enough.

· 2 min read

This release is something, the Achaean Player Khaseem wished for. He's been using the original EventStream module of NexSys very extenively. However, he'd like to move to an external package to help the adoption of a standard set of Nexus packages.

The original EventStream had a set of features that were part of his development flow: The ability to unsubscribe from events using a function name and access to the list of subscribers to an event.

While the former is about a preferred coding style, the latter is useful for debugging code: That way you can easily have a look at the list of subscribers to an event and determine if all subscribers actually belong there at this point.

New Features

You may now subscribe or unsubscribe to events using a callback function name instead of a function reference. To avoid accidental overwriting of existing callbacks, especially between different users of the EventBus, duplicate subscription names generate an error. So you may want to namespace your event names.

You can now access the list of subscribers to an event using the getSubscribers method. This allows easy inspection of the subscription state of callbacks. The subscribers may not be changed this way.

· One min read

Hello World!

And with that out of the way, I present the first release on my event bus package for the Nexus MUD client.

While there are already implementations of the event bus for the Nexus MUD client (ie as part of the NexSys and NexGUI projects), I wanted to make a package that is not part of a larger project. Instead this project can be installed individually and be used as a dependency for other projects. This should make it easier for the community to adapt a set of lightweight standard packages that still allow the users a large amount of flexibility to use the packages they like.

This release is the minimal viable product and contains the most basic functionality: Registering event handlers, raising events and unregistering event handlers. The API documentation has all the gritty details.

More features may be added in the future. Feel free to create a new issue to discuss further extensions.

If you like my work and want to support me, please consider sponsoring me.

Oh, and why is the initial release version 0.0.3? Well, I messed up the packaging, so I had to redo it a few times. I'm sorry.