This is really cool. Nice work Geoff. On Thu, Jul 20, 2017 at 5:23 PM, Geoffrey Cox <redge...@gmail.com> wrote:
> These are some great points, Sean, and the answer is that slouch doesn't > take either of those away. > > You can use iterator.abort() to stop the iteration, e.g. > https://github.com/redgeoff/slouch/wiki/Don't-just-relax.- > Slouch!#example-4---continuously-process-all-changes-to-a-db > > Also, you can get a node stream from the iterator with iterator.toStream(). > (For more info see > https://github.com/redgeoff/quelle/blob/master/scripts/ > stream-iterator.js#L149--sorry, > documentation is still coming) > > In the end, this new pattern may not be to your liking, but we've found it > to greatly simplify our code. And, you still have options to also keep with > existing conventions. > > On Thu, Jul 20, 2017 at 7:42 AM Sean Lang <slang...@gmail.com> wrote: > > > Except, I can't just pass a `.each` function to one of the hundreds of > > existing stream related utilities that have been published on npm. I > can't > > use flow control or destroy the iterator once I've read enough data, > unlike > > a stream. > > > > On Thu, Jul 20, 2017, 09:33 Geoffrey Cox <redge...@gmail.com> wrote: > > > > > Hi Sean, > > > > > > Sure, you could use a stream, but you'd probably end up writing a bunch > > of > > > code to do what you can do in just a few lines with slouch. > > > > > > For example, here is an example of using the _all_docs API in nano: > > > https://github.com/redgeoff/slouch/blob/master/examples/nano-all.js > > > > > > And here is a similar example using slouch: > > > https://github.com/redgeoff/slouch/blob/master/examples/all.js > > > > > > Slouch really gets cool when you start using a Throttler to provide > some > > > concurrency without totally slamming your CPU: > > > > > > > > https://github.com/redgeoff/slouch/wiki/Don%27t-just- > relax.-Slouch%21#example-2---process-a-max-of-5-docs-concurrently > > > > > > > > > Geoff > > > > > > > > > > > > On Wed, Jul 19, 2017 at 10:26 PM Sean Lang <slang...@gmail.com> wrote: > > > > > > > `.each` is kinda weird for iteration. Can't you just return a > standard > > > > Node.js stream? > > > > > > > > On Wed, Jul 19, 2017, 09:31 Geoffrey Cox <redge...@gmail.com> wrote: > > > > > > > > > Hi, > > > > > > > > > > We just released, Slouch, another JS client for CouchDB. On the > > > surface, > > > > it > > > > > may seem like we have reinvented the wheel as there is already nano > > and > > > > > nano is pretty awesome. However, Slouch approaches things from a > > > slightly > > > > > different perspective and has allowed us to greatly simply our > > > > application > > > > > layer. > > > > > > > > > > You can read more about it on medium. > > > > > < > > > > > > > > > > > > > > https://medium.com/@redgeoff/dont-just-relax-slouch-a-js- > client-for-couchdb-that-does-the-heavy-lifting-d8232eba8e2c > > > > > > > > > > > > > > > > Or, jump straight the repo. <https://github.com/redgeoff/slouch> > > > > > > > > > > I welcome any feedback and hope this helps others. > > > > > > > > > > Thanks. > > > > > > > > > > Geoff > > > > > > > > > > > > > > >