All streaming code should be double checked for proper error handling and propagation, there are several places errors can happen with streaming Vanadium API calls and some work needs to be done to ensure that the errors occur in the expected way in JS (emitted on the stream). Additionally streams that are piped (like chains of transform streams) need to proxy errors through so that calling code can ultimately handle the error in the right place at the right time. When finished with a stream it is important to remove listeners so that the objects can be cleaned up see pump and stream-faqs
Streams that need to be double checked:
[ ] glob-stream - needs proper cleanup of glob stream on recursive calls, mutlistream might be useful.
[ ] syncbase blob stream, errors in window.Blob promise APIs need to proxy to stream errors.
All streaming code should be double checked for proper error handling and propagation, there are several places errors can happen with streaming Vanadium API calls and some work needs to be done to ensure that the errors occur in the expected way in JS (emitted on the stream). Additionally streams that are piped (like chains of transform streams) need to proxy errors through so that calling code can ultimately handle the error in the right place at the right time. When finished with a stream it is important to remove listeners so that the objects can be cleaned up see pump and stream-faqs
Streams that need to be double checked:
window.Blob
promise APIs need to proxy to stream errors.store.createReadStream(...)
)store.createWatchStream(...)
)The last one could get wrapped in the code which sets up the sync group.