jessetane / queue

Asynchronous function queue with adjustable concurrency
MIT License
764 stars 66 forks source link

New maintainer? #86

Open jessetane opened 2 years ago

jessetane commented 2 years ago

Hi all, I no longer use this library does anyone want to take it over?

Sleepful commented 1 year ago

are you still using queues in JS in some other way?

jessetane commented 1 year ago

Promise.all and friends have been enough for my needs recently

Sleepful commented 1 year ago

Cool! This is what... a 200 LoC library? and over 1M weekly downloads in NPM. Neat! I will be testing it for my own purposes for a bit.

Sleepful commented 1 year ago

Are any of the open PRs relevant? They look like expired milk. Same question about open issues.

Sleepful commented 1 year ago

Do you still want to be involved with the library (making decisions or giving advice) after take-over?

luigimorel commented 1 year ago

hey @jessetane, i have been looking at the code and i'd like to take over

MaksimLavrenyuk commented 1 year ago

Hi, @jessetane.

I made a fork of your project in order to unbind from the events dependency (its presence in browser-targeted packages can be critical)

Maybe you'll look at PR to incorporate changes in your project?

In the future I am ready to be the main attendant of your package

Multiple changes to the project:

Detached the dependency of events from the project. I wrote my own eventEmitter. Now the project has no production dependencies. Migrated tests from tape to jest. Tape has no support in modern IDEs, such as Webstorm, which complicates the debugging process Rewrote all the code in typescript to improve type-safety. The original type definitions had problems. Migrated from standard linter to eslint with preset standard-with-typescript rules. The migration was required because of lack of ts-standard support in webstorm Added project build to 2 module target systems - CommonJS and ESM.

PR: https://github.com/jessetane/queue/pull/90

jessetane commented 1 year ago

Sorry for the delayed response here, thanks @Sleepful and @morelmiles for indicating your interest. I haven't made up my mind about what I want to do here and realized that I still have some projects in production that depend on older versions of this library so I am a little nervous about potential "left-pad" type scenarios...

Thinking out loud here but as far as I can tell, this module is still potentially relevant because it does one thing that built-in Promise tooling doesn't: throttling the number of concurrent async operations active at a time. I'd love to see us focus in on the best solution for that particular problem. Please correct me if I'm missing a built-in solution or misunderstanding anything here.

Really appreciate you just jumping in and sending a PR @MaksimLavrenyuk, I'm just gonna start by posting my initial reactions so you can get an idea of what I am looking for:

Some other miscellaneous bigger picture feelings:

MaksimLavrenyuk commented 1 year ago

@jessetane I apologize for the delay.

jessetane commented 1 year ago
MaksimLavrenyuk commented 1 year ago

The main advantage is the ability to debug without leaving the IDE and the box/if you have the editor extension. I attach screenshots of what I mean.

On the other hand, using jest equals running in a node.js environment. For projects like this, which do not use browser api (DOM api e.t.c.), this is not critical.

Honestly, testing inside a browser is new to me, I've always used mocha/jest (in a node.js runtime environment).

I don't want the discussion to descend into listing the merits of one tool or another. For me it's not critical which testing tool to use. You described how to debug tests, it suits me fine. I am ready to implement it on your stack.

image image

jessetane commented 1 year ago

Thanks for the additional info and for giving my approach a shot. Feedback welcome. I usually code with vim and debug with whatever browser is around. For what it's worth though, I just downloaded Webstorm as I've never used it before and opened rpc-engine as a project. If I click on the file test/index.js and click the debug icon debugging seems to work fine for me out of the box:

Screen Shot 2023-01-09 at 2 57 34 PM

MaksimLavrenyuk commented 1 year ago

@jessetane I hope you didn't think I'd disappear. https://github.com/jessetane/queue/issues/88#issuecomment-1382157336

I want to let you know that I haven't disappeared anywhere and am refactoring with your suggestions in mind.

I apologize for the delay, the main work takes a lot of time. I will surely send you PR with the changes described above.

MaksimLavrenyuk commented 1 year ago

@jessetane

As promised, I updated the PR with changes. I suggest that future discussion move to PR https://github.com/jessetane/queue/pull/90