Hi All,
I’ve started work on a Node.js client, which can be found at https://github.com/bmavity/ges-client . I am gradually implementing all the current ClientAPI tests in JavaScript to ensure feature compatibility. Current status of some of the major features:
- Connection (Partial - not all events are available)
- Append to stream (Partial - except for transactions/deleted)
- Read from stream (Partial - forward reads only)
- Subscriptions (Partial - live subscription to stream only)
- Read from all (Not Started)
- Stream ACLs (Not Started)
- Transations (Not Started)
- Stream deletes (Not Started)
- Stream metadata (Not Started)
The work so far is mainly on the tcp transport, but there is also some (really rough) code for http.
Finally, @kenpratt I learned a lot from looking at your previous version, so thanks a bunch for that.
Nice will take a look tonight
If anyone is interested, here is the current progress. I am dealing with some test failures because deserializing the ResolvedEvent and ResolvedIndexedEvent messages causes an exception due the required event field being returned as null. I am not sure what the expected behavior is here, so perhaps I just need to find a new protobuf module. I am also dealing with some intermittent test failures when reading from the $all stream because system events are getting inserted into the stream.
I am not planning on getting retries and reconnections working for the next publish to npm, but that should be fine for testing or sample projects.
- Connection (Partial - not all events are available)
- Append to stream (Partial - except for transactions)
- Read from stream (Complete)
- Subscriptions (Partial - live subscription to stream only)
- Read from all (Partial - except for linktos)
- Stream ACLs (Partial - can be set with metadata, but tests not migrated)
- Transations (Not Started)
- Stream deletes (Complete)
- Stream metadata (Complete)
You should be aware of the competing branch there are some different messages added there.
" I am also dealing with some intermittent test failures when reading from the $all stream because system events are getting inserted into the stream."
Yes system events can be there. You can work around by knowing they start with $
Thanks for the heads up on the branch. Will check it out.
I filter the system events, but sometimes there are too many and cause all the normal events to not appear. I was trying to strictly follow the c# tests, but from your response, can I assume that it is safe to just increase the count on the reads?