All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- New minimum Node.js version is Node.js 16
- Remove unintended
npm
dependency - Add a
prepare
script
- Accept only
async
functions as a parameter toQueue.run()
and avoid returning nested promises
- Move the debug statements to
rollup.config.mjs
to eliminateprocess
references from the output file
- Raise an exception when trying to add a task with an already existing id (instead of failing when trying to run it)
- Ability to dequeue multiple tasks when scheduling (fixes not reaching the maximum concurrency limit when the cool down is very low but more than zero)
- Ability to wait until there are only X tasks waiting in the queue (for throttling when enqueuing)
- Builtin ultra-light heap implementation from
heap-js
by @ignlg - Drop the default export
- Size down to 1.2KBytes when compressed
- Now ships transpiled to ES2017 (aka ES8) (as it supposes that you have
async
/await
)
- Almost complete rewrite in TypeScript
- Use
PriorityQueue
fromtypescript-collection
O(log(n))
in all cases- Switch to mocha and test CJS/ES6/TS
- Many bugs and edge cases fixed
- The preferred way to import is now via the named export but the default export is still there
- 2.0.0 can lead to a slightly different execution order when using different priorities, throttling and concurrency-limiting at the same time - the new order is the correct one
- Fix #37 TypeScript definitions for
QueueStats
- Add a
run()
method
- Add TypeScript definitions
- Support both UMD/CJS and ES Modules
- Linting, unit testing, code coverage and various other goodness