I’ve published a patch release for Q-Connection, including contributions from Felix Geisendörfer and Stuart Knightley. These are minor and backward compatible changes.
# 0.6.1
- The reason a connection was closed is now communicated to all pending
promises that are rejected because of a closed connection. (@felixge)
These errors now have a `cause` property, for the original `Error`.
- Adds support for an `onmessagelost` option that will be invoked if a message
is sent to a non-existent promise. This can occur if the promise is
collected from the LRU. (@stuk)
- Ensures that the service root object for a connection is never evicted from
the LRU cache of local promises. (@stuk)
- The `capacity` option takes over for the former `max` option, setting the
capacity of the LRU for cached promises.
Work continues to bring about a next major version of Q-Connection, in the v2 branch. The new Q-Connection is factored with the next versions of Q and Q-IO.
Q-Connection will no longer implicitly adapt various known message transports like WebSockets and child processes. Q-Connection will only accept a promise stream. Q-IO’s v2 branch now has various constructors for proper promise streams, including WebStream (for WebSockets, MessagePort, and probably WebRTC’s message transport), WindowStream (for connections negotiated on the window object), and a Node process/child process adaptor. Q-IO v2 also has facilities for easily adapting other kinds of streams and iterables. More to come. The v2 branches are still struggling to come together because I am trying to resolve cyclic dependencies among the various layers of the infrastructure. For example, Jasminum depends on Q, and Q uses Jasminum for its tests.
Kris Kowal